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
Public Member Functions | Protected Attributes | List of all members
lsst::jointcal::ChipVisitMagnitudeMapping Class Reference

#include <PhotometryMapping.h>

Inheritance diagram for lsst::jointcal::ChipVisitMagnitudeMapping:
lsst::jointcal::ChipVisitPhotometryMapping lsst::jointcal::PhotometryMappingBase

Public Member Functions

 ChipVisitMagnitudeMapping (std::shared_ptr< PhotometryMapping > chipMapping, std::shared_ptr< PhotometryMapping > visitMapping)
 
double transformError (MeasuredStar const &measuredStar, double value, double valueErr) const override
 Return the on-sky transformed flux uncertainty for measuredStar on ccdImage. More...
 
void computeParameterDerivatives (MeasuredStar const &measuredStar, double value, Eigen::Ref< Eigen::VectorXd > derivatives) const override
 Compute the derivatives with respect to the parameters (i.e. More...
 
std::size_t getNpar () const override
 Number of total parameters in this mapping. More...
 
double transform (MeasuredStar const &measuredStar, double value) const override
 Return the on-sky transformed flux for measuredStar on ccdImage. More...
 
void freezeErrorTransform () override
 Once this routine has been called, the error transform is not modified by offsetParams(). More...
 
Eigen::VectorXd getParameters () override
 
void getMappingIndices (IndexVector &indices) const override
 Gets how this set of parameters (of length getNpar()) map into the "grand" fit. More...
 
void setWhatToFit (bool const fittingChips, bool const fittingVisits)
 Set whether to fit chips or visits. More...
 
void dump (std::ostream &stream=std::cout) const override
 Dump the contents of the transforms, for debugging. More...
 
std::shared_ptr< PhotometryMappinggetChipMapping () const
 
std::shared_ptr< PhotometryMappinggetVisitMapping () const
 
std::size_t getNParChip () const
 
std::size_t getNParVisit () const
 
void setFixed (bool _fixed)
 Make this mapping's parameters fixed (i.e. not varied during fitting). More...
 
bool isFixed ()
 
Eigen::Index getIndex ()
 Get the index of this mapping in the grand fit. More...
 
void setIndex (Eigen::Index i)
 Set the index of this mapping in the grand fit. More...
 

Protected Attributes

std::size_t _nParChip
 
std::size_t _nParVisit
 
std::shared_ptr< PhotometryMapping_chipMapping
 
std::shared_ptr< PhotometryMapping_visitMapping
 
Eigen::Index index
 
bool fixed
 

Detailed Description

Definition at line 297 of file PhotometryMapping.h.

Constructor & Destructor Documentation

◆ ChipVisitMagnitudeMapping()

lsst::jointcal::ChipVisitMagnitudeMapping::ChipVisitMagnitudeMapping ( std::shared_ptr< PhotometryMapping chipMapping,
std::shared_ptr< PhotometryMapping visitMapping 
)
inline

Definition at line 299 of file PhotometryMapping.h.

301  : ChipVisitPhotometryMapping(chipMapping, visitMapping) {}
ChipVisitPhotometryMapping(std::shared_ptr< PhotometryMapping > chipMapping, std::shared_ptr< PhotometryMapping > visitMapping)

Member Function Documentation

◆ computeParameterDerivatives()

void lsst::jointcal::ChipVisitMagnitudeMapping::computeParameterDerivatives ( MeasuredStar const &  measuredStar,
double  value,
Eigen::Ref< Eigen::VectorXd >  derivatives 
) const
overridevirtual

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

the coefficients).

Parameters
[in]measuredStarThe measured star position to transform.
[in]valueThe instrument flux or magnitude to compute the derivative at.
[out]derivativesThe computed derivatives, in the same order as the deltas in offsetParams.

Implements lsst::jointcal::PhotometryMappingBase.

Definition at line 119 of file PhotometryMapping.cc.

120  {
121  // TODO DM-12161: possible optimization is to merge transform and computeDerivatives,
122  // and/or save these intermediate calculations when transforming flux to use in derivatives.
123  // Like what AstrometryMappings do with `computeTransformAndDerivatives` vs. `transformPosAndErrors`.
124 
125  // NOTE: See DMTN-036 for the math behind this.
126  if (getNParChip() > 0 && !_chipMapping->isFixed()) {
127  // The chip derivatives start at 0, independent of the full-fit indices.
128  Eigen::Ref<Eigen::VectorXd> chipBlock = derivatives.segment(0, getNParChip());
129  _chipMapping->getTransform()->computeParameterDerivatives(measuredStar.x, measuredStar.y, instFlux,
130  chipBlock);
131  }
132  if (getNParVisit() > 0) {
133  // The visit derivatives start at the last chip derivative, independent of the full-fit indices.
134  Eigen::Ref<Eigen::VectorXd> visitBlock = derivatives.segment(getNParChip(), getNParVisit());
135  _visitMapping->getTransform()->computeParameterDerivatives(
136  measuredStar.getXFocal(), measuredStar.getYFocal(), instFlux, visitBlock);
137  }
138 }
std::shared_ptr< PhotometryMapping > _visitMapping
std::shared_ptr< PhotometryMapping > _chipMapping

