LSST Applications 27.0.0,g0265f82a02+469cd937ee,g02d81e74bb+21ad69e7e1,g1470d8bcf6+cbe83ee85a,g2079a07aa2+e67c6346a6,g212a7c68fe+04a9158687,g2305ad1205+94392ce272,g295015adf3+81dd352a9d,g2bbee38e9b+469cd937ee,g337abbeb29+469cd937ee,g3939d97d7f+72a9f7b576,g487adcacf7+71499e7cba,g50ff169b8f+5929b3527e,g52b1c1532d+a6fc98d2e7,g591dd9f2cf+df404f777f,g5a732f18d5+be83d3ecdb,g64a986408d+21ad69e7e1,g858d7b2824+21ad69e7e1,g8a8a8dda67+a6fc98d2e7,g99cad8db69+f62e5b0af5,g9ddcbc5298+d4bad12328,ga1e77700b3+9c366c4306,ga8c6da7877+71e4819109,gb0e22166c9+25ba2f69a1,gb6a65358fc+469cd937ee,gbb8dafda3b+69d3c0e320,gc07e1c2157+a98bf949bb,gc120e1dc64+615ec43309,gc28159a63d+469cd937ee,gcf0d15dbbd+72a9f7b576,gdaeeff99f8+a38ce5ea23,ge6526c86ff+3a7c1ac5f1,ge79ae78c31+469cd937ee,gee10cc3b42+a6fc98d2e7,gf1cff7945b+21ad69e7e1,gfbcc870c63+9a11dc8c8f
LSST Data Management Base Package
|
A transform that maps pixel coordinates to intermediate world coordinates according to the SIP convention. More...
#include <SipTransform.h>
Public Member Functions | |
SipForwardTransform (geom::Point2D const &pixelOrigin, geom::LinearTransform const &cdMatrix, PolynomialTransform const &forwardSipPoly) | |
Construct a SipForwardTransform from its components. | |
SipForwardTransform (SipForwardTransform const &other)=default | |
SipForwardTransform (SipForwardTransform &&other)=default | |
SipForwardTransform & | operator= (SipForwardTransform const &other)=default |
SipForwardTransform & | operator= (SipForwardTransform &&other)=default |
void | swap (SipForwardTransform &other) |
geom::AffineTransform | linearize (geom::Point2D const &in) const |
Return an approximate affine transform at the given point. | |
geom::Point2D | operator() (geom::Point2D const &uv) const |
Apply the transform to a point. | |
SipForwardTransform | transformPixels (geom::AffineTransform const &s) const |
Return a new forward SIP transform that includes a transformation of the pixel coordinate system by the given affine transform. | |
geom::Point2D const & | getPixelOrigin () const |
Return the pixel origin (CRPIX, but zero-indexed) of the transform. | |
geom::LinearTransform const & | getCdMatrix () const |
Return the CD matrix of the transform. | |
PolynomialTransform const & | getPoly () const |
Return the polynomial component of the transform (A,B) or (AP,BP). | |
Static Public Member Functions | |
static SipForwardTransform | convert (PolynomialTransform const &poly, geom::Point2D const &pixelOrigin, geom::LinearTransform const &cdMatrix) |
Convert a PolynomialTransform to an equivalent SipForwardTransform. | |
static SipForwardTransform | convert (ScaledPolynomialTransform const &scaled, geom::Point2D const &pixelOrigin, geom::LinearTransform const &cdMatrix) |
Convert a ScaledPolynomialTransform to an equivalent SipForwardTransform. | |
static SipForwardTransform | convert (ScaledPolynomialTransform const &scaled) |
Convert a ScaledPolynomialTransform to an equivalent SipForwardTransform. | |
Protected Member Functions | |
void | swap (SipTransformBase &other) |
void | transformPixelsInPlace (geom::AffineTransform const &s) |
Protected Attributes | |
geom::Point2D | _pixelOrigin |
geom::LinearTransform | _cdMatrix |
PolynomialTransform | _poly |
A transform that maps pixel coordinates to intermediate world coordinates according to the SIP convention.
The SIP forward transform is defined as
\[ \left[\begin{array}{ c } x \\ y \end{array}\right] = \mathbf{Z} \left[\begin{array}{ c } (u - u_0) + {\displaystyle\sum_{p,q}^{2 \le p + q \le N}} \mathrm{A}_{p,q} (u-u_0)^p (v-v_0)^q \\ (v - v_0) + {\displaystyle\sum_{p,q}^{2 \le p + q \le N}} \mathrm{B}_{p,q} (u-u_0)^p (v-v_0)^q \end{array}\right] \]
where
The SIP convention encourages (but does not require) nulling the zeroth- and first-order elements of \(\mathrm{A}\) and \(\mathrm{B}\), which ensures the representation of a given transform is unique. This also makes fitting a SIP transform to data a nonlinear operation, as well as making the conversion from standard polynomial transforms to SIP form impossible in general. Accordingly, this class does not attempt to null low-order polynomial terms at all when converting from other transforms.
SipForwardTransform instances should be confined to a single thread.
Definition at line 136 of file SipTransform.h.
|
inline |
Construct a SipForwardTransform from its components.
[in] | pixelOrigin | CRPIX \((u_0,v_0)\) (zero-indexed). |
[in] | cdMatrix | CD matrix \(Z\) |
[in] | forwardSipPoly | Polynomial transform \((A,B)\) |
Definition at line 175 of file SipTransform.h.
|
default |
|
default |
|
static |
Convert a PolynomialTransform to an equivalent SipForwardTransform.
[in] | poly | PolynomialTransform to convert. |
[in] | pixelOrigin | CRPIX \((u_0,v_0)\) (zero-indexed) |
[in] | cdMatrix | CD matrix \(Z\) |
Definition at line 52 of file SipTransform.cc.
|
static |
Convert a ScaledPolynomialTransform to an equivalent SipForwardTransform.
The pixel origin CRPIX and CD matrix are defined to reproduce the translation and linear transformation in the ScaledPolynomialTransform's input and output scalings (respectively).
Definition at line 79 of file SipTransform.cc.
|
static |
Convert a ScaledPolynomialTransform to an equivalent SipForwardTransform.
[in] | scaled | ScaledPolynomialTransform to convert. |
[in] | pixelOrigin | CRPIX \((u_0,v_0)\) (zero-indexed) |
[in] | cdMatrix | CD matrix \(Z\) |
Definition at line 65 of file SipTransform.cc.
|
inlineinherited |
Return the CD matrix of the transform.
Definition at line 56 of file SipTransform.h.
|
inlineinherited |
Return the pixel origin (CRPIX, but zero-indexed) of the transform.
Definition at line 51 of file SipTransform.h.
|
inlineinherited |
Return the polynomial component of the transform (A,B) or (AP,BP).
Definition at line 61 of file SipTransform.h.
geom::AffineTransform lsst::meas::astrom::SipForwardTransform::linearize | ( | geom::Point2D const & | in | ) | const |
Return an approximate affine transform at the given point.
Definition at line 85 of file SipTransform.cc.
geom::Point2D lsst::meas::astrom::SipForwardTransform::operator() | ( | geom::Point2D const & | uv | ) | const |
Apply the transform to a point.
Definition at line 90 of file SipTransform.cc.
|
default |
|
default |
|
inline |
Definition at line 187 of file SipTransform.h.
|
inlineprotectedinherited |
Definition at line 85 of file SipTransform.h.
SipForwardTransform lsst::meas::astrom::SipForwardTransform::transformPixels | ( | geom::AffineTransform const & | s | ) | const |
Return a new forward SIP transform that includes a transformation of the pixel coordinate system by the given affine transform.
Definition at line 95 of file SipTransform.cc.
|
protectedinherited |
Definition at line 40 of file SipTransform.cc.
|
protectedinherited |
Definition at line 94 of file SipTransform.h.
|
protectedinherited |
Definition at line 93 of file SipTransform.h.
|
protectedinherited |
Definition at line 95 of file SipTransform.h.