LSSTApplications  19.0.0-14-gb0260a2+72efe9b372,20.0.0+7927753e06,20.0.0+8829bf0056,20.0.0+995114c5d2,20.0.0+b6f4b2abd1,20.0.0+bddc4f4cbe,20.0.0-1-g253301a+8829bf0056,20.0.0-1-g2b7511a+0d71a2d77f,20.0.0-1-g5b95a8c+7461dd0434,20.0.0-12-g321c96ea+23efe4bbff,20.0.0-16-gfab17e72e+fdf35455f6,20.0.0-2-g0070d88+ba3ffc8f0b,20.0.0-2-g4dae9ad+ee58a624b3,20.0.0-2-g61b8584+5d3db074ba,20.0.0-2-gb780d76+d529cf1a41,20.0.0-2-ged6426c+226a441f5f,20.0.0-2-gf072044+8829bf0056,20.0.0-2-gf1f7952+ee58a624b3,20.0.0-20-geae50cf+e37fec0aee,20.0.0-25-g3dcad98+544a109665,20.0.0-25-g5eafb0f+ee58a624b3,20.0.0-27-g64178ef+f1f297b00a,20.0.0-3-g4cc78c6+e0676b0dc8,20.0.0-3-g8f21e14+4fd2c12c9a,20.0.0-3-gbd60e8c+187b78b4b8,20.0.0-3-gbecbe05+48431fa087,20.0.0-38-ge4adf513+a12e1f8e37,20.0.0-4-g97dc21a+544a109665,20.0.0-4-gb4befbc+087873070b,20.0.0-4-gf910f65+5d3db074ba,20.0.0-5-gdfe0fee+199202a608,20.0.0-5-gfbfe500+d529cf1a41,20.0.0-6-g64f541c+d529cf1a41,20.0.0-6-g9a5b7a1+a1cd37312e,20.0.0-68-ga3f3dda+5fca18c6a4,20.0.0-9-g4aef684+e18322736b,w.2020.45
LSSTDataManagementBasePackage
AstrometryTransform.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_TRANSFORM_H
26 #define LSST_JOINTCAL_ASTROMETRY_TRANSFORM_H
27 
28 #include <iostream>
29 #include <memory>
30 #include <string>
31 #include <sstream>
32 #include <vector>
33 
34 #include "Eigen/Core"
35 
36 #include "lsst/pex/exceptions.h"
37 #include "lsst/afw/geom/SkyWcs.h"
38 #include "lsst/jointcal/FatPoint.h"
39 #include "lsst/jointcal/Frame.h"
40 
42 
43 namespace lsst {
44 namespace jointcal {
45 
46 class StarMatchList;
47 class Frame;
48 class AstrometryTransformLinear;
49 
51 
66 public:
68  virtual void apply(const double xIn, const double yIn, double &xOut, double &yOut) const = 0;
69 
71  void apply(Point const &in, Point &out) const { apply(in.x, in.y, out.x, out.y); }
72 
75  Point apply(Point const &in) const {
76  double xout, yout;
77  apply(in.x, in.y, xout, yout);
78  return Point(xout, yout);
79  }
80 
89  Frame apply(Frame const &inputframe, bool inscribed) const;
90 
92  virtual void print(std::ostream &out) const = 0;
93 
96  print(s);
97  return s.str();
98  }
99 
101 
105  virtual double fit(StarMatchList const &starMatchList) = 0;
106 
107  void transformStar(FatPoint &in) const { transformPosAndErrors(in, in); }
108 
110  virtual double getJacobian(Point const &point) const { return getJacobian(point.x, point.y); }
111 
114 
132 
134  virtual double getJacobian(const double x, const double y) const;
135 
141  virtual void computeDerivative(Point const &where, AstrometryTransformLinear &derivative,
142  const double step = 0.01) const;
143 
145  virtual AstrometryTransformLinear linearApproximation(Point const &where, const double step = 0.01) const;
146 
147  virtual void transformPosAndErrors(const FatPoint &in, FatPoint &out) const;
148 
150  virtual void transformErrors(Point const &where, const double *vIn, double *vOut) const;
151 
153 
155  virtual std::unique_ptr<AstrometryTransform> inverseTransform(const double precision,
156  const Frame &region) const;
157 
159  void getParams(double *params) const;
160 
162  void offsetParams(Eigen::VectorXd const &delta);
163 
165  virtual double paramRef(Eigen::Index const i) const;
166 
168  virtual double &paramRef(Eigen::Index const i);
169 
172  virtual void paramDerivatives(Point const &where, double *dx, double *dy) const;
173 
175 
177  virtual std::unique_ptr<AstrometryTransform> roughInverse(const Frame &region) const;
178 
180  virtual std::size_t getNpar() const { return 0; }
181 
190  throw std::logic_error("toAstMap is not implemented for this class.");
191  }
192 
193  void write(const std::string &fileName) const;
194 
195  virtual void write(std::ostream &stream) const;
196 
197  virtual ~AstrometryTransform(){};
198 };
199 
200 std::ostream &operator<<(std::ostream &stream, AstrometryTransform const &transform);
201 
213 std::unique_ptr<AstrometryTransform> compose(AstrometryTransform const &left,
214  AstrometryTransform const &right);
215 
216 /*=============================================================*/
218 
220 public:
223 
225  void apply(const double xIn, const double yIn, double &xOut, double &yOut) const override {
226  xOut = xIn;
227  yOut = yIn;
228  } // to speed up
229 
230  double fit(StarMatchList const &starMatchList) override {
231  throw pexExcept::TypeError(
232  "AstrometryTransformIdentity is the identity transformation: it cannot be fit to anything.");
233  }
234 
237  return right.clone();
238  }
239 
240  void print(std::ostream &out) const override { out << "x' = x\ny' = y" << std::endl; }
241 
242  std::size_t getNpar() const override { return 0; }
243 
246  }
247 
248  void computeDerivative(Point const &where, AstrometryTransformLinear &derivative,
249  const double step = 0.01) const override;
250 
253  const double step = 0.01) const override;
254 
256  std::shared_ptr<ast::Mapping> toAstMap(jointcal::Frame const &domain) const override;
257 
258  void write(std::ostream &s) const override;
259 
260  void read(std::istream &s);
261 
262  // ClassDef(AstrometryTransformIdentity,1)
263 };
264 
271 std::unique_ptr<AstrometryTransform> compose(AstrometryTransform const &left,
272  AstrometryTransformIdentity const &right);
273 
275 bool isIntegerShift(const AstrometryTransform *transform);
276 
277 /*==================== AstrometryTransformPolynomial =======================*/
278 
281 public:
288 
291  std::size_t nPoint = 1000);
292 
302  jointcal::Frame const &domain, std::size_t order, std::size_t nSteps = 50);
303 
305  void setOrder(std::size_t order);
307  std::size_t getOrder() const { return _order; }
308 
309  using AstrometryTransform::apply; // to unhide AstrometryTransform::apply(Point const &)
310 
311  void apply(const double xIn, const double yIn, double &xOut, double &yOut) const override;
312 
314  void computeDerivative(Point const &where, AstrometryTransformLinear &derivative,
315  const double step = 0.01) const override;
316 
318  virtual void transformPosAndErrors(const FatPoint &in, FatPoint &out) const override;
319 
321  std::size_t getNpar() const override { return 2 * _nterms; }
322 
324  void print(std::ostream &out) const override;
325 
327  double fit(StarMatchList const &starMatchList) override;
328 
331 
334 
337 
338  using AstrometryTransform::composeAndReduce; // to unhide
339  // AstrometryTransform::composeAndReduce(AstrometryTransform
340  // const &)
343 
346  }
347 
352  double getCoefficient(std::size_t powX, std::size_t powY, std::size_t whichCoord) const;
353  double &getCoefficient(std::size_t powX, std::size_t powY, std::size_t whichCoord);
356  double coeffOrZero(std::size_t powX, std::size_t powY, std::size_t whichCoord) const;
358 
359  double determinant() const;
360 
362  double paramRef(Eigen::Index const i) const override;
363 
365  double &paramRef(Eigen::Index const i) override;
366 
369  void paramDerivatives(Point const &where, double *dx, double *dy) const override;
370 
372  std::shared_ptr<ast::Mapping> toAstMap(jointcal::Frame const &domain) const override;
373 
374  void write(std::ostream &s) const override;
375  void read(std::istream &s);
376 
377 private:
378  double computeFit(StarMatchList const &starMatchList, AstrometryTransform const &shiftToCenter,
379  const bool useErrors);
380 
381  std::size_t _order; // The highest sum of exponents of the largest monomial.
382  std::size_t _nterms; // number of parameters per coordinate
383  std::vector<double> _coeffs; // the actual coefficients
384  // both polynomials in a single vector to speed up allocation and copies
385 
386  /* use std::vector rather than double * to avoid
387  writing copy constructor and "operator =".
388  Vect would work as well but introduces a dependence
389  that can be avoided */
390 
391  /* This routine take a double * for the vector because the array can
392  then be allocated on the execution stack, which speeds thing
393  up. However this uses Variable Length Array (VLA) which is not
394  part of C++, but gcc implements it. */
395  void computeMonomials(double xIn, double yIn, double *monomial) const;
396 
402  ndarray::Array<double, 2, 2> toAstPolyMapCoefficients() const;
403 };
404 
417  Frame const &domain,
418  double const precision,
419  std::size_t maxOrder = 9,
420  std::size_t nSteps = 50);
421 
422 AstrometryTransformLinear normalizeCoordinatesTransform(const Frame &frame);
423 
424 /*=============================================================*/
427 public:
428  using AstrometryTransformPolynomial::apply; // to unhide AstrometryTransform::apply(Point const &)
429 
432 
435 
438 
441 
442  void print(std::ostream &out) const override;
443 
444  // useful? double jacobian(const double x, const double y) const { return determinant();}
445 
447  void computeDerivative(Point const &where, AstrometryTransformLinear &derivative,
448  const double step = 0.01) const override;
451  const double step = 0.01) const override;
452 
453  // void print(std::ostream &out) const;
454 
455  // double fit(StarMatchList const &starMatchList);
456 
458  AstrometryTransformLinear(const double ox, const double oy, const double aa11, const double aa12,
459  const double aa21, const double aa22);
460 
463 
466  }
467 
469  const Frame &region) const override;
470 
471  double A11() const { return getCoefficient(1, 0, 0); }
472  double A12() const { return getCoefficient(0, 1, 0); }
473  double A21() const { return getCoefficient(1, 0, 1); }
474  double A22() const { return getCoefficient(0, 1, 1); }
475  double Dx() const { return getCoefficient(0, 0, 0); }
476  double Dy() const { return getCoefficient(0, 0, 1); }
477 
478 protected:
479  double &a11() { return getCoefficient(1, 0, 0); }
480  double &a12() { return getCoefficient(0, 1, 0); }
481  double &a21() { return getCoefficient(1, 0, 1); }
482  double &a22() { return getCoefficient(0, 1, 1); }
483  double &dx() { return getCoefficient(0, 0, 0); }
484  double &dy() { return getCoefficient(0, 0, 1); }
485 
486  friend class AstrometryTransform;
487  friend class AstrometryTransformIdentity; // for AstrometryTransform::Derivative
488  friend class AstrometryTransformPolynomial; // // for AstrometryTransform::Derivative
489 
490 private:
491  void setOrder(std::size_t order); // to hide AstrometryTransformPolynomial::setOrder
492 };
493 
494 /*=============================================================*/
495 
498 public:
499  using AstrometryTransform::apply; // to unhide AstrometryTransform::apply(Point const &)
501  AstrometryTransformLinearShift(double ox = 0., double oy = 0.)
502  : AstrometryTransformLinear(ox, oy, 1., 0., 0., 1.) {}
504  : AstrometryTransformLinear(point.x, point.y, 1., 0., 0., 1.){};
505  double fit(StarMatchList const &starMatchList);
506 
507  std::size_t getNpar() const { return 2; }
508 };
509 
510 /*=============================================================*/
513 public:
514  using AstrometryTransform::apply; // to unhide apply(const Point&)
515 
517  AstrometryTransformLinearRot(const double angleRad, const Point *center = nullptr,
518  const double scaleFactor = 1.0);
519  double fit(StarMatchList const &starMatchList);
520 
521  std::size_t getNpar() const { return 4; }
522 };
523 
524 /*=============================================================*/
525 
528 public:
529  using AstrometryTransform::apply; // to unhide apply(const Point&)
532  : AstrometryTransformLinear(0.0, 0.0, scale, 0., 0., scale){};
534  AstrometryTransformLinearScale(const double scaleX, const double scaleY)
535  : AstrometryTransformLinear(0.0, 0.0, scaleX, 0., 0., scaleY){};
536 
537  std::size_t getNpar() const { return 2; }
538 };
539 
551 public:
553 
555 
556  // Input is x, y pixels; output is ICRS RA, Dec in degrees
557  void apply(const double xIn, const double yIn, double &xOut, double &yOut) const override;
558 
559  void print(std::ostream &out) const override;
560 
562  double fit(const StarMatchList &starMatchList) override;
563 
565 
566  std::shared_ptr<afw::geom::SkyWcs> getSkyWcs() const { return _skyWcs; }
567 
568 private:
570 };
571 
572 /*==================WCS's transform's =====================================*/
573 
575 public:
576  using AstrometryTransform::apply; // to unhide apply(const Point&)
577 
578  BaseTanWcs(AstrometryTransformLinear const &pixToTan, Point const &tangentPoint,
579  const AstrometryTransformPolynomial *corrections = nullptr);
580 
581  BaseTanWcs(const BaseTanWcs &original);
582 
583  void operator=(const BaseTanWcs &original);
584 
586  void apply(const double xIn, const double yIn, double &xOut, double &yOut) const;
587 
589  Point getTangentPoint() const;
590 
593 
595  const AstrometryTransformPolynomial *getCorr() const { return corr.get(); }
596 
599 
601  Point getCrPix() const;
602 
606 
608  virtual void pixToTangentPlane(double xPixel, double yPixel, double &xTangentPlane,
609  double &yTangentPlane) const = 0;
610 
611  ~BaseTanWcs();
612 
613 protected:
614  AstrometryTransformLinear linPixelToTan; // transform from pixels to tangent plane (degrees)
615  // a linear approximation centered at the pixel and sky origins
617  double ra0, dec0; // sky origin (radians)
618  double cos0, sin0; // cos(dec0), sin(dec0)
619 };
620 
621 class TanRaDecToPixel; // the inverse of TanPixelToRaDec.
622 
627 class TanPixelToRaDec : public BaseTanWcs {
628 public:
629  using AstrometryTransform::apply; // to unhide apply(const Point&)
632  TanPixelToRaDec(AstrometryTransformLinear const &pixToTan, Point const &tangentPoint,
633  const AstrometryTransformPolynomial *corrections = nullptr);
634 
637 
639  virtual void pixToTangentPlane(double xPixel, double yPixel, double &xTangentPlane,
640  double &yTangentPlane) const;
641 
642  TanPixelToRaDec();
643 
646 
647  using AstrometryTransform::composeAndReduce; // to unhide
648  // AstrometryTransform::composeAndReduce(AstrometryTransform
649  // const &)
652 
654  TanRaDecToPixel inverted() const;
655 
658 
661  std::unique_ptr<AstrometryTransform> inverseTransform(const double precision, const Frame &region) const;
662 
664 
665  void print(std::ostream &out) const;
666 
668  double fit(StarMatchList const &starMatchList);
669 };
670 
673 public:
676  TanSipPixelToRaDec(AstrometryTransformLinear const &pixToTan, Point const &tangentPoint,
677  const AstrometryTransformPolynomial *corrections = nullptr);
678 
681 
683  virtual void pixToTangentPlane(double xPixel, double yPixel, double &xTangentPlane,
684  double &yTangentPlane) const;
685 
687 
690  std::unique_ptr<AstrometryTransform> inverseTransform(const double precision, const Frame &region) const;
691 
693 
694  void print(std::ostream &out) const;
695 
697  double fit(StarMatchList const &starMatchList);
698 };
699 
701 
708 public:
709  using AstrometryTransform::apply; // to unhide apply(const Point&)
710 
712  TanRaDecToPixel(AstrometryTransformLinear const &tan2Pix, Point const &tangentPoint);
713 
715  TanRaDecToPixel();
716 
719 
721  void setTangentPoint(Point const &tangentPoint);
722 
724  Point getTangentPoint() const;
725 
727  void apply(const double xIn, const double yIn, double &xOut, double &yOut) const;
728 
730  void transformPosAndErrors(const FatPoint &in, FatPoint &out) const;
731 
733  TanPixelToRaDec inverted() const;
734 
737 
739  std::unique_ptr<AstrometryTransform> inverseTransform(const double precision, const Frame &region) const;
740 
741  void print(std::ostream &out) const;
742 
744 
745  double fit(StarMatchList const &starMatchList);
746 
747 private:
748  double ra0, dec0; // tangent point (radians)
749  double cos0, sin0;
750  AstrometryTransformLinear linTan2Pix; // tangent plane (probably degrees) to pixels
751 };
752 
754 typedef void(AstrometryTransformFun)(const double, const double, double &, double &, const void *);
755 
761 public:
762  using AstrometryTransform::apply; // to unhide apply(const Point&)
763 
765  UserTransform(AstrometryTransformFun &fun, const void *userData);
766 
767  void apply(const double xIn, const double yIn, double &xOut, double &yOut) const;
768 
769  void print(std::ostream &out) const;
770 
771  double fit(StarMatchList const &starMatchList);
772 
774 
775 private:
776  AstrometryTransformFun *_userFun;
777  const void *_userData;
778 };
779 
784 } // namespace jointcal
785 } // namespace lsst
786 
787 #endif // LSST_JOINTCAL_ASTROMETRY_TRANSFORM_H
lsst::jointcal::AstrometryTransformIdentity::AstrometryTransformIdentity
AstrometryTransformIdentity()
constructor.
Definition: AstrometryTransform.h:222
lsst::jointcal::AstrometryTransformPolynomial::write
void write(std::ostream &s) const override
Definition: AstrometryTransform.cc:1105
y
int y
Definition: SpanSet.cc:49
lsst::jointcal::AstrometryTransform::apply
void apply(Point const &in, Point &out) const
applies the tranfo to in and writes into out. Is indeed virtual.
Definition: AstrometryTransform.h:71
lsst::jointcal::BaseTanWcs::corr
std::unique_ptr< AstrometryTransformPolynomial > corr
Definition: AstrometryTransform.h:616
lsst::jointcal::BaseTanWcs::linPixelToTan
AstrometryTransformLinear linPixelToTan
Definition: AstrometryTransform.h:614
lsst::jointcal::isIntegerShift
bool isIntegerShift(const AstrometryTransform *transform)
Shorthand test to tell if a transform is a simple integer shift.
Definition: AstrometryTransform.cc:56
lsst::jointcal::AstrometryTransformIdentity::toAstMap
std::shared_ptr< ast::Mapping > toAstMap(jointcal::Frame const &domain) const override
Create an equivalent AST mapping for this transformation, including an analytic inverse if possible.
Definition: AstrometryTransform.cc:450
lsst::jointcal::AstrometryTransformLinear::Dx
double Dx() const
Definition: AstrometryTransform.h:475
lsst::jointcal::AstrometryTransformLinear::AstrometryTransformLinear
AstrometryTransformLinear(AstrometryTransformIdentity const &)
Handy converter:
Definition: AstrometryTransform.h:462
lsst::jointcal::TanSipPixelToRaDec
Implements the (forward) SIP distorsion scheme.
Definition: AstrometryTransform.h:672
lsst::jointcal::UserTransform::fit
double fit(StarMatchList const &starMatchList)
fits a transform to a std::list of Point pairs (p1,p2, the Point fields in StarMatch).
Definition: AstrometryTransform.cc:1799
Frame.h
lsst::jointcal::BaseTanWcs::pixToTangentPlane
virtual void pixToTangentPlane(double xPixel, double yPixel, double &xTangentPlane, double &yTangentPlane) const =0
Transform from pixels to tangent plane (degrees)
lsst::jointcal::AstrometryTransformPolynomial::operator*
AstrometryTransformPolynomial operator*(AstrometryTransformPolynomial const &right) const
Composition (internal stuff in quadruple precision)
Definition: AstrometryTransform.cc:1053
std::string
STL class.
std::shared_ptr< ast::Mapping >
lsst::jointcal::AstrometryTransformIdentity::clone
std::unique_ptr< AstrometryTransform > clone() const override
returns a copy (allocated by new) of the transformation.
Definition: AstrometryTransform.h:244
lsst::jointcal::BaseTanWcs::apply
void apply(const double xIn, const double yIn, double &xOut, double &yOut) const
Transform pixels to ICRS RA, Dec in degrees.
Definition: AstrometryTransform.cc:1426
lsst::jointcal::AstrometryTransformLinear::operator*
AstrometryTransformLinear operator*(AstrometryTransformLinear const &right) const
enables to combine linear tranformations: T1=T2*T3 is legal.
Definition: AstrometryTransform.cc:1237
lsst::jointcal::AstrometryTransform::fit
virtual double fit(StarMatchList const &starMatchList)=0
fits a transform to a std::list of Point pairs (p1,p2, the Point fields in StarMatch).
lsst::jointcal::TanRaDecToPixel::inverted
TanPixelToRaDec inverted() const
exact typed inverse:
Definition: AstrometryTransform.cc:1756
lsst::jointcal::TanRaDecToPixel::roughInverse
std::unique_ptr< AstrometryTransform > roughInverse(const Frame &region) const
Overload the "generic routine" (available for all AstrometryTransform types.
Definition: AstrometryTransform.cc:1766
lsst::jointcal::AstrometryTransformLinear::A21
double A21() const
Definition: AstrometryTransform.h:473
lsst::jointcal::AstrometryTransformLinearScale::AstrometryTransformLinearScale
AstrometryTransformLinearScale(const double scaleX, const double scaleY)
Definition: AstrometryTransform.h:534
lsst::jointcal::TanRaDecToPixel::apply
void apply(const double xIn, const double yIn, double &xOut, double &yOut) const
Definition: AstrometryTransform.cc:1737
lsst::jointcal::AstrometryTransformLinear
implements the linear transformations (6 real coefficients).
Definition: AstrometryTransform.h:426
lsst::jointcal::AstrometryTransformLinear::A12
double A12() const
Definition: AstrometryTransform.h:472
lsst::jointcal::AstrometryTransformLinear::linearApproximation
AstrometryTransformLinear linearApproximation(Point const &where, const double step=0.01) const override
linear (local) approximation.
Definition: AstrometryTransform.cc:1259
lsst::jointcal::BaseTanWcs::getTangentPoint
Point getTangentPoint() const
Get the sky origin (CRVAL in FITS WCS terminology) in degrees.
Definition: AstrometryTransform.cc:1452
lsst::jointcal::AstrometryTransformLinearShift::AstrometryTransformLinearShift
AstrometryTransformLinearShift(double ox=0., double oy=0.)
Add ox and oy.
Definition: AstrometryTransform.h:501
std::vector< double >
lsst::jointcal::AstrometryTransformLinearShift::getNpar
std::size_t getNpar() const
total number of parameters
Definition: AstrometryTransform.h:507
lsst::jointcal::AstrometryTransformFun
void() AstrometryTransformFun(const double, const double, double &, double &, const void *)
signature of the user-provided routine that actually does the coordinate transform for UserTransform.
Definition: AstrometryTransform.h:754
lsst::jointcal::AstrometryTransformPolynomial::clone
std::unique_ptr< AstrometryTransform > clone() const override
returns a copy (allocated by new) of the transformation.
Definition: AstrometryTransform.h:344
lsst::jointcal::TanRaDecToPixel
This one is the Tangent Plane (called gnomonic) projection (from celestial sphere to tangent plane)
Definition: AstrometryTransform.h:707
lsst::jointcal::astrometryTransformRead
std::unique_ptr< AstrometryTransform > astrometryTransformRead(const std::string &fileName)
The virtual constructor from a file.
Definition: AstrometryTransform.cc:1811
lsst::jointcal::TanSipPixelToRaDec::getPixelToTangentPlane
AstrometryTransformPolynomial getPixelToTangentPlane() const
the transformation from pixels to tangent plane (degrees)
Definition: AstrometryTransform.cc:1612
std::stringstream
STL class.
lsst::jointcal::AstrometryTransformLinear::clone
std::unique_ptr< AstrometryTransform > clone() const override
returns a copy (allocated by new) of the transformation.
Definition: AstrometryTransform.h:464
lsst::jointcal::UserTransform::clone
std::unique_ptr< AstrometryTransform > clone() const
returns a copy (allocated by new) of the transformation.
Definition: AstrometryTransform.cc:1805
lsst::jointcal::TanPixelToRaDec::print
void print(std::ostream &out) const
prints the transform coefficients to stream.
Definition: AstrometryTransform.cc:1564
lsst::jointcal::AstrometryTransformLinearScale
just here to provide specialized constructors. AstrometryTransformLinear fit routine.
Definition: AstrometryTransform.h:527
lsst::jointcal::TanRaDecToPixel::print
void print(std::ostream &out) const
prints the transform coefficients to stream.
Definition: AstrometryTransform.cc:1760
lsst::jointcal::TanPixelToRaDec::clone
std::unique_ptr< AstrometryTransform > clone() const
returns a copy (allocated by new) of the transformation.
Definition: AstrometryTransform.cc:1559
lsst::jointcal::AstrometryTransformIdentity::computeDerivative
void computeDerivative(Point const &where, AstrometryTransformLinear &derivative, const double step=0.01) const override
Computes the local Derivative of a transform, w.r.t.
Definition: AstrometryTransform.cc:439
lsst::jointcal::AstrometryTransformLinear::a12
double & a12()
Definition: AstrometryTransform.h:480
lsst::jointcal::TanSipPixelToRaDec::TanSipPixelToRaDec
TanSipPixelToRaDec()
Definition: AstrometryTransform.cc:1594
lsst::jointcal::AstrometryTransformPolynomial::fit
double fit(StarMatchList const &starMatchList) override
guess what
Definition: AstrometryTransform.cc:927
SkyWcs.h
lsst::jointcal::TanRaDecToPixel::transformPosAndErrors
void transformPosAndErrors(const FatPoint &in, FatPoint &out) const
transform with analytical derivatives
Definition: AstrometryTransform.cc:1685
lsst::jointcal::AstrometryTransformLinearShift::AstrometryTransformLinearShift
AstrometryTransformLinearShift(Point const &point)
Definition: AstrometryTransform.h:503
lsst::jointcal::AstrometryTransformLinearRot::fit
double fit(StarMatchList const &starMatchList)
guess what
Definition: AstrometryTransform.cc:1306
lsst::jointcal::AstrometryTransformPolynomial::operator-
AstrometryTransformPolynomial operator-(AstrometryTransformPolynomial const &right) const
Subtraction.
Definition: AstrometryTransform.cc:1089
lsst::jointcal::AstrometryTransformPolynomial::transformPosAndErrors
virtual void transformPosAndErrors(const FatPoint &in, FatPoint &out) const override
a mix of apply and Derivative
Definition: AstrometryTransform.cc:656
lsst::jointcal::AstrometryTransform::transformPosAndErrors
virtual void transformPosAndErrors(const FatPoint &in, FatPoint &out) const
Definition: AstrometryTransform.cc:145
FatPoint.h
lsst::jointcal::TanPixelToRaDec
The transformation that handles pixels to sideral transformations (Gnomonic, possibly with polynomial...
Definition: AstrometryTransform.h:627
lsst::jointcal::AstrometryTransformIdentity::apply
void apply(const double xIn, const double yIn, double &xOut, double &yOut) const override
xOut = xIn; yOut = yIn !
Definition: AstrometryTransform.h:225
lsst::jointcal::TanPixelToRaDec::pixToTangentPlane
virtual void pixToTangentPlane(double xPixel, double yPixel, double &xTangentPlane, double &yTangentPlane) const
transforms from pixel space to tangent plane (degrees)
Definition: AstrometryTransform.cc:1548
lsst::jointcal::AstrometryTransformPolynomial::toAstMap
std::shared_ptr< ast::Mapping > toAstMap(jointcal::Frame const &domain) const override
Create an equivalent AST mapping for this transformation, including an analytic inverse if possible.
Definition: AstrometryTransform.cc:1100
lsst::jointcal::AstrometryTransformSkyWcs::clone
std::unique_ptr< AstrometryTransform > clone() const override
returns a copy (allocated by new) of the transformation.
Definition: AstrometryTransform.cc:1491
lsst::jointcal::AstrometryTransform::__str__
std::string __str__()
Definition: AstrometryTransform.h:94
lsst::jointcal::UserTransform::print
void print(std::ostream &out) const
prints the transform coefficients to stream.
Definition: AstrometryTransform.cc:1795
lsst::jointcal::AstrometryTransformLinear::dx
double & dx()
Definition: AstrometryTransform.h:483
lsst::jointcal::BaseTanWcs::getCrPix
Point getCrPix() const
Get the pixel origin of the WCS (CRPIX in FITS WCS terminology, but zero-based)
Definition: AstrometryTransform.cc:1460
lsst::jointcal::AstrometryTransformLinear::dy
double & dy()
Definition: AstrometryTransform.h:484
lsst::jointcal::AstrometryTransformIdentity::print
void print(std::ostream &out) const override
prints the transform coefficients to stream.
Definition: AstrometryTransform.h:240
lsst::jointcal::Point::y
double y
Definition: Point.h:41
lsst::jointcal::AstrometryTransformLinear::A11
double A11() const
Definition: AstrometryTransform.h:471
lsst::jointcal::AstrometryTransform::getNpar
virtual std::size_t getNpar() const
returns the number of parameters (to compute chi2's)
Definition: AstrometryTransform.h:180
lsst::jointcal::UserTransform::UserTransform
UserTransform(AstrometryTransformFun &fun, const void *userData)
the transform routine and extra data that it may need.
Definition: AstrometryTransform.cc:1788
lsst::jointcal::AstrometryTransformPolynomial::read
void read(std::istream &s)
Definition: AstrometryTransform.cc:1115
lsst::jointcal::TanSipPixelToRaDec::fit
double fit(StarMatchList const &starMatchList)
Not implemented yet, because we do it otherwise.
Definition: AstrometryTransform.cc:1644
lsst::jointcal::AstrometryTransform::~AstrometryTransform
virtual ~AstrometryTransform()
Definition: AstrometryTransform.h:197
lsst::jointcal::AstrometryTransformLinear::A22
double A22() const
Definition: AstrometryTransform.h:474
lsst::jointcal::TanRaDecToPixel::inverseTransform
std::unique_ptr< AstrometryTransform > inverseTransform(const double precision, const Frame &region) const
Inverse transform: returns a TanPixelToRaDec.
Definition: AstrometryTransform.cc:1771
lsst::jointcal::AstrometryTransformIdentity::write
void write(std::ostream &s) const override
Definition: AstrometryTransform.cc:454
lsst::jointcal::AstrometryTransform::write
void write(const std::string &fileName) const
Definition: AstrometryTransform.cc:246
lsst::jointcal::AstrometryTransform::apply
virtual void apply(const double xIn, const double yIn, double &xOut, double &yOut) const =0
lsst::jointcal::UserTransform
A run-time transform that allows users to define a AstrometryTransform with minimal coding (just the ...
Definition: AstrometryTransform.h:760
std::ostream
STL class.
lsst::jointcal::AstrometryTransformLinear::inverted
AstrometryTransformLinear inverted() const
returns the inverse: T1 = T2.inverted();
Definition: AstrometryTransform.cc:1263
lsst::jointcal::TanPixelToRaDec::inverseTransform
std::unique_ptr< AstrometryTransform > inverseTransform(const double precision, const Frame &region) const
Inverse transform: returns a TanRaDecToPixel if there are no corrections, or the iterative solver if ...
Definition: AstrometryTransform.cc:1532
lsst::jointcal::TanPixelToRaDec::getPixelToTangentPlane
AstrometryTransformPolynomial getPixelToTangentPlane() const
the transformation from pixels to tangent plane (degrees)
Definition: AstrometryTransform.cc:1541
x
double x
Definition: ChebyshevBoundedField.cc:277
lsst::jointcal::AstrometryTransform::paramRef
virtual double paramRef(Eigen::Index const i) const
Definition: AstrometryTransform.cc:226
lsst::jointcal::operator<<
std::ostream & operator<<(std::ostream &stream, AstrometryMapping const &mapping)
Definition: AstrometryMapping.h:78
lsst::jointcal::AstrometryTransformSkyWcs::fit
double fit(const StarMatchList &starMatchList) override
Not implemented; throws pex::exceptions::LogicError.
Definition: AstrometryTransform.cc:1487
lsst::jointcal::AstrometryTransformPolynomial::operator+
AstrometryTransformPolynomial operator+(AstrometryTransformPolynomial const &right) const
Addition.
Definition: AstrometryTransform.cc:1075
lsst::jointcal::AstrometryTransformIdentity::composeAndReduce
std::unique_ptr< AstrometryTransform > composeAndReduce(AstrometryTransform const &right) const override
Return a reduced composition of newTransform = this(right()), or nullptr if it cannot be reduced.
Definition: AstrometryTransform.h:236
step
int const step
Definition: BoundedField.cc:102
lsst::jointcal::AstrometryTransformIdentity::fit
double fit(StarMatchList const &starMatchList) override
fits a transform to a std::list of Point pairs (p1,p2, the Point fields in StarMatch).
Definition: AstrometryTransform.h:230
lsst::jointcal::AstrometryTransformPolynomial::coeffOrZero
double coeffOrZero(std::size_t powX, std::size_t powY, std::size_t whichCoord) const
read access, zero if beyond order
Definition: AstrometryTransform.cc:755
lsst::jointcal::normalizeCoordinatesTransform
AstrometryTransformLinear normalizeCoordinatesTransform(const Frame &frame)
Returns the transformation that maps the input frame along both axes to [-1,1].
Definition: AstrometryTransform.cc:833
lsst::jointcal::AstrometryTransformLinearShift
just here to provide a specialized constructor, and fit.
Definition: AstrometryTransform.h:497
lsst::jointcal::AstrometryTransformLinearScale::AstrometryTransformLinearScale
AstrometryTransformLinearScale(const double scale=1)
Definition: AstrometryTransform.h:531
lsst::jointcal::AstrometryTransformPolynomial::print
void print(std::ostream &out) const override
print out of coefficients in a readable form.
Definition: AstrometryTransform.cc:795
std::logic_error
STL class.
lsst::jointcal::AstrometryTransformLinearShift::fit
double fit(StarMatchList const &starMatchList)
guess what
Definition: AstrometryTransform.cc:1310
lsst::jointcal::AstrometryTransformLinearRot::AstrometryTransformLinearRot
AstrometryTransformLinearRot()
Definition: AstrometryTransform.h:516
lsst::jointcal::AstrometryTransformLinearRot::getNpar
std::size_t getNpar() const
total number of parameters
Definition: AstrometryTransform.h:521
lsst::jointcal::BaseTanWcs::sin0
double sin0
Definition: AstrometryTransform.h:618
lsst::jointcal::AstrometryTransform::transformStar
void transformStar(FatPoint &in) const
Definition: AstrometryTransform.h:107
lsst::jointcal
Definition: Associations.h:49
lsst::jointcal::BaseTanWcs::cos0
double cos0
Definition: AstrometryTransform.h:618
lsst::jointcal::BaseTanWcs::BaseTanWcs
BaseTanWcs(AstrometryTransformLinear const &pixToTan, Point const &tangentPoint, const AstrometryTransformPolynomial *corrections=nullptr)
Definition: AstrometryTransform.cc:1395
lsst::jointcal::AstrometryTransformPolynomial::composeAndReduce
std::unique_ptr< AstrometryTransform > composeAndReduce(AstrometryTransformPolynomial const &right) const
Return a reduced composition of newTransform = this(right()), or nullptr if it cannot be reduced.
Definition: AstrometryTransform.cc:945
lsst::jointcal::FatPoint
A Point with uncertainties.
Definition: FatPoint.h:34
lsst::jointcal::BaseTanWcs::getCorr
const AstrometryTransformPolynomial * getCorr() const
Get a non-owning pointer to the correction transform polynomial.
Definition: AstrometryTransform.h:595
lsst::jointcal::AstrometryTransformSkyWcs::getSkyWcs
std::shared_ptr< afw::geom::SkyWcs > getSkyWcs() const
Definition: AstrometryTransform.h:566
lsst::jointcal::AstrometryTransformPolynomial::getCoefficient
double getCoefficient(std::size_t powX, std::size_t powY, std::size_t whichCoord) const
Get the coefficient of a given power in x and y, for either the x or y coordinate.
Definition: AstrometryTransform.cc:740
lsst::jointcal::AstrometryTransformPolynomial::paramRef
double paramRef(Eigen::Index const i) const override
Definition: AstrometryTransform.cc:765
lsst::jointcal::AstrometryTransformPolynomial::paramDerivatives
void paramDerivatives(Point const &where, double *dx, double *dy) const override
Derivative w.r.t parameters.
Definition: AstrometryTransform.cc:775
lsst::jointcal::BaseTanWcs::~BaseTanWcs
~BaseTanWcs()
Definition: AstrometryTransform.cc:1472
lsst
A base class for image defects.
Definition: imageAlgorithm.dox:1
lsst::jointcal::AstrometryTransformLinearScale::getNpar
std::size_t getNpar() const
total number of parameters
Definition: AstrometryTransform.h:537
lsst::jointcal::AstrometryTransformPolynomial::determinant
double determinant() const
Definition: AstrometryTransform.cc:825
lsst::jointcal::AstrometryTransformIdentity::read
void read(std::istream &s)
Definition: AstrometryTransform.cc:458
lsst::jointcal::AstrometryTransformLinear::print
void print(std::ostream &out) const override
print out of coefficients in a readable form.
Definition: AstrometryTransform.cc:1295
lsst::jointcal::AstrometryTransformIdentity::getNpar
std::size_t getNpar() const override
returns the number of parameters (to compute chi2's)
Definition: AstrometryTransform.h:242
lsst::jointcal::inversePolyTransform
std::shared_ptr< AstrometryTransformPolynomial > inversePolyTransform(AstrometryTransform const &forward, Frame const &domain, double const precision, std::size_t maxOrder=9, std::size_t nSteps=50)
Approximate the inverse by a polynomial, to some precision.
Definition: AstrometryTransform.cc:1150
lsst::jointcal::AstrometryTransformIdentity
A do-nothing transformation. It anyway has dummy routines to mimick a AstrometryTransform.
Definition: AstrometryTransform.h:219
lsst::jointcal::TanPixelToRaDec::fit
double fit(StarMatchList const &starMatchList)
Not implemented yet, because we do it otherwise.
Definition: AstrometryTransform.cc:1573
lsst::jointcal::AstrometryTransformIdentity::linearApproximation
virtual AstrometryTransformLinear linearApproximation(Point const &where, const double step=0.01) const override
linear approximation.
Definition: AstrometryTransform.cc:444
lsst::jointcal::UserTransform::apply
void apply(const double xIn, const double yIn, double &xOut, double &yOut) const
Definition: AstrometryTransform.cc:1791
lsst::jointcal::TanPixelToRaDec::operator*
TanPixelToRaDec operator*(AstrometryTransformLinear const &right) const
composition with AstrometryTransformLinear
Definition: AstrometryTransform.cc:1513
lsst::jointcal::TanRaDecToPixel::TanRaDecToPixel
TanRaDecToPixel()
Definition: AstrometryTransform.cc:1674
lsst::jointcal::StarMatchList
Definition: StarMatch.h:149
lsst::jointcal::AstrometryTransform::print
virtual void print(std::ostream &out) const =0
prints the transform coefficients to stream.
lsst::jointcal::TanPixelToRaDec::composeAndReduce
std::unique_ptr< AstrometryTransform > composeAndReduce(AstrometryTransformLinear const &right) const
Return a reduced composition of newTransform = this(right()), or nullptr if it cannot be reduced.
Definition: AstrometryTransform.cc:1504
lsst::jointcal::AstrometryTransformPolynomial::apply
void apply(const double xIn, const double yIn, double &xOut, double &yOut) const override
Definition: AstrometryTransform.cc:572
std::endl
T endl(T... args)
lsst::jointcal::AstrometryTransformSkyWcs::apply
void apply(const double xIn, const double yIn, double &xOut, double &yOut) const override
Definition: AstrometryTransform.cc:1477
std::right
T right(T... args)
lsst::jointcal::AstrometryTransformSkyWcs::AstrometryTransformSkyWcs
AstrometryTransformSkyWcs(std::shared_ptr< afw::geom::SkyWcs > skyWcs)
Definition: AstrometryTransform.cc:1474
lsst::jointcal::TanSipPixelToRaDec::inverseTransform
std::unique_ptr< AstrometryTransform > inverseTransform(const double precision, const Frame &region) const
Inverse transform: returns a TanRaDecToPixel if there are no corrections, or the iterative solver if ...
Definition: AstrometryTransform.cc:1606
lsst::jointcal::AstrometryTransformPolynomial::setOrder
void setOrder(std::size_t order)
Sets the polynomial order (the highest sum of exponents of the largest monomial).
Definition: AstrometryTransform.cc:551
lsst::jointcal::AstrometryTransformPolynomial::AstrometryTransformPolynomial
AstrometryTransformPolynomial(std::size_t order=1)
Default transform : identity for all orders (>=1 ).
Definition: AstrometryTransform.cc:470
lsst::jointcal::TanSipPixelToRaDec::clone
std::unique_ptr< AstrometryTransform > clone() const
returns a copy (allocated by new) of the transformation.
Definition: AstrometryTransform.cc:1630
lsst::jointcal::BaseTanWcs::operator=
void operator=(const BaseTanWcs &original)
Definition: AstrometryTransform.cc:1416
lsst::jointcal::AstrometryTransformLinear::a11
double & a11()
Definition: AstrometryTransform.h:479
lsst::jointcal::AstrometryTransformPolynomial::computeDerivative
void computeDerivative(Point const &where, AstrometryTransformLinear &derivative, const double step=0.01) const override
specialised analytic routine
Definition: AstrometryTransform.cc:596
lsst::jointcal::AstrometryTransform::computeDerivative
virtual void computeDerivative(Point const &where, AstrometryTransformLinear &derivative, const double step=0.01) const
Computes the local Derivative of a transform, w.r.t.
Definition: AstrometryTransform.cc:118
lsst::jointcal::TanSipPixelToRaDec::print
void print(std::ostream &out) const
prints the transform coefficients to stream.
Definition: AstrometryTransform.cc:1635
lsst::jointcal::BaseTanWcs::setCorrections
void setCorrections(std::unique_ptr< AstrometryTransformPolynomial > corrections)
Assign the correction polynomial (what it means is left to derived classes)
Definition: AstrometryTransform.cc:1456
lsst::jointcal::AstrometryTransform::linearApproximation
virtual AstrometryTransformLinear linearApproximation(Point const &where, const double step=0.01) const
linear (local) approximation.
Definition: AstrometryTransform.cc:136
lsst::jointcal::AstrometryTransformSkyWcs
A AstrometryTransform that holds a SkyWcs.
Definition: AstrometryTransform.h:550
lsst::afw.display.ds9.scale
def scale(algorithm, min, max=None, frame=None)
Definition: ds9.py:109
lsst::jointcal::Point
A point in a plane.
Definition: Point.h:36
transform
table::Key< int > transform
Definition: TransformMap.cc:299
lsst::jointcal::AstrometryTransformSkyWcs::print
void print(std::ostream &out) const override
prints the transform coefficients to stream.
Definition: AstrometryTransform.cc:1483
std::stringstream::str
T str(T... args)
lsst::jointcal::BaseTanWcs::getPixelToTangentPlane
virtual AstrometryTransformPolynomial getPixelToTangentPlane() const =0
Get a transform from pixels to tangent plane (degrees) This is a linear transform plus the effects of...
lsst.pex::exceptions
Definition: Exception.h:37
lsst::jointcal::AstrometryTransformPolynomial
Polynomial transformation class.
Definition: AstrometryTransform.h:280
std::size_t
lsst::jointcal::TanRaDecToPixel::getTangentPoint
Point getTangentPoint() const
tangent point coordinates (degrees)
Definition: AstrometryTransform.cc:1680
lsst::jointcal::TanPixelToRaDec::TanPixelToRaDec
TanPixelToRaDec()
Definition: AstrometryTransform.cc:1502
lsst::jointcal::TanRaDecToPixel::fit
double fit(StarMatchList const &starMatchList)
fits a transform to a std::list of Point pairs (p1,p2, the Point fields in StarMatch).
Definition: AstrometryTransform.cc:1780
lsst.pex::exceptions::TypeError
Reports errors from accepting an object of an unexpected or inappropriate type.
Definition: Runtime.h:167
lsst::jointcal::AstrometryTransform
a virtual (interface) class for geometric transformations.
Definition: AstrometryTransform.h:65
lsst::jointcal::AstrometryTransformLinear::AstrometryTransformLinear
AstrometryTransformLinear()
the default constructor constructs the do-nothing transformation.
Definition: AstrometryTransform.h:431
lsst::jointcal::AstrometryTransform::composeAndReduce
virtual std::unique_ptr< AstrometryTransform > composeAndReduce(AstrometryTransform const &right) const
Return a reduced composition of newTransform = this(right()), or nullptr if it cannot be reduced.
Definition: AstrometryTransform.cc:94
lsst::jointcal::compose
std::unique_ptr< AstrometryTransform > compose(AstrometryTransform const &left, AstrometryTransform const &right)
Returns a pointer to a composition of transforms, representing left(right()).
Definition: AstrometryTransform.cc:426
lsst::jointcal::Point::x
double x
coordinate
Definition: Point.h:41
lsst::jointcal::TanRaDecToPixel::setTangentPoint
void setTangentPoint(Point const &tangentPoint)
Resets the projection (or tangent) point.
Definition: AstrometryTransform.cc:1665
lsst::jointcal::AstrometryTransform::roughInverse
virtual std::unique_ptr< AstrometryTransform > roughInverse(const Frame &region) const
Rough inverse.
Definition: AstrometryTransform.cc:195
lsst::jointcal::BaseTanWcs
Definition: AstrometryTransform.h:574
lsst::jointcal::BaseTanWcs::getLinPart
AstrometryTransformLinear getLinPart() const
The Linear part (corresponding to CD's and CRPIX's)
Definition: AstrometryTransform.cc:1454
lsst::jointcal::TanRaDecToPixel::getLinPart
AstrometryTransformLinear getLinPart() const
The Linear part (corresponding to CD's and CRPIX's)
Definition: AstrometryTransform.cc:1682
std::istream
STL class.
lsst::jointcal::AstrometryTransformLinear::a22
double & a22()
Definition: AstrometryTransform.h:482
lsst::jointcal::AstrometryTransformLinear::a21
double & a21()
Definition: AstrometryTransform.h:481
lsst::jointcal::AstrometryTransform::offsetParams
void offsetParams(Eigen::VectorXd const &delta)
Definition: AstrometryTransform.cc:221
lsst::jointcal::AstrometryTransformPolynomial::getOrder
std::size_t getOrder() const
Returns the polynomial order.
Definition: AstrometryTransform.h:307
std::unique_ptr
STL class.
lsst::jointcal::AstrometryTransform::inverseTransform
virtual std::unique_ptr< AstrometryTransform > inverseTransform(const double precision, const Frame &region) const
returns an inverse transform. Numerical if not overloaded.
Definition: AstrometryTransform.cc:303
lsst::jointcal::AstrometryTransform::getParams
void getParams(double *params) const
params should be at least Npar() long
Definition: AstrometryTransform.cc:216
lsst::jointcal::AstrometryTransform::toAstMap
virtual std::shared_ptr< ast::Mapping > toAstMap(jointcal::Frame const &domain) const
Create an equivalent AST mapping for this transformation, including an analytic inverse if possible.
Definition: AstrometryTransform.h:189
lsst::jointcal::AstrometryTransformLinear::Dy
double Dy() const
Definition: AstrometryTransform.h:476
lsst::jointcal::AstrometryTransformLinear::computeDerivative
void computeDerivative(Point const &where, AstrometryTransformLinear &derivative, const double step=0.01) const override
specialised analytic routine
Definition: AstrometryTransform.cc:1252
lsst::jointcal::AstrometryTransformLinearRot
just here to provide a specialized constructor, and fit.
Definition: AstrometryTransform.h:512
lsst::jointcal::TanSipPixelToRaDec::pixToTangentPlane
virtual void pixToTangentPlane(double xPixel, double yPixel, double &xTangentPlane, double &yTangentPlane) const
transforms from pixel space to tangent plane (degrees)
Definition: AstrometryTransform.cc:1619
lsst::jointcal::BaseTanWcs::dec0
double dec0
Definition: AstrometryTransform.h:617
lsst::jointcal::AstrometryTransformPolynomial::getNpar
std::size_t getNpar() const override
total number of parameters
Definition: AstrometryTransform.h:321
lsst::jointcal::TanRaDecToPixel::clone
std::unique_ptr< AstrometryTransform > clone() const
returns a copy (allocated by new) of the transformation.
Definition: AstrometryTransform.cc:1776
lsst::jointcal::Frame
rectangle with sides parallel to axes.
Definition: Frame.h:38
lsst::jointcal::AstrometryTransform::paramDerivatives
virtual void paramDerivatives(Point const &where, double *dx, double *dy) const
Derivative w.r.t parameters.
Definition: AstrometryTransform.cc:236
lsst::jointcal::TanPixelToRaDec::roughInverse
std::unique_ptr< AstrometryTransform > roughInverse(const Frame &region) const
Overload the "generic routine" (available for all AstrometryTransform types.
Definition: AstrometryTransform.cc:1527
lsst::jointcal::AstrometryTransformLinear::inverseTransform
std::unique_ptr< AstrometryTransform > inverseTransform(const double precision, const Frame &region) const override
returns an inverse transform. Numerical if not overloaded.
Definition: AstrometryTransform.cc:1290
lsst::jointcal::AstrometryTransform::apply
Point apply(Point const &in) const
All these apply(..) shadow the virtual one in derived classes, unless one writes "using AstrometryTra...
Definition: AstrometryTransform.h:75
exceptions.h
lsst::jointcal::AstrometryTransform::clone
virtual std::unique_ptr< AstrometryTransform > clone() const =0
returns a copy (allocated by new) of the transformation.
lsst::jointcal::TanPixelToRaDec::inverted
TanRaDecToPixel inverted() const
approximate inverse : it ignores corrections;
Definition: AstrometryTransform.cc:1519
lsst::jointcal::BaseTanWcs::ra0
double ra0
Definition: AstrometryTransform.h:617
lsst::jointcal::AstrometryTransform::transformErrors
virtual void transformErrors(Point const &where, const double *vIn, double *vOut) const
transform errors (represented as double[3] in order V(xx),V(yy),Cov(xy))
Definition: AstrometryTransform.cc:162
lsst::jointcal::AstrometryTransform::getJacobian
virtual double getJacobian(Point const &point) const
returns the local jacobian.
Definition: AstrometryTransform.h:110