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
AstrometryModel.h
Go to the documentation of this file.
1 // -*- LSST-C++ -*-
2 /*
3  * This file is part of jointcal.
4  *
5  * Developed for the LSST Data Management System.
6  * This product includes software developed by the LSST Project
7  * (https://www.lsst.org).
8  * See the COPYRIGHT file at the top-level directory of this distribution
9  * for details of code ownership.
10  *
11  * This program is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation, either version 3 of the License, or
14  * (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program. If not, see <https://www.gnu.org/licenses/>.
23  */
24 
25 #ifndef LSST_JOINTCAL_ASTROMETRY_MODEL_H
26 #define LSST_JOINTCAL_ASTROMETRY_MODEL_H
27 
28 #include "memory"
29 
30 #include "lsst/log/Log.h"
31 
32 #include "lsst/jointcal/CcdImage.h"
36 
37 namespace lsst {
38 namespace jointcal {
39 
40 class CcdImage;
41 class AstrometryTransform;
42 
50 public:
52 
54  std::size_t getNpar(CcdImage const &ccdImage) const { return findMapping(ccdImage)->getNpar(); }
55 
57  virtual const AstrometryMapping *getMapping(CcdImage const &) const = 0;
58 
61  virtual Eigen::Index assignIndices(std::string const &whatToFit, Eigen::Index firstIndex) = 0;
62 
70  virtual void offsetParams(Eigen::VectorXd const &delta) = 0;
71 
73 
76  CcdImage const &ccdImage) const = 0;
77 
85  virtual std::shared_ptr<afw::geom::SkyWcs> makeSkyWcs(CcdImage const &ccdImage) const = 0;
86 
88  virtual void freezeErrorTransform() = 0;
89 
91  virtual std::size_t getTotalParameters() const = 0;
92 
93  virtual ~AstrometryModel(){};
94 
103  bool validate(CcdImageList const &ccdImageList, int ndof) const;
104 
105 protected:
108 
110  virtual AstrometryMapping *findMapping(CcdImage const &ccdImage) const = 0;
111 };
112 } // namespace jointcal
113 } // namespace lsst
114 
115 #endif // LSST_JOINTCAL_ASTROMETRY_MODEL_H
std::size_t getNpar(CcdImage const &ccdImage) const
Return the number of parameters in the mapping of CcdImage.
virtual Eigen::Index assignIndices(std::string const &whatToFit, Eigen::Index firstIndex)=0
Assign indices to parameters involved in mappings, starting at firstIndex.
#define LOG_LOGGER
Definition: Log.h:703
virtual std::shared_ptr< afw::geom::SkyWcs > makeSkyWcs(CcdImage const &ccdImage) const =0
Make a SkyWcs that contains this model.
virtual void offsetParams(Eigen::VectorXd const &delta)=0
Offset the parameters by the provided amounts (by -delta).
LOG_LOGGER _log
lsst.logging instance, to be created by a subclass so that messages have consistent name...
Interface between AstrometryFit and the combinations of Mappings from pixels to some tangent plane (a...
STL class.
LSST DM logging module built on log4cxx.
virtual AstrometryMapping * findMapping(CcdImage const &ccdImage) const =0
Return a pointer to the mapping associated with this ccdImage.
virtual const AstrometryMapping * getMapping(CcdImage const &) const =0
Mapping associated to a given CcdImage.
A base class for image defects.
virtual void freezeErrorTransform()=0
bool validate(CcdImageList const &ccdImageList, int ndof) const
Return true if this is a "reasonable" model.
virtual class needed in the abstraction of the distortion model
virtual const std::shared_ptr< AstrometryTransform const > getSkyToTangentPlane(CcdImage const &ccdImage) const =0
The transformation used to project the positions of FittedStars.
Handler of an actual image from a single CCD.
Definition: CcdImage.h:64
virtual std::size_t getNpar() const =0
Number of parameters in total.
virtual std::size_t getTotalParameters() const =0
Return the total number of parameters in this model.