LSSTApplications
18.0.0+106,18.0.0+50,19.0.0,19.0.0+1,19.0.0+10,19.0.0+11,19.0.0+13,19.0.0+17,19.0.0+2,19.0.0-1-g20d9b18+6,19.0.0-1-g425ff20,19.0.0-1-g5549ca4,19.0.0-1-g580fafe+6,19.0.0-1-g6fe20d0+1,19.0.0-1-g7011481+9,19.0.0-1-g8c57eb9+6,19.0.0-1-gb5175dc+11,19.0.0-1-gdc0e4a7+9,19.0.0-1-ge272bc4+6,19.0.0-1-ge3aa853,19.0.0-10-g448f008b,19.0.0-12-g6990b2c,19.0.0-2-g0d9f9cd+11,19.0.0-2-g3d9e4fb2+11,19.0.0-2-g5037de4,19.0.0-2-gb96a1c4+3,19.0.0-2-gd955cfd+15,19.0.0-3-g2d13df8,19.0.0-3-g6f3c7dc,19.0.0-4-g725f80e+11,19.0.0-4-ga671dab3b+1,19.0.0-4-gad373c5+3,19.0.0-5-ga2acb9c+2,19.0.0-5-gfe96e6c+2,w.2020.01
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.