LSST Applications g02d81e74bb+86cf3d8bc9,g180d380827+7a4e862ed4,g2079a07aa2+86d27d4dc4,g2305ad1205+e1ca1c66fa,g29320951ab+012e1474a1,g295015adf3+341ea1ce94,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g33d1c0ed96+0e5473021a,g3a166c0a6a+0e5473021a,g3ddfee87b4+c429d67c83,g48712c4677+f88676dd22,g487adcacf7+27e1e21933,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+b41db86c35,g5a732f18d5+53520f316c,g64a986408d+86cf3d8bc9,g858d7b2824+86cf3d8bc9,g8a8a8dda67+585e252eca,g99cad8db69+84912a7fdc,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+a2b54eae19,gb0e22166c9+60f28cb32d,gba4ed39666+c2a2e4ac27,gbb8dafda3b+6681f309db,gc120e1dc64+f0fcc2f6d8,gc28159a63d+0e5473021a,gcf0d15dbbd+c429d67c83,gdaeeff99f8+f9a426f77a,ge6526c86ff+0433e6603d,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gff1a9f87cc+86cf3d8bc9,w.2024.17
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | List of all members
lsst.afw.geom.skyWcs.SkyWcs Class Reference

Public Member Functions

 pixelToSkyArray (self, x, y, degrees=False)
 
 skyToPixelArray (self, ra, dec, degrees=False)
 
 getRelativeRotationToWcs (self, otherWcs)
 

Detailed Description

Definition at line 40 of file skyWcs.py.

Member Function Documentation

◆ getRelativeRotationToWcs()

lsst.afw.geom.skyWcs.SkyWcs.getRelativeRotationToWcs ( self,
otherWcs )
Get the difference in sky rotation angle to the specified wcs.

Ignoring location on the sky, if another wcs were atop this one,
what would the difference in rotation be? i.e. for

otherWcs = createInitialSkyWcsFromBoresight(radec, rotation, detector)

what is the value that needs to be added to ``self.rotation`` (or
subtracted from `other.rotation``) to align them?

Parameters
----------
otherWcs : `lsst.afw.geom.SkyWcs`
    The wcs to calculate the angle to.

Returns
-------
angle : `lsst.geom.Angle`
    The angle between this and the supplied wcs,
    over the half-open range [0, 2pi).

Definition at line 104 of file skyWcs.py.

104 def getRelativeRotationToWcs(self, otherWcs):
105 """Get the difference in sky rotation angle to the specified wcs.
106
107 Ignoring location on the sky, if another wcs were atop this one,
108 what would the difference in rotation be? i.e. for
109
110 otherWcs = createInitialSkyWcsFromBoresight(radec, rotation, detector)
111
112 what is the value that needs to be added to ``self.rotation`` (or
113 subtracted from `other.rotation``) to align them?
114
115 Parameters
116 ----------
117 otherWcs : `lsst.afw.geom.SkyWcs`
118 The wcs to calculate the angle to.
119
120 Returns
121 -------
122 angle : `lsst.geom.Angle`
123 The angle between this and the supplied wcs,
124 over the half-open range [0, 2pi).
125 """
126 # Note: tests for this function live in
127 # obs_lsst/tests/test_afwWcsUtil.py due to the need for an easy
128 # constructor and instantiated detector, and the fact that afw
129 # cannot depend on obs_base or obs_lsst.
130
131 m1 = self.getCdMatrix()
132 m2 = otherWcs.getCdMatrix()
133
134 svd1 = scipy.linalg.svd(m1)
135 svd2 = scipy.linalg.svd(m2)
136
137 m1rot = np.matmul(svd1[0], svd1[2])
138 m2rot = np.matmul(svd2[0], svd2[2])
139
140 v_rot = [1, 0]
141
142 v_rot = np.matmul(v_rot, m1rot) # rotate by wcs1
143 v_rot = np.matmul(v_rot, m2rot.T) # rotate _back_ by wcs2
144
145 rotation = np.arctan2(v_rot[1], v_rot[0])
146 rotation = rotation % (2*np.pi)
147 return lsst.geom.Angle(rotation, lsst.geom.radians)
148
149
A class representing an angle.
Definition Angle.h:128

◆ pixelToSkyArray()

lsst.afw.geom.skyWcs.SkyWcs.pixelToSkyArray ( self,
x,
y,
degrees = False )
Convert numpy array pixels (x, y) to numpy array sky (ra, dec)
positions.

Parameters
----------
x : `np.ndarray`
    Array of x values.
y : `np.ndarray`
    Array of y values.
degrees : `bool`, optional
    Return ra, dec arrays in degrees if True.

Returns
-------
ra : `np.ndarray`
    Array of Right Ascension.  Units are radians unless
    degrees=True.
dec : `np.ndarray`
    Array of Declination.  Units are radians unless
    degrees=True.

Definition at line 41 of file skyWcs.py.

41 def pixelToSkyArray(self, x, y, degrees=False):
42 """
43 Convert numpy array pixels (x, y) to numpy array sky (ra, dec)
44 positions.
45
46 Parameters
47 ----------
48 x : `np.ndarray`
49 Array of x values.
50 y : `np.ndarray`
51 Array of y values.
52 degrees : `bool`, optional
53 Return ra, dec arrays in degrees if True.
54
55 Returns
56 -------
57 ra : `np.ndarray`
58 Array of Right Ascension. Units are radians unless
59 degrees=True.
60 dec : `np.ndarray`
61 Array of Declination. Units are radians unless
62 degrees=True.
63 """
64 xy = np.vstack((x, y))
65 ra, dec = np.vsplit(self.getTransform().getMapping().applyForward(xy), 2)
66 ra %= (2.*np.pi)
67
68 if degrees:
69 return np.rad2deg(ra.ravel()), np.rad2deg(dec.ravel())
70 else:
71 return ra.ravel(), dec.ravel()
72

◆ skyToPixelArray()

lsst.afw.geom.skyWcs.SkyWcs.skyToPixelArray ( self,
ra,
dec,
degrees = False )
Convert numpy array sky (ra, dec) positions to numpy array
pixels (x, y).

Parameters
----------
ra : `np.ndarray`
    Array of Right Ascension.  Units are radians unless
    degrees=True.
dec : `np.ndarray`
    Array of Declination.  Units are radians unless
    degrees=True.
degrees : `bool`, optional
    Input ra, dec arrays are degrees if True.

Returns
-------
x : `np.ndarray`
    Array of x values.
y : `np.ndarray`
    Array of y values.

Definition at line 73 of file skyWcs.py.

73 def skyToPixelArray(self, ra, dec, degrees=False):
74 """
75 Convert numpy array sky (ra, dec) positions to numpy array
76 pixels (x, y).
77
78 Parameters
79 ----------
80 ra : `np.ndarray`
81 Array of Right Ascension. Units are radians unless
82 degrees=True.
83 dec : `np.ndarray`
84 Array of Declination. Units are radians unless
85 degrees=True.
86 degrees : `bool`, optional
87 Input ra, dec arrays are degrees if True.
88
89 Returns
90 -------
91 x : `np.ndarray`
92 Array of x values.
93 y : `np.ndarray`
94 Array of y values.
95 """
96 radec = np.vstack((ra, dec))
97 if degrees:
98 radec = np.deg2rad(radec)
99
100 x, y = np.vsplit(self.getTransform().getMapping().applyInverse(radec), 2)
101
102 return x.ravel(), y.ravel()
103

The documentation for this class was generated from the following file: