| fitcoords | noao.twodspec.longslit | fitcoords |
fitcoords -- Fit user coordinates to the image coordinates
fitcoords images fitname
? List commands c Print data values for point nearest the cursor d Delete the point or set of points with constant x, y, or z nearest the cursor (p, x, y, z,) f Fit surface l Graph the last set of points (in zoom mode) n Graph the next set of points (in zoom mode) p Graph all features q Quit r Redraw a graph u Undelete the point or set of points with constant x, y, or z nearest the cursor (p, x, y, z,) w Window the graph. Type '?' to the "window:" prompt for more help. x Select data for the x axis (x, y, z, s, r) y Select data for the y axis (x, y, z, s, r) z Zoom on the set of points with constant x, y, or z (x, y, z) Unzoom with p :corners Show the fitted values for the corners of the image :function type Set the function for the fitted surface (chebyshev, legendre) :show Show the fitting parameters :xorder value Set the x order for the fitted surface :yorder value Set the y order for the fitted surface
A two dimensional function of the image coordinates is fitted to the user coordinates from the specified images;
user coordinate = function (column, line) or z = s (x, y)
The coordinates from all the input images may be combined in a single fit or the coordinates from each image may be fit separately. If the the coordinates from the input images are combined then the fitted function is recorded in the database under the specified name. If the coordinates are fit separately the fitted function is recorded under a name formed by appending the image name to the specified root name.
When the task is interactive the user is first queried whether to perform the fitting interactively. The user may answer "yes", "no", "YES", or "NO" to the query. The lowercase responses apply only to the current fit and the uppercase responses apply to all remaining fits. When the fitting is done interactively the user may change the fitted function and orders iteratively, delete individual coordinates or entire features, and graph the fit and residuals in a number ways. The CURSOR COMMANDS section describes the graphics cursor keystrokes which are available. When selecting data for the graph axes the follow definitions apply:
x Input image column positions y Input image line positions z Input user coordinates s Fitted user coordinates r Residuals (s - z)
A very useful feature is zooming, deleting, or undeleting a subset of data points. The subsets are defined as points with the same x, y, or z value as the point indicated by the cursor when typing (z)oom, (d)elete, or (u)ndelete.
When a satisfactory coordinate fit has been determined exit with the (q)uit key. The user is asked if the fit is to be recorded in the database.
If a deletion list file is specified then the coordinates of any points deleted interactively are recorded in this file. This file then can be read by subsequent fits to initially delete points with matching coordinates. This is generally used when fitting a series of images non-interactively.
Information about the fitted function may be recorded. Textual information is written to the the specified log files (which may include the standard output STDOUT). The last interactive plot or a default non-interactive plot is written the specified plot file which may be examined and spooled at a later time.
FITCOORDS DATABASE
The FITCOORDS fits are stored in text files in the subdirectory given by the "database" parameter. The name of the file is fc<fitname> where <fitname> is the specified fit name. The database text file contains blocks of lines beginning with a time stamp followed by line with the "begin" keyword. The value following "begin" is the fit name, which is often the name of the image used for the fit. If there is more than one block with the same fit name then the last one is used.
The "task" keyword will has the value "fitcoords" and the "axis" keyword identifies the axis to which the surface fit applies. An axis of 1 refers to the first or x axis (the first dimension of the image) and 2 refers to the second or y axis.
The "surface" keyword specifies the number of coefficients for the surface fit given in the following lines . The surface fit is produced by an IRAF math package called "gsurfit". The coefficients recorded in the database are intented to be internal to that package. However the following describes how to interpret the coefficients.
The first 8 lines specify:
function - Function type (1=chebyshev, 2=legendre)
xorder - X "order" (highest power of x)
yorder - Y "order" (highest power of y)
xterms - Cross-term type (always 1 for FITCOORDS)
xmin - Minimum x over which the fit is defined
xmax - Maximum x over which the fit is defined
ymin - Minimum y over which the fit is defined
ymax - Maximum y over which the fit is defined
The polynomial coefficients follow in array order with the x index varying fastest:
C00 C10 C20 ... C<xorder>0 C01 C11 C21 ... C<xorder>1 ... C<xorder><yorder>
The surface fitting functions have the form
fit(x,y) = Cmn * Pmn
where the Cmn are the coefficients of the polynomials terms Pmn, and the Pmn are defined as follows:
Chebyshev: Pmn = Pm(xnorm) * Pn(ynorm) xnorm = (2 * x - (xmax + xmin)) / (xmax - xmin) ynorm = (2 * y - (ymax + ymin)) / (ymax - ymin) P0(xnorm) = 1.0 P1(xnorm) = xnorm Pm+1(xnorm) = 2.0 * xnorm * Pm(xnorm) - Pm-1(xnorm) P0(ynorm) = 1.0 P1(ynorm) = ynorm Pn+1(ynorm) = 2.0 * ynorm * Pn(ynorm) - Pn-1(ynorm) Legendre: Pmn = Pm(xnorm) * Pn(ynorm) xnorm = (2 * x - (xmax + xmin)) / (xmax - xmin) ynorm = (2 * y - (ymax + ymin)) / (ymax - ymin) P0(xnorm) = 1.0 P1(xnorm) = xnorm Pm+1(xnorm) = ((2m+1)*xnorm*Pm(xnorm)-m*Pm-1(xnorm))/(m+1) P0(ynorm) = 1.0 P1(ynorm) = ynorm Pn+1(ynorm) = ((2n+1)*ynorm*Pn(ynorm)-n*Pn-1(ynorm))/(n+1)
Notice that the x and y values are first normalized to the interval -1 to 1 over the range of the surface as given by the xmin, xmax, ymin, and ymax elements of the database description.
A number of strong arc lines are identified along one column of an arc calibration image "arc001". The arc lines are then reidentified at every 20th column. A two dimensional dispersion solution is determined as follows:
cl> fitcoords arc001 fit.
The fitting is done interactively and deleted points are recorded. The fit is recorded under the name fit.arc001. A set of similar arc calibrations are fit non-interactively, with the same points deleted, as follows:
cl> fitcoords arc* interactive=no
Several stellar spectra are identified at different positions along the slit and traced to other lines. A fit to the geometric distortion is determined with the command:
cl> fitcoords star001,star003,star005 fitname=distortion combine=yes
In this case the coordinates from all the tracings are combined in a single fit called distortion.
The plots in the plot file are spooled to the standard plotting device as follows:
cl> gkimosaic plotfile
Gkimosaic is in the plot package.
transform