LSSTApplications  16.0-10-g0ee56ad+5,16.0-11-ga33d1f2+5,16.0-12-g3ef5c14+3,16.0-12-g71e5ef5+18,16.0-12-gbdf3636+3,16.0-13-g118c103+3,16.0-13-g8f68b0a+3,16.0-15-gbf5c1cb+4,16.0-16-gfd17674+3,16.0-17-g7c01f5c+3,16.0-18-g0a50484+1,16.0-20-ga20f992+8,16.0-21-g0e05fd4+6,16.0-21-g15e2d33+4,16.0-22-g62d8060+4,16.0-22-g847a80f+4,16.0-25-gf00d9b8+1,16.0-28-g3990c221+4,16.0-3-gf928089+3,16.0-32-g88a4f23+5,16.0-34-gd7987ad+3,16.0-37-gc7333cb+2,16.0-4-g10fc685+2,16.0-4-g18f3627+26,16.0-4-g5f3a788+26,16.0-5-gaf5c3d7+4,16.0-5-gcc1f4bb+1,16.0-6-g3b92700+4,16.0-6-g4412fcd+3,16.0-6-g7235603+4,16.0-69-g2562ce1b+2,16.0-8-g14ebd58+4,16.0-8-g2df868b+1,16.0-8-g4cec79c+6,16.0-8-gadf6c7a+1,16.0-8-gfc7ad86,16.0-82-g59ec2a54a+1,16.0-9-g5400cdc+2,16.0-9-ge6233d7+5,master-g2880f2d8cf+3,v17.0.rc1
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/jointcal/CcdImage.h"
34 
35 namespace lsst {
36 namespace jointcal {
37 
38 class CcdImage;
39 class AstrometryTransform;
40 
43 /* For an implementation example, see SimplePolyModel, and the comments at
44 the top of simplepolymodel.h */
46 public:
48  int getNpar(CcdImage const &ccdImage) const { return findMapping(ccdImage)->getNpar(); }
49 
51  virtual const AstrometryMapping *getMapping(CcdImage const &) const = 0;
52 
55  virtual unsigned assignIndices(std::string const &whatToFit, unsigned firstIndex) = 0;
56 
64  virtual void offsetParams(Eigen::VectorXd const &delta) = 0;
65 
67 
70  CcdImage const &ccdImage) const = 0;
71 
79  virtual std::shared_ptr<afw::geom::SkyWcs> makeSkyWcs(CcdImage const &ccdImage) const = 0;
80 
82  virtual void freezeErrorTransform() = 0;
83 
85  virtual int getTotalParameters() const = 0;
86 
87  virtual ~AstrometryModel(){};
88 
98  bool validate(CcdImageList const &ccdImageList) const { return true; }
99 
100 protected:
102  virtual AstrometryMapping *findMapping(CcdImage const &ccdImage) const = 0;
103 };
104 } // namespace jointcal
105 } // namespace lsst
106 
107 #endif // LSST_JOINTCAL_ASTROMETRY_MODEL_H
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).
virtual unsigned assignIndices(std::string const &whatToFit, unsigned firstIndex)=0
Assign indices to parameters involved in mappings, starting at firstIndex.
Interface class between AstrometryFit and an actual model for the Mapping (s) from pixels to some tan...
STL class.
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 int getTotalParameters() const =0
Return the total number of parameters in this model.
virtual void freezeErrorTransform()=0
int getNpar(CcdImage const &ccdImage) const
Return the number of parameters in the mapping of CcdImage.
bool validate(CcdImageList const &ccdImageList) const
Return true if this is a "reasonable" model.
virtual unsigned getNpar() const =0
Number of parameters in total.
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