Viewing contents of file '../idllib/astron/contrib/varosi/code/allpro/border_noise.pro'
;+
; NAME:
; border_noise
;
; PURPOSE:
; Determine standard deviation and mean of border pixels in CCD image.
;
; CALLING:
; border_noise, image, bxu, byu, bsigma, bmean
;
; INPUTS:
; image = 2-D matrix.
; bxu = Left & Right column #'s for statistics: [[xL1,xR1],[xL2,xR2]].
; byu = Bottom & Top row #'s for statistics: [[yB1,yT1],[yB2,yT2]].
;
; Note: bxy & byu are defined by pro get_CCD_status.
;
; OUTPUTS:
; bsigma = standard devation of border pixel values.
; bmean = mean of border pixel values.
;
; EXTERNAL CALLS:
; function stdev
; HISTORY:
; Frank Varosi NASA/GSFC 1994.
;-
pro border_noise, image, bxu, byu, bsigma, bmean
bsigma = 0
bmean = 0
sz = size( image )
if (sz(0) NE 2) OR (N_elements( bxu ) LT 4) then bxs=[0,0] else begin
if max( bxu ) GE sz(1) then return
bxs = bxu(*,1)-bxu(*,0)
endelse
if (sz(0) NE 2) OR (N_elements( byu ) LT 4) then bys=[0,0] else begin
if max( byu ) GE sz(2) then return
bys = byu(*,1)-byu(*,0)
endelse
if min( bxs ) GT 0 then begin
imb0 = image( bxu(0,0):bxu(0,1), * )
imb1 = image( bxu(1,0):bxu(1,1), * )
imbx = [ reform( imb0, N_elements(imb0) ), $
reform( imb1, N_elements(imb1) ) ]
endif else begin
if (bxs(0) GT 0) then imbx = image( bxu(0,0):bxu(0,1), * )
if (bxs(1) GT 0) then imbx = image( bxu(1,0):bxu(1,1), * )
if N_elements( imbx ) GT 0 then $
imbx = reform( imbx, N_elements(imbx) )
endelse
if min( bys ) GT 0 then begin
imb0 = image( * , byu(0,0):byu(0,1) )
imb1 = image( * , byu(1,0):byu(1,1) )
imby = [ reform( imb0, N_elements(imb0) ), $
reform( imb1, N_elements(imb1) ) ]
endif else begin
if (bys(0) GT 0) then imby = image( *, byu(0,0):byu(0,1) )
if (bys(1) GT 0) then imby = image( *, byu(1,0):byu(1,1) )
if N_elements( imby ) GT 0 then $
imby = reform( imby, N_elements(imby) )
endelse
if (N_elements( imbx ) GT 0) AND (N_elements( imby ) GT 0) then begin
bsigma = stdev( [ imbx, imby ], bmean )
endif else begin
if N_elements( imbx ) GT 0 then bsigma = stdev( imbx, bmean )
if N_elements( imby ) GT 0 then bsigma = stdev( imby, bmean )
endelse
end