LSST Applications g0265f82a02+0e5473021a,g02d81e74bb+0dd8ce4237,g1470d8bcf6+3ea6592b6f,g2079a07aa2+86d27d4dc4,g2305ad1205+5ca4c0b359,g295015adf3+d10818ec9d,g2a9a014e59+6f9be1b9cd,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g3ddfee87b4+703ba97ebf,g487adcacf7+4fa16da234,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+ffa42b374e,g5a732f18d5+53520f316c,g64a986408d+0dd8ce4237,g858d7b2824+0dd8ce4237,g8a8a8dda67+585e252eca,g99cad8db69+d39438377f,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+f1d96605c8,gb0e22166c9+60f28cb32d,gb6a65358fc+0e5473021a,gba4ed39666+c2a2e4ac27,gbb8dafda3b+e5339d463f,gc120e1dc64+da31e9920e,gc28159a63d+0e5473021a,gcf0d15dbbd+703ba97ebf,gdaeeff99f8+f9a426f77a,ge6526c86ff+889fc9d533,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gf18bd8381d+7268b93478,gff1a9f87cc+0dd8ce4237,w.2024.16
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: