lsst.meas.astrom  20.0.0-1-gc96f8cb+12
Public Member Functions | Static Public Member Functions | Friends | List of all members
lsst::meas::astrom::PolynomialTransform Class Reference

A 2-d coordinate transform represented by a pair of standard polynomials (one for each coordinate). More...

#include <PolynomialTransform.h>

Public Member Functions

 PolynomialTransform (ndarray::Array< double const, 2, 0 > const &xCoeffs, ndarray::Array< double const, 2, 0 > const &yCoeffs)
 Construct a new transform from existing coefficient arrays. More...
 
 PolynomialTransform (PolynomialTransform const &other)
 Copy constructor. More...
 
 PolynomialTransform (PolynomialTransform &&other)
 Move constructor. More...
 
PolynomialTransformoperator= (PolynomialTransform const &other)
 Copy assignment. More...
 
PolynomialTransformoperator= (PolynomialTransform &&other)
 Move constructor. More...
 
void swap (PolynomialTransform &other)
 Lightweight swap. More...
 
int getOrder () const
 Return the order of the polynomials. More...
 
ndarray::Array< double const, 2, 2 > getXCoeffs () const
 2-D polynomial coefficients that compute the output x coordinate. More...
 
ndarray::Array< double const, 2, 2 > getYCoeffs () const
 2-D polynomial coefficients that compute the output x coordinate. More...
 
geom::AffineTransform linearize (geom::Point2D const &in) const
 Return an approximate affine transform at the given point. More...
 
geom::Point2D operator() (geom::Point2D const &in) const
 Apply the transform to a point. More...
 

Static Public Member Functions

static PolynomialTransform convert (ScaledPolynomialTransform const &other)
 Convert a ScaledPolynomialTransform to an equivalent PolynomialTransform. More...
 
static PolynomialTransform convert (SipForwardTransform const &other)
 Convert a SipForwardTransform to an equivalent PolynomialTransform. More...
 
static PolynomialTransform convert (SipReverseTransform const &other)
 Convert a SipReverseTransform to an equivalent PolynomialTransform. More...
 

Friends

class ScaledPolynomialTransformFitter
 
class SipForwardTransform
 
class SipReverseTransform
 
class ScaledPolynomialTransform
 
PolynomialTransform compose (geom::AffineTransform const &t1, PolynomialTransform const &t2)
 Return a PolynomialTransform that is equivalent to the composition t1(t2()) More...
 
PolynomialTransform compose (PolynomialTransform const &t1, geom::AffineTransform const &t2)
 Return a PolynomialTransform that is equivalent to the composition t1(t2()) More...
 

Detailed Description

A 2-d coordinate transform represented by a pair of standard polynomials (one for each coordinate).

PolynomialTransform instances should be confined to a single thread.

Definition at line 45 of file PolynomialTransform.h.

Constructor & Destructor Documentation

◆ PolynomialTransform() [1/3]

lsst::meas::astrom::PolynomialTransform::PolynomialTransform ( ndarray::Array< double const, 2, 0 > const &  xCoeffs,
ndarray::Array< double const, 2, 0 > const &  yCoeffs 
)

Construct a new transform from existing coefficient arrays.

For both input arguments, the array element at [p, q] corresponds to the polynomial term x^p y^q.

Both arrays are expected be square and triangular; if N is the order of the transform, both arrays should be (N+1)x(N+1), and elements with p + q > N should be zero.

Definition at line 74 of file PolynomialTransform.cc.

◆ PolynomialTransform() [2/3]

lsst::meas::astrom::PolynomialTransform::PolynomialTransform ( PolynomialTransform const &  other)

Copy constructor.

Coefficient arrays are deep-copied.

Definition at line 97 of file PolynomialTransform.cc.

◆ PolynomialTransform() [3/3]

lsst::meas::astrom::PolynomialTransform::PolynomialTransform ( PolynomialTransform &&  other)

Move constructor.

Coefficient arrays are moved.

Definition at line 103 of file PolynomialTransform.cc.

Member Function Documentation

◆ convert() [1/3]

PolynomialTransform lsst::meas::astrom::PolynomialTransform::convert ( ScaledPolynomialTransform const &  other)
static

Convert a ScaledPolynomialTransform to an equivalent PolynomialTransform.

Definition at line 36 of file PolynomialTransform.cc.

◆ convert() [2/3]

PolynomialTransform lsst::meas::astrom::PolynomialTransform::convert ( SipForwardTransform const &  other)
static

Convert a SipForwardTransform to an equivalent PolynomialTransform.

Definition at line 40 of file PolynomialTransform.cc.

◆ convert() [3/3]

PolynomialTransform lsst::meas::astrom::PolynomialTransform::convert ( SipReverseTransform const &  other)
static

Convert a SipReverseTransform to an equivalent PolynomialTransform.

Definition at line 51 of file PolynomialTransform.cc.

◆ getOrder()

int lsst::meas::astrom::PolynomialTransform::getOrder ( ) const
inline

Return the order of the polynomials.

Definition at line 107 of file PolynomialTransform.h.

◆ getXCoeffs()

ndarray::Array<double const, 2, 2> lsst::meas::astrom::PolynomialTransform::getXCoeffs ( ) const
inline

2-D polynomial coefficients that compute the output x coordinate.

Indexing the result by [p][q] gives the coefficient of \(x_{\mathrm{in}}^p\,y_{\mathrm{in}}^q\).

Definition at line 115 of file PolynomialTransform.h.

◆ getYCoeffs()

ndarray::Array<double const, 2, 2> lsst::meas::astrom::PolynomialTransform::getYCoeffs ( ) const
inline

2-D polynomial coefficients that compute the output x coordinate.

Indexing the result by [p][q] gives the coefficient of \(x_{\mathrm{in}}^p\,y_{\mathrm{in}}^q\).

Definition at line 123 of file PolynomialTransform.h.

◆ linearize()

geom::AffineTransform lsst::meas::astrom::PolynomialTransform::linearize ( geom::Point2D const &  in) const

Return an approximate affine transform at the given point.

Definition at line 129 of file PolynomialTransform.cc.

◆ operator()()

geom::Point2D lsst::meas::astrom::PolynomialTransform::operator() ( geom::Point2D const &  in) const

Apply the transform to a point.

Definition at line 157 of file PolynomialTransform.cc.

◆ operator=() [1/2]

PolynomialTransform & lsst::meas::astrom::PolynomialTransform::operator= ( PolynomialTransform &&  other)

Move constructor.

Coefficient arrays are moved.

Definition at line 115 of file PolynomialTransform.cc.

◆ operator=() [2/2]

PolynomialTransform & lsst::meas::astrom::PolynomialTransform::operator= ( PolynomialTransform const &  other)

Copy assignment.

Coefficient arrays are deep-copied.

Definition at line 107 of file PolynomialTransform.cc.

◆ swap()

void lsst::meas::astrom::PolynomialTransform::swap ( PolynomialTransform other)

Lightweight swap.

Definition at line 122 of file PolynomialTransform.cc.

Friends And Related Function Documentation

◆ compose [1/2]

PolynomialTransform compose ( geom::AffineTransform const &  t1,
PolynomialTransform const &  t2 
)
friend

Return a PolynomialTransform that is equivalent to the composition t1(t2())

The returned composition would be exact in ideal arithmetic, but may suffer from significant round-off error for high-order polynomials.

Definition at line 214 of file PolynomialTransform.cc.

◆ compose [2/2]

PolynomialTransform compose ( PolynomialTransform const &  t1,
geom::AffineTransform const &  t2 
)
friend

Return a PolynomialTransform that is equivalent to the composition t1(t2())

The returned composition would be exact in ideal arithmetic, but may suffer from significant round-off error for high-order polynomials.

Definition at line 225 of file PolynomialTransform.cc.

◆ ScaledPolynomialTransform

friend class ScaledPolynomialTransform
friend

Definition at line 143 of file PolynomialTransform.h.

◆ ScaledPolynomialTransformFitter

friend class ScaledPolynomialTransformFitter
friend

Definition at line 140 of file PolynomialTransform.h.

◆ SipForwardTransform

friend class SipForwardTransform
friend

Definition at line 141 of file PolynomialTransform.h.

◆ SipReverseTransform

friend class SipReverseTransform
friend

Definition at line 142 of file PolynomialTransform.h.


The documentation for this class was generated from the following files: