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:
TaskFit 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#
- matches
listoflsst.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)
- initWcs
lsst.afw.geom.SkyWcs initial WCS
- bbox
lsst.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
- refCat
lsst.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”.
- sourceCat
lsst.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”.
- exposure
lsst.afw.image.Exposure Ignored; present for consistency with FitSipDistortionTask.
Returns#
- result
lsst.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)
- matches
- 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#
- matches
listoflsst.afw.table.ReferenceMatch List of sources matched to references.
- wcs
lsst.afw.geom.SkyWcs Current WCS.
Returns#
- newWcs
lsst.afw.geom.SkyWcs Initial WCS guess from estimated crpix and crval.
- matches
- 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#
- matches
listoflsst.afw.table.ReferenceMatch List of sources matched to references.
- wcs
lsst.afw.geom.SkyWcs Fitted WCS.
- rejectedarray-like of
bool Array of matches rejected from the fit.
- matches
- 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#
- matches
listoflsst.afw.table.ReferenceMatch List of sources matched to references.
- wcs
lsst.afw.geom.SkyWcs Fitted WCS.
- rejectedarray-like of
bool Array of matches rejected from the fit. Unused.
Returns#
- rejectedMatches
ndarrayof typebool Matched objects found to be outside of tolerance.
- matches