LSST Applications g063fba187b+cac8b7c890,g0f08755f38+6aee506743,g1653933729+a8ce1bb630,g168dd56ebc+a8ce1bb630,g1a2382251a+b4475c5878,g1dcb35cd9c+8f9bc1652e,g20f6ffc8e0+6aee506743,g217e2c1bcf+73dee94bd0,g28da252d5a+1f19c529b9,g2bbee38e9b+3f2625acfc,g2bc492864f+3f2625acfc,g3156d2b45e+6e55a43351,g32e5bea42b+1bb94961c2,g347aa1857d+3f2625acfc,g35bb328faa+a8ce1bb630,g3a166c0a6a+3f2625acfc,g3e281a1b8c+c5dd892a6c,g3e8969e208+a8ce1bb630,g414038480c+5927e1bc1e,g41af890bb2+8a9e676b2a,g7af13505b9+809c143d88,g80478fca09+6ef8b1810f,g82479be7b0+f568feb641,g858d7b2824+6aee506743,g89c8672015+f4add4ffd5,g9125e01d80+a8ce1bb630,ga5288a1d22+2903d499ea,gb58c049af0+d64f4d3760,gc28159a63d+3f2625acfc,gcab2d0539d+b12535109e,gcf0d15dbbd+46a3f46ba9,gda6a2b7d83+46a3f46ba9,gdaeeff99f8+1711a396fd,ge79ae78c31+3f2625acfc,gef2f8181fd+0a71e47438,gf0baf85859+c1f95f4921,gfa517265be+6aee506743,gfa999e8aa5+17cd334064,w.2024.51
LSST Data Management Base Package
|
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). | |
PhotometryTransformChebyshev (ndarray::Array< double, 2, 2 > const &coefficients, geom::Box2D const &bbox) | |
Create a Chebyshev transform with the specified coefficients. | |
double | transformError (double x, double y, double value, double valueErr) const override |
Return the transformed valueErr at Point(x,y). | |
void | print (std::ostream &out) const override |
Print the transform coefficients to stream. | |
std::size_t | getNpar () const override |
Return the number of parameters (used to compute chisq) | |
void | offsetParams (Eigen::VectorXd const &delta) override |
Offset the parameters by some (negative) amount during fitting. | |
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]) | |
Eigen::VectorXd | getParameters () const override |
Get a copy of the parameters of this model, in the same order as offsetParams . | |
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). | |
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). | |
double | transform (Point const &in, double value) const |
Return the transformed value at Point(x,y). | |
double | transformError (Point const &in, double value, double valueErr) const |
Return the transformed valueErr at Point(x,y). | |
virtual std::shared_ptr< PhotometryTransform > | clone () const =0 |
return a copy (allocated by new) of the transformation. | |
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. | |
Protected Member Functions | |
double | computeChebyshev (double x, double y) const |
Return the value of this polynomial at x,y. | |
void | computeChebyshevDerivatives (double x, double y, Eigen::Ref< Eigen::VectorXd > derivatives) const |
Set the derivatives of this polynomial at x,y. | |
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 222 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::FluxTransformSpatiallyInvariant, lsst::jointcal::MagnitudeTransformSpatiallyInvariant, lsst::jointcal::FluxTransformChebyshev, and lsst::jointcal::MagnitudeTransformChebyshev.
|
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::FluxTransformSpatiallyInvariant, lsst::jointcal::MagnitudeTransformSpatiallyInvariant, lsst::jointcal::FluxTransformChebyshev, and lsst::jointcal::MagnitudeTransformChebyshev.
|
inline |
Definition at line 264 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 257 of file PhotometryTransform.h.
|
inlineoverridevirtual |
Return the number of parameters (used to compute chisq)
Implements lsst::jointcal::PhotometryTransform.
Definition at line 251 of file PhotometryTransform.h.
|
inline |
Definition at line 262 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 | ( | ) | const |
Definition at line 193 of file PhotometryTransform.cc.
double lsst::jointcal::PhotometryTransformChebyshev::integrate | ( | geom::Box2D const & | bbox | ) | 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 181 of file PhotometryTransform.cc.
double lsst::jointcal::PhotometryTransformChebyshev::mean | ( | ) | const |
Definition at line 208 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).
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 204 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.
|
inlineoverridevirtual |
Print the transform coefficients to stream.
Implements lsst::jointcal::PhotometryTransform.
Definition at line 248 of file PhotometryTransform.h.
|
pure virtualinherited |
Return the transform of value at (x,y).
Implemented in lsst::jointcal::MagnitudeTransformSpatiallyInvariant, lsst::jointcal::FluxTransformSpatiallyInvariant, lsst::jointcal::FluxTransformChebyshev, and lsst::jointcal::MagnitudeTransformChebyshev.
|
inlineinherited |
|
inlineoverridevirtual |
Return the transformed valueErr at Point(x,y).
Implements lsst::jointcal::PhotometryTransform.
Definition at line 245 of file PhotometryTransform.h.
|
inlineinherited |
Return the transformed valueErr at Point(x,y).
Definition at line 64 of file PhotometryTransform.h.