next up previous contents_motif.gif
Next: 8.6.2 reimage(image,data,xy,dxy,zero_offset,xy_scale,ii,jj,kk) Up: 8.6 f1 Previous: 8.6 f1

8.6.1 gsmooth(image,fwhm,ii,jj)

gsmooth $<$ f1 $<$ BoaF1.f90

! NAM: gsmooth (subroutine)
! HIS: FB040514 created
! DES: Smooth an image with a Gaussian kernel 
!        f(x) = exp( -4 ln2 [x/FWHM]^2 )  where 4*ln2 = 2.772588
!        f(FWHM/2) = 0.5,  f(FWHM) = 0.0625, f(1.5*FWHM)=0.002
!      that extends to a*FWHM, where a=1.5 (may be changed). 
!      The kernel is in fact a square box.
!      For FWHM=1, it is of size 5x5, for 2 its 7x7, for 3 11x11 etc.
!      The computation of the kernel values is approximate, simply 
!      taking f(x) at the pixel center. 
!      Blanked image pixels are ignored in the averaging. 
!      Current blanking value = -1.e-7
!      Blanks will be unblanked if they have nonblanked pixels in the 
!      kernel range, else they stay at the blank value. Note that blanks
!      are not considered to have zero value!
! INP: 
!      image : input rank-2 array('f') with bounds (ii,jj); ii>1,jj>1
!      fwhm  : input float. FWHM of Gaussian in pixel.
! OUT: 
!      image : rank-2 array('f') with bounds (ii,jj). 
!
! USE: image = f90.f1.gsmooth(image,fwhm)
!      EXAMPLE:
!        from Numeric import *
!        import f90,time
!        im = zeros(21,21,'f') +5.
!        im[11,11] = 10.      # make a peak in the center
!        im[11,10] = -1.e-7   # set to blanking value
!        t0 = time.clock()
!        im = f90.f1.gsmooth(im,3.)
!        print str(time.clock()-t0)
!
!      for a 1001^2 array with FWHM=3 (kernel size=11x11) it takes 3.2 sec
!                                  =5              17x17           5.6





Frank Bertoldi 2005-11-10