MatchOptimisticBTask matches sources to reference objects. This is often done as a preliminary step to fitting an astrometric or photometric solution.

Optimistic Pattern Matching is described in [Tabur2007]

## Processing summary¶

MatchOptimisticBTask runs this sequence of operations:

• Flags sources with bad centroids and low signal to noise and remove them from the matching.
• Match the usable sources with an input reference catalog using the V. Tabur 2007 algorithm.
• Further remove sources detected on the edge of the image and those that are saturated.
• Return these sources matched to the references.

## Python API summary¶

from lsst.meas.astrom.matchOptimisticBTask import MatchOptimisticBTask

classMatchOptimisticBTask(**kwargs)

Match sources to reference objects using the Optimistic Pattern Matcher B algorithm of Tabur 2007...

attributeconfig

Access configuration fields and retargetable subtasks.

See the MatchOptimisticBTask API reference for complete details.

## Configuration fields¶

### allowedNonperpDeg¶

Default
3.0
Field type
float RangeField
Range
[-inf,45.0)
Allowed non-perpendicularity of x and y (degree)

### maxDeterminant¶

Default
0.02
Field type
float Field
maximum determinant of linear transformation matrix for a usable solution

### maxMatchDistArcSec¶

Default
3
Field type
float RangeField
Range
[0,inf)
Maximum separation between reference objects and sources beyond which they will not be considered a match (arcsec)

### maxOffsetPix¶

Default
300
Field type
int RangeField
Range
[-inf,4000)
Maximum allowed shift of WCS, due to matching (pixel). When changing this value, the LoadReferenceObjectsConfig.pixelMargin should also be updated.

### maxRotationDeg¶

Default
1.0
Field type
float RangeField
Range
[-inf,6.0)
Rotation angle allowed between sources and position reference objects (degrees)

### minFracMatchedPairs¶

Default
0.3
Field type
float RangeField
Range
[0,1)
Minimum number of matched pairs as a fraction of the smaller of the number of reference stars or the number of good sources; the actual minimum is the smaller of this value or minMatchedPairs

### minMatchedPairs¶

Default
30
Field type
int RangeField
Range
[2,inf)

### numBrightStars¶

Default
50
Field type
int RangeField
Range
[2,inf)
Number of bright stars to use

### numPointsForShape¶

Default
6
Field type
int Field
number of points to define a shape for matching

## Examples¶

See lsst.pipe.tasks.photoCal.PhotoCalTask .. note:: Pipe task will require conversion before this link is useable.

## Debugging¶

The lsst.pipe.base.CmdLineTask command line task interface supports a flag -d to import debug.py from your PYTHONPATH; see lsstDebug for more about debug.py files.

The available variables in MatchOptimisticB are

display (bool)
If True display information at three stages: after finding reference objects, after matching sources to reference objects, and after fitting the WCS; defaults to False
frame (int)
frame to use to display the reference objects; the next two frames are used to display the match list and the results of the final WCS; defaults to 0

To investigate the meas_astrom_astrometry_Debug, put something like

import lsstDebug
def DebugInfo(name):
debug = lsstDebug.getInfo(name) # N.b. lsstDebug.Info(name) would call us recursively
if name == "lsst.meas.astrom.astrometry":
debug.display = True

return debug

lsstDebug.Info = DebugInfo


into your debug.py file and run this task with the –debug flag.