LSSTApplications  19.0.0-14-gb0260a2+72efe9b372,20.0.0+7927753e06,20.0.0+8829bf0056,20.0.0+995114c5d2,20.0.0+b6f4b2abd1,20.0.0+bddc4f4cbe,20.0.0-1-g253301a+8829bf0056,20.0.0-1-g2b7511a+0d71a2d77f,20.0.0-1-g5b95a8c+7461dd0434,20.0.0-12-g321c96ea+23efe4bbff,20.0.0-16-gfab17e72e+fdf35455f6,20.0.0-2-g0070d88+ba3ffc8f0b,20.0.0-2-g4dae9ad+ee58a624b3,20.0.0-2-g61b8584+5d3db074ba,20.0.0-2-gb780d76+d529cf1a41,20.0.0-2-ged6426c+226a441f5f,20.0.0-2-gf072044+8829bf0056,20.0.0-2-gf1f7952+ee58a624b3,20.0.0-20-geae50cf+e37fec0aee,20.0.0-25-g3dcad98+544a109665,20.0.0-25-g5eafb0f+ee58a624b3,20.0.0-27-g64178ef+f1f297b00a,20.0.0-3-g4cc78c6+e0676b0dc8,20.0.0-3-g8f21e14+4fd2c12c9a,20.0.0-3-gbd60e8c+187b78b4b8,20.0.0-3-gbecbe05+48431fa087,20.0.0-38-ge4adf513+a12e1f8e37,20.0.0-4-g97dc21a+544a109665,20.0.0-4-gb4befbc+087873070b,20.0.0-4-gf910f65+5d3db074ba,20.0.0-5-gdfe0fee+199202a608,20.0.0-5-gfbfe500+d529cf1a41,20.0.0-6-g64f541c+d529cf1a41,20.0.0-6-g9a5b7a1+a1cd37312e,20.0.0-68-ga3f3dda+5fca18c6a4,20.0.0-9-g4aef684+e18322736b,w.2020.45
LSSTDataManagementBasePackage
Public Member Functions | Protected Attributes | List of all members
lsst::jointcal::SimpleAstrometryMapping Class Reference

#include <SimpleAstrometryMapping.h>

Inheritance diagram for lsst::jointcal::SimpleAstrometryMapping:
lsst::jointcal::AstrometryMapping lsst::jointcal::SimplePolyMapping

Public Member Functions

 SimpleAstrometryMapping (AstrometryTransform const &astrometryTransform, bool toBeFit=true)
 
 SimpleAstrometryMapping (SimpleAstrometryMapping const &)=delete
 No copy or move: there is only ever one instance of a given mapping (i.e.. per ccd+visit) More...
 
 SimpleAstrometryMapping (SimpleAstrometryMapping &&)=delete
 
SimpleAstrometryMappingoperator= (SimpleAstrometryMapping const &)=delete
 
SimpleAstrometryMappingoperator= (SimpleAstrometryMapping &&)=delete
 
virtual void freezeErrorTransform ()
 
std::size_t getNpar () const override
 Number of parameters in total. More...
 
void getMappingIndices (IndexVector &indices) const override
 Sets how this set of parameters (of length Npar()) map into the "grand" fit Expects that indices has enough space reserved. More...
 
void transformPosAndErrors (FatPoint const &where, FatPoint &outPoint) const override
 The same as above but without the parameter derivatives (used to evaluate chi^2) More...
 
void positionDerivative (Point const &where, Eigen::Matrix2d &derivative, double epsilon) const override
 The derivative w.r.t. position. More...
 
void offsetParams (Eigen::VectorXd const &delta) override
 Remember the error scale and freeze it. More...
 
Eigen::Index getIndex () const
 position of the parameters within the grand fitting scheme More...
 
void setIndex (Eigen::Index i)
 Set the index of this mapping in the grand fit. More...
 
virtual void computeTransformAndDerivatives (FatPoint const &where, FatPoint &outPoint, Eigen::MatrixX2d &H) const override
 Actually applies the AstrometryMapping and evaluates the derivatives w.r.t the fitted parameters. More...
 
virtual AstrometryTransform const & getTransform () const
 Access to the (fitted) transform. More...
 
bool getToBeFit () const
 Get whether this mapping is fit as part of a Model. More...
 
void setToBeFit (bool value)
 Set whether this Mapping is to be fit as part of a Model. More...
 
void print (std::ostream &out) const override
 Print a string representation of the contents of this mapping, for debugging. More...
 

Protected Attributes

bool toBeFit
 
Eigen::Index index
 
std::shared_ptr< AstrometryTransformtransform
 
std::shared_ptr< AstrometryTransformerrorProp
 
std::unique_ptr< AstrometryTransformLinearlin
 

Detailed Description

Definition at line 41 of file SimpleAstrometryMapping.h.

Constructor & Destructor Documentation

◆ SimpleAstrometryMapping() [1/3]

