LSSTApplications
17.0+124,17.0+14,17.0+73,18.0.0+37,18.0.0+80,18.0.0-4-g68ffd23+4,18.1.0-1-g0001055+12,18.1.0-1-g03d53ef+5,18.1.0-1-g1349e88+55,18.1.0-1-g2505f39+44,18.1.0-1-g5315e5e+4,18.1.0-1-g5e4b7ea+14,18.1.0-1-g7e8fceb+4,18.1.0-1-g85f8cd4+48,18.1.0-1-g8ff0b9f+4,18.1.0-1-ga2c679d+1,18.1.0-1-gd55f500+35,18.1.0-10-gb58edde+2,18.1.0-11-g0997b02+4,18.1.0-13-gfe4edf0b+12,18.1.0-14-g259bd21+21,18.1.0-19-gdb69f3f+2,18.1.0-2-g5f9922c+24,18.1.0-2-gd3b74e5+11,18.1.0-2-gfbf3545+32,18.1.0-26-g728bddb4+5,18.1.0-27-g6ff7ca9+2,18.1.0-3-g52aa583+25,18.1.0-3-g8ea57af+9,18.1.0-3-gb69f684+42,18.1.0-3-gfcaddf3+6,18.1.0-32-gd8786685a,18.1.0-4-gf3f9b77+6,18.1.0-5-g1dd662b+2,18.1.0-5-g6dbcb01+41,18.1.0-6-gae77429+3,18.1.0-7-g9d75d83+9,18.1.0-7-gae09a6d+30,18.1.0-9-gc381ef5+4,w.2019.45
LSSTDataManagementBasePackage
|
nth-order 2d Chebyshev photometry transform. More...
#include <PhotometryTransform.h>
Public Member Functions | |
PhotometryTransformChebyshev (size_t order, geom::Box2D const &bbox, bool identity) | |
Create a Chebyshev transform with terms up to order in (x*y). More... | |
PhotometryTransformChebyshev (ndarray::Array< double, 2, 2 > const &coefficients, geom::Box2D const &bbox) | |
Create a Chebyshev transform with the specified coefficients. More... | |
double | transformError (double x, double y, double value, double valueErr) const override |
Return the transformed valueErr at Point(x,y). More... | |
void | dump (std::ostream &stream=std::cout) const override |
dumps the transform coefficients to stream. More... | |
std::size_t | getNpar () const override |
Return the number of parameters (used to compute chisq) More... | |
void | offsetParams (Eigen::VectorXd const &delta) override |
Offset the parameters by some (negative) amount during fitting. More... | |
ndarray::Array< double, 2, 2 > | getCoefficients () const |
Get a copy of the coefficients of the polynomials, as a 2d array (NOTE: layout is [y][x]) More... | |
Eigen::VectorXd | getParameters () const override |
Get a copy of the parameters of this model, in the same order as offsetParams . More... | |
ndarray::Size | getOrder () const |
geom::Box2D | getBBox () const |
double | mean (geom::Box2D const &bbox) const |
Compute the mean of this tranform on the bbox (default to our bbox). More... | |
double | mean () const |
double | integrate (geom::Box2D const &bbox) const |
double | integrate () const |
virtual double | transform (double x, double y, double value) const =0 |
Return the transform of value at (x,y). More... | |
double | transform (Point const &in, double value) const |
Return the transformed value at Point(x,y). More... | |
double | transformError (Point const &in, double value, double valueErr) const |
Return the transformed valueErr at Point(x,y). More... | |
virtual std::shared_ptr< PhotometryTransform > | clone () const =0 |
return a copy (allocated by new) of the transformation. More... | |
virtual void | computeParameterDerivatives (double x, double y, double value, Eigen::Ref< Eigen::VectorXd > derivatives) const =0 |
Compute the derivatives with respect to the parameters (i.e. More... | |
Protected Member Functions | |
double | computeChebyshev (double x, double y) const |
Return the value of this polynomial at x,y. More... | |
void | computeChebyshevDerivatives (double x, double y, Eigen::Ref< Eigen::VectorXd > derivatives) const |
Set the derivatives of this polynomial at x,y. More... | |
nth-order 2d Chebyshev photometry transform.
The 2-d Chebyshev polynomial used here is defined as:
\[ f(x,y) = \sum_i \sum_j a_{i,j} T_i(x) T_j(y) \]
where \(T_n(x)\) is the n-th order Chebyshev polynomial of \(x\) and \(a_{i,j}\) is the corresponding coefficient of the (i,j) polynomial term.
Note that the polynomial order=n means that the highest terms will be of the form:
\[ a_{0,n}*x^n*y^0, a_{n-1,1}*x^(n-1)*y^1, ..., a_{1,n-1}*x^1*y^(n-1), a_{n,0}*x^0*y^n \]
Definition at line 219 of file PhotometryTransform.h.
lsst::jointcal::PhotometryTransformChebyshev::PhotometryTransformChebyshev | ( | size_t | order, |
geom::Box2D const & | bbox, | ||
bool | identity | ||
) |
Create a Chebyshev transform with terms up to order in (x*y).
[in] | order | The maximum order in (x*y). |
[in] | bbox | The bounding box it is valid within, to rescale it to [-1,1]. |
[in] | identity | If true, set a_0,0==1, otherwise all coefficients are 0. |
Definition at line 91 of file PhotometryTransform.cc.
lsst::jointcal::PhotometryTransformChebyshev::PhotometryTransformChebyshev | ( | ndarray::Array< double, 2, 2 > const & | coefficients, |
geom::Box2D const & | bbox | ||
) |
Create a Chebyshev transform with the specified coefficients.
The polynomial order is determined from the number of coefficients, taking only the anti-diagonal upper triangle portion of the passed-in coefficients
coefficients | The polynomial coefficients. | |
[in] | bbox | The bounding box it is valid within, to rescale it to [-1,1]. |
Definition at line 99 of file PhotometryTransform.cc.
|
pure virtualinherited |
return a copy (allocated by new) of the transformation.
Implemented in lsst::jointcal::MagnitudeTransformChebyshev, lsst::jointcal::FluxTransformChebyshev, lsst::jointcal::MagnitudeTransformSpatiallyInvariant, and lsst::jointcal::FluxTransformSpatiallyInvariant.
|
protected |
Return the value of this polynomial at x,y.
For use in the sublcass transform() methods.
Definition at line 224 of file PhotometryTransform.cc.
|
protected |
Set the derivatives of this polynomial at x,y.
For use in the sublcass computeParameterDerivatives() methods.
Definition at line 230 of file PhotometryTransform.cc.
|
pure virtualinherited |
Compute the derivatives with respect to the parameters (i.e.
the coefficients).
[in] | x | The x coordinate to compute at (in the appropriate units for this transform). |
[in] | y | The y coordinate to compute at (in the appropriate units for this transform). |
[in] | value | The instrument flux or magnitude to compute the derivative at. |
[out] | derivatives | The computed derivatives, in the same order as the deltas in offsetParams. |
Implemented in lsst::jointcal::MagnitudeTransformChebyshev, lsst::jointcal::FluxTransformChebyshev, lsst::jointcal::MagnitudeTransformSpatiallyInvariant, and lsst::jointcal::FluxTransformSpatiallyInvariant.
|
inlineoverridevirtual |
dumps the transform coefficients to stream.
Implements lsst::jointcal::PhotometryTransform.
Definition at line 245 of file PhotometryTransform.h.
|
inline |
Definition at line 261 of file PhotometryTransform.h.
|
inline |
Get a copy of the coefficients of the polynomials, as a 2d array (NOTE: layout is [y][x])
Definition at line 254 of file PhotometryTransform.h.
|
inlineoverridevirtual |
Return the number of parameters (used to compute chisq)
Implements lsst::jointcal::PhotometryTransform.
Definition at line 248 of file PhotometryTransform.h.
|
inline |
Definition at line 259 of file PhotometryTransform.h.
|
overridevirtual |
Get a copy of the parameters of this model, in the same order as offsetParams
.
Implements lsst::jointcal::PhotometryTransform.
Definition at line 210 of file PhotometryTransform.cc.
double lsst::jointcal::PhotometryTransformChebyshev::integrate | ( | geom::Box2D const & | bbox | ) | const |
Definition at line 181 of file PhotometryTransform.cc.
double lsst::jointcal::PhotometryTransformChebyshev::integrate | ( | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 193 of file PhotometryTransform.cc.
double lsst::jointcal::PhotometryTransformChebyshev::mean | ( | geom::Box2D const & | bbox | ) | const |
Compute the mean of this tranform on the bbox (default to our bbox).
Definition at line 204 of file PhotometryTransform.cc.
double lsst::jointcal::PhotometryTransformChebyshev::mean | ( | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 208 of file PhotometryTransform.cc.
|
overridevirtual |
Offset the parameters by some (negative) amount during fitting.
Equivalent to flatten(parameters) -= delta
Ordering of delta is the same as the ordering of the derivatives returned from computeParameterDerivatives
.
Implements lsst::jointcal::PhotometryTransform.
Definition at line 107 of file PhotometryTransform.cc.
|
pure virtualinherited |
Return the transform of value at (x,y).
Implemented in lsst::jointcal::MagnitudeTransformChebyshev, lsst::jointcal::FluxTransformChebyshev, lsst::jointcal::MagnitudeTransformSpatiallyInvariant, and lsst::jointcal::FluxTransformSpatiallyInvariant.
|
inlineinherited |
Return the transformed value at Point(x,y).
Definition at line 58 of file PhotometryTransform.h.
|
inlineinherited |
Return the transformed valueErr at Point(x,y).
Definition at line 64 of file PhotometryTransform.h.
|
inlineoverridevirtual |
Return the transformed valueErr at Point(x,y).
Implements lsst::jointcal::PhotometryTransform.
Definition at line 242 of file PhotometryTransform.h.