Viewing contents of file '../idllib/deutsch/img/starfit.pro'
pro starfit,image,xguess,yguess,xc,yc,FWHM1,INFO=INFO
;+
;NAME:
;      STARFIT
;PURPOSE:
;      Routine to fit a 2D gaussian to a stellar object
;CALLING SEQUENCE:
;      STARFIT,image,xguess,yguess,xc,yc,FWHM,INFO=INFO
;INPUTS:
;      IMAGE  - Input image
;      XGUESS - Estimated initial X position of star (scalar!)
;      YGUESS - Estimated initial Y position of star (scalar!)
;OUTPUTS:
;      XC     - Fit X position of star
;      YC     - Fit Y position of star
;      FWHM   - Returned FWHM of star
;PROCEDURE:
;      The IDL library routine for fitting a Gaussian to a distribution
;      is used to fit to the marginal distribution.
;MODIFICATION HISTORY
;      Modified from XSPAM to generic use by EWDeutsch Nov93
;-

  if (n_params(0) lt 5) then begin
    print,'Call> starfit,image,xguess,yguess,xc,yc,FWHM,INFO=info'
    print,'e.g.> starfit,img,434,212,xc,yc,FWHM1'
    return
    endif

  xg=fix(xguess+.5)-7 & yg=fix(yguess+.5)-7
  array=double(extrac(image,xg,yg,15,15))

  array_param=size(array)
  xlen=array_param(1)
  ylen=array_param(2)
  sumx=fltarr(xlen)
  sumy=fltarr(ylen)
  x=indgen(xlen)
  y=indgen(ylen)

; Compute sums
  for k=0,xlen-1 do sumx(k)=total(array(k,*))/float(ylen)
  for k=0,ylen-1 do sumy(k)=total(array(*,k))/float(xlen)

; Fit gaussians
  xfit=gaussfit(x,sumx,a)
  yfit=gaussfit(y,sumy,b)
  xc=a(1)+xg
  yc=b(1)+yg

  INFO=[a,b]

  FWHM1=avg([info(2),info(6+2)])*2.35

  return
end