LSST Applications g0da5cf3356+25b44625d0,g17e5ecfddb+50a5ac4092,g1c76d35bf8+585f0f68a2,g295839609d+8ef6456700,g2e2c1a68ba+cc1f6f037e,g38293774b4+62d12e78cb,g3b44f30a73+2891c76795,g48ccf36440+885b902d19,g4b2f1765b6+0c565e8f25,g5320a0a9f6+bd4bf1dc76,g56364267ca+403c24672b,g56b687f8c9+585f0f68a2,g5c4744a4d9+78cd207961,g5ffd174ac0+bd4bf1dc76,g6075d09f38+3075de592a,g667d525e37+cacede5508,g6f3e93b5a3+da81c812ee,g71f27ac40c+cacede5508,g7212e027e3+eb621d73aa,g774830318a+18d2b9fa6c,g7985c39107+62d12e78cb,g79ca90bc5c+fa2cc03294,g881bdbfe6c+cacede5508,g91fc1fa0cf+82a115f028,g961520b1fb+2534687f64,g96f01af41f+f2060f23b6,g9ca82378b8+cacede5508,g9d27549199+78cd207961,gb065e2a02a+ad48cbcda4,gb1df4690d6+585f0f68a2,gb35d6563ee+62d12e78cb,gbc3249ced9+bd4bf1dc76,gbec6a3398f+bd4bf1dc76,gd01420fc67+bd4bf1dc76,gd59336e7c4+c7bb92e648,gf46e8334de+81c9a61069,gfed783d017+bd4bf1dc76,v25.0.1.rc3
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Properties | List of all members
lsst.afw.image.image._multiband.MultibandImageBase Class Reference
Inheritance diagram for lsst.afw.image.image._multiband.MultibandImageBase:
lsst.afw.multiband.MultibandBase lsst.afw.image.image._multiband.MultibandImage lsst.afw.image.image._multiband.MultibandMask

Public Member Functions

def __init__ (self, filters, array, singleType, bbox=None)
 
def clone (self, deep=True)
 
def __setitem__ (self, args, value)
 
def getBBox (self, origin=PARENT)
 

Properties

 array = property(_getArray, _setArray)
 

Detailed Description

Multiband Image class

This class acts as a container for multiple `afw.Image` objects.
All images must be contained in the same bounding box,
and have the same data type.
The data is stored in a 3D array (filters, y, x), and the single
band `Image` instances have an internal array that points to the
3D multiband array, so that the single band objects and multiband
array are always in agreement.

Parameters
----------
filters : `list`
   List of filter names.
array : 3D numpy array
   Array (filters, y, x) of multiband data.
   If this is used to initialize a `MultibandImage`,
   either `bbox` or `singles` is also required.
singleType : `type`
   Type of the single band object (eg. `Image`, `Mask`) to
   convert the array into a tuple of single band objects
   that point to the image array.
bbox : `Box2I`
   Location of the array in a larger single band image.
   If `bbox` is `None` then the bounding box is initialized
   at the origin.

Definition at line 128 of file _multiband.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.afw.image.image._multiband.MultibandImageBase.__init__ (   self,
  filters,
  array,
  singleType,
  bbox = None 
)

Reimplemented from lsst.afw.multiband.MultibandBase.

Reimplemented in lsst.afw.image.image._multiband.MultibandImage, and lsst.afw.image.image._multiband.MultibandMask.

Definition at line 156 of file _multiband.py.

156 def __init__(self, filters, array, singleType, bbox=None):
157 # Create the single band objects from the array
158 if len(array) != len(filters):
159 raise ValueError("`array` and `filters` must have the same length")
160 self._array = array
161 self._filters = tuple(filters)
162 if bbox is None:
163 bbox = Box2I(Point2I(0, 0), Extent2I(array.shape[2], array.shape[1]))
164 self._bbox = bbox
165
166 xy0 = self.getXY0()
167 dtype = array.dtype
168 self._singles = tuple([singleType(array=array[n], xy0=xy0, dtype=dtype) for n in range(len(array))])
169
170 # Make sure that all of the parameters have been setup appropriately
171 assert isinstance(self._bbox, Box2I)
172 assert len(self.singles) == len(self.filters)
173

Member Function Documentation

◆ __setitem__()

def lsst.afw.image.image._multiband.MultibandImageBase.__setitem__ (   self,
  args,
  value 
)
Set a subset of the MultibandImage

Definition at line 249 of file _multiband.py.

249 def __setitem__(self, args, value):
250 """Set a subset of the MultibandImage
251 """
252 if not isinstance(args, tuple):
253 indices = (args,)
254 else:
255 indices = args
256
257 # Return the single band object if the first
258 # index is not a list or slice.
259 filters, filterIndex = self._filterNamesToIndex(indices[0])
260 if len(indices) > 1:
261 sy, sx, bbox = imageIndicesToNumpy(indices[1:], self.getBBox)
262 else:
263 sy = sx = slice(None)
264 if hasattr(value, "array"):
265 self._array[filterIndex, sy, sx] = value.array
266 else:
267 self._array[filterIndex, sy, sx] = value
268

◆ clone()

def lsst.afw.image.image._multiband.MultibandImageBase.clone (   self,
  deep = True 
)
Copy the current object

Parameters
----------
deep : `bool`
   Whether or not to make a deep copy

Reimplemented from lsst.afw.multiband.MultibandBase.

Definition at line 190 of file _multiband.py.

190 def clone(self, deep=True):
191 """Copy the current object
192
193 Parameters
194 ----------
195 deep : `bool`
196 Whether or not to make a deep copy
197 """
198 if deep:
199 array = np.copy(self.array)
200 bbox = Box2I(self.getBBox())
201 else:
202 array = self.array
203 bbox = self.getBBox()
204 result = type(self)(self.filters, array, bbox)
205 return result
206
table::Key< int > type
Definition: Detector.cc:163

◆ getBBox()

def lsst.afw.image.image._multiband.MultibandImageBase.getBBox (   self,
  origin = PARENT 
)
Bounding box

Reimplemented from lsst.afw.multiband.MultibandBase.

Definition at line 269 of file _multiband.py.

269 def getBBox(self, origin=PARENT):
270 """Bounding box
271 """
272 if origin == PARENT:
273 return self._bbox
274 elif origin == LOCAL:
275 return Box2I(Point2I(0, 0), self._bbox.getDimensions())
276 raise ValueError("Unrecognized origin, expected either PARENT or LOCAL")
277
278

Property Documentation

◆ array

lsst.afw.image.image._multiband.MultibandImageBase.array = property(_getArray, _setArray)
static

Definition at line 188 of file _multiband.py.


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