.help curfit Jun88 utilities .ih NAME curfit -- fit a curve to a list or an image section .ih USAGE curfit input .ih PARAMETERS .ls input The data to be fit. May be an image section, STDIN or a list of file names. .le .ls function = legendre The type of function with which to fit the data. Choices are legendre, chebyshev, spline1 (linear spline) or spline3 (cubic spline). .le .ls order = 4 The order of the fit or number of spline pieces. .le .ls weighting = uniform The type of weighting for the fit. The options are: .ls uniform The weight w = 1.0. This option may be used for both list input and image input. .le .ls user The weights are supplied by the user. This option may be used for list input only. .le .ls statistical The weight w = 1.0 / y. This option can be used for both list and image data. .le .ls instrumental The user supplies the sigmay for each point and w = 1.0 / sigmay ** 2. This option may be used for list input only. .le .le .ls interactive = yes If \fBinteractive\fR is set to yes, a plot of the fit is drawn and the cursor is available for interactively examining and adjusting the fit. .le .ls axis = 1 If \fBinput\fR names an image or image section, this parameter specifies the axis along which the image is projected for fitting. .le .ls listdata = no If \fBlistdata\fR is set to yes, the only printed output will be the calculated values for the X,Y pairs. This is useful as input to \fIgraph\fR or some other list oriented program. .le .ls verbose = no If \fBverbose\fR is set to yes, the fitted (X,Y) pairs are listed in addition to the default output of filename, function type, order, rejection parameters, coefficients and their errors. .le .ls power = no If \fBpower\fR is set to yes, the coefficients of the legendre or chebyshev polynomials will be converted to power series coefficients. .le .ls calctype = "double" Calculation datatype. The two datatypes are "real" (single precision) and "double" (double precision). .le .ls device = "stdgraph" The output device for interactive graphics. .le .ls cursor = "stdgcur" The source of graphics cursor input. .le .ih DESCRIPTION A curve is fit to data read from either an image section or a list. The type of curve is set by the \fBfunction\fR parameter as either a legendre polynomial, chebyshev polynomial, linear spline or cubic spline, with the order of the fit (or number of spline pieces) set by \fBorder\fR. If data is read from an image, the \fBaxis\fR parameter is used to reduce the dimensionality of the image; it specifies the axis along which the image is projected. For example, when \fBaxis\fR = 1, the image is compressed to a column. \fBAxis\fR = 2 would project the image along a line; \fBaxis\fR = 3 indicates projection in the z direction, etc. The input data must be ordered in x because of a restriction in the interactive plotting package. If the input is from a list, the data are sorted prior to fitting; image input data are assumed to be ordered in x and are not explicitly sorted by \fIcurfit\fR. If the input is from a list the user may specify a set of weights, \fBweighting\fR = user or a set of errors, \fBweighting\fR = instrumental. An additional weighting option \fBweighting\fR = statistical can be used for both list and image data. The default is \fBweighting\fR = uniform. When \fBinteractive\fR = yes, the curve is plotted and cursor commands allow for interactive examining and adjustment of the fit. The full range of interactive cursor commands is available including those for changing the function type, order, and rejection criteria, and examining the residuals. The final fit parameters are written to STDOUT with the format controlled by parameters \fBverbose\fR and \fBlistdata\fR. By default, the function type, order, and resulting chi-square are printed as well as the coefficients and their standard deviations. If \fBverbose\fR is set to yes, a list of X, Y_calculated, Y_input, and W_input is also printed. If \fBlistdata\fR is set to yes, the only printed output will be a listing of X, Yc, Y and W. This provides a list suitable as input to \fBgraph\fR or any other list oriented utility. Setting \fBlistdata\fR to yes overrides the verbose option. When \fBpower\fR = yes, the coefficients are converted to power series coefficients of the form a0 + a1*X + a2*X**2 +a3*X**3 .... Only legendre and chebyshev coefficients are converted; a conversion of spline coefficients is meaningless. Also, errors in the coefficients are not converted. The user has a choice of single or double precision calculations. Generally double precisions is used since the calculation time is only slightly longer. The single precision calculation is used in many other tasks which do many fits. This task provides a test tool to compare the results between the two levels of precision. .ih EXAMPLES 1. The x,y pairs in file test.data are interactively fit with a fourth order legendre polynomial. The printed output is shown. cl> curfit test.data .nf NOAO/IRAF V2.0 Hammond@lyra Fri 11:45:41 13-Dec-85 file = test.data function = legendre grow = 0. naverage = 1 order = 4 low_reject = 0., high_reject = 0. niterate = 1 sample = * total points = 8 sample points = 8 nrejected = 0 deleted = 0 square root of reduced chi square = 3.008706E-6 coefficient error 1 2.633E1 1.098E-6 2 3.150E1 1.820E-6 3 8.167E0 1.896E-6 4 -1.621E-6 2.117E-6 .fi 2. Fit a cubic spline to the last 12 columns of image "m74". cl> curfit m74[501:512,1:512] axis=2 func=spline3 order=5 3. Use \fIcurfit\fR as a filter to overplot a smoothed curve to an existing plot of the data points. The command line for \fBgraph\fR is shown as well as the \fBcurfit\fR command. Note the interactive flag for \fBcurfit\fR is turned off. cl> graph points.list point+ mark=box wx1=.13 xlab="X VALUES"\ >>> ylab="Y VALUES" title="Legendre fit to points.list" cl> type points.list | curfit list+ inter- | graph append+ .ih SEE ALSO icfit, polyfit .endhelp