24from ._geom
import SipApproximation, getPixelToIntermediateWorldCoords
25from ._geom
import makeTanSipMetadata
27__all__ = (
"calculateSipWcsHeader",)
31 """Generate a SIP WCS header approximating a given ``SkyWcs``
36 World Coordinate System to approximate as SIP.
38 SIP order (equal to the maximum sum of the polynomial exponents).
40 Bounding box over which to approximate the ``wcs``.
42 Spacing between sample points.
44 Header to which to add SIP WCS keywords.
49 Header including SIP WCS keywords.
54 >>> sipWcs =
SkyWcs(header)
57 crpix = wcs.getPixelOrigin()
58 cdMatrix = wcs.getCdMatrix()
59 crval = wcs.getSkyOrigin()
60 gridNum = Extent2I(int(bbox.getWidth()/spacing + 0.5), int(bbox.getHeight()/spacing + 0.5))
62 sip = SipApproximation(transform, crpix, cdMatrix, Box2D(bbox), gridNum, order)
64 md = makeTanSipMetadata(sip.getPixelOrigin(), crval, sip.getCdMatrix(), sip.getA(), sip.getB(),
65 sip.getAP(), sip.getBP())
67 if header
is not None:
A 2-dimensional celestial WCS that transform pixels to ICRS RA/Dec, using the LSST standard for pixel...
std::shared_ptr< TransformPoint2ToPoint2 > getPixelToIntermediateWorldCoords(SkyWcs const &wcs, bool simplify=true)
Return a transform from pixel coordinates to intermediate world coordinates.
std::shared_ptr< daf::base::PropertyList > makeTanSipMetadata(lsst::geom::Point2D const &crpix, lsst::geom::SpherePoint const &crval, Eigen::Matrix2d const &cdMatrix, Eigen::MatrixXd const &sipA, Eigen::MatrixXd const &sipB)
Make metadata for a TAN-SIP WCS without inverse matrices.