LSST Applications g0265f82a02+c6dfa2ddaf,g1162b98a3f+b2075782a9,g2079a07aa2+1b2e822518,g2bbee38e9b+c6dfa2ddaf,g337abbeb29+c6dfa2ddaf,g3ddfee87b4+a60788ef87,g50ff169b8f+2eb0e556e8,g52b1c1532d+90ebb246c7,g555ede804d+a60788ef87,g591dd9f2cf+ba8caea58f,g5ec818987f+864ee9cddb,g858d7b2824+9ee1ab4172,g876c692160+a40945ebb7,g8a8a8dda67+90ebb246c7,g8cdfe0ae6a+4fd9e222a8,g99cad8db69+5e309b7bc6,g9ddcbc5298+a1346535a5,ga1e77700b3+df8f93165b,ga8c6da7877+aa12a14d27,gae46bcf261+c6dfa2ddaf,gb0e22166c9+8634eb87fb,gb3f2274832+d0da15e3be,gba4ed39666+1ac82b564f,gbb8dafda3b+5dfd9c994b,gbeb006f7da+97157f9740,gc28159a63d+c6dfa2ddaf,gc86a011abf+9ee1ab4172,gcf0d15dbbd+a60788ef87,gdaeeff99f8+1cafcb7cd4,gdc0c513512+9ee1ab4172,ge79ae78c31+c6dfa2ddaf,geb67518f79+ba1859f325,geb961e4c1e+f9439d1e6f,gee10cc3b42+90ebb246c7,gf1cff7945b+9ee1ab4172,w.2024.12
LSST Data Management Base Package
Loading...
Searching...
No Matches
Functions
lsst.afw.geom._calculateSipWcsHeader Namespace Reference

Functions

 calculateSipWcsHeader (wcs, order, bbox, spacing, header=None)
 

Function Documentation

◆ calculateSipWcsHeader()

lsst.afw.geom._calculateSipWcsHeader.calculateSipWcsHeader ( wcs,
order,
bbox,
spacing,
header = None )
Generate a SIP WCS header approximating a given ``SkyWcs``

Parameters
----------
wcs : `lsst.afw.geom.SkyWcs`
    World Coordinate System to approximate as SIP.
order : `int`
    SIP order (equal to the maximum sum of the polynomial exponents).
bbox : `lsst.geom.Box2I`
    Bounding box over which to approximate the ``wcs``.
spacing : `float`
    Spacing between sample points.
header : `lsst.daf.base.PropertyList`, optional
    Header to which to add SIP WCS keywords.

Returns
-------
header : `lsst.daf.base.PropertyList`
    Header including SIP WCS keywords.

Examples
--------
>>> header = calculateSipWcsHeader(exposure.getWcs(), 3, exposure.getBBox(), 20)
>>> sipWcs = SkyWcs(header)

Definition at line 30 of file _calculateSipWcsHeader.py.

30def calculateSipWcsHeader(wcs, order, bbox, spacing, header=None):
31 """Generate a SIP WCS header approximating a given ``SkyWcs``
32
33 Parameters
34 ----------
35 wcs : `lsst.afw.geom.SkyWcs`
36 World Coordinate System to approximate as SIP.
37 order : `int`
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``.
41 spacing : `float`
42 Spacing between sample points.
43 header : `lsst.daf.base.PropertyList`, optional
44 Header to which to add SIP WCS keywords.
45
46 Returns
47 -------
48 header : `lsst.daf.base.PropertyList`
49 Header including SIP WCS keywords.
50
51 Examples
52 --------
53 >>> header = calculateSipWcsHeader(exposure.getWcs(), 3, exposure.getBBox(), 20)
54 >>> sipWcs = SkyWcs(header)
55 """
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))
61
62 sip = SipApproximation(transform, crpix, cdMatrix, Box2D(bbox), gridNum, order)
63
64 md = makeTanSipMetadata(sip.getPixelOrigin(), crval, sip.getCdMatrix(), sip.getA(), sip.getB(),
65 sip.getAP(), sip.getBP())
66
67 if header is not None:
68 header.combine(md)
69 else:
70 header = md
71
72 return header