Class SipReverseTransform

Inheritance Relationships

Base Type

Class Documentation

class SipReverseTransform : public lsst::meas::astrom::SipTransformBase

A transform that maps intermediate world coordinates to pixel coordinates according to the SIP convention.

The SIP reverse transform is defined as

\[\begin{split} \left[\begin{array}{ c } u \\ v \end{array}\right] = \left[\begin{array}{ c } u_0 + U + {\displaystyle\sum_{p,q}^{0 \le p + q \le N}} \mathrm{AP}_{p,q} U^p V^q \\ v_0 + V + {\displaystyle\sum_{p,q}^{0 \le p + q \le N}} \mathrm{BP}_{p,q} U^p V^q \\ \end{array}\right] \end{split}\]
with
\[\begin{split} \left[\begin{array}{ c } U \\ V \end{array}\right] = \mathbf{Z}^{-1} \left[\begin{array}{ c } x \\ y \end{array}\right] \end{split}\]
and
  • \((u,v)\) are pixel coordinates.

  • \((x,y)\) are “intermediate world coordinates” the result of applying the gnomonic (TAN) projection at sky origin CRVAL to sky coordinates).

  • \(\mathbf{Z}\) is the \(2 \times 2\) linear transform ( \(\mathrm{CD}\)) matrix.

  • \((u_0,v_0)\) is the pixel origin \(\mathrm{CRPIX}\) (but zero-indexed; the FITS standard is 1-indexed).

  • \(\mathrm{AP}\), \(\mathrm{BP}\) are the polynomial coefficients of the reverse transform.

SipForwardTransform instances should be confined to a single thread.

Public Functions

SipReverseTransform(geom::Point2D const &pixelOrigin, geom::LinearTransform const &cdMatrix, PolynomialTransform const &reverseSipPoly)

Construct a SipReverseTransform from its components.

Parameters
  • [in] pixelOrigin: CRPIX \((u_0,v_0)\) (zero-indexed)

  • [in] cdMatrix: CD matrix \(Z\)

  • [in] reverseSipPoly: Polynomial transform \((AP,BP)\)

SipReverseTransform(SipReverseTransform const &other)
SipReverseTransform(SipReverseTransform &&other)
SipReverseTransform &operator=(SipReverseTransform const &other)
SipReverseTransform &operator=(SipReverseTransform &&other)
void swap(SipReverseTransform &other)
geom::AffineTransform linearize(geom::Point2D const &in) const

Return an approximate affine transform at the given point.

geom::Point2D operator()(geom::Point2D const &xy) const

Apply the transform to a point.

SipReverseTransform transformPixels(geom::AffineTransform const &s) const

Return a new reverse SIP transform that includes a transformation of the pixel coordinate system by the given affine transform.

Public Static Functions

static SipReverseTransform convert(PolynomialTransform const &poly, geom::Point2D const &pixelOrigin, geom::LinearTransform const &cdMatrix)

Convert a PolynomialTransform to an equivalent SipReverseTransform.

Parameters
  • [in] poly: PolynomialTransform to convert.

  • [in] pixelOrigin: CRPIX \((u_0,v_0)\) (zero-indexed)

  • [in] cdMatrix: CD matrix \(Z\)

static SipReverseTransform convert(ScaledPolynomialTransform const &scaled, geom::Point2D const &pixelOrigin, geom::LinearTransform const &cdMatrix)

Convert a ScaledPolynomialTransform to an equivalent SipReverseTransform.

Parameters
  • [in] scaled: ScaledPolynomialTransform to convert.

  • [in] pixelOrigin: CRPIX \((u_0,v_0)\) (zero-indexed)

  • [in] cdMatrix: CD matrix \(Z\)

static SipReverseTransform convert(ScaledPolynomialTransform const &scaled)

Convert a ScaledPolynomialTransform to an equivalent SipReverseTransform.

The pixel origin CRPIX and CD matrix are defined to reproduce the translation and linear transformation in the ScaledPolynomialTransforms output and input scalings (respectively).