◆ dump()

void lsst::jointcal::ChipVisitPhotometryMapping::dump ( std::ostream stream = std::cout) const
inlineoverridevirtualinherited

Dump the contents of the transforms, for debugging.

Implements lsst::jointcal::PhotometryMappingBase.

Definition at line 261 of file PhotometryMapping.h.

261  {
262  stream << "index: " << index << " chipMapping: ";
263  _chipMapping->dump(stream);
264  stream << "visitMapping: ";
265  _visitMapping->dump(stream);
266  }
std::shared_ptr< PhotometryMapping > _visitMapping
std::shared_ptr< PhotometryMapping > _chipMapping

◆ freezeErrorTransform()

void lsst::jointcal::ChipVisitPhotometryMapping::freezeErrorTransform ( )
inlineoverridevirtualinherited

Once this routine has been called, the error transform is not modified by offsetParams().

The routine can be called when the mappings are roughly in place. After the call, the transformations used to propagate errors are no longer affected when updating the mappings. This allows an exactly linear fit, which can be necessary for some model+data combinations.

Implements lsst::jointcal::PhotometryMappingBase.

Definition at line 234 of file PhotometryMapping.h.

234  {
235  _chipMapping->freezeErrorTransform();
236  _visitMapping->freezeErrorTransform();
237  }
std::shared_ptr< PhotometryMapping > _visitMapping
std::shared_ptr< PhotometryMapping > _chipMapping

◆ getChipMapping()

std::shared_ptr<PhotometryMapping> lsst::jointcal::ChipVisitPhotometryMapping::getChipMapping ( ) const
inlineinherited

Definition at line 268 of file PhotometryMapping.h.

268 { return _chipMapping; }
std::shared_ptr< PhotometryMapping > _chipMapping

◆ getIndex()

Eigen::Index lsst::jointcal::PhotometryMappingBase::getIndex ( )
inlineinherited

Get the index of this mapping in the grand fit.

Definition at line 115 of file PhotometryMapping.h.

115 { return index; }

◆ getMappingIndices()

void lsst::jointcal::ChipVisitPhotometryMapping::getMappingIndices ( IndexVector indices) const
overridevirtualinherited

Gets how this set of parameters (of length getNpar()) map into the "grand" fit.

Expects that indices has enough space reserved.

Implements lsst::jointcal::PhotometryMappingBase.

Definition at line 39 of file PhotometryMapping.cc.

39  {
40  if (indices.size() < getNpar()) indices.resize(getNpar());
41  // If we're fitting the chip mapping, fill those indices.
42  if (_nParChip > 0) {
43  _chipMapping->getMappingIndices(indices);
44  }
45  // If we're fitting the visit mapping, fill those indices.
46  if (_nParVisit > 0) {
47  // TODO DM-12169: there is probably a better way to feed a subpart of a std::vector
48  // (maybe a view or iterators?)
49  IndexVector tempIndices(_visitMapping->getNpar());
50  _visitMapping->getMappingIndices(tempIndices);
51  // We have to insert the visit indices starting after the chip indices.
52  for (std::size_t k = 0; k < _visitMapping->getNpar(); ++k) {
53  indices.at(k + _nParChip) = tempIndices.at(k);
54  }
55  }
56 }
std::shared_ptr< PhotometryMapping > _visitMapping
std::shared_ptr< PhotometryMapping > _chipMapping
T resize(T... args)
T at(T... args)
std::size_t getNpar() const override
Number of total parameters in this mapping.
T size(T... args)
STL class.

◆ getNpar()

std::size_t lsst::jointcal::ChipVisitPhotometryMapping::getNpar ( ) const
inlineoverridevirtualinherited

Number of total parameters in this mapping.

Implements lsst::jointcal::PhotometryMappingBase.

Definition at line 224 of file PhotometryMapping.h.

◆ getNParChip()

std::size_t lsst::jointcal::ChipVisitPhotometryMapping::getNParChip ( ) const
inlineinherited

Definition at line 271 of file PhotometryMapping.h.

◆ getNParVisit()

std::size_t lsst::jointcal::ChipVisitPhotometryMapping::getNParVisit ( ) const
inlineinherited

Definition at line 272 of file PhotometryMapping.h.

◆ getParameters()

Eigen::VectorXd lsst::jointcal::ChipVisitPhotometryMapping::getParameters ( )
inlineoverridevirtualinherited

Implements lsst::jointcal::PhotometryMappingBase.

Definition at line 240 of file PhotometryMapping.h.

240  {
241  Eigen::VectorXd joined(getNpar());
242  joined << _chipMapping->getParameters(), _visitMapping->getParameters();
243  return joined;
244  }
std::shared_ptr< PhotometryMapping > _visitMapping
std::shared_ptr< PhotometryMapping > _chipMapping
std::size_t getNpar() const override
Number of total parameters in this mapping.

◆ getVisitMapping()