lsst::jointcal::SimpleAstrometryMapping::SimpleAstrometryMapping ( AstrometryTransform const &  astrometryTransform,
bool  toBeFit = true 
)
inline

Definition at line 43 of file SimpleAstrometryMapping.h.

44  : toBeFit(toBeFit),
45  transform(astrometryTransform.clone()),
47  lin(new AstrometryTransformLinear) {}

◆ SimpleAstrometryMapping() [2/3]

lsst::jointcal::SimpleAstrometryMapping::SimpleAstrometryMapping ( SimpleAstrometryMapping const &  )
delete

No copy or move: there is only ever one instance of a given mapping (i.e.. per ccd+visit)

◆ SimpleAstrometryMapping() [3/3]

lsst::jointcal::SimpleAstrometryMapping::SimpleAstrometryMapping ( SimpleAstrometryMapping &&  )
delete

Member Function Documentation

◆ computeTransformAndDerivatives()

void lsst::jointcal::SimpleAstrometryMapping::computeTransformAndDerivatives ( FatPoint const &  where,
FatPoint outPoint,
Eigen::MatrixX2d H 
) const
overridevirtual

Actually applies the AstrometryMapping and evaluates the derivatives w.r.t the fitted parameters.

This is grouped into a single call because for most models, evaluating the derivatives w.r.T parameters is not much longer than just transforming

Implements lsst::jointcal::AstrometryMapping.

Reimplemented in lsst::jointcal::SimplePolyMapping.

Definition at line 65 of file SimpleAstrometryMapping.cc.

66  {
67  transformPosAndErrors(where, outPoint);
68  transform->paramDerivatives(where, &H(0, 0), &H(0, 1));
69 }

◆ freezeErrorTransform()

virtual void lsst::jointcal::SimpleAstrometryMapping::freezeErrorTransform ( )
inlinevirtual

Definition at line 55 of file SimpleAstrometryMapping.h.

55  {
56  // from there on, updating the transform does not change the errors.
57  errorProp = transform->clone();
58  }

◆ getIndex()

Eigen::Index lsst::jointcal::SimpleAstrometryMapping::getIndex ( ) const
inline

position of the parameters within the grand fitting scheme

Definition at line 83 of file SimpleAstrometryMapping.h.

83 { return index; }

◆ getMappingIndices()

void lsst::jointcal::SimpleAstrometryMapping::getMappingIndices ( IndexVector indices) const
overridevirtual

Sets how this set of parameters (of length Npar()) map into the "grand" fit Expects that indices has enough space reserved.

Implements lsst::jointcal::AstrometryMapping.

Definition at line 32 of file SimpleAstrometryMapping.cc.

32  {
33  if (indices.size() < getNpar()) {
34  indices.resize(getNpar());
35  }
36  for (std::size_t k = 0; k < getNpar(); ++k) {
37  indices[k] = index + k;
38  }
39 }

◆ getNpar()

std::size_t lsst::jointcal::SimpleAstrometryMapping::getNpar ( ) const
inlineoverridevirtual

Number of parameters in total.

Implements lsst::jointcal::AstrometryMapping.

Definition at line 61 of file SimpleAstrometryMapping.h.

61  {
62  if (toBeFit)
63  return transform->getNpar();
64  else
65  return 0;
66  }

◆ getToBeFit()

bool lsst::jointcal::SimpleAstrometryMapping::getToBeFit ( ) const
inline

Get whether this mapping is fit as part of a Model.

Definition at line 96 of file SimpleAstrometryMapping.h.

96 { return toBeFit; }

◆ getTransform()

virtual AstrometryTransform const& lsst::jointcal::SimpleAstrometryMapping::getTransform ( ) const
inlinevirtual

Access to the (fitted) transform.

Reimplemented in lsst::jointcal::SimplePolyMapping.

Definition at line 93 of file SimpleAstrometryMapping.h.

93 { return *transform; }

◆ offsetParams()

void lsst::jointcal::SimpleAstrometryMapping::offsetParams ( Eigen::VectorXd const &  delta)
inlineoverridevirtual

Remember the error scale and freeze it.

Implements lsst::jointcal::AstrometryMapping.

Definition at line 78 of file SimpleAstrometryMapping.h.

78  {
79  if (toBeFit) transform->offsetParams(delta);
80  }

◆ operator=() [1/2]

SimpleAstrometryMapping& lsst::jointcal::SimpleAstrometryMapping::operator= ( SimpleAstrometryMapping &&  )
delete

◆ operator=() [2/2]

SimpleAstrometryMapping& lsst::jointcal::SimpleAstrometryMapping::operator= ( SimpleAstrometryMapping const &  )
delete

◆ positionDerivative()

void lsst::jointcal::SimpleAstrometryMapping::positionDerivative ( Point const &  where,
Eigen::Matrix2d &  derivative,
double  epsilon 
) const
overridevirtual

The derivative w.r.t. position.

Implements lsst::jointcal::AstrometryMapping.

Reimplemented in lsst::jointcal::SimplePolyMapping.

Definition at line 50 of file SimpleAstrometryMapping.cc.

51  {
52  errorProp->computeDerivative(where, *lin, epsilon);
53  derivative(0, 0) = lin->getCoefficient(1, 0, 0);
54  //
55  /* This does not work : it was proved by rotating the frame
56  see the compilation switch ROTATE_T2 in constrainedAstrometryModel.cc
57  derivative(1,0) = lin->getCoefficient(1,0,1);
58  derivative(0,1) = lin->getCoefficient(0,1,0);
59  */
60  derivative(1, 0) = lin->getCoefficient(0, 1, 0);
61  derivative(0, 1) = lin->getCoefficient(1, 0, 1);
62  derivative(1, 1) = lin->getCoefficient(0, 1, 1);
63 }

◆ print()

void lsst::jointcal::SimpleAstrometryMapping::print ( std::ostream out) const
overridevirtual

Print a string representation of the contents of this mapping, for debugging.

This string representation can be very verbose, as it contains all of the parameters of all of the transforms in this mapping.

Implements lsst::jointcal::AstrometryMapping.

Definition at line 71 of file SimpleAstrometryMapping.cc.

71 { out << *transform; }

◆ setIndex()

void lsst::jointcal::SimpleAstrometryMapping::setIndex ( Eigen::Index  i)
inline

Set the index of this mapping in the grand fit.

Definition at line 86 of file SimpleAstrometryMapping.h.

86 { index = i; }

◆ setToBeFit()

void lsst::jointcal::SimpleAstrometryMapping::setToBeFit ( bool  value)
inline

Set whether this Mapping is to be fit as part of a Model.

Definition at line 98 of file SimpleAstrometryMapping.h.

98 { toBeFit = value; }

◆ transformPosAndErrors()

void lsst::jointcal::SimpleAstrometryMapping::transformPosAndErrors ( FatPoint const &  where,
FatPoint outPoint 
) const
overridevirtual

The same as above but without the parameter derivatives (used to evaluate chi^2)

Implements lsst::jointcal::AstrometryMapping.

Reimplemented in lsst::jointcal::SimplePolyMapping.

Definition at line 41 of file SimpleAstrometryMapping.cc.

41  {
42  transform->transformPosAndErrors(where, outPoint);
43  FatPoint tmp;
44  errorProp->transformPosAndErrors(where, tmp);
45  outPoint.vx = tmp.vx;
46  outPoint.vy = tmp.vy;
47  outPoint.vxy = tmp.vxy;
48 }

Member Data Documentation

◆ errorProp

std::shared_ptr<AstrometryTransform> lsst::jointcal::SimpleAstrometryMapping::errorProp
protected

Definition at line 110 of file SimpleAstrometryMapping.h.

◆ index

Eigen::Index lsst::jointcal::SimpleAstrometryMapping::index
protected

Definition at line 105 of file SimpleAstrometryMapping.h.

◆ lin

std::unique_ptr<AstrometryTransformLinear> lsst::jointcal::SimpleAstrometryMapping::lin
protected

Definition at line 113 of file SimpleAstrometryMapping.h.

◆ toBeFit

bool lsst::jointcal::SimpleAstrometryMapping::toBeFit
protected

Definition at line 104 of file SimpleAstrometryMapping.h.

◆ transform

std::shared_ptr<AstrometryTransform> lsst::jointcal::SimpleAstrometryMapping::transform
protected

Definition at line 108 of file SimpleAstrometryMapping.h.


The documentation for this class was generated from the following files:
std::vector::resize
T resize(T... args)
std::vector::size
T size(T... args)
lsst::jointcal::SimpleAstrometryMapping::index
Eigen::Index index
Definition: SimpleAstrometryMapping.h:105
lsst::jointcal::SimpleAstrometryMapping::transform
std::shared_ptr< AstrometryTransform > transform
Definition: SimpleAstrometryMapping.h:108
lsst::jointcal::SimpleAstrometryMapping::lin
std::unique_ptr< AstrometryTransformLinear > lin
Definition: SimpleAstrometryMapping.h:113
lsst::jointcal::SimpleAstrometryMapping::toBeFit
bool toBeFit
Definition: SimpleAstrometryMapping.h:104
std::size_t
lsst::jointcal::SimpleAstrometryMapping::errorProp
std::shared_ptr< AstrometryTransform > errorProp
Definition: SimpleAstrometryMapping.h:110
lsst::jointcal::SimpleAstrometryMapping::getNpar
std::size_t getNpar() const override
Number of parameters in total.
Definition: SimpleAstrometryMapping.h:61
lsst::jointcal::SimpleAstrometryMapping::transformPosAndErrors
void transformPosAndErrors(FatPoint const &where, FatPoint &outPoint) const override
The same as above but without the parameter derivatives (used to evaluate chi^2)
Definition: SimpleAstrometryMapping.cc:41