FitTanSipWcsTask#

class lsst.meas.astrom.FitTanSipWcsTask(config: Config | None = None, *, name: str | None = None, parentTask: Task | None = None, log: logging.Logger | lsst.utils.logging.LsstLogAdapter | None = None)#

Bases: Task

Fit a TAN-SIP WCS given a list of reference object/source matches.

Methods Summary

fitWcs(matches, initWcs[, bbox, refCat, ...])

Fit a TAN-SIP WCS from a list of reference object/source matches

initialWcs(matches, wcs)

Generate a guess Wcs from the astrometric matches

plotFit(matches, wcs, rejected)

Plot the fit

rejectMatches(matches, wcs, rejected)

Flag deviant matches

Methods Documentation

fitWcs(matches, initWcs, bbox=None, refCat=None, sourceCat=None, exposure=None)#

Fit a TAN-SIP WCS from a list of reference object/source matches

Parameters#

matcheslist of lsst.afw.table.ReferenceMatch

The following fields are read:

  • match.first (reference object) coord

  • match.second (source) centroid

The following fields are written:

  • match.first (reference object) centroid,

  • match.second (source) centroid

  • match.distance (on sky separation, in radians)

initWcslsst.afw.geom.SkyWcs

initial WCS

bboxlsst.geom.Box2I

the region over which the WCS will be valid (an lsst:afw::geom::Box2I); if None or an empty box then computed from matches

refCatlsst.afw.table.SimpleCatalog

reference object catalog, or None. If provided then all centroids are updated with the new WCS, otherwise only the centroids for ref objects in matches are updated. Required fields are “centroid_x”, “centroid_y”, “coord_ra”, and “coord_dec”.

sourceCatlsst.afw.table.SourceCatalog

source catalog, or None. If provided then coords are updated with the new WCS; otherwise only the coords for sources in matches are updated. Required fields are “slot_Centroid_x”, “slot_Centroid_y”, and “coord_ra”, and “coord_dec”.

exposurelsst.afw.image.Exposure

Ignored; present for consistency with FitSipDistortionTask.

Returns#

resultlsst.pipe.base.Struct

with the following fields:

  • wcs : the fit WCS (lsst.afw.geom.SkyWcs)

  • scatterOnSky : median on-sky separation between reference objects and sources in “matches” (lsst.afw.geom.Angle)

initialWcs(matches, wcs)#

Generate a guess Wcs from the astrometric matches

We create a Wcs anchored at the center of the matches, with the scale of the input Wcs. This is necessary because matching returns only matches with no estimated Wcs, and the input Wcs is a wild guess. We’re using the best of each: positions from the matches, and scale from the input Wcs.

Parameters#

matcheslist of lsst.afw.table.ReferenceMatch

List of sources matched to references.

wcslsst.afw.geom.SkyWcs

Current WCS.

Returns#

newWcslsst.afw.geom.SkyWcs

Initial WCS guess from estimated crpix and crval.

plotFit(matches, wcs, rejected)#

Plot the fit

We create four plots, for all combinations of (dx, dy) against (x, y). Good points are black, while rejected points are red.

Parameters#

matcheslist of lsst.afw.table.ReferenceMatch

List of sources matched to references.

wcslsst.afw.geom.SkyWcs

Fitted WCS.

rejectedarray-like of bool

Array of matches rejected from the fit.

rejectMatches(matches, wcs, rejected)#

Flag deviant matches

We return a boolean numpy array indicating whether the corresponding match should be rejected. The previous list of rejections is used so we can calculate uncontaminated statistics.

Parameters#

matcheslist of lsst.afw.table.ReferenceMatch

List of sources matched to references.

wcslsst.afw.geom.SkyWcs

Fitted WCS.

rejectedarray-like of bool

Array of matches rejected from the fit. Unused.

Returns#

rejectedMatchesndarray of type bool

Matched objects found to be outside of tolerance.