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
SimpleAstrometryModel.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_SIMPLE_ASTROMETRY_MODEL_H
26 #define LSST_JOINTCAL_SIMPLE_ASTROMETRY_MODEL_H
27 
28 #include "memory"
29 
31 
36 #include <map>
37 
38 namespace lsst {
39 namespace jointcal {
40 
41 class CcdImage;
42 
43 /* We deal here with coordinate transforms which are fitted
44  and/or necessary to AstrometryFit. The classes SimpleAstrometryModel
45 and SimplePolyMapping implement a model where there is one
46 separate transfrom per CcdImage. One could chose other setups.
47 
48 */
49 
51 /* This modeling of distortions can even accommodate images set mixing instruments */
53 public:
55  SimpleAstrometryModel(CcdImageList const &ccdImageList,
57  unsigned nNotFit = 0, unsigned order = 3);
58 
64 
65  // The following routines are the interface to AstrometryFit
67  const AstrometryMapping *getMapping(CcdImage const &) const override;
68 
70  unsigned assignIndices(std::string const &whatToFit, unsigned firstIndex) override;
71 
72  // dispaches the offsets after a fit step into the actual locations of parameters
73  void offsetParams(Eigen::VectorXd const &delta) override;
74 
79  CcdImage const &ccdImage) const override {
80  return _skyToTangentPlane->getSkyToTangentPlane(ccdImage);
81  }
82 
84  void freezeErrorTransform() override;
85 
87  int getTotalParameters() const override;
88 
91 
93  std::shared_ptr<afw::geom::SkyWcs> makeSkyWcs(CcdImage const &ccdImage) const override;
94 
96 
97 private:
99  const std::shared_ptr<ProjectionHandler const> _skyToTangentPlane;
100 
102  AstrometryMapping *findMapping(CcdImage const &ccdImage) const override;
103 };
104 } // namespace jointcal
105 } // namespace lsst
106 
107 #endif // LSST_JOINTCAL_SIMPLE_ASTROMETRY_MODEL_H
AstrometryTransform const & getTransform(CcdImage const &ccdImage) const
Access to mappings.
SimpleAstrometryModel(CcdImageList const &ccdImageList, const std::shared_ptr< ProjectionHandler const > projectionHandler, bool initFromWCS, unsigned nNotFit=0, unsigned order=3)
Sky2TP is just a name, it can be anything.
const AstrometryMapping * getMapping(CcdImage const &) const override
Mapping associated to a given CcdImage.
void offsetParams(Eigen::VectorXd const &delta) override
Offset the parameters by the provided amounts (by -delta).
Interface class between AstrometryFit and an actual model for the Mapping (s) from pixels to some tan...
const std::shared_ptr< AstrometryTransform const > getSkyToTangentPlane(CcdImage const &ccdImage) const override
the mapping of sky coordinates (i.e.
SimpleAstrometryModel & operator=(SimpleAstrometryModel const &)=delete
STL class.
std::shared_ptr< afw::geom::SkyWcs > makeSkyWcs(CcdImage const &ccdImage) const override
Make a SkyWcs that contains this model.
A base class for image defects.
this is the model used to fit independent CCDs, meaning that there is no instrument model...
int getTotalParameters() const override
Return the total number of parameters in this model.
a virtual (interface) class for geometric transformations.
virtual class needed in the abstraction of the distortion model
Handler of an actual image from a single CCD.
Definition: CcdImage.h:64
unsigned assignIndices(std::string const &whatToFit, unsigned firstIndex) override
Positions the various parameter sets into the parameter vector, starting at firstIndex.