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 | Public Attributes | List of all members
lsst.skymap.tractBuilder.BaseTractBuilder Class Reference
Inheritance diagram for lsst.skymap.tractBuilder.BaseTractBuilder:
lsst.skymap.tractBuilder.CellTractBuilder lsst.skymap.tractBuilder.LegacyTractBuilder

Public Member Functions

def __init__ (self, config)
 
def setupPatches (self, minBBox, wcs)
 
def getPatchBorder (self)
 
def getPatchInfo (self, index, tractWcs)
 
def getPatchInnerDimensions (self)
 
def getSequentialPatchIndex (self, patchInfo)
 
def getSequentialPatchIndexFromPair (self, index)
 
def getPatchIndexPair (self, sequentialIndex)
 
def getPackedConfig (self, config)
 

Public Attributes

 config
 

Detailed Description

Base class for algorithms that define patches within the tract.

Parameters
----------
config : `lsst.pexConfig.Config`
    Input for configuring the algorithm

Definition at line 40 of file tractBuilder.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.skymap.tractBuilder.BaseTractBuilder.__init__ (   self,
  config 
)

Reimplemented in lsst.skymap.tractBuilder.CellTractBuilder, and lsst.skymap.tractBuilder.LegacyTractBuilder.

Definition at line 48 of file tractBuilder.py.

48  def __init__(self, config):
49  self.config = config
50 

Member Function Documentation

◆ getPackedConfig()

def lsst.skymap.tractBuilder.BaseTractBuilder.getPackedConfig (   self,
  config 
)
Get a packed config suitable for using in a sha1.

Parameters
----------
config : `lsst.skymap.BaseTractBuilderConfig`

Returns
-------
configPacked : `bytes`

Reimplemented in lsst.skymap.tractBuilder.CellTractBuilder, and lsst.skymap.tractBuilder.LegacyTractBuilder.

Definition at line 182 of file tractBuilder.py.

182  def getPackedConfig(self, config):
183  """Get a packed config suitable for using in a sha1.
184 
185  Parameters
186  ----------
187  config : `lsst.skymap.BaseTractBuilderConfig`
188 
189  Returns
190  -------
191  configPacked : `bytes`
192  """
193  raise NotImplementedError("Must be implemented by a subclass")
194 
195 

◆ getPatchBorder()

def lsst.skymap.tractBuilder.BaseTractBuilder.getPatchBorder (   self)

Definition at line 94 of file tractBuilder.py.

94  def getPatchBorder(self):
95  return self._patchBorder
96 

◆ getPatchIndexPair()

def lsst.skymap.tractBuilder.BaseTractBuilder.getPatchIndexPair (   self,
  sequentialIndex 
)
Convert sequential index into patch index (x,y) pair.

Parameters
----------
sequentialIndex : `int`

Returns
-------
x, y : `lsst.skymap.Index2D`

Definition at line 165 of file tractBuilder.py.

165  def getPatchIndexPair(self, sequentialIndex):
166  """Convert sequential index into patch index (x,y) pair.
167 
168  Parameters
169  ----------
170  sequentialIndex : `int`
171 
172  Returns
173  -------
174  x, y : `lsst.skymap.Index2D`
175  """
176  nx, ny = self._numPatches
177  x = sequentialIndex % nx
178  y = sequentialIndex // nx
179  return Index2D(x=x, y=y)
180 

◆ getPatchInfo()

def lsst.skymap.tractBuilder.BaseTractBuilder.getPatchInfo (   self,
  index,
  tractWcs 
)
Return information for the specified patch.

Parameters
----------
index : `lsst.skymap.Index2D` or `Iterable` [`int`, `int`]
    Index of patch, as Index2D or pair of ints;
    or a sequential index as returned by getSequentialPatchIndex;
    negative values are not supported.
tractWcs : `lsst.afw.geom.SkyWcs`
    WCS associated with the tract.

Returns
-------
result : `lsst.skymap.PatchInfo`
    The patch info for that index.

Raises
------
IndexError
    If index is out of range.

Reimplemented in lsst.skymap.tractBuilder.CellTractBuilder, and lsst.skymap.tractBuilder.LegacyTractBuilder.

Definition at line 98 of file tractBuilder.py.

98  def getPatchInfo(self, index, tractWcs):
99  """Return information for the specified patch.
100 
101  Parameters
102  ----------
103  index : `lsst.skymap.Index2D` or `Iterable` [`int`, `int`]
104  Index of patch, as Index2D or pair of ints;
105  or a sequential index as returned by getSequentialPatchIndex;
106  negative values are not supported.
107  tractWcs : `lsst.afw.geom.SkyWcs`
108  WCS associated with the tract.
109 
110  Returns
111  -------
112  result : `lsst.skymap.PatchInfo`
113  The patch info for that index.
114 
115  Raises
116  ------
117  IndexError
118  If index is out of range.
119  """
120  raise NotImplementedError("Must be implemented by a subclass")
121 

◆ getPatchInnerDimensions()

