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

Public Member Functions

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

Public Attributes

 config
 

Static Public Attributes

 ConfigClass = LegacyTractBuilderConfig
 

Detailed Description

Definition at line 210 of file tractBuilder.py.

Constructor & Destructor Documentation

◆ __init__()

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

Reimplemented from lsst.skymap.tractBuilder.BaseTractBuilder.

Definition at line 213 of file tractBuilder.py.

213  def __init__(self, config):
214  super().__init__(config)
215 
216  self._patchInnerDimensions = geom.Extent2I(*(val
217  for val in config.patchInnerDimensions))
218  self._patchBorder = config.patchBorder
219  self._initialized = False
220 

Member Function Documentation

◆ getPackedConfig()

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

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

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

Reimplemented from lsst.skymap.tractBuilder.BaseTractBuilder.

Definition at line 253 of file tractBuilder.py.

253  def getPackedConfig(self, config):
254  subConfig = config.tractBuilder[config.tractBuilder.name]
255  configPacked = struct.pack(
256  "<iiidd3sd",
257  subConfig.patchInnerDimensions[0],
258  subConfig.patchInnerDimensions[1],
259  subConfig.patchBorder,
260  config.tractOverlap,
261  config.pixelScale,
262  config.projection.encode('ascii'),
263  config.rotation
264  )
265 
266  return configPacked
267 
268 

◆ getPatchBorder()

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

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 
)
inherited
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.LegacyTractBuilder.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 from lsst.skymap.tractBuilder.BaseTractBuilder.

Definition at line 221 of file tractBuilder.py.

221  def getPatchInfo(self, index, tractWcs):
222  # This should always be initialized
223  if not self._initialized:
224  raise RuntimeError("Programmer error; this should always be initialized.")
225  if isinstance(index, Index2D):
226  _index = index
227  else:
228  if isinstance(index, numbers.Number):
229  _index = self.getPatchIndexPair(index)
230  else:
231  _index = Index2D(*index)
232  if (not 0 <= _index.x < self._numPatches.x) \
233  or (not 0 <= _index.y < self._numPatches.y):
234  raise IndexError("Patch index %s is not in range [0-%d, 0-%d]" %
235  (_index, self._numPatches.x - 1, self._numPatches.y - 1))
236  innerMin = geom.Point2I(*[_index[i] * self._patchInnerDimensions[i] for i in range(2)])
237  innerBBox = geom.Box2I(innerMin, self._patchInnerDimensions)
238  if not self._tractBBox.contains(innerBBox):
239  raise RuntimeError(
240  "Bug: patch index %s valid but inner bbox=%s not contained in tract bbox=%s" %
241  (_index, innerBBox, self._tractBBox))
242  outerBBox = geom.Box2I(innerBBox)
243  outerBBox.grow(self.getPatchBorder())
244  outerBBox.clip(self._tractBBox)
245  return PatchInfo(
246  index=_index,
247  innerBBox=innerBBox,
248  outerBBox=outerBBox,
249  sequentialIndex=self.getSequentialPatchIndexFromPair(_index),
250  tractWcs=tractWcs
251  )
252 
An integer coordinate rectangle.
Definition: Box.h:55

◆ getPatchInnerDimensions()

def lsst.skymap.tractBuilder.BaseTractBuilder.getPatchInnerDimensions (   self)
inherited
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 
)
inherited
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 
)
inherited
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 
)
inherited
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 

Member Data Documentation

◆ config

lsst.skymap.tractBuilder.BaseTractBuilder.config
inherited

Definition at line 49 of file tractBuilder.py.

◆ ConfigClass

lsst.skymap.tractBuilder.LegacyTractBuilder.ConfigClass = LegacyTractBuilderConfig
static

Definition at line 211 of file tractBuilder.py.


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