std::shared_ptr<PhotometryMapping> lsst::jointcal::ChipVisitPhotometryMapping::getVisitMapping ( ) const
inlineinherited

Definition at line 269 of file PhotometryMapping.h.

269 { return _visitMapping; }
std::shared_ptr< PhotometryMapping > _visitMapping

◆ isFixed()

bool lsst::jointcal::PhotometryMappingBase::isFixed ( )
inlineinherited

Definition at line 101 of file PhotometryMapping.h.

◆ setFixed()

void lsst::jointcal::PhotometryMappingBase::setFixed ( bool  _fixed)
inlineinherited

Make this mapping's parameters fixed (i.e. not varied during fitting).

Definition at line 100 of file PhotometryMapping.h.

◆ setIndex()

void lsst::jointcal::PhotometryMappingBase::setIndex ( Eigen::Index  i)
inlineinherited

Set the index of this mapping in the grand fit.

Definition at line 118 of file PhotometryMapping.h.

◆ setWhatToFit()

void lsst::jointcal::ChipVisitPhotometryMapping::setWhatToFit ( bool const  fittingChips,
bool const  fittingVisits 
)
inherited

Set whether to fit chips or visits.

This must be called before anything that depends on knowing the number of parameters in the fit, such as offsetParams(), getParameters(), or computeParameterDerivatives().

Parameters
fittingChipsFit the chip transform.
fittingVisitsFit the visit transform.

Definition at line 58 of file PhotometryMapping.cc.

58  {
59  if (fittingChips) {
60  _nParChip = _chipMapping->getNpar();
61  } else {
62  _nParChip = 0;
63  }
64  if (fittingVisits) {
65  _nParVisit = _visitMapping->getNpar();
66  } else {
67  _nParVisit = 0;
68  }
69 }
std::shared_ptr< PhotometryMapping > _visitMapping
std::shared_ptr< PhotometryMapping > _chipMapping

◆ transform()

double lsst::jointcal::ChipVisitPhotometryMapping::transform ( MeasuredStar const &  measuredStar,
double  value 
) const
inlineoverridevirtualinherited

Return the on-sky transformed flux for measuredStar on ccdImage.

Parameters
[in]measuredStarThe measured star position to transform.
[in]valueThe instrument flux or magnitude to transform.
Returns
The on-sky value () transformed from value at measuredStar's position.

Implements lsst::jointcal::PhotometryMappingBase.

Definition at line 227 of file PhotometryMapping.h.

227  {
228  double temp = _chipMapping->getTransform()->transform(measuredStar.x, measuredStar.y, value);
229  return _visitMapping->getTransform()->transform(measuredStar.getXFocal(), measuredStar.getYFocal(),
230  temp);
231  }
std::shared_ptr< PhotometryMapping > _visitMapping
std::shared_ptr< PhotometryMapping > _chipMapping

◆ transformError()

double lsst::jointcal::ChipVisitMagnitudeMapping::transformError ( MeasuredStar const &  measuredStar,
double  value,
double  valueErr 
) const
overridevirtual

Return the on-sky transformed flux uncertainty for measuredStar on ccdImage.

Matches the underlying PhotometryTransform's transformError() until freezeErrorTransform() is called.

Parameters
[in]measuredStarThe measured star position to transform.
[in]valueThe flux or magnitude to transform.
[in]valueErrThe flux or magnitude uncertainty to transform.
Returns
The on-sky value transformed from value at measuredStar's position.
Note
This method takes instFlux and instFluxErr: the error calculation has to use fluxes to get the math right.

Implements lsst::jointcal::PhotometryMappingBase.

Definition at line 112 of file PhotometryMapping.cc.

113  {
114  // The transformed error is s_mout = 2.5/ln(10) * instFluxErr / instFlux
115  // because the other components of the mapping (f0, the polynomials) disappear in the partial derivative.
116  return 2.5 / std::log(10.0) * instFluxErr / instFlux;
117 }
T log(T... args)

Member Data Documentation

◆ _chipMapping

std::shared_ptr<PhotometryMapping> lsst::jointcal::ChipVisitPhotometryMapping::_chipMapping
protectedinherited

Definition at line 279 of file PhotometryMapping.h.

◆ _nParChip

std::size_t lsst::jointcal::ChipVisitPhotometryMapping::_nParChip
protectedinherited

Definition at line 276 of file PhotometryMapping.h.

◆ _nParVisit

std::size_t lsst::jointcal::ChipVisitPhotometryMapping::_nParVisit
protectedinherited

Definition at line 276 of file PhotometryMapping.h.

◆ _visitMapping

std::shared_ptr<PhotometryMapping> lsst::jointcal::ChipVisitPhotometryMapping::_visitMapping
protectedinherited

Definition at line 280 of file PhotometryMapping.h.

◆ fixed

bool lsst::jointcal::PhotometryMappingBase::fixed
protectedinherited

Definition at line 124 of file PhotometryMapping.h.

◆ index

Eigen::Index lsst::jointcal::PhotometryMappingBase::index
protectedinherited

Definition at line 122 of file PhotometryMapping.h.


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