MatchOptimisticBTask

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.matchOptimisticB.matchOptimisticBContinued 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 also

See the MatchOptimisticBTask API reference for complete details.

Retargetable subtasks

sourceSelector

Default
'matcher'
Field type
Single-selection RegistryField
Choices
'science'
lsst.meas.algorithms.sourceSelector.ScienceSourceSelectorTask
'references'
lsst.meas.algorithms.sourceSelector.ReferenceSourceSelectorTask
'objectSize'
lsst.meas.algorithms.objectSizeStarSelector.ObjectSizeStarSelectorTask
'flagged'
lsst.meas.algorithms.flaggedSourceSelector.FlaggedSourceSelectorTask
'astrometry'
lsst.meas.algorithms.astrometrySourceSelector.AstrometrySourceSelectorTask
'matcher'
lsst.meas.algorithms.matcherSourceSelector.MatcherSourceSelectorTask
'matcherPessimistic'
lsst.meas.algorithms.matcherSourceSelector.MatcherPessimisticSourceSelectorTask
'diaCatalog'
lsst.ip.diffim.diaCatalogSourceSelector.DiaCatalogSourceSelectorTask
How to select sources for cross-matching

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)
Minimum number of matched pairs; see also minFracMatchedPairs

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

MatchOptimisticBTask is a subtask of AstrometryTask, which is called by PhotoCalTask.

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)
ds9 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.