LSSTApplications  10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Public Member Functions | Public Attributes | Static Public Attributes | Private Attributes | List of all members
lsst.skymap.baseSkyMap.BaseSkyMap Class Reference
Inheritance diagram for lsst.skymap.baseSkyMap.BaseSkyMap:

Public Member Functions

def __init__
 
def findTract
 
def findTractPatchList
 
def __getitem__
 
def __iter__
 
def __len__
 

Public Attributes

 config
 

Static Public Attributes

 ConfigClass = BaseSkyMapConfig
 

Private Attributes

 _tractInfoList
 
 _wcsFactory
 

Detailed Description

A collection of overlapping Tracts that map part or all of the sky.

See TractInfo for more information.

BaseSkyMap is an abstract base class. Subclasses must do the following:
@li define __init__ and have it construct the TractInfo objects and put them in _tractInfoList
@li define __getstate__ and __setstate__ to allow pickling (the butler saves sky maps using pickle);
    see DodecaSkyMap for an example of how to do this. (Most of that code could be moved
    into this base class, but that would make it harder to handle older versions of pickle data.)

Definition at line 70 of file baseSkyMap.py.

Constructor & Destructor Documentation

def lsst.skymap.baseSkyMap.BaseSkyMap.__init__ (   self,
  config = None 
)
Construct a BaseSkyMap

@param[in] config: an instance of self.ConfigClass; if None the default config is used

Definition at line 82 of file baseSkyMap.py.

82 
83  def __init__(self, config=None):
84  """Construct a BaseSkyMap
85 
86  @param[in] config: an instance of self.ConfigClass; if None the default config is used
87  """
88  if config is None:
89  config = self.ConfigClass()
90  config.freeze() # just to be sure, e.g. for pickling
91  self.config = config
92  self._tractInfoList = []
94  pixelScale = afwGeom.Angle(self.config.pixelScale, afwGeom.arcseconds),
95  projection = self.config.projection,
96  rotation = afwGeom.Angle(self.config.rotation, afwGeom.degrees),
97  )

Member Function Documentation

def lsst.skymap.baseSkyMap.BaseSkyMap.__getitem__ (   self,
  ind 
)

Definition at line 137 of file baseSkyMap.py.

138  def __getitem__(self, ind):
139  return self._tractInfoList[ind]
def lsst.skymap.baseSkyMap.BaseSkyMap.__iter__ (   self)

Definition at line 140 of file baseSkyMap.py.

141  def __iter__(self):
142  return iter(self._tractInfoList)
int iter
def lsst.skymap.baseSkyMap.BaseSkyMap.__len__ (   self)

Definition at line 143 of file baseSkyMap.py.

def lsst.skymap.baseSkyMap.BaseSkyMap.findTract (   self,
  coord 
)
Find the tract whose center is nearest the specified coord.

@param[in] coord: sky coordinate (afwCoord.Coord)
@return TractInfo of tract whose center is nearest the specified coord

@warning:
- if tracts do not cover the whole sky then the returned tract may not include the coord

@note
- This routine will be more efficient if coord is ICRS.
- If coord is equidistant between multiple sky tract centers then one is arbitrarily chosen.
- The default implementation is not very efficient; subclasses may wish to override.

Definition at line 98 of file baseSkyMap.py.

98 
99  def findTract(self, coord):
100  """Find the tract whose center is nearest the specified coord.
101 
102  @param[in] coord: sky coordinate (afwCoord.Coord)
103  @return TractInfo of tract whose center is nearest the specified coord
104 
105  @warning:
106  - if tracts do not cover the whole sky then the returned tract may not include the coord
107 
108  @note
109  - This routine will be more efficient if coord is ICRS.
110  - If coord is equidistant between multiple sky tract centers then one is arbitrarily chosen.
111  - The default implementation is not very efficient; subclasses may wish to override.
112  """
113  icrsCoord = coord.toIcrs()
114  distTractInfoList = []
115  for tractInfo in self:
116  angSep = icrsCoord.angularSeparation(tractInfo.getCtrCoord()).asDegrees()
117  distTractInfoList.append((angSep, tractInfo))
118  distTractInfoList.sort()
119  return distTractInfoList[0][1]
def lsst.skymap.baseSkyMap.BaseSkyMap.findTractPatchList (   self,
  coordList 
)
Find tracts and patches that overlap a region

@param[in] coordList: list of sky coordinates (afwCoord.Coord)
@return 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.

@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).

Definition at line 120 of file baseSkyMap.py.

121  def findTractPatchList(self, coordList):
122  """Find tracts and patches that overlap a region
123 
124  @param[in] coordList: list of sky coordinates (afwCoord.Coord)
125  @return list of (TractInfo, list of PatchInfo) for tracts and patches that contain,
126  or may contain, the specified region. The list will be empty if there is no overlap.
127 
128  @warning this uses a naive algorithm that may find some tracts and patches that do not overlap
129  the region (especially if the region is not a rectangle aligned along patch x,y).
130  """
131  retList = []
132  for tractInfo in self:
133  patchList = tractInfo.findPatchList(coordList)
134  if patchList:
135  retList.append((tractInfo, patchList))
136  return retList

Member Data Documentation

lsst.skymap.baseSkyMap.BaseSkyMap._tractInfoList
private

Definition at line 91 of file baseSkyMap.py.

lsst.skymap.baseSkyMap.BaseSkyMap._wcsFactory
private

Definition at line 92 of file baseSkyMap.py.

lsst.skymap.baseSkyMap.BaseSkyMap.config

Definition at line 90 of file baseSkyMap.py.

lsst.skymap.baseSkyMap.BaseSkyMap.ConfigClass = BaseSkyMapConfig
static

Definition at line 81 of file baseSkyMap.py.


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