2 from lsst.afw.geom import SipApproximation, getPixelToIntermediateWorldCoords
5 __all__ = (
"calculateSipWcsHeader",)
9 """Generate a SIP WCS header approximating a given ``SkyWcs``
13 wcs : `lsst.afw.geom.SkyWcs`
14 World Coordinate System to approximate as SIP.
16 SIP order (equal to the maximum sum of the polynomial exponents).
17 bbox : `lsst.geom.Box2I`
18 Bounding box over which to approximate the ``wcs``.
20 Spacing between sample points.
21 header : `lsst.daf.base.PropertyList`, optional
22 Header to which to add SIP WCS keywords.
26 header : `lsst.daf.base.PropertyList`
27 Header including SIP WCS keywords.
31 >>> header = calculateSipWcsHeader(exposure.getWcs(), 3, exposure.getBBox(), 20)
32 >>> sipWcs = SkyWcs(header)
35 crpix = wcs.getPixelOrigin()
36 cdMatrix = wcs.getCdMatrix()
37 crval = wcs.getSkyOrigin()
38 gridNum =
Extent2I(int(bbox.getWidth()/spacing + 0.5), int(bbox.getHeight()/spacing + 0.5))
42 md =
makeTanSipMetadata(sip.getPixelOrigin(), crval, sip.getCdMatrix(), sip.getA(), sip.getB(),
43 sip.getAP(), sip.getBP())
45 if header
is not None:
A fitter and results class for approximating a general Transform in a form compatible with FITS WCS p...
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.