lsst.jointcal  15.0-18-ga2cb10d+1
Public Member Functions | List of all members
lsst::jointcal::PhotometryTransfoChebyshev Class Reference

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

#include <PhotometryTransfo.h>

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

Public Member Functions

 PhotometryTransfoChebyshev (size_t order, afw::geom::Box2D const &bbox)
 Create an identity (a_0,0==1) 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 transform (double x, double y, double instFlux) const override
 Apply the transform to instFlux at (x,y), put result in flux. 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...
 
std::shared_ptr< PhotometryTransfoclone () const override
 return a copy (allocated by new) of the transformation. More...
 
void computeParameterDerivatives (double x, double y, double instFlux, Eigen::Ref< Eigen::VectorXd > derivatives) const override
 Compute the derivatives with respect to the parameters (i.e. More...
 
ndarray::Array< double, 2, 2 > getCoefficients ()
 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
 
double transform (Point const &in, double instFlux) const
 Return the transformed instFlux 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 148 of file PhotometryTransfo.h.

Constructor & Destructor Documentation

◆ PhotometryTransfoChebyshev() [1/2]

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

Create an identity (a_0,0==1) 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].

Definition at line 65 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 72 of file PhotometryTransfo.cc.

Member Function Documentation

◆ clone()

std::shared_ptr<PhotometryTransfo> lsst::jointcal::PhotometryTransfoChebyshev::clone ( void  ) const
inlineoverridevirtual

return a copy (allocated by new) of the transformation.

Implements lsst::jointcal::PhotometryTransfo.

Definition at line 182 of file PhotometryTransfo.h.

◆ computeParameterDerivatives()

void lsst::jointcal::PhotometryTransfoChebyshev::computeParameterDerivatives ( double  x,
double  y,
double  instFlux,
Eigen::Ref< Eigen::VectorXd >  derivatives 
) const
overridevirtual

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]instFluxThe instrument flux to compute the derivative at.
[out]derivativesThe computed derivatives, in the same order as the deltas in offsetParams.

Implements lsst::jointcal::PhotometryTransfo.

Definition at line 121 of file PhotometryTransfo.cc.

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

◆ getBBox()

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

Definition at line 198 of file PhotometryTransfo.h.

◆ getCoefficients()

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

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

Definition at line 191 of file PhotometryTransfo.h.

◆ getNpar()

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

Return the number of parameters (used to compute chisq)

Reimplemented from lsst::jointcal::PhotometryTransfo.

Definition at line 176 of file PhotometryTransfo.h.

◆ getOrder()

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

Definition at line 196 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 149 of file PhotometryTransfo.cc.

◆ mean()

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

Definition at line 119 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 86 of file PhotometryTransfo.cc.

◆ transform() [1/2]

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

Return the transformed instFlux at (x,y).

Definition at line 39 of file PhotometryTransfo.h.

◆ transform() [2/2]

double lsst::jointcal::PhotometryTransfoChebyshev::transform ( double  x,
double  y,
double  instFlux 
) const
overridevirtual

Apply the transform to instFlux at (x,y), put result in flux.

Implements lsst::jointcal::PhotometryTransfo.

Definition at line 80 of file PhotometryTransfo.cc.


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