lsst.jointcal
16.0-3-g21cc1d5
|
Polynomial transformation class. More...
#include <Gtransfo.h>
Public Member Functions | |
GtransfoPoly (const unsigned order=1) | |
Default transfo : identity for all orders (>=1 ). More... | |
GtransfoPoly (const Gtransfo *gtransfo, const Frame &frame, unsigned order, unsigned nPoint=1000) | |
Constructs a "polynomial image" from an existing transfo, over a specified domain. More... | |
GtransfoPoly (std::shared_ptr< afw::geom::TransformPoint2ToPoint2 > transform, jointcal::Frame const &domain, unsigned const order, unsigned const nSteps=50) | |
Constructs a polynomial approximation to an afw::geom::TransformPoint2ToPoint2. More... | |
void | setOrder (const unsigned order) |
Sets the polynomial order (the highest sum of exponents of the largest monomial). More... | |
unsigned | getOrder () const |
Returns the polynomial order. More... | |
void | apply (const double xIn, const double yIn, double &xOut, double &yOut) const override |
void | computeDerivative (Point const &where, GtransfoLin &derivative, const double step=0.01) const override |
specialised analytic routine More... | |
virtual void | transformPosAndErrors (const FatPoint &in, FatPoint &out) const override |
a mix of apply and Derivative More... | |
int | getNpar () const override |
total number of parameters More... | |
void | dump (std::ostream &stream=std::cout) const override |
print out of coefficients in a readable form. More... | |
double | fit (StarMatchList const &starMatchList) override |
guess what More... | |
GtransfoPoly | operator* (GtransfoPoly const &right) const |
Composition (internal stuff in quadruple precision) More... | |
GtransfoPoly | operator+ (GtransfoPoly const &right) const |
Addition. More... | |
GtransfoPoly | operator- (GtransfoPoly const &right) const |
Subtraction. More... | |
std::unique_ptr< Gtransfo > | composeAndReduce (GtransfoPoly const &right) const |
Return a reduced composition of newTransfo = this(right()), or nullptr if it cannot be reduced. More... | |
std::unique_ptr< Gtransfo > | clone () const override |
returns a copy (allocated by new) of the transformation. More... | |
double | coeff (const unsigned powX, const unsigned powY, const unsigned whichCoord) const |
access to coefficients (read only) More... | |
double & | coeff (const unsigned powX, const unsigned powY, const unsigned whichCoord) |
write access More... | |
double | coeffOrZero (const unsigned powX, const unsigned powY, const unsigned whichCoord) const |
read access, zero if beyond order More... | |
double | determinant () const |
double | paramRef (const int i) const override |
double & | paramRef (const int i) override |
void | paramDerivatives (Point const &where, double *dx, double *dy) const override |
Derivative w.r.t parameters. More... | |
std::shared_ptr< ast::Mapping > | toAstMap (jointcal::Frame const &domain) const override |
Create an equivalent AST mapping for this transformation, including an analytic inverse if possible. More... | |
void | write (std::ostream &s) const override |
void | read (std::istream &s) |
void | apply (Point const &in, Point &out) const |
applies the tranfo to in and writes into out. Is indeed virtual. More... | |
Point | apply (Point const &in) const |
All these apply(..) shadow the virtual one in derived classes, unless one writes "using
Gtransfo::apply". More... | |
Frame | apply (Frame const &inputframe, bool inscribed) const |
Transform a bounding box, taking either the inscribed or circumscribed box. More... | |
std::string | __str__ () |
void | transformStar (FatPoint &in) const |
allows to write MyTransfo(MyStar) More... | |
virtual double | getJacobian (Point const &point) const |
returns the local jacobian. More... | |
virtual double | getJacobian (const double x, const double y) const |
returns the local jacobian. More... | |
virtual std::unique_ptr< Gtransfo > | composeAndReduce (Gtransfo const &right) const |
Return a reduced composition of newTransfo = this(right()), or nullptr if it cannot be reduced. More... | |
virtual GtransfoLin | linearApproximation (Point const &where, const double step=0.01) const |
linear (local) approximation. More... | |
virtual void | transformErrors (Point const &where, const double *vIn, double *vOut) const |
transform errors (represented as double[3] in order V(xx),V(yy),Cov(xy)) More... | |
virtual std::unique_ptr< Gtransfo > | inverseTransfo (const double precision, const Frame ®ion) const |
returns an inverse transfo. Numerical if not overloaded. More... | |
void | getParams (double *params) const |
params should be at least Npar() long More... | |
void | offsetParams (Eigen::VectorXd const &delta) |
virtual std::unique_ptr< Gtransfo > | roughInverse (const Frame ®ion) const |
Rough inverse. More... | |
void | write (const std::string &fileName) const |
Polynomial transformation class.
Definition at line 253 of file Gtransfo.h.
lsst::jointcal::GtransfoPoly::GtransfoPoly | ( | const unsigned | order = 1 | ) |
Default transfo : identity for all orders (>=1 ).
Default transfo : identity for all orders (>=1 )
order | The highest total power (x+y) of monomials of this polynomial. |
Definition at line 423 of file Gtransfo.cc.
lsst::jointcal::GtransfoPoly::GtransfoPoly | ( | const Gtransfo * | gtransfo, |
const Frame & | frame, | ||
unsigned | order, | ||
unsigned | nPoint = 1000 |
||
) |
Constructs a "polynomial image" from an existing transfo, over a specified domain.
Definition at line 436 of file Gtransfo.cc.
lsst::jointcal::GtransfoPoly::GtransfoPoly | ( | std::shared_ptr< afw::geom::TransformPoint2ToPoint2 > | transform, |
jointcal::Frame const & | domain, | ||
unsigned const | order, | ||
unsigned const | nSteps = 50 |
||
) |
Constructs a polynomial approximation to an afw::geom::TransformPoint2ToPoint2.
[in] | transform | The transform to be approximated. |
[in] | domain | The valid domain of the transform. |
[in] | order | The polynomial order to use when approximating. |
[in] | nSteps | The number of sample points per axis (nSteps^2 total points). |
Definition at line 456 of file Gtransfo.cc.
|
inlineinherited |
Definition at line 71 of file Gtransfo.h.
applies the tranfo to in and writes into out. Is indeed virtual.
Definition at line 48 of file Gtransfo.h.
All these apply(..) shadow the virtual one in derived classes, unless one writes "using Gtransfo::apply".
Definition at line 52 of file Gtransfo.h.
Transform a bounding box, taking either the inscribed or circumscribed box.
[in] | inputframe | The frame to be transformed. |
[in] | inscribed | Return the inscribed (true) or circumscribed (false) box. |
Definition at line 50 of file Gtransfo.cc.
|
overridevirtual |
Implements lsst::jointcal::Gtransfo.
Definition at line 522 of file Gtransfo.cc.
|
inlineoverridevirtual |
returns a copy (allocated by new) of the transformation.
Implements lsst::jointcal::Gtransfo.
Reimplemented in lsst::jointcal::GtransfoLin.
Definition at line 314 of file Gtransfo.h.
double lsst::jointcal::GtransfoPoly::coeff | ( | const unsigned | powX, |
const unsigned | powY, | ||
const unsigned | whichCoord | ||
) | const |
access to coefficients (read only)
Definition at line 687 of file Gtransfo.cc.
double & lsst::jointcal::GtransfoPoly::coeff | ( | const unsigned | powX, |
const unsigned | powY, | ||
const unsigned | whichCoord | ||
) |
write access
Definition at line 695 of file Gtransfo.cc.
double lsst::jointcal::GtransfoPoly::coeffOrZero | ( | const unsigned | powX, |
const unsigned | powY, | ||
const unsigned | whichCoord | ||
) | const |
read access, zero if beyond order
Definition at line 700 of file Gtransfo.cc.
|
virtualinherited |
Return a reduced composition of newTransfo = this(right()), or nullptr if it cannot be reduced.
"Reduced" in this context means that they are capable of being merged into a single transform, for example, for two polynomials:
\[ f(x) = 1 + x^2, g(x) = -1 + 3x \]
we would have h = f.composeAndReduce(g) == 2 - 6x + 9x^2
.
To be overloaded by derived classes if they can properly reduce the composition.
right | The transform to apply first. |
Reimplemented in lsst::jointcal::GtransfoIdentity.
Definition at line 68 of file Gtransfo.cc.
std::unique_ptr< Gtransfo > lsst::jointcal::GtransfoPoly::composeAndReduce | ( | GtransfoPoly const & | right | ) | const |
Return a reduced composition of newTransfo = this(right()), or nullptr if it cannot be reduced.
"Reduced" in this context means that they are capable of being merged into a single transform, for example, for two polynomials:
\[ f(x) = 1 + x^2, g(x) = -1 + 3x \]
we would have h = f.composeAndReduce(g) == 2 - 6x + 9x^2
.
To be overloaded by derived classes if they can properly reduce the composition.
right | The transform to apply first. |
Definition at line 874 of file Gtransfo.cc.
|
overridevirtual |
specialised analytic routine
Reimplemented from lsst::jointcal::Gtransfo.
Reimplemented in lsst::jointcal::GtransfoLin.
Definition at line 545 of file Gtransfo.cc.
double lsst::jointcal::GtransfoPoly::determinant | ( | ) | const |
Definition at line 758 of file Gtransfo.cc.
|
overridevirtual |
print out of coefficients in a readable form.
Implements lsst::jointcal::Gtransfo.
Definition at line 739 of file Gtransfo.cc.
|
overridevirtual |
guess what
Implements lsst::jointcal::Gtransfo.
Reimplemented in lsst::jointcal::GtransfoLinRot, and lsst::jointcal::GtransfoLinShift.
Definition at line 856 of file Gtransfo.cc.
|
inlinevirtualinherited |
returns the local jacobian.
Definition at line 88 of file Gtransfo.h.
|
virtualinherited |
returns the local jacobian.
Definition at line 73 of file Gtransfo.cc.
|
inlineoverridevirtual |
total number of parameters
Reimplemented from lsst::jointcal::Gtransfo.
Reimplemented in lsst::jointcal::GtransfoLinScale, lsst::jointcal::GtransfoLinRot, and lsst::jointcal::GtransfoLinShift.
Definition at line 293 of file Gtransfo.h.
|
inline |
Returns the polynomial order.
Definition at line 279 of file Gtransfo.h.
|
inherited |
params should be at least Npar() long
Definition at line 186 of file Gtransfo.cc.
|
virtualinherited |
returns an inverse transfo. Numerical if not overloaded.
precision and region refer to the "input" side of this, and hence to the output side of the returned Gtransfo.
Reimplemented in lsst::jointcal::TanRaDec2Pix, lsst::jointcal::TanSipPix2RaDec, lsst::jointcal::TanPix2RaDec, lsst::jointcal::GtransfoLin, and lsst::jointcal::GtransfoInverse.
Definition at line 268 of file Gtransfo.cc.
|
virtualinherited |
linear (local) approximation.
Reimplemented in lsst::jointcal::GtransfoLin, and lsst::jointcal::GtransfoIdentity.
Definition at line 109 of file Gtransfo.cc.
|
inherited |
Definition at line 191 of file Gtransfo.cc.
GtransfoPoly lsst::jointcal::GtransfoPoly::operator* | ( | GtransfoPoly const & | right | ) | const |
Composition (internal stuff in quadruple precision)
Definition at line 979 of file Gtransfo.cc.
GtransfoPoly lsst::jointcal::GtransfoPoly::operator+ | ( | GtransfoPoly const & | right | ) | const |
Addition.
Definition at line 1000 of file Gtransfo.cc.
GtransfoPoly lsst::jointcal::GtransfoPoly::operator- | ( | GtransfoPoly const & | right | ) | const |
Subtraction.
Definition at line 1013 of file Gtransfo.cc.
|
overridevirtual |
Derivative w.r.t parameters.
Derivatives should be al least 2*NPar long. first Npar, for x, last Npar for y.
Reimplemented from lsst::jointcal::Gtransfo.
Definition at line 719 of file Gtransfo.cc.
|
overridevirtual |
Reimplemented from lsst::jointcal::Gtransfo.
Definition at line 709 of file Gtransfo.cc.
|
overridevirtual |
Reimplemented from lsst::jointcal::Gtransfo.
Definition at line 714 of file Gtransfo.cc.
void lsst::jointcal::GtransfoPoly::read | ( | std::istream & | s | ) |
Definition at line 1038 of file Gtransfo.cc.
|
virtualinherited |
Rough inverse.
Stored by the numerical inverter to guess starting point for the trials. Just here to enable overloading.
Reimplemented in lsst::jointcal::TanRaDec2Pix, lsst::jointcal::TanPix2RaDec, and lsst::jointcal::GtransfoInverse.
Definition at line 166 of file Gtransfo.cc.
void lsst::jointcal::GtransfoPoly::setOrder | ( | const unsigned | order | ) |
Sets the polynomial order (the highest sum of exponents of the largest monomial).
Definition at line 501 of file Gtransfo.cc.
|
overridevirtual |
Create an equivalent AST mapping for this transformation, including an analytic inverse if possible.
domain | The domain of the transfo, to help find an inverse. |
Reimplemented from lsst::jointcal::Gtransfo.
Definition at line 1023 of file Gtransfo.cc.
|
virtualinherited |
transform errors (represented as double[3] in order V(xx),V(yy),Cov(xy))
Definition at line 133 of file Gtransfo.cc.
|
overridevirtual |
a mix of apply and Derivative
Reimplemented from lsst::jointcal::Gtransfo.
Definition at line 603 of file Gtransfo.cc.
|
inlineinherited |
allows to write MyTransfo(MyStar)
Definition at line 85 of file Gtransfo.h.
|
inherited |
Definition at line 215 of file Gtransfo.cc.
|
overridevirtual |
Reimplemented from lsst::jointcal::Gtransfo.
Definition at line 1028 of file Gtransfo.cc.