LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Member Functions | Static Public Attributes | Properties | List of all members
lsst.sphgeom._healpixPixelization.HealpixPixelization Class Reference
Inheritance diagram for lsst.sphgeom._healpixPixelization.HealpixPixelization:
lsst.sphgeom.pixelization_abc.PixelizationABC

Public Member Functions

def __init__ (self, int level)
 
def nside (self)
 
def getLevel (self)
 
RangeSet universe (self)
 
Region pixel (self, i)
 
int index (self, UnitVector3d v)
 
str toString (self, int i)
 
def envelope (self, Region region, int maxRanges=0)
 
def interior (self, Region region, int maxRanges=0)
 
def __eq__ (self, other)
 
def __repr__ (self)
 
def __reduce__ (self)
 

Static Public Attributes

int MAX_LEVEL = 17
 

Properties

 level = property(getLevel)
 

Detailed Description

HEALPix pixelization class.

Parameters
----------
level : `int`
    Pixelization level.  HEALPix nside = 2**level

Definition at line 31 of file _healpixPixelization.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.sphgeom._healpixPixelization.HealpixPixelization.__init__ (   self,
int  level 
)

Definition at line 41 of file _healpixPixelization.py.

41  def __init__(self, level: int):
42 
43  if level < 0:
44  raise ValueError("HealPix level must be >= 0.")
45 
46  self._level = level
47  self._nside = 2**level
48 
49  self._npix = hp.nside2npix(self._nside)
50 
51  # Values used to do pixel/region intersections
52  self._bit_shift = 8
53  self._nside_highres = self._nside*(2**(self._bit_shift//2))
54 

Member Function Documentation

◆ __eq__()

def lsst.sphgeom._healpixPixelization.HealpixPixelization.__eq__ (   self,
  other 
)

Definition at line 160 of file _healpixPixelization.py.

160  def __eq__(self, other):
161  if isinstance(other, HealpixPixelization):
162  return (self._level == other._level)
163 

◆ __reduce__()

def lsst.sphgeom._healpixPixelization.HealpixPixelization.__reduce__ (   self)

Definition at line 167 of file _healpixPixelization.py.

167  def __reduce__(self):
168  return (self.__class__, (self._level, ))

◆ __repr__()

def lsst.sphgeom._healpixPixelization.HealpixPixelization.__repr__ (   self)

Definition at line 164 of file _healpixPixelization.py.

164  def __repr__(self):
165  return f"HealpixPixelization({self._level})"
166 

◆ envelope()

def lsst.sphgeom._healpixPixelization.HealpixPixelization.envelope (   self,
Region  region,
int   maxRanges = 0 
)
Return the indexes of the pixels intersecting the spherical region.

The ``maxRanges`` parameter can be used to limit both these costs -
setting it to a non-zero value sets a cap on the number of ranges
returned by this method. To meet this constraint, implementations are
allowed to return pixels that do not intersect the region along with
those, that do.
This allows two ranges [a, b) and [c, d), a < b < c < d, to be
merged into one range [a, d) (by adding in the pixels [b, c)). Since
simplification proceeds by adding pixels, the return value will always
be a superset of the intersecting pixels.

Parameters
----------
region : `lsst.sphgeom.Region`
maxRanges : `int`

Returns
-------
rangeSet : `lsst.sphgeom.RangeSet`

Reimplemented from lsst.sphgeom.pixelization_abc.PixelizationABC.

Definition at line 79 of file _healpixPixelization.py.

79  def envelope(self, region: Region, maxRanges: int = 0):
80  if maxRanges > 0:
81  # If this is important, the rangeset can be consolidated.
82  raise NotImplementedError("HealpixPixelization: maxRanges not implemented")
83  pixels_highres = self._interior_pixels_from_region(self._nside_highres, region)
84 
85  # Dilate the high resolution pixels by one to ensure that the full
86  # region is completely covered at high resolution.
87  neighbors = hp.get_all_neighbours(self._nside_highres,
88  pixels_highres,
89  nest=True)
90  # Shift back to the original resolution and uniquify
91  pixels = np.unique(np.right_shift(neighbors, self._bit_shift))
92 
93  return RangeSet(pixels)
94 

◆ getLevel()

def lsst.sphgeom._healpixPixelization.HealpixPixelization.getLevel (   self)

Definition at line 59 of file _healpixPixelization.py.

59  def getLevel(self):
60  return self._level
61 
def getLevel(loggername)

◆ index()

int lsst.sphgeom._healpixPixelization.HealpixPixelization.index (   self,
UnitVector3d  v 
)
 Compute the index of the pixel.

Parameters
----------
v : `lsst.sphgeom.UnitVector3d`

Returns
-------
i : `int`
    The index of the pixel.

Reimplemented from lsst.sphgeom.pixelization_abc.PixelizationABC.

Definition at line 73 of file _healpixPixelization.py.

73  def index(self, v: UnitVector3d) -> int:
74  return hp.vec2pix(self._nside, v.x(), v.y(), v.z(), nest=True)
75 

◆ interior()

def lsst.sphgeom._healpixPixelization.HealpixPixelization.interior (   self,
Region  region,
int   maxRanges = 0 
)
Return the indexes of the pixels within the spherical region.

The ``maxRanges`` argument is analogous to the identically named
envelope() argument. The only difference is that implementations must
remove interior pixels to keep the number of ranges at or below the
maximum. The return value is therefore always a subset of the interior
pixels.

Parameters
----------
region : `lsst.sphgeom.Region`
maxRanges : `int`

Returns
-------
rangeSet : `lsst.sphgeom.RangeSet`

Reimplemented from lsst.sphgeom.pixelization_abc.PixelizationABC.

Definition at line 95 of file _healpixPixelization.py.

95  def interior(self, region: Region, maxRanges: int = 0):
96  if maxRanges > 0:
97  # If this is important, the rangeset can be consolidated.
98  raise NotImplementedError("HealpixPixelization: maxRanges not implemented")
99  pixels = self._interior_pixels_from_region(self._nside, region)
100 
101  # Check that the corners of the pixels are entirely enclosed in
102  # the region
103 
104  # Returns array [npixels, 3, ncorners], where ncorners is 4, and
105  # the center index points to x, y, z.
106  corners = hp.boundaries(self._nside, pixels, step=1, nest=True)
107 
108  corners_int = region.contains(corners[:, 0, :].ravel(),
109  corners[:, 1, :].ravel(),
110  corners[:, 2, :].ravel()).reshape((len(pixels), 4))
111  interior = (np.sum(corners_int, axis=1) == 4)
112  pixels = pixels[interior]
113 
114  return RangeSet(pixels)
115 

◆ nside()

def lsst.sphgeom._healpixPixelization.HealpixPixelization.nside (   self)

Definition at line 56 of file _healpixPixelization.py.

56  def nside(self):
57  return self._nside
58 

◆ pixel()

Region lsst.sphgeom._healpixPixelization.HealpixPixelization.pixel (   self,
  i 
)
Return the spherical region corresponding to the pixel index ``i``.

This region will contain all unit vectors v with ``index(v) == i``.
But it may also contain points with index not equal to ``i``.
To see why, consider a point that lies on the edge of a polygonal
pixel - it is inside the polygons for both pixels sharing the edge,
but must be assigned to exactly one pixel by the pixelization.

Parameters
----------
i : `int`
    Pixel index.

Returns
-------
region : `lsst.sphgeom.Region`
    The spherical region corresponding to the pixel with index ``i``

Raises
------
`InvalidArgumentException`
    Raised if ``i`` is not a valid pixel index.

Reimplemented from lsst.sphgeom.pixelization_abc.PixelizationABC.

Definition at line 67 of file _healpixPixelization.py.

67  def pixel(self, i) -> Region:
68  # This is arbitrarily returning 4 points on a side
69  # to approximate the pixel shape.
70  varr = hp.boundaries(self._nside, i, step=4, nest=True).T
71  return ConvexPolygon([UnitVector3d(*c) for c in varr])
72 
table::PointKey< int > pixel

◆ toString()

str lsst.sphgeom._healpixPixelization.HealpixPixelization.toString (   self,
int  i 
)
Convert the given pixel index to a human-readable string.

Parameters
----------
i : `int`

Returns
-------
s : `str`

Reimplemented from lsst.sphgeom.pixelization_abc.PixelizationABC.

Definition at line 76 of file _healpixPixelization.py.

76  def toString(self, i: int) -> str:
77  return str(i)
78 

◆ universe()

RangeSet lsst.sphgeom._healpixPixelization.HealpixPixelization.universe (   self)
Return the set of all pixel indexes for this pixelization.

Returns
-------
rangeSet : `lsst.sphgeom.RangeSet`

Reimplemented from lsst.sphgeom.pixelization_abc.PixelizationABC.

Definition at line 64 of file _healpixPixelization.py.

64  def universe(self) -> RangeSet:
65  return RangeSet(0, self._npix)
66 

Member Data Documentation

◆ MAX_LEVEL

int lsst.sphgeom._healpixPixelization.HealpixPixelization.MAX_LEVEL = 17
static

Definition at line 39 of file _healpixPixelization.py.

Property Documentation

◆ level

lsst.sphgeom._healpixPixelization.HealpixPixelization.level = property(getLevel)
static

Definition at line 62 of file _healpixPixelization.py.


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