LSSTApplications
16.0-10-g4f78f78+16,16.0-10-gc1446dd+42,16.0-11-g09ed895+1,16.0-13-g7649090,16.0-14-g0a28612+1,16.0-14-g6c7ed55+16,16.0-15-ga29f190+1,16.0-16-g89065d4+14,16.0-16-gd8e3590+16,16.0-16-ge6a35c8+6,16.0-17-g7e0e4ff+10,16.0-17-ga3d2e9f,16.0-19-gb830ed4e+16,16.0-2-g0febb12+21,16.0-2-g9d5294e+61,16.0-2-ga8830df+5,16.0-24-gc1c7f52+9,16.0-25-g07af9f2+1,16.0-3-ge00e371+21,16.0-36-g07840cb1,16.0-4-g18f3627+5,16.0-4-g5f3a788+20,16.0-4-ga3eb747+10,16.0-4-gabf74b7+16,16.0-4-gade8416+9,16.0-4-gb13d127+5,16.0-5-g6a53317+21,16.0-5-gb3f8a4b+74,16.0-5-gef99c9f+12,16.0-6-g9321be7+4,16.0-6-gcbc7b31+22,16.0-6-gf49912c+16,16.0-63-gae20905ba,16.0-7-gd2eeba5+31,16.0-8-g21fd5fe+16,16.0-8-g3a9f023+12,16.0-8-g4734f7a,16.0-9-g85d1a16+16,16.0-9-gf5c1f43,master-g07ce7b41a7,w.2018.48
LSSTDataManagementBasePackage
|
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 276 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 447 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 460 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 480 of file Gtransfo.cc.
|
inlineinherited |
Definition at line 94 of file Gtransfo.h.
applies the tranfo to in and writes into out. Is indeed virtual.
Definition at line 71 of file Gtransfo.h.
All these apply(..) shadow the virtual one in derived classes, unless one writes "using Gtransfo::apply".
Definition at line 75 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 74 of file Gtransfo.cc.
|
overridevirtual |
|
inlineoverridevirtual |
returns a copy (allocated by new) of the transformation.
Implements lsst::jointcal::Gtransfo.
Reimplemented in lsst::jointcal::GtransfoLin.
Definition at line 337 of file Gtransfo.h.
double lsst::jointcal::GtransfoPoly::coeff | ( | const unsigned | powX, |
const unsigned | powY, | ||
const unsigned | whichCoord | ||
) | const |
double & lsst::jointcal::GtransfoPoly::coeff | ( | const unsigned | powX, |
const unsigned | powY, | ||
const unsigned | whichCoord | ||
) |
write access
Definition at line 719 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 724 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 92 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 898 of file Gtransfo.cc.
|
overridevirtual |
specialised analytic routine
Reimplemented from lsst::jointcal::Gtransfo.
Reimplemented in lsst::jointcal::GtransfoLin.
Definition at line 569 of file Gtransfo.cc.
double lsst::jointcal::GtransfoPoly::determinant | ( | ) | const |
Definition at line 782 of file Gtransfo.cc.
|
overridevirtual |
print out of coefficients in a readable form.
Implements lsst::jointcal::Gtransfo.
Definition at line 763 of file Gtransfo.cc.
|
overridevirtual |
guess what
Implements lsst::jointcal::Gtransfo.
Reimplemented in lsst::jointcal::GtransfoLinRot, and lsst::jointcal::GtransfoLinShift.
Definition at line 880 of file Gtransfo.cc.
|
inlinevirtualinherited |
returns the local jacobian.
Definition at line 111 of file Gtransfo.h.
|
virtualinherited |
returns the local jacobian.
Definition at line 97 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 316 of file Gtransfo.h.
|
inline |
|
inherited |
params should be at least Npar() long
Definition at line 210 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::TanRaDecToPixel, lsst::jointcal::TanSipPixelToRaDec, lsst::jointcal::TanPixelToRaDec, lsst::jointcal::GtransfoLin, and lsst::jointcal::GtransfoInverse.
Definition at line 292 of file Gtransfo.cc.
|
virtualinherited |
linear (local) approximation.
Reimplemented in lsst::jointcal::GtransfoLin, and lsst::jointcal::GtransfoIdentity.
Definition at line 133 of file Gtransfo.cc.
|
inherited |
Definition at line 215 of file Gtransfo.cc.
GtransfoPoly lsst::jointcal::GtransfoPoly::operator* | ( | GtransfoPoly const & | right | ) | const |
Composition (internal stuff in quadruple precision)
Definition at line 1003 of file Gtransfo.cc.
GtransfoPoly lsst::jointcal::GtransfoPoly::operator+ | ( | GtransfoPoly const & | right | ) | const |
Addition.
Definition at line 1024 of file Gtransfo.cc.
GtransfoPoly lsst::jointcal::GtransfoPoly::operator- | ( | GtransfoPoly const & | right | ) | const |
Subtraction.
Definition at line 1037 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 743 of file Gtransfo.cc.
|
overridevirtual |
Reimplemented from lsst::jointcal::Gtransfo.
Definition at line 733 of file Gtransfo.cc.
|
overridevirtual |
Reimplemented from lsst::jointcal::Gtransfo.
Definition at line 738 of file Gtransfo.cc.
void lsst::jointcal::GtransfoPoly::read | ( | std::istream & | s | ) |
Definition at line 1062 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::TanRaDecToPixel, lsst::jointcal::TanPixelToRaDec, and lsst::jointcal::GtransfoInverse.
Definition at line 190 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 525 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 1047 of file Gtransfo.cc.
|
virtualinherited |
transform errors (represented as double[3] in order V(xx),V(yy),Cov(xy))
Definition at line 157 of file Gtransfo.cc.
|
overridevirtual |
a mix of apply and Derivative
Reimplemented from lsst::jointcal::Gtransfo.
Definition at line 627 of file Gtransfo.cc.
|
inlineinherited |
allows to write MyTransfo(MyStar)
Definition at line 108 of file Gtransfo.h.
|
inherited |
Definition at line 239 of file Gtransfo.cc.
|
overridevirtual |
Reimplemented from lsst::jointcal::Gtransfo.
Definition at line 1052 of file Gtransfo.cc.