LSST Applications 27.0.0,g0265f82a02+469cd937ee,g02d81e74bb+21ad69e7e1,g1470d8bcf6+cbe83ee85a,g2079a07aa2+e67c6346a6,g212a7c68fe+04a9158687,g2305ad1205+94392ce272,g295015adf3+81dd352a9d,g2bbee38e9b+469cd937ee,g337abbeb29+469cd937ee,g3939d97d7f+72a9f7b576,g487adcacf7+71499e7cba,g50ff169b8f+5929b3527e,g52b1c1532d+a6fc98d2e7,g591dd9f2cf+df404f777f,g5a732f18d5+be83d3ecdb,g64a986408d+21ad69e7e1,g858d7b2824+21ad69e7e1,g8a8a8dda67+a6fc98d2e7,g99cad8db69+f62e5b0af5,g9ddcbc5298+d4bad12328,ga1e77700b3+9c366c4306,ga8c6da7877+71e4819109,gb0e22166c9+25ba2f69a1,gb6a65358fc+469cd937ee,gbb8dafda3b+69d3c0e320,gc07e1c2157+a98bf949bb,gc120e1dc64+615ec43309,gc28159a63d+469cd937ee,gcf0d15dbbd+72a9f7b576,gdaeeff99f8+a38ce5ea23,ge6526c86ff+3a7c1ac5f1,ge79ae78c31+469cd937ee,gee10cc3b42+a6fc98d2e7,gf1cff7945b+21ad69e7e1,gfbcc870c63+9a11dc8c8f
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Protected Attributes | List of all members
lsst.afw.geom.testUtils.BoxGrid Class Reference

Public Member Functions

 __init__ (self, box, numColRow)
 
 numColRow (self)
 
 __getitem__ (self, indXY)
 
 __len__ (self)
 
 __iter__ (self)
 

Public Attributes

 boxClass
 
 stopDelta
 
 pointClass
 

Protected Attributes

 _numColRow
 
 _divList
 

Detailed Description

Divide a box into nx by ny sub-boxes that tile the region

The sub-boxes will be of the same type as `box` and will exactly tile `box`;
they will also all be the same size, to the extent possible (some variation
is inevitable for integer boxes that cannot be evenly divided.

Parameters
----------
box : `lsst.geom.Box2I` or `lsst.geom.Box2D`
    the box to subdivide; the boxes in the grid will be of the same type
numColRow : pair of `int`
    number of columns and rows

Definition at line 42 of file testUtils.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.afw.geom.testUtils.BoxGrid.__init__ ( self,
box,
numColRow )

Definition at line 57 of file testUtils.py.

57 def __init__(self, box, numColRow):
58 if len(numColRow) != 2:
59 raise RuntimeError(f"numColRow={numColRow!r}; must be a sequence of two integers")
60 self._numColRow = tuple(int(val) for val in numColRow)
61
62 if isinstance(box, lsst.geom.Box2I):
63 stopDelta = 1
64 elif isinstance(box, lsst.geom.Box2D):
65 stopDelta = 0
66 else:
67 raise RuntimeError(f"Unknown class {type(box)} of box {box}")
68 self.boxClass = type(box)
69 self.stopDelta = stopDelta
70
71 minPoint = box.getMin()
72 self.pointClass = type(minPoint)
73 dtype = np.array(minPoint).dtype
74
75 self._divList = [np.linspace(start=box.getMin()[i],
76 stop=box.getMax()[i] + self.stopDelta,
77 num=self._numColRow[i] + 1,
78 endpoint=True,
79 dtype=dtype) for i in range(2)]
80
A floating-point coordinate rectangle geometry.
Definition Box.h:413
An integer coordinate rectangle.
Definition Box.h:55

Member Function Documentation

◆ __getitem__()

lsst.afw.geom.testUtils.BoxGrid.__getitem__ ( self,
indXY )
Return the box at the specified x,y index

Parameters
----------
indXY : pair of `ints`
    the x,y index to return

Returns
-------
subBox : `lsst.geom.Box2I` or `lsst.geom.Box2D`

Definition at line 85 of file testUtils.py.

85 def __getitem__(self, indXY):
86 """Return the box at the specified x,y index
87
88 Parameters
89 ----------
90 indXY : pair of `ints`
91 the x,y index to return
92
93 Returns
94 -------
95 subBox : `lsst.geom.Box2I` or `lsst.geom.Box2D`
96 """
97 beg = self.pointClass(*[self._divList[i][indXY[i]] for i in range(2)])
98 end = self.pointClass(
99 *[self._divList[i][indXY[i] + 1] - self.stopDelta for i in range(2)])
100 return self.boxClass(beg, end)
101

◆ __iter__()

lsst.afw.geom.testUtils.BoxGrid.__iter__ ( self)
Return an iterator over all boxes, where column varies most quickly

Definition at line 105 of file testUtils.py.

105 def __iter__(self):
106 """Return an iterator over all boxes, where column varies most quickly
107 """
108 for row in range(self.numColRow[1]):
109 for col in range(self.numColRow[0]):
110 yield self[col, row]
111
112

◆ __len__()

lsst.afw.geom.testUtils.BoxGrid.__len__ ( self)

Definition at line 102 of file testUtils.py.

102 def __len__(self):
103 return self.shape[0]*self.shape[1]
104

◆ numColRow()

lsst.afw.geom.testUtils.BoxGrid.numColRow ( self)

Definition at line 82 of file testUtils.py.

82 def numColRow(self):
83 return self._numColRow
84

Member Data Documentation

◆ _divList

lsst.afw.geom.testUtils.BoxGrid._divList
protected

Definition at line 75 of file testUtils.py.

◆ _numColRow

lsst.afw.geom.testUtils.BoxGrid._numColRow
protected

Definition at line 60 of file testUtils.py.

◆ boxClass

lsst.afw.geom.testUtils.BoxGrid.boxClass

Definition at line 68 of file testUtils.py.

◆ pointClass

lsst.afw.geom.testUtils.BoxGrid.pointClass

Definition at line 72 of file testUtils.py.

◆ stopDelta

lsst.afw.geom.testUtils.BoxGrid.stopDelta

Definition at line 69 of file testUtils.py.


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