![]() |
![]()
| ![]() |
![]()
namematch - match two lists of stars synopsismatch fileA xcolA ycolA magcolA fileB xcolB ycolB magcolB
DESCRIPTIONThis program is designed to match up items in two different lists, which may have two different systems of coordinates. The program allows the two sets of coordinates to be related by a linear, quadratic, or cubic transformation. It is an implementation of the algorithm described in Valdes et al., Publications of the Astronomical Society of the Pacific, vol 107, page 1119 (1995); see also Droege et al., Publications of the Astronomical Society of the Pacific, vol 118, page 1666 (2006). The basic idea is to select the brightest nobj objects from each list, then to create a (very large) set of triangles using the stars in each list. By finding similar triangles in the two sets, one can identify matching stars from the two lists. This method is insensitive to translation, rotation, scaling, and inversion, but it can take a long time. After finding candidate matching pairs, the program enters a loop in which it computes a geometric transformation, determines the residuals between the actual and transformed coordinates, and discards the the most discrepant items; the user can set parameters controlling the iteration of this loop using command-line arguments max_iter and halt_sigma. OPTIONS
The argument "trirad" may need some extra explanation.
For a full desciption, see the paper by Valdes et al. In short, stars are
grouped into triangles, the sides of which are labelled "a",
"b" and "c" in order of decreasing size. The normalized
ratios b/a and c/a
So the value of "trirad" has units of neither list; it exists in a two-dimensional "triangle-space" formed by the coordinates b/a and c/a (each of which ranges from 0.0 to 1.0). One way the user can control the matching of triangles is to specify a "scale factor". Only triangles with a ratio of size falling with a particular window will be counted as matches. The user can control the "scale factor window" in two ways: using the scale= option alone; for example,
scale=1.5 The window is centered on the given factor, and extends a
percentage (AT_MATCH_PERCENT) above it and below it.
using both min_scale and max_scale
together; for example, min_scale=1.3 max_scale=1.7 The window extends
from the min_scale to max_scale, including both
boundaries.
If the two lists are known to have the same scale and rotation, the user may use the identity keyword to force an initial guess at the TRANS: a linear model with The program will use this initial TRANS structure to match up the items in the two lists, rather than trying to figure out the transformation itself. After looking for matched items with this fixed model, the program will use the matched pairs it finds to define an improved TRANS. In a similar vein, if the user knows that the scale and rotation of the two sets of objects are identical, but there is a fixed and known translation of XX units in the x-direction and YY units in the y-direction, he can use the identity keyword with additional arguments which will create an initial TRANS with
Finally, for ultimate control, the user may specify the exact values of the coefficients for the initial TRANS via the intrans=filename option. The program will look for an ASCII text file with the given filename, which must have the following format:
In any case, if the user specifies the initial TRANS, either via the identity or intrans method, that initial model is used to convert the coordinates of objects in list A into the system of list B. The program then looks for matches within the matchrad units. It then uses only the matched pairs to generate an improved TRANS model. On the other hand, if the user does NOT provide an initial TRANS model, the program searches for one itself. After its first guess, the code matches up candidate pairs of stars from the two lists. It then enters a loop in which it calculates a plate solution, applies the solution to the stars in list A, then compares the predicted positions from list A to the actual positions of stars in list B. Based on those residuals, the code marks some of the pairs as "bad", discards them, and goes back to the top of the loop. The max_iter and halt_sigma arguments can be used to control the number of times the code enters this loop and discards possible matches. Note that, if one uses the project_coords routine to turn (RA, Dec) positions from a catalog into an input list, the units will of this list will be radians; hence, the residuals from a solution against this list will be in radians squared. A typical residual of 1 arcsec corresponds to halt_sigma of 2.4e-11 radians squared. SEE ALSOThe web pages for the match program contain additional documentation and a description of the associated project_coords and apply_match programs. Read them at http://spiff.rit.edu/match/ AUTHORMichael Richmond < mwrsps at rit dot edu >
|