31 namespace lsst {
namespace meas {
namespace astrom {
60 forwardSipPoly._xCoeffs(1, 0) -= 1;
61 forwardSipPoly._yCoeffs(0, 1) -= 1;
79 forwardSipPoly._xCoeffs(1, 0) -= 1;
80 forwardSipPoly._yCoeffs(0, 1) -= 1;
87 return convert(scaled, pixelOrigin, cdMatrix);
94 "Constructing a SipForwardTransform from a TanWcs with no distortions is not implemented." 97 ndarray::Array<double,2,2> xCoeffs = ndarray::allocate(wcs.
getSipA().rows(), wcs.
getSipA().cols());
98 ndarray::Array<double,2,2> yCoeffs = ndarray::allocate(wcs.
getSipB().rows(), wcs.
getSipB().cols());
99 xCoeffs.asEigen() = wcs.
getSipA();
100 yCoeffs.asEigen() = wcs.
getSipB();
140 reverseSipPoly._xCoeffs(1, 0) -= 1;
141 reverseSipPoly._yCoeffs(0, 1) -= 1;
160 reverseSipPoly._xCoeffs(1, 0) -= 1;
161 reverseSipPoly._yCoeffs(0, 1) -= 1;
177 "Constructing a SipReverseTransform from a TanWcs with no distortions is not implemented." 180 ndarray::Array<double,2,2> xCoeffs = ndarray::allocate(wcs.
getSipAp().rows(), wcs.
getSipAp().cols());
181 ndarray::Array<double,2,2> yCoeffs = ndarray::allocate(wcs.
getSipBp().rows(), wcs.
getSipBp().cols());
217 oss <<
"SIP forward and reverse transforms have inconsistent CRPIX: " 226 oss <<
"SIP forward and reverse transforms have inconsistent CD matrix: " 250 "Coordinate system not supported" 253 return std::make_shared<afw::image::TanWcs>(
257 sipA, sipB, sipAP, sipBP,
274 Eigen::Matrix2d cdMatrix = wcs.
getCDMatrix() * sInv.getLinear().getMatrix();
275 return std::make_shared<afw::image::TanWcs>(
291 switch(nQuarter % 4) {
std::shared_ptr< afw::image::TanWcs > transformWcsPixels(afw::image::TanWcs const &wcs, afw::geom::AffineTransform const &s)
Create a new TanWcs whose pixel coordinate system has been transformed via an affine transform...
Extent< double, 2 > Extent2D
Eigen::MatrixXd const & getSipBp() const
PolynomialTransform compose(afw::geom::AffineTransform const &t1, PolynomialTransform const &t2)
Return a PolynomialTransform that is equivalent to the composition t1(t2())
AngleUnit constexpr degrees
Eigen::MatrixXd const & getSipA() const
lsst::afw::geom::Point2D getPosition(lsst::afw::geom::AngleUnit unit=lsst::afw::geom::degrees) const
Eigen::MatrixXd const & getSipB() const
bool hasDistortion() const override
virtual CoordSystem getCoordSystem() const
std::shared_ptr< afw::image::TanWcs > rotateWcsPixelsBy90(afw::image::TanWcs const &wcs, int nQuarter, afw::geom::Extent2I const &dimensions)
Return a new TanWcs that represents a rotation of the image it corresponds to about the image's cente...
EigenVector const & asEigen() const
lsst::afw::geom::Point2D getPixelOrigin() const
std::shared_ptr< lsst::afw::coord::Coord > getSkyOrigin() const
std::shared_ptr< afw::image::TanWcs > makeWcs(SipForwardTransform const &sipForward, SipReverseTransform const &sipReverse, afw::coord::Coord const &skyOrigin)
Create a new TAN SIP Wcs from a pair of SIP transforms and the sky origin.
#define LSST_EXCEPT(type,...)
double getEquinox() const
Eigen::Matrix2d getCDMatrix() const
Eigen::MatrixXd const & getSipAp() const