25 #ifndef LSST_JOINTCAL_ASTROMETRY_TRANSFORM_H 26 #define LSST_JOINTCAL_ASTROMETRY_TRANSFORM_H 48 class AstrometryTransformLinear;
68 virtual void apply(
const double xIn,
const double yIn,
double &xOut,
double &yOut)
const = 0;
78 return Point(xout, yout);
134 virtual double getJacobian(
const double x,
const double y)
const;
142 const double step = 0.01)
const;
165 virtual double paramRef(Eigen::Index
const i)
const;
168 virtual double &
paramRef(Eigen::Index
const i);
226 void apply(
const double xIn,
const double yIn,
double &xOut,
double &yOut)
const override {
233 "AstrometryTransformIdentity is the identity transformation: it cannot be fit to anything.");
238 return right.
clone();
250 const double step = 0.01)
const override;
254 const double step = 0.01)
const override;
313 void apply(
const double xIn,
const double yIn,
double &xOut,
double &yOut)
const override;
317 const double step = 0.01)
const override;
359 double determinant()
const;
362 double paramRef(Eigen::Index
const i)
const override;
365 double &
paramRef(Eigen::Index
const i)
override;
379 const bool useErrors);
395 void computeMonomials(
double xIn,
double yIn,
double *monomial)
const;
402 ndarray::Array<double, 2, 2> toAstPolyMapCoefficients()
const;
446 const double step = 0.01)
const;
456 const double aa21,
const double aa22);
514 const double scaleFactor = 1.0);
553 void apply(
const double xIn,
const double yIn,
double &xOut,
double &yOut)
const override;
582 void apply(
const double xIn,
const double yIn,
double &xOut,
double &yOut)
const;
585 Point getTangentPoint()
const;
597 Point getCrPix()
const;
604 virtual void pixToTangentPlane(
double xPixel,
double yPixel,
double &xTangentPlane,
605 double &yTangentPlane)
const = 0;
635 virtual void pixToTangentPlane(
double xPixel,
double yPixel,
double &xTangentPlane,
636 double &yTangentPlane)
const;
679 virtual void pixToTangentPlane(
double xPixel,
double yPixel,
double &xTangentPlane,
680 double &yTangentPlane)
const;
717 void setTangentPoint(
Point const &tangentPoint);
720 Point getTangentPoint()
const;
723 void apply(
const double xIn,
const double yIn,
double &xOut,
double &yOut)
const;
763 void apply(
const double xIn,
const double yIn,
double &xOut,
double &yOut)
const;
773 const void *_userData;
783 #endif // LSST_JOINTCAL_ASTROMETRY_TRANSFORM_H
void() AstrometryTransformFun(const double, const double, double &, double &, const void *)
signature of the user-provided routine that actually does the coordinate transform for UserTransform...
The transformation that handles pixels to sideral transformations (Gnomonic, possibly with polynomial...
AstrometryTransformLinear linPixelToTan
bool isIntegerShift(const AstrometryTransform *transform)
Shorthand test to tell if a transform is a simple integer shift.
std::ostream & operator<<(std::ostream &stream, AstrometryTransform const &transform)
Delegates to transform.dump()
def scale(algorithm, min, max=None, frame=None)
std::shared_ptr< Image< PixelT > > operator+(Image< PixelT > const &img, ImageSlice< PixelT > const &slc)
Overload operator+()
Implements the (forward) SIP distorsion scheme.
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.
A Point with uncertainties.
std::unique_ptr< AstrometryTransformPolynomial > corr
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].
A base class for image defects.
std::unique_ptr< AstrometryTransform > compose(AstrometryTransform const &left, AstrometryTransform const &right)
Returns a pointer to a composition of transforms, representing left(right()).
This one is the Tangent Plane (called gnomonic) projection (from celestial sphere to tangent plane) ...
std::shared_ptr< Image< PixelT > > operator-(Image< PixelT > const &img, ImageSlice< PixelT > const &slc)
Overload operator-()
std::unique_ptr< AstrometryTransform > astrometryTransformRead(const std::string &fileName)
The virtual constructor from a file.
table::Key< table::Array< double > > coeff
Reports errors from accepting an object of an unexpected or inappropriate type.
const AstrometryTransformPolynomial * getCorr() const
Get a non-owning pointer to the correction transform polynomial.