invertfit -- evaluate the fit by inverting the system of equations defined in the configuration file
invertfit observations config parameters calib
- The list of files containing the observations. Observations are multi-column text files, whose columns are delimited by whitespace, and whose first column is reserved for an object id. All observations files in the list must have the same format.
- The configuration file. Config is a text file which specifies the format of the observations and catalog files, and defines the form of the transformation equations to be inverted. More information can be obtained about the format of this file by typing "help mkconfig" and "help config".
- The name of the file containing the fit produced by the FITPARAMS task. Parameters is a text file containing the fitted parameter values for each equation and other information about the quality of the fit. Records in parameters are assigned a name equal to the label of the fitted equation. If more than one record in parameters has the same name then the last record is used by INVERTFIT to do the inversion.
- The name of the output file. Calib is a text file containing the name of the fitted object in the first column, followed by the values of the print variables if any, followed by the fitted value of each catalog variable, error in the catalog variable (if errors is not "undefined"), and residual of the fit (if catalog matching is enabled).
- catalogs = ""
- The list of files containing the catalog data. Catalogs are multi-column text files, whose columns are delimited by whitespace, and whose first column is always reserved for an object id. All catalog files in the list must have the same format. If catalogs is "", then no id matching with the observations files is done, and the residuals of the fit cannot be computed.
- errors = "obserrors"
- The algorithm used to compute formal errors for each object fit. The choices
- No errors are computed and no error values are output.
- The error in each fitted value is computed by summing in quadrature the contribution to the total error made by each individual error in the observations files variables. If no error columns are defined for the observations files, the error is assigned the value INDEF.
- The error in each fitted value is computed by summing in quadrature the contribution to the total error made by each error equation associated with a transformation equation. If no error equation is defined for any of the transformation equations, then the error is assumed to be INDEF.
- objects = "all"
- The type of objects to output to calib
. The choices are:
- Both program and standard objects are output.
- program = yes
- Only program objects are output.
- standard = yes
- Only standard objects are output.
- print = ""
- Additional variables to be printed in the output file. These variables are printed immediately after the object id, and may be any of the catalog variables, observations variables, or the set equation variables defined in config .
- format = ""
- An SPP style format string to be used for formatting the output data, in place of the default format. SPP format strings are described in detail in the formats section.
- append = no
- Append the output to calib instead of creating a new file. If the file already exists and append is "no" INVERTFIT will abort.
- catdir = ")_.catdir"
- The directory containing the supported standard star catalogs. The default parameter value redirects catdir to a package parameter of the same name. A list of standard catalogs may be obtained by printing the file "photcal$catalogs/README". Alternatively the user may create their own standard star catalogs and standard star catalog directory.
INVERTFIT computes magnitudes and colours for the standard or program stars in observations by inverting the system of transformation equations defined in config , using the parameter values in the file parameters produced by the FITPARAMS task, and writes the fitted values to the output file calib . If append is "yes" output may be appended to an existing file.
INVERTFIT computes the values of the catalog variables for the program stars by inverting the system of transformation equations defined in config . IT IS THE RESPONSIBILITY OF THE USER TO ENSURE THAT THE SYSTEM OF EQUATIONS IS ACTUALLY INVERTABLE. Two minimum conditions must be met. First, the number of transformation equations must be greater than or equal to the number of catalog variables to be fit, and second, all the catalog variables must be on the right-hand side of the transformation equations. INVERTFIT will test for both of these conditions, issue a warning, and terminate execution if either of these conditions are not met.
Below are two sets of transformation equations. The first set can be inverted by INVERTFIT, the second set cannot and must be evaluated by EVALFIT. In both cases the catalog variables to be fit are V and BV, and the observated quantities are mv, mb, Xv, and Xb.
System 1: mv = v0 + V + v1 * Xv + v2 * BV mb = b0 + V + BV + b1 * Xb + b2 * BV System 2: V = v0 + mv + v1 * (Xv + Xb) / 2. + v2 * (mb - mv) BV = b0 + b1 * (Xv + Xb) / 2.0 + b2 * (mb - mv)
It is possible though not recommended, to use set equation variables as unknowns in the transformation equations, provided that the total number of unknowns on the right-hand side of the equations remains less than or equal to the number of transformation equations. Set equations containing catalog variables must not be used in the left-hand side of the transformation equations. An example of a set of transformation equations which use a set equation variable is shown below. Note that there still are only two independent variables V and BV and that the output file calib will contain V and BV only.
System 1: set B = V + BV mv = v0 + V + v1 * Xv + v2 * BV mb = b0 + B + b1 * Xb + b2 * BV
Some systems of equations are invertable but do not have a UNIQUE solution. A sample of such a system is shown below. There are quadratic terms in BV, implying that this set of equations probably has two solutions, both of which may be be mathematically correct, but only one of which is physically meaningful. INVERTFIT does not test for this condition and may converge to either solution.
System 1: mv = v0 + V + v1 * BV + v2 * BV ** 2 mb = b0 + V + BV + b1 * BV + b2 * BV ** 2
Formal errors for the fit may be computed by, 1) setting errors to "obserrors" and using the error columns defined in the observations section of config to estimate the errors or 2) setting errors to "equations" and using the error equations defined in config to estimate the errors.
If the user wishes to match the objects in observations with those in catalogs in order for example, to compute the residuals of the fit, catalogs must be defined. Similarly if objects is "program" or "standard", catalogs must be defined in order to enable id matching.
Legal catalog and observations files are multi-column text files whose columns are delimited by whitespace. The first column of a catalog file is always reserved for an object id. The first column of an observations file is reserved for an object id which can be used to match the observational data with the catalog data. All other columns may contain any quantity which can be expressed as an integer or real number. Sexagesimal format numbers (hh:mmm:ss) are interpreted internally as real numbers. The constant INDEF can be used to represent data that is missing or undefined. Double precision and complex data are not supported. Lines beginning with "#" are treated as comment lines.
By default INVERTFIT prints out the id, followed by the variables listed in the print parameter, followed by the fit value, estimated error (if errors is "undefined", and residual of the fit (for any standard star observations that can be matched with the catalog values) for each fitted catalog variable. The user can format the output by setting the format parameter to an SPP style string. SPP format strings are described in detail below.
A format specification has the form "%w.dCn", where w is the field width, d is the number of decimal places or the number of digits of precision, C is the format code, and n is radix character for format code "r" only. The w and d fields are optional. The format codes C are as follows:
b boolean (YES or NO) c single character (c or '\c' or '\0nnn') d decimal integer e exponential format (D specifies the precision) f fixed format (D specifies the number of decimal places) g general format (D specifies the precision) h hms format (hh:mm:ss.ss, D = no. decimal places) m minutes, seconds (or hours, minutes) (mm:ss.ss) o octal integer rN convert integer in any radix N s string (D field specifies max chars to print) t advance To column given as field W u unsigned decimal integer w output the number of spaces given by field W x hexadecimal integer z complex format (r,r) (D = precision) Conventions for w (field width) specification: W = n right justify in field of N characters, blank fill -n left justify in field of N characters, blank fill 0n zero fill at left (only if right justified) absent, 0 use as much space as needed (D field sets precision) Escape sequences (e.g. "\n" for newline): \b backspace (\fBnot implemented\fR) \f formfeed \n newline (crlf) \r carriage return \t tab \" string delimiter character \' character constant delimiter character \\ backslash character \nnn octal value of character Examples %s format a string using as much space as required %-10s left justify a string in a field of 10 characters %-10.10s left justify and truncate a string in a field of 10 characters %10s right justify a string in a field of 10 characters %10.10s right justify and truncate a string in a field of 10 characters %7.3f print a real number right justified in floating point format %-7.3f same as above but left justified %15.7e print a real number right justified in exponential format %-15.7e same as above but left justified %12.5g print a real number right justified in general format %-12.5g same as above but left justified \n insert a newline
1. Evaluate the fit for a list of program stars in m92. Use the errors in the observed quantities to estimate the errors.
ph> invertfit m92.obs m92.cfg m92.fit m92.cal
2. Repeat the fit computed above but include the variables xu and yu which are the positions of the objects in the u frame in the output.
ph> invertfit m92.obs m92.cfg m92.fit m92.cal print="xu,yu"
3. Repeat the fit computed in 1 but format the output. The user has determined that the output will have 7 columns containing the object id, V, error(V), resid(V), BV, error(BV), and resid(BV).
ph> invertfit m92.obs m92.cfg m92.fit m92.cal\ format="%-10.10s %7.3f %6.3f %6.3f %7.3f %6.3f %6.3f\n"