Coverage for python/lsst/afw/geom/skyWcs/skyWcsContinued.py : 42%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1#
2# LSST Data Management System
3# Copyright 2017 LSST Corporation.
4#
5# This product includes software developed by the
6# LSST Project (http://www.lsst.org/).
7#
8# This program is free software: you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation, either version 3 of the License, or
11# (at your option) any later version.
12#
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16# GNU General Public License for more details.
17#
18# You should have received a copy of the LSST License Statement and
19# the GNU General Public License along with this program. If not,
20# see <http://www.lsstcorp.org/LegalNotices/>.
21#
23import numpy as np
25from lsst.utils import continueClass
26from ..python import reduceTransform
27from .skyWcs import SkyWcs
29__all__ = []
32@continueClass # noqa: F811 (FIXME: remove for py 3.8+)
33class SkyWcs: # noqa: F811
34 def pixelToSkyArray(self, x, y, degrees=False):
35 """
36 Convert numpy array pixels (x, y) to numpy array sky (ra, dec)
37 positions.
39 Parameters
40 ----------
41 x : `np.ndarray`
42 Array of x values.
43 y : `np.ndarray`
44 Array of y values.
45 degrees : `bool`, optional
46 Return ra, dec arrays in degrees if True.
48 Returns
49 -------
50 ra : `np.ndarray`
51 Array of Right Ascension. Units are radians unless
52 degrees=True.
53 dec : `np.ndarray`
54 Array of Declination. Units are radians unless
55 degrees=True.
56 """
57 xy = np.vstack((x, y))
58 ra, dec = np.vsplit(self.getTransform().getMapping().applyForward(xy), 2)
59 ra %= (2.*np.pi)
61 if degrees:
62 return np.rad2deg(ra.ravel()), np.rad2deg(dec.ravel())
63 else:
64 return ra.ravel(), dec.ravel()
66 def skyToPixelArray(self, ra, dec, degrees=False):
67 """
68 Convert numpy array sky (ra, dec) positions to numpy array
69 pixels (x, y).
71 Parameters
72 ----------
73 ra : `np.ndarray`
74 Array of Right Ascension. Units are radians unless
75 degrees=True.
76 dec : `np.ndarray`
77 Array of Declination. Units are radians unless
78 degrees=True.
79 degrees : `bool`, optional
80 Input ra, dec arrays are degrees if True.
82 Returns
83 -------
84 x : `np.ndarray`
85 Array of x values.
86 y : `np.ndarray`
87 Array of y values.
88 """
89 radec = np.vstack((ra, dec))
90 if degrees:
91 radec = np.deg2rad(radec)
93 x, y = np.vsplit(self.getTransform().getMapping().applyInverse(radec), 2)
95 return x.ravel(), y.ravel()
98SkyWcs.__reduce__ = reduceTransform