def lsst.skymap.tractBuilder.BaseTractBuilder.getPatchInnerDimensions (   self)
Get dimensions of inner region of the patches (all are the same)

Definition at line 122 of file tractBuilder.py.

122  def getPatchInnerDimensions(self):
123  """Get dimensions of inner region of the patches (all are the same)
124  """
125  return self._patchInnerDimensions
126 

◆ getSequentialPatchIndex()

def lsst.skymap.tractBuilder.BaseTractBuilder.getSequentialPatchIndex (   self,
  patchInfo 
)
Return a single integer that uniquely identifies
the given patch within this tract.

Parameters
----------
patchInfo : `lsst.skymap.PatchInfo`

Returns
-------
sequentialIndex : `int`

Definition at line 127 of file tractBuilder.py.

127  def getSequentialPatchIndex(self, patchInfo):
128  """Return a single integer that uniquely identifies
129  the given patch within this tract.
130 
131  Parameters
132  ----------
133  patchInfo : `lsst.skymap.PatchInfo`
134 
135  Returns
136  -------
137  sequentialIndex : `int`
138  """
139  index = patchInfo.getIndex()
140  return self.getSequentialPatchIndexFromPair(index)
141 

◆ getSequentialPatchIndexFromPair()

def lsst.skymap.tractBuilder.BaseTractBuilder.getSequentialPatchIndexFromPair (   self,
  index 
)
Return a single integer that uniquely identifies
the patch index within the tract.

Parameters
----------
index : `lsst.skymap.Index2D` or `Iterable` [`int`, `int`]

Returns
-------
sequentialIndex : `int`

Definition at line 142 of file tractBuilder.py.

142  def getSequentialPatchIndexFromPair(self, index):
143  """Return a single integer that uniquely identifies
144  the patch index within the tract.
145 
146  Parameters
147  ----------
148  index : `lsst.skymap.Index2D` or `Iterable` [`int`, `int`]
149 
150  Returns
151  -------
152  sequentialIndex : `int`
153  """
154  if isinstance(index, Index2D):
155  _index = index
156  else:
157  if not isinstance(index, Iterable):
158  raise ValueError("Input index is not an iterable.")
159  if len(index) != 2:
160  raise ValueError("Input index does not have two values.")
161  _index = Index2D(*index)
162  nx, ny = self._numPatches
163  return nx*_index.y + _index.x
164 

◆ setupPatches()

def lsst.skymap.tractBuilder.BaseTractBuilder.setupPatches (   self,
  minBBox,
  wcs 
)
Set up the patches of a particular size in a tract.

We grow the tract bounding box to hold an exact multiple of
the desired size (patchInnerDimensions or
numCellsPerPatchInner*cellInnerDimensions), while keeping
the center roughly the same.  We return the final tract
bounding box, and the number of patches in each dimension
(as an Index2D).

Parameters
----------
minBBox : `lsst.geom.Box2I`
    Minimum bounding box for tract
wcs : `lsst.afw.geom.SkyWcs`
    Wcs object

Returns
-------
bbox : `lsst.geom.Box2I
    final bounding box, number of patches
numPatches : `lsst.skymap.Index2D`

Definition at line 51 of file tractBuilder.py.

51  def setupPatches(self, minBBox, wcs):
52  """Set up the patches of a particular size in a tract.
53 
54  We grow the tract bounding box to hold an exact multiple of
55  the desired size (patchInnerDimensions or
56  numCellsPerPatchInner*cellInnerDimensions), while keeping
57  the center roughly the same. We return the final tract
58  bounding box, and the number of patches in each dimension
59  (as an Index2D).
60 
61  Parameters
62  ----------
63  minBBox : `lsst.geom.Box2I`
64  Minimum bounding box for tract
65  wcs : `lsst.afw.geom.SkyWcs`
66  Wcs object
67 
68  Returns
69  -------
70  bbox : `lsst.geom.Box2I
71  final bounding box, number of patches
72  numPatches : `lsst.skymap.Index2D`
73  """
74  bbox = geom.Box2I(minBBox)
75  bboxMin = bbox.getMin()
76  bboxDim = bbox.getDimensions()
77  numPatchesList = [0, 0]
78  for i, innerDim in enumerate(self._patchInnerDimensions):
79  num = (bboxDim[i] + innerDim - 1) // innerDim # round up
80  deltaDim = (innerDim*num) - bboxDim[i]
81  if deltaDim > 0:
82  bboxDim[i] = innerDim * num
83  bboxMin[i] -= deltaDim // 2
84  numPatchesList[i] = num
85  numPatches = Index2D(*numPatchesList)
86  bbox = geom.Box2I(bboxMin, bboxDim)
87  self._numPatches = numPatches
88  # The final tract BBox starts at zero.
89  self._tractBBox = geom.Box2I(geom.Point2I(0, 0), bbox.getDimensions())
90  self._initialized = True
91 
92  return bbox, numPatches
93 
An integer coordinate rectangle.
Definition: Box.h:55

Member Data Documentation

◆ config

lsst.skymap.tractBuilder.BaseTractBuilder.config

Definition at line 49 of file tractBuilder.py.


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