lsst.jointcal  16.0-18-gdf247dd+5
Public Member Functions | Protected Member Functions | List of all members
lsst::jointcal::PhotometryTransfoChebyshev Class Referenceabstract

nth-order 2d Chebyshev photometry transfo. More...

#include <PhotometryTransfo.h>

Inheritance diagram for lsst::jointcal::PhotometryTransfoChebyshev:
lsst::jointcal::PhotometryTransfo lsst::jointcal::FluxTransfoChebyshev lsst::jointcal::MagnitudeTransfoChebyshev

Public Member Functions

 PhotometryTransfoChebyshev (size_t order, afw::geom::Box2D const &bbox, bool identity)
 Create a Chebyshev transfo with terms up to order in (x*y). More...
 
 PhotometryTransfoChebyshev (ndarray::Array< double, 2, 2 > const &coefficients, afw::geom::Box2D const &bbox)
 Create a Chebyshev transfo 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 transfo coefficients to stream. More...
 
int 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
 
afw::geom::Box2D getBBox () const
 
double mean () 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< PhotometryTransfoclone () 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...
 

Detailed Description

nth-order 2d Chebyshev photometry transfo.

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 195 of file PhotometryTransfo.h.

Constructor & Destructor Documentation

◆ PhotometryTransfoChebyshev() [1/2]

lsst::jointcal::PhotometryTransfoChebyshev::PhotometryTransfoChebyshev ( size_t  order,
afw::geom::Box2D const &  bbox,
bool  identity 
)

Create a Chebyshev transfo with terms up to order in (x*y).

Parameters
[in]orderThe maximum order in (x*y).
[in]bboxThe bounding box it is valid within, to rescale it to [-1,1].
[in]identityIf true, set a_0,0==1, otherwise all coefficients are 0.

Definition at line 67 of file PhotometryTransfo.cc.

◆ PhotometryTransfoChebyshev() [2/2]

lsst::jointcal::PhotometryTransfoChebyshev::PhotometryTransfoChebyshev ( ndarray::Array< double, 2, 2 > const &  coefficients,
afw::geom::Box2D const &  bbox 
)

Create a Chebyshev transfo with the specified coefficients.

The polynomial order is determined from the number of coefficients.

Parameters
coefficientsThe polynomial coefficients.
[in]bboxThe bounding box it is valid within, to rescale it to [-1,1].

Definition at line 75 of file PhotometryTransfo.cc.

Member Function Documentation

◆ clone()

virtual std::shared_ptr<PhotometryTransfo> lsst::jointcal::PhotometryTransfo::clone ( ) const
pure virtualinherited

◆ computeChebyshev()

double lsst::jointcal::PhotometryTransfoChebyshev::computeChebyshev ( double  x,
double  y 
) const
protected

Return the value of this polynomial at x,y.

For use in the sublcass transform() methods.

Definition at line 132 of file PhotometryTransfo.cc.

◆ computeChebyshevDerivatives()

void lsst::jointcal::PhotometryTransfoChebyshev::computeChebyshevDerivatives ( double  x,
double  y,
Eigen::Ref< Eigen::VectorXd >  derivatives 
) const
protected

Set the derivatives of this polynomial at x,y.

For use in the sublcass computeParameterDerivatives() methods.

Definition at line 138 of file PhotometryTransfo.cc.

◆ computeParameterDerivatives()

virtual void lsst::jointcal::PhotometryTransfo::computeParameterDerivatives ( double  x,
double  y,
double  value,
Eigen::Ref< Eigen::VectorXd >  derivatives 
) const
pure virtualinherited

Compute the derivatives with respect to the parameters (i.e.

the coefficients).

Parameters
[in]xThe x coordinate to compute at (in the appropriate units for this transfo).
[in]yThe y coordinate to compute at (in the appropriate units for this transfo).
[in]valueThe instrument flux or magnitude to compute the derivative at.
[out]derivativesThe computed derivatives, in the same order as the deltas in offsetParams.

Implemented in lsst::jointcal::MagnitudeTransfoChebyshev, lsst::jointcal::FluxTransfoChebyshev, lsst::jointcal::MagnitudeTransfoSpatiallyInvariant, and lsst::jointcal::FluxTransfoSpatiallyInvariant.

◆ dump()

void lsst::jointcal::PhotometryTransfoChebyshev::dump ( std::ostream stream = std::cout) const
inlineoverridevirtual

dumps the transfo coefficients to stream.

Implements lsst::jointcal::PhotometryTransfo.

Definition at line 221 of file PhotometryTransfo.h.

◆ getBBox()

afw::geom::Box2D lsst::jointcal::PhotometryTransfoChebyshev::getBBox ( ) const
inline

Definition at line 237 of file PhotometryTransfo.h.

◆ getCoefficients()

ndarray::Array<double, 2, 2> lsst::jointcal::PhotometryTransfoChebyshev::getCoefficients ( ) const
inline

Get a copy of the coefficients of the polynomials, as a 2d array (NOTE: layout is [y][x])

Definition at line 230 of file PhotometryTransfo.h.

◆ getNpar()

int lsst::jointcal::PhotometryTransfoChebyshev::getNpar ( ) const
inlineoverridevirtual

Return the number of parameters (used to compute chisq)

Implements lsst::jointcal::PhotometryTransfo.

Definition at line 224 of file PhotometryTransfo.h.

◆ getOrder()

ndarray::Size lsst::jointcal::PhotometryTransfoChebyshev::getOrder ( ) const
inline

Definition at line 235 of file PhotometryTransfo.h.

◆ getParameters()

Eigen::VectorXd lsst::jointcal::PhotometryTransfoChebyshev::getParameters ( ) const
overridevirtual

Get a copy of the parameters of this model, in the same order as offsetParams.

Implements lsst::jointcal::PhotometryTransfo.

Definition at line 118 of file PhotometryTransfo.cc.

◆ mean()

double lsst::jointcal::PhotometryTransfoChebyshev::mean ( ) const

Definition at line 116 of file PhotometryTransfo.cc.

◆ offsetParams()

void lsst::jointcal::PhotometryTransfoChebyshev::offsetParams ( Eigen::VectorXd const &  delta)
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::PhotometryTransfo.

Definition at line 83 of file PhotometryTransfo.cc.

◆ transform() [1/2]

virtual double lsst::jointcal::PhotometryTransfo::transform ( double  x,
double  y,
double  value 
) const
pure virtualinherited

◆ transform() [2/2]

double lsst::jointcal::PhotometryTransfo::transform ( Point const &  in,
double  value 
) const
inlineinherited

Return the transformed value at Point(x,y).

Definition at line 35 of file PhotometryTransfo.h.

◆ transformError() [1/2]

double lsst::jointcal::PhotometryTransfo::transformError ( Point const &  in,
double  value,
double  valueErr 
) const
inlineinherited

Return the transformed valueErr at Point(x,y).

Definition at line 41 of file PhotometryTransfo.h.

◆ transformError() [2/2]

double lsst::jointcal::PhotometryTransfoChebyshev::transformError ( double  x,
double  y,
double  value,
double  valueErr 
) const
inlineoverridevirtual

Return the transformed valueErr at Point(x,y).

Implements lsst::jointcal::PhotometryTransfo.

Definition at line 218 of file PhotometryTransfo.h.


The documentation for this class was generated from the following files: