lsst.jointcal  master-gc5b79683b0+2
SimplePolyModel.h
Go to the documentation of this file.
1 // -*- LSST-C++ -*-
2 #ifndef LSST_JOINTCAL_SIMPLE_POLY_MODEL_H
3 #define LSST_JOINTCAL_SIMPLE_POLY_MODEL_H
4 
5 #include "memory"
6 
8 
10 #include "lsst/jointcal/Gtransfo.h"
13 #include <map>
14 
15 namespace lsst {
16 namespace jointcal {
17 
18 class CcdImage;
19 
20 /* We deal here with coordinate transforms which are fitted
21  and/or necessary to AstrometryFit. The classes SimplePolyModel
22 and SimplePolyMapping implement a model where there is one
23 separate transfrom per CcdImage. One could chose other setups.
24 
25 */
26 
28 /* This modeling of distortions can even accommodate images set mixing instruments */
30  typedef std::map<const CcdImage *, std::unique_ptr<SimpleGtransfoMapping>> mapType;
31  mapType _myMap;
32  const ProjectionHandler *_sky2TP;
33 
34 public:
37  bool initFromWCS, unsigned nNotFit = 0, unsigned degree = 3);
38 
40  SimplePolyModel(SimplePolyModel const &) = delete;
41  SimplePolyModel(SimplePolyModel &&) = delete;
42  SimplePolyModel &operator=(SimplePolyModel const &) = delete;
44 
45  // The following routines are the interface to AstrometryFit
47  const Mapping *getMapping(CcdImage const &) const;
48 
50  unsigned assignIndices(unsigned firstIndex, std::string const &whatToFit);
51 
52  // dispaches the offsets after a fit step into the actual locations of parameters
53  void offsetParams(Eigen::VectorXd const &delta);
54 
58  const Gtransfo *getSky2TP(CcdImage const &ccdImage) const { return _sky2TP->getSky2TP(ccdImage); }
59 
61  virtual void freezeErrorScales();
62 
64  Gtransfo const &getTransfo(CcdImage const &ccdImage) const;
65 
66  std::shared_ptr<TanSipPix2RaDec> produceSipWcs(CcdImage const &ccdImage) const;
67 
69 };
70 } // namespace jointcal
71 } // namespace lsst
72 
73 #endif // LSST_JOINTCAL_SIMPLE_POLY_MODEL_H
this is the model used to fit independent CCDs, meaning that there is no instrument model...
virtual class needed in the abstraction of the distortion model
Definition: Mapping.h:15
const Gtransfo * getSky2TP(CcdImage const &ccdImage) const
the mapping of sky coordinates (i.e.
Interface class between AstrometryFit and an actual model for the Mapping (s) from pixels to some tan...
virtual const Gtransfo * getSky2TP(const CcdImage &ccdImage) const =0
SimplePolyModel & operator=(SimplePolyModel const &)=delete
Gtransfo const & getTransfo(CcdImage const &ccdImage) const
Access to mappings.
unsigned assignIndices(unsigned firstIndex, std::string const &whatToFit)
Positions the various parameter sets into the parameter vector, starting at firstIndex.
Class for a simple mapping implementing a generic Gtransfo.
Definition: Associations.h:24
SimplePolyModel(CcdImageList const &ccdImageList, ProjectionHandler const *projectionHandler, bool initFromWCS, unsigned nNotFit=0, unsigned degree=3)
Sky2TP is just a name, it can be anything.
This is a virtual class that allows a lot of freedom in the choice of the projection from "Sky" (wher...
void offsetParams(Eigen::VectorXd const &delta)
Offset the parameters by the provided amounts.
const Mapping * getMapping(CcdImage const &) const
Mapping associated to a given CcdImage.
a virtual (interface) class for geometric transformations.
Definition: Gtransfo.h:39
std::shared_ptr< TanSipPix2RaDec > produceSipWcs(CcdImage const &ccdImage) const
Cook up a SIP WCS.
std::list< std::shared_ptr< CcdImage > > CcdImageList
Definition: CcdImage.h:23
Handler of an actual image from a single CCD.
Definition: CcdImage.h:34