47 bool initFromWcs,
unsigned nNotFit,
unsigned order)
48 : _skyToTangentPlane(projectionHandler)
53 for (
auto i = ccdImageList.
cbegin(); i != ccdImageList.
cend(); ++i, ++count) {
55 if (count < nNotFit) {
73 while (
unsigned(pol.
getNpar()) > 2 * nObj) {
74 LOGLS_WARN(_log,
"Reducing polynomial order from " 75 << pol.
getOrder() <<
", due to too few sources (" << nObj
76 <<
" vs. " << pol.
getNpar() <<
" parameters)");
92 pol = pol * shiftAndNormalize.
inverted();
101 return findMapping(ccdImage);
105 if (whatToFit.
find(
"Distortions") == std::string::npos) {
106 LOGLS_ERROR(_log,
"AssignIndices was called and Distortions is *not* in whatToFit.");
109 unsigned index = firstIndex;
110 for (
auto i = _myMap.begin(); i != _myMap.end(); ++i) {
120 for (
auto &i : _myMap) {
127 for (
auto &i : _myMap) i.second->freezeErrorTransform();
132 for (
auto &i : _myMap) {
133 total += i.second->getNpar();
155 auto iwcToSkyMap = iwcToSkyWcs->getFrameDict()->getMapping(
"PIXELS",
"SKY");
156 auto skyFrame = iwcToSkyWcs->getFrameDict()->getFrame(
"SKY");
160 return std::make_shared<afw::geom::SkyWcs>(frameDict);
165 if (i == _myMap.end())
167 "SimpleAstrometryModel cannot find CcdImage " + ccdImage.
getName());
168 return i->second.get();
#define LOGLS_WARN(logger, message)
Log a warn-level message using an iostream-based interface.
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).
std::shared_ptr< AstrometryTransform > const getPixelToTangentPlane() const
std::string getName() const
Return the _name that identifies this ccdImage.
Mapping implementation for a polynomial transformation.
unsigned getNpar() const
Number of parameters in total.
const std::shared_ptr< AstrometryTransform const > getSkyToTangentPlane(CcdImage const &ccdImage) const override
the mapping of sky coordinates (i.e.
LSST DM logging module built on log4cxx.
std::shared_ptr< afw::geom::SkyWcs > makeSkyWcs(CcdImage const &ccdImage) const override
Make a SkyWcs that contains this model.
void setIndex(unsigned i)
rectangle with sides parallel to axes.
AstrometryTransformLinear normalizeCoordinatesTransform(const Frame &frame)
Returns the transformation that maps the input frame along both axes to [-1,1].
AngleUnit constexpr degrees
constant with units of degrees
A base class for image defects.
void addFrame(int iframe, Mapping const &map, Frame const &frame) override
Add a new Frame and an associated Mapping to this FrameSet so as to define a new coordinate system...
Frame is used to represent a coordinate system.
int getTotalParameters() const override
Return the total number of parameters in this model.
This one is the Tangent Plane (called gnomonic) projection (from celestial sphere to tangent plane) ...
T dynamic_pointer_cast(T... args)
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Point in an unspecified spherical coordinate system.
MeasuredStarList const & getCatalogForFit() const
Gets the catalog to be used for fitting, which may have been cleaned-up.
std::shared_ptr< SkyWcs > makeSkyWcs(daf::base::PropertySet &metadata, bool strip=false)
Construct a SkyWcs from FITS keywords.
Eigen::Matrix2d makeCdMatrix(lsst::geom::Angle const &scale, lsst::geom::Angle const &orientation=0 *lsst::geom::degrees, bool flipX=false)
Make a WCS CD matrix.
Reports invalid arguments.
virtual class needed in the abstraction of the distortion model
CcdImageKey getHashKey() const
Handler of an actual image from a single CCD.
#define LOG_GET(logger)
Returns a Log object associated with logger.
A FrameSet whose frames can be referenced by domain name.
unsigned assignIndices(std::string const &whatToFit, unsigned firstIndex) override
Positions the various parameter sets into the parameter vector, starting at firstIndex.
#define LOGLS_ERROR(logger, message)
Log a error-level message using an iostream-based interface.
void freezeErrorTransform() override
Frame const & getImageFrame() const
Frame in pixels.