Rings sky map pixelization.
We divide the sphere into N rings of Declination, plus the two polar
caps, which sets the size of the individual tracts. The rings are
divided in RA into an integral number of tracts of this size; this
division is made at the Declination closest to zero so as to ensure
full overlap.
Rings are numbered in the rings from south to north. The south pole cap is
``tract=0``, then the tract at ``raStart`` in the southernmost ring is
``tract=1``. Numbering continues (in the positive RA direction) around that
ring and then continues in the same fashion with the next ring north, and
so on until all reaching the north pole cap, which is
``tract=len(skymap) - 1``.
However, ``version=0`` had a bug in the numbering of the tracts: the first
and last tracts in the first (southernmost) ring were identical, and the
first tract in the last (northernmost) ring was missing. When using
``version=0``, these tracts remain missing in order to preserve the
numbering scheme.
Parameters
----------
config : `lsst.skymap.RingsSkyMapConfig`
The configuration for this SkyMap.
version : `int`, optional
Software version of this class, to retain compatibility with old
verisons. ``version=0`` covers the period from first implementation
until DM-14809, at which point bugs were identified in the numbering
of tracts (affecting only tracts at RA=0). ``version=1`` uses the
post-DM-14809 tract numbering.
Definition at line 41 of file ringsSkyMap.py.
def lsst.skymap.cachingSkyMap.CachingSkyMap.__reduce__ |
( |
|
self | ) |
|
|
inherited |
To support pickling.
Notes
-----
**Warning:** This method assumes that the constructor is be defined:
__init__(self, config, version=defaultVersion)
The use of 'config' is effectively set by the registry mechanism.
If additional optional arguments are added, this method should be
overridden to correspond.
Definition at line 58 of file cachingSkyMap.py.
59 """To support pickling.
63 **Warning:** This method assumes that the constructor is be defined:
64 __init__(self, config, version=defaultVersion)
65 The use of 'config' is effectively set by the registry mechanism.
66 If additional optional arguments are added, this method should be
67 overridden to correspond.
69 return (self.__class__, (self.config, self._version))
def lsst.skymap.baseSkyMap.BaseSkyMap.findClosestTractPatchList |
( |
|
self, |
|
|
|
coordList |
|
) |
| |
|
inherited |
Find closest tract and patches that overlap coordinates.
Parameters
----------
coordList : `lsst.geom.SpherePoint`
List of ICRS sky coordinates to search for.
Returns
-------
retList : `list`
list of (TractInfo, list of PatchInfo) for tracts and patches
that contain, or may contain, the specified region.
The list will be empty if there is no overlap.
Definition at line 177 of file baseSkyMap.py.
177 def findClosestTractPatchList(self, coordList):
178 """Find closest tract and patches that overlap coordinates.
182 coordList : `lsst.geom.SpherePoint`
183 List of ICRS sky coordinates to search for.
188 list of (TractInfo, list of PatchInfo) for tracts and patches
189 that contain, or may contain, the specified region.
190 The list will be empty if there is no overlap.
193 for coord
in coordList:
194 tractInfo = self.findTract(coord)
195 patchList = tractInfo.findPatchList(coordList)
196 if patchList
and not (tractInfo, patchList)
in retList:
197 retList.append((tractInfo, patchList))
def lsst.skymap.ringsSkyMap.RingsSkyMap.findTractPatchList |
( |
|
self, |
|
|
|
coordList |
|
) |
| |
Find tracts and patches that overlap a region.
Parameters
----------
coordList : `list` of `lsst.geom.SpherePoint`
List of ICRS sky coordinates to search for.
Returns
-------
reList : `list` of (`TractInfo`, `list` of `PatchInfo`)
For tracts and patches that contain, or may contain, the specified
region. The list will be empty if there is no overlap.
Notes
-----
**warning:**
This uses a naive algorithm that may find some tracts and patches
that do not overlap the region (especially if the region is not a
rectangle aligned along patch x, y).
Reimplemented from lsst.skymap.baseSkyMap.BaseSkyMap.
Definition at line 255 of file ringsSkyMap.py.
255 def findTractPatchList(self, coordList):
257 for coord
in coordList:
258 for tractInfo
in self.findAllTracts(coord):
259 patchList = tractInfo.findPatchList(coordList)
260 if patchList
and not (tractInfo, patchList)
in retList:
261 retList.append((tractInfo, patchList))