lsst.geom
g19811a7679+d02280c829
Toggle main menu visibility
Loading...
Searching...
No Matches
python
lsst
geom
_SpherePoint.py
Go to the documentation of this file.
1
#
2
# Developed for the LSST Data Management System.
3
# This product includes software developed by the LSST Project
4
# (https://www.lsst.org).
5
# See the COPYRIGHT file at the top-level directory of this distribution
6
# for details of code ownership.
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 GNU General Public License
19
# along with this program. If not, see <https://www.gnu.org/licenses/>.
20
#
21
22
__all__ = []
23
24
from
lsst.utils
import
continueClass
25
26
from
._geom
import
SpherePoint, _toUnitX, _toUnitY, _toUnitZ
27
28
29
def
_pickExactlyOne
(a, b, message):
30
if
a
is
None
and
b
is
not
None
:
31
return
b
32
if
a
is
not
None
and
b
is
None
:
33
return
a
34
raise
ValueError(message)
35
36
37
@continueClass
# noqa: F811 (FIXME: remove for py 3.8+)
38
class
SpherePoint
:
# noqa: F811
39
40
def
__iter__
(self):
41
for
i
in
(0, 1):
42
yield
self[i]
43
44
def
__repr__
(self):
45
argList = [
"%r*degrees"
% (pos.asDegrees(),)
for
pos
in
self]
46
return
"SpherePoint(%s)"
% (
", "
.join(argList))
47
48
@staticmethod
49
def
toUnitXYZ
(*, longitude=None, latitude=None, ra=None, dec=None, units):
50
"""Compute the unit 3-vectors (as separate arrays) corresponding to
51
arrays of longitude and latitude.
52
53
Parameters
54
----------
55
longitude : `float` or `numpy.ndarray`
56
Longitude coordinate of input points.
57
latitude : `float` or `numpy.ndarray`
58
Latitude coordinate of input points.
59
ra : `float` or `numpy.ndarray`
60
Synonym for `longitude`.
61
dec : `float` or `numpy.ndarray`
62
Synonym for `latitude`.
63
units : `AngleUnit`
64
Angle unit for inputs.
65
66
Returns
67
-------
68
x : `float` or numpy.ndarray`
69
X coordinates of unit 3-vectors.
70
y : `float` or numpy.ndarray`
71
Y coordinates of unit 3-vectors.
72
z : `float` or numpy.ndarray`
73
Z coordinates of unit 3-vectors.
74
75
Notes
76
-----
77
The returned Cartesian coordinate values are not guaranteed to be
78
normalized according to the conventions of `sphgeom.UnitVector3d`, but
79
are nevertheless compatible with the various vectorized `contains`
80
methods in `sphgeom` because those apply that normalization
81
internally.
82
"""
83
factor = (1.0*units).asRadians()
84
lon = factor*
_pickExactlyOne
(longitude, ra,
"Exactly one of ra and longitude must be provided."
)
85
lat = factor*
_pickExactlyOne
(latitude, dec,
"Exactly one of dec and latitude must be provided."
)
86
return
_toUnitX(lon, lat), _toUnitY(lon, lat), _toUnitZ(lon, lat)
lsst::geom._SpherePoint.SpherePoint
Definition
_SpherePoint.py:38
lsst::geom._SpherePoint.SpherePoint.__iter__
__iter__(self)
Definition
_SpherePoint.py:40
lsst::geom._SpherePoint.SpherePoint.toUnitXYZ
toUnitXYZ(*, longitude=None, latitude=None, ra=None, dec=None, units)
Definition
_SpherePoint.py:49
lsst::geom._SpherePoint.SpherePoint.__repr__
__repr__(self)
Definition
_SpherePoint.py:44
lsst::geom._SpherePoint._pickExactlyOne
_pickExactlyOne(a, b, message)
Definition
_SpherePoint.py:29
Generated on
for lsst.geom by
1.17.0