Fits a mixed Gaussian - Exponential - Lorentzian profile to STELLAR images


PISAFIT fits a radially symmetric mixed Gaussian - Exponential - Lorentzian function to STELLAR type objects. The function is described by three separate parameters, the gaussian sigma, the cross over point, as a fraction of the peak intensity, from the gaussian core to an exponential wing and the fractional mix of a Lorentzian to these two functions at each point. The parameters describing the resultant functional fit are stored in the GLOBAL file and can be subsequently accessed by PISAFIND if the profile fitting option is chosen, or by PISAGEN for generating a model data frame of the detected objects. The fit produced by this routine is displayed on a graphics device, together with the residuals (derived from the variance of data contributing to each point), so that the quality of fit can be assessed. The user is prompted as to their satisfaction with the displayed fit, and can re-do the fit, out to a specified radius. This cycle can repeat until the user indicates that he is satisfied with the fit. Experience shows that the first fit is rarely the best.

The fit parameters can be controlled, within certain limitations, by the user. Three different forms of minimisation parameter bounding are available. Type APM sets up the bounds so that a minimisation as used in the original APM specification of this routine can be performed. Type USER allows the user to directly specify the ranges within which the fitting parameters can vary, and type NONE freely allows the minimisation routine to fit the function with the only restriction that the values are greater than zero. Finally the user can specify that the fit is done using a weighted scheme, using the shown residuals.




Controls whether another refinement of the fit takes place or not. [TRUE]
The background (sky) value. Used across whole frame. [Dynamic]
COMIX = _REAL (Write)
The value found for the mixture ratio between the Lorentzian and the other functions, on exit from the program.
The range of values between which COMIX is allowed to vary during the minimisation. Only used if MINMODE = USER. [0,1]
CROSS = _REAL (Write)
The value found for the percentage cross over point, from the gaussian core to the exponential wings, on exit from the program.
The range of values between which CROSS is allowed to vary during the minimisation. Only used if MINMODE = USER. [0,100]
A character string specifying a valid device name.
GSIGM = _REAL (Write)
The value found for the gaussian sigma on exit from the program.
The range of values between which GSIGM is allowed to vary during the minimisation. Only used if MINMODE = USER. [0.5,5,5]
IN = NDF (Read)
The Input NDF containing the objects to be fitted.
The relative width of the lines plotted ( greater than equal to 1 ). [1]
String defining which type of bounds are to be applied to the minimisation parameters. The allowed returns are any string beginning with the characters ’A’,’U’ or ’N’. These represent ’A’PM (default) ’U’SER or ’N’ONE. If return is APM then the bounds for the minimisation are as in the original APM version of this routine (0.5 to 5.5 for GSIGM, 0.0 to 1.0 for CROSS and 0.0 to approximately 0.12 for COMIX). If the return selects USER then the user will be prompted for the limitations to be applied during the minimisation. If the returns selects NONE then the parameters will be allowed to vary to any value greater than 0.0. [APM]
ASCII file containing the positions of the objects to be fitted. The file may be of the type produced by PISAFIND or just of list of either
Object-number X-position Y-position etc.,


X-position Y-position.


Analyse the whole array ( to derive the background value ) or select a subset of the data.

If this is true the whole data array is analysed. If this is false the pixel coordinates defining a subset of the data to be analysed are requested. [TRUE]

The radius out to which the fit will be attempted. This should be at least a few stellar radii. [10.0]
Set to true if a weighted fit is to be attempted. The weighting is based on the distribution of errors of values contributing to a bin in the mean profile. Note that under certain conditions weighting can seem to bias fit unfairly to the central bins (usually seen as a very poor fit to the outer values). If this situation occurs then an unweighted fit is the best option. [FALSE]
Initial and final pixel coordinates of the subset of the data array to be analysed. [Dynamic]
Initial and final pixel coordinates of the subset of the data array to be analysed. [Dynamic]


Performs the radial fit on the stars contained in the list FRAME.STARS_ACC. It directs the graphical output to a laser printer whose lines are printed at three times normal density. The bounds on the minimisation are freed to be any value greater than 0. The interactive, recursive, fitting loop is disabled by setting AGAIN=F and the fit is done out to a radius of 15 pixels.
Performs the production of the radial profile. Enters into an interactive session allowing the user to modify the radius of the data used in the fit.


The potential quality of the fit is very dependent on the objects chosen to produce the radial profile. The best results should be obtained from a range of unsaturated, well separated objects. The list of objects used for the fit can be passed directly from PISAFIND or by a list of object x,y positions produced by the user, say by using the KAPPA routine CENTROID. Note that any input lists of the latter type should be of the form object_number, X_position, Y_position in the first three columns or X_position, Y_position ) only. This means that output from many KAPPA routines will require editing.


The timing for the initial processing (i.e. radial profile production) is proportional to the number of objects given. The latter processing (the fitting loop) is dependent only on the number of points in the fit .

Functional Forms

The basic functional forms of the fitting equations are described in appendix B.

Implementation Status:

The present status of the program has 4 main drawbacks.