Loading [MathJax]/extensions/tex2jax.js
LSST Applications g0fba68d861+849f694866,g1fd858c14a+7a7b9dd5ed,g2c84ff76c0+5cb23283cf,g30358e5240+f0e04ebe90,g35bb328faa+fcb1d3bbc8,g436fd98eb5+bdc6fcdd04,g4af146b050+742274f7cd,g4d2262a081+9d5bd0394b,g4e0f332c67+cb09b8a5b6,g53246c7159+fcb1d3bbc8,g5a012ec0e7+477f9c599b,g60b5630c4e+bdc6fcdd04,g67b6fd64d1+2218407a0c,g78460c75b0+2f9a1b4bcd,g786e29fd12+cf7ec2a62a,g7b71ed6315+fcb1d3bbc8,g87b7deb4dc+777438113c,g8852436030+ebf28f0d95,g89139ef638+2218407a0c,g9125e01d80+fcb1d3bbc8,g989de1cb63+2218407a0c,g9f33ca652e+42fb53f4c8,g9f7030ddb1+11b9b6f027,ga2b97cdc51+bdc6fcdd04,gab72ac2889+bdc6fcdd04,gabe3b4be73+1e0a283bba,gabf8522325+3210f02652,gb1101e3267+9c79701da9,gb58c049af0+f03b321e39,gb89ab40317+2218407a0c,gcf25f946ba+ebf28f0d95,gd6cbbdb0b4+e8f9c9c900,gd9a9a58781+fcb1d3bbc8,gde0f65d7ad+47bbabaf80,gded526ad44+8c3210761e,ge278dab8ac+3ef3db156b,ge410e46f29+2218407a0c,gf67bdafdda+2218407a0c,v29.0.0.rc3
LSST Data Management Base Package
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
lsst.sphgeom._continue_class.Region Class Reference

Public Member Functions

Region from_ivoa_pos (cls, str pos)
 
str to_ivoa_pos (self)
 

Detailed Description

A minimal interface for 2-dimensional regions on the unit sphere.

Definition at line 101 of file _continue_class.py.

Member Function Documentation

◆ from_ivoa_pos()

Region lsst.sphgeom._continue_class.Region.from_ivoa_pos ( cls,
str pos )
Create a Region from an IVOA POS string.

Parameters
----------
pos : `str`
    A string using the IVOA SIAv2 POS syntax.

Returns
-------
region : `Region`
    A region equivalent to the POS string.

Notes
-----
See
https://ivoa.net/documents/SIA/20151223/REC-SIA-2.0-20151223.html#toc12
for a description of the POS parameter but in summary the options are:

* ``CIRCLE <longitude> <latitude> <radius>``
* ``RANGE <longitude1> <longitude2> <latitude1> <latitude2>``
* ``POLYGON <longitude1> <latitude1> ... (at least 3 pairs)``

Units are degrees in all coordinates.

Definition at line 105 of file _continue_class.py.

105 def from_ivoa_pos(cls, pos: str) -> Region:
106 """Create a Region from an IVOA POS string.
107
108 Parameters
109 ----------
110 pos : `str`
111 A string using the IVOA SIAv2 POS syntax.
112
113 Returns
114 -------
115 region : `Region`
116 A region equivalent to the POS string.
117
118 Notes
119 -----
120 See
121 https://ivoa.net/documents/SIA/20151223/REC-SIA-2.0-20151223.html#toc12
122 for a description of the POS parameter but in summary the options are:
123
124 * ``CIRCLE <longitude> <latitude> <radius>``
125 * ``RANGE <longitude1> <longitude2> <latitude1> <latitude2>``
126 * ``POLYGON <longitude1> <latitude1> ... (at least 3 pairs)``
127
128 Units are degrees in all coordinates.
129 """
130 shape, *coordinates = pos.split()
131 coordinates = tuple(float(c) for c in coordinates)
132 n_floats = len(coordinates)
133 if shape == "CIRCLE":
134 if n_floats != 3:
135 raise ValueError(f"CIRCLE requires 3 numbers but got {n_floats} in '{pos}'.")
136 center = LonLat.fromDegrees(coordinates[0], coordinates[1])
137 radius = Angle.fromDegrees(coordinates[2])
138 return Circle(UnitVector3d(center), radius)
139
140 if shape == "RANGE":
141 if n_floats != 4:
142 raise ValueError(f"RANGE requires 4 numbers but got {n_floats} in '{pos}'.")
143 # POS allows +Inf and -Inf in ranges. These are not allowed by
144 # Box and so must be converted.
145 return Box(
146 LonLat.fromDegrees(_inf_to_lon(coordinates[0]), _inf_to_lat(coordinates[2])),
147 LonLat.fromDegrees(_inf_to_lon(coordinates[1]), _inf_to_lat(coordinates[3])),
148 )
149
150 if shape == "POLYGON":
151 if n_floats % 2 != 0:
152 raise ValueError(f"POLYGON requires even number of floats but got {n_floats} in '{pos}'.")
153 if n_floats < 6:
154 raise ValueError(
155 f"POLYGON specification requires at least 3 coordinates, got {n_floats // 2} in '{pos}'"
156 )
157 # Coordinates are x1, y1, x2, y2, x3, y3...
158 # Get pairs by skipping every other value.
159 pairs = list(zip(coordinates[0::2], coordinates[1::2], strict=True))
160 vertices = [LonLat.fromDegrees(lon, lat) for lon, lat in pairs]
161 return ConvexPolygon([UnitVector3d(c) for c in vertices])
162
163 raise ValueError(f"Unrecognized shape in POS string '{pos}'")
164

◆ to_ivoa_pos()

str lsst.sphgeom._continue_class.Region.to_ivoa_pos ( self)
Represent the region as an IVOA POS string.

Returns
-------
pos : `str`
    The region in ``POS`` format.

Definition at line 165 of file _continue_class.py.

165 def to_ivoa_pos(self) -> str:
166 """Represent the region as an IVOA POS string.
167
168 Returns
169 -------
170 pos : `str`
171 The region in ``POS`` format.
172 """
173 raise NotImplementedError("This region can not be converted to an IVOA POS string.")
174
175
176@_continueClass

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