New astrometric matcher is now the default

Hi everyone,

I’d like to bring folks’ attention to a recently merged ticket, DM-14857 which changed the default semi-blind astrometric matcher from the current Optimistic Pattern Matcher b algorithm/implementation to a new matcher based on a slightly generalized/expanded version of the algorithm that is described in DMTN-031.

The new algorithm, dubbed a “pessimistic matcher”, is designed to be more robust, with fewer silent failures, and can used over a larger dynamic range of reference catalog densities. Specifically, the matcher can solve both Galactic plane and high latitude pointings without the need to fine-tune parameters of the matcher. The new matcher was validated over a large amount precursor data as shown in DMTN-031 and has also been used in processing and analyses with DECam precursor data by UW graduate students Chris Suberlak and Hayden Smotherman.

Hopefully, most users will not notice a difference other than not having to tweak matcher parameters per dataset. Two things of note: The new matcher does not have parameters maxMatchDistArcSec, maxDeterminant, or allowedNonperpDeg as these parameters are derived automatically within the code. Second, in regions of high reference object density the memory usage can be excessive. This happens as the number of objects-per-CCD approaches 10k and above. This issue will be addressed shortly. For comparison, the previous matcher algorithm was very unlikely to return a correct solution at these densities.

Should you require the previous matcher behavior, it can be reverted by retargeting the matcher subtask in the AstrometryTask config. Below is an example from a processCcd.py config:

from lsst.meas.astrom import MatchOptimisticBTask
config.calibrate.astrometry.matcher.retarget(MatchOptimisticBTask)
2 Likes