23 __all__ = [
"getSipMatrixFromMetadata",
"computePixelToDistortedPixel"]
26 from ..transformFactory
import linearizeTransform, makeTransform
27 from .wcsUtils
import _getSipMatrixFromMetadata
31 """Extract a SIP matrix from FITS TAN-SIP WCS metadata.
33 Omitted coefficients are set to 0 and all coefficients may be omitted.
37 metadata : `lsst.daf.base.PropertySet`
40 Name of TAN-SIP matrix (``"A"``, ``"B"``, ``"Ap"``, or ``"Bp"``).
50 If the order keyword ``<name>_ORDER`` (e.g. ``AP_ORDER``) is not found,
51 the value of the order keyword cannot be read as an integer,
52 the value of the order keyword is negative,
53 or if a matrix parameter (e.g. ``AP_5_0``) cannot be read as a float.
55 arr = _getSipMatrixFromMetadata(metadata, name)
62 """Compute the transform ``pixelToDistortedPixel``, which applies optical
63 distortion specified by ``focalPlaneToFieldAngle``.
65 The resulting transform is designed to be used to convert a pure TAN WCS
66 to a WCS that includes a model for optical distortion. In detail,
67 the initial WCS will contain these frames and transforms::
69 PIXELS frame -> pixelToIwc -> IWC frame -> gridToIwc -> SkyFrame
71 To produce the WCS with distortion, replace ``pixelToIwc`` with::
73 pixelToDistortedPixel -> pixelToIwc
77 pixelToFocalPlane : `lsst.afw.geom.TransformPoint2ToPoint2`
78 Transform parent pixel coordinates to focal plane coordinates
79 focalPlaneToFieldAngle : `lsst.afw.geom.TransformPoint2ToPoint2`
80 Transform focal plane coordinates to field angle coordinates
84 pixelToDistortedPixel : `lsst.afw.geom.TransformPoint2ToPoint2`
85 A transform that applies the effect of the optical distortion model.
90 return pixelToFocalPlane.then(focalPlaneToFieldAngle) \
91 .
then(focalPlaneToTanFieldAngle.inverted()) \
92 .
then(pixelToFocalPlane.inverted())