pro cleanch_one,inframe1,frame2
;Procedure for cleaning the values of a bad channel
;This procedure works if the frame has bad rows
on_error,2
frame1=inframe1
frame2=rotate(frame1,1)
frame=rotate(frame1,1)
xc=7 ;x coord of the second bad pixel
yc=1 ;y coord of the first bad pixel
for j=0,!VSIZE-1 do begin ;0,30 do begin ;
for i=0,!HSIZE-1 do begin ;30,60 do begin;
if (i MOD 8) EQ xc AND (j MOD 2) EQ yc then begin
;check on the borders
ip1 = i+1
in1 = i-1
jp1 = j+1
jn1 = j-1
if ip1 GE !HSIZE then ip1 = !HSIZE-1
if jp1 GE !VSIZE then jp1 = !VSIZE-1
if in1 LT 0 then in1 = 0
if jn1 LT 0 then jn1 = 0
;substitute with the mean of the cross values
;print,i,j,frame(i,j)
vector=fltarr(6)
vector(0)=frame(in1,jn1)
vector(1)=frame(in1,jp1)
vector(2)=frame(ip1,jn1)
vector(3)=frame(ip1,jp1)
vector(4)=frame(in1,j)
vector(5)=frame(ip1,j)
std=stdev(vector,m)
if abs(frame(i,j)-m) GT std*2 then begin
frame2(i,j)=(frame(in1,jn1)+frame(in1,jp1)+frame(ip1,jp1) $
+frame(ip1,jn1)/4.+frame(in1,j)+frame(ip1,j))/6.
endif
endif
endfor
endfor
frame2=rotate(frame2,3)
end