PSFFIT
Name
psffit
Purpose (one Line Only)
Fit a numerical PSF to one or more sources in an image.
Description
The PSF must be provided as an input to this routine. Suitable
PSFs can be generated with PSFSTACK. For this routine to work, the
resulting PSF must be amenable to shifting by interpolation. Thus
an under-sampled PSF will not work with this tool.
Generally speaking, if you ask to fit more than one source at a time,
the sources should have overlapping PSFs. Otherwise, you are better
off with separate calls. This is NOT enforced.
Category
CCD data processing
Calling Sequence
psffit,image,psf,region,xin,yin,xout,yout,counts
Inputs
image - Input image to be fitted.
psf - Numerical PSF to fit to image. This must be normalized to have
unit volume.
region - Fitting region for chi-sq calculation. Provide
[x1,x2,y1,y2] in image index coordinates.
xin - Starting x location for source(s)
yin - Starting y location for source(s)
Optional Input Parameters
Keyword Input Parameters
SILENT - Flag, if set will suppress all diagnostic output
PSFMAX - Two element vector containing the x,y position of the peak of
the input PSF. The position is in the native array coordinates
of the psf array. If not provided, this will be computed.
It will save time for many fits with the same psf to provide
this value. If computed internally, the values will be returned
to this keyword.
MEANSKY - Background sky value (of entire image). If this is provided
and calcsky is not set then this value is used for sky. If
calcsky is set then sky is computed and returned in this variable.
CALCSKY - Flag, if set forces this routine to compute sky background.
By using this flag you get a sky value that is global for the
entire image based on up to 60000 randomly selected pixels.
This flag is ignored if you use SKY1 and SKY2.
GAIN - Gain of the image, e-/ADU. This is used to generate an array
of uncertainties for each pixel based on photon statistics.
default=1.0
RDNOISE - Readout noise of CCD (default=10) [e-]
NMAX - Maximum number of iterations for the amoeba call. Default=5000
If this limit is reached, the source will be tagged as
not fittable, ie., chisq = -1.
EXPTIME - Exposure time, in seconds, default=1
SKY1 - Inner radius of the sky annulus (unit=pixels), default=0
SKY2 - Outer radius of the sky annulus, default=0
PSFFACTOR- Area of constraint factor relative to the size of the PSF.
Pixels within the distance FWHMPSF*PSFFACTOR of the starting
location of the source(s) are used to guide the fit.
The default value is 1.0 and seems to work pretty well.
This value cannot be arbitrarly large or small. In general
it needs to be between 1.0 and 2.0. If it is too small it
may give bad answers. If it is too big the program will
likely crash.
CSTART - optional vector, length must match xin,yin. This gives starting
values for the source flux that override the automatic values
computed in this routine. Any value that is greater than 0 is
taken to be the starting value to use. For those that are
not specified (ie., <=0), the ones that are known are computed
and subtracted prior to computing the automatic starting
flux.
Outputs
xout - Fitted x location for source(s)
yout - Fitted y location for source(s)
counts - Object flux (photons per second)
Keyword Output Parameters
CHISQ - final goodness of fit for the returned values
If this value is negative, the return values are meaningless.
FLERR - Uncertainty (1 sigma) of object flux.
FLUX - Object flux (photons per second)
MAG - Optional return of the instrumental magnitude
ERR - Optional return of the magnitude error
FWHM - FWHM from basphote prior to fitting
PSF_FWHM - FWHM of PSF from basphote, same parameters as FWHM for calculation
Common Blocks
PSFFIT_COM, for internal use only
Side Effects
Restrictions
Procedure
Modification History
Written by Marc W. Buie, Southwest Research Institute, 2012/09/28
2012/10/04, MWB, added weighted fitting.
2012/12/06, MWB, fixed a problem with the MEANSKY and CALCSKY keywords
2013/03/05, MWB, added NMAX keyword and proper trap of bad fit from amoeba
2013/03/29, BLE, Added new input keywords EXPTIME, SKY1, and SKY2.
Calculate and output new keywords FLUX, FLERR, MAG, ERR.
The PSFTHRES input keyword was also added.
2013/04/14, MWB, tweak sigma array to avoid negative flux values
2013/06/19, MWB, removed PSFTHRES keyword. Added PSFFACTOR plus numerous
improvements including better starting values.
CSTART keyword was added.
2013/07/12, MWB, added FWHM and PSF_FWHM output keywords
2014/01/16, MWB, if number of inputs is 1 then outputs are scalars.