31 """Generate a SIP WCS header approximating a given ``SkyWcs``
35 wcs : `lsst.afw.geom.SkyWcs`
36 World Coordinate System to approximate as SIP.
38 SIP order (equal to the maximum sum of the polynomial exponents).
39 bbox : `lsst.geom.Box2I`
40 Bounding box over which to approximate the ``wcs``.
42 Spacing between sample points.
43 header : `lsst.daf.base.PropertyList`, optional
44 Header to which to add SIP WCS keywords.
48 header : `lsst.daf.base.PropertyList`
49 Header including SIP WCS keywords.
53 >>> header = calculateSipWcsHeader(exposure.getWcs(), 3, exposure.getBBox(), 20)
54 >>> sipWcs = SkyWcs(header)
56 transform = getPixelToIntermediateWorldCoords(wcs)
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: