lsst.afw gf03f0b42f3+b1047159b2
Loading...
Searching...
No Matches
lsst.afw.multiband.MultibandBase Class Reference
Inheritance diagram for lsst.afw.multiband.MultibandBase:
lsst.afw.detection.multiband.MultibandFootprint lsst.afw.image._image._multiband.MultibandImageBase lsst.afw.image._image._multiband.MultibandPixel lsst.afw.image._image._multiband.MultibandTripleBase lsst.afw.image._image._multiband.MultibandImage lsst.afw.image._image._multiband.MultibandMask lsst.afw.image._exposure._multiband.MultibandExposure lsst.afw.image._image._multiband.MultibandMaskedImage

Public Member Functions

 __init__ (self, bands, singles, bbox=None)
 
 clone (self, deep=True)
 
 bands (self)
 
 singles (self)
 
 getBBox (self)
 
 getXY0 (self)
 
 x0 (self)
 
 y0 (self)
 
 origin (self)
 
 width (self)
 
 height (self)
 
 __len__ (self)
 
 __getitem__ (self, args)
 
 __iter__ (self)
 
 __next__ (self)
 
 setXY0 (self, xy0)
 
 shiftedTo (self, xy0)
 
 shiftedBy (self, offset)
 
 __repr__ (self)
 
 __str__ (self)
 

Public Attributes

 y0
 
 x0
 
 bands
 
 singles = Box2I(xy0, self._bbox.getDimensions())
 
 array
 

Protected Member Functions

 _bandNamesToIndex (self, bandIndex)
 
 _slice (self, bands, bandIndex, indices)
 

Protected Attributes

 _bands = tuple([f for f in bands])
 
 _singles = tuple(singles)
 
 _bbox = self._singles[0].getBBox()
 
int _bandIndex = 0
 

Detailed Description

Base class for multiband objects

The LSST stack has a number of image-like classes that have
data in multiple bands that are stored as separate objects.
Analyzing the data can be easier using a Multiband object that
wraps the underlying data as a single data cube that can be sliced and
updated as a single object.

`MultibandBase` is designed to contain the most important universal
methods for initializing, slicing, and extracting common parameters
(such as the bounding box or XY0 position) to all of the single band classes,
as long as derived classes either call the base class `__init__`
or set the `_bands`, `_singles`, and `_bbox`.

Parameters
----------
bands: `list`
    List of band names.
singles: `list`
    List of single band objects
bbox: `Box2I`
    By default `MultibandBase` uses `singles[0].getBBox()` to set
    the bounding box of the multiband

Definition at line 29 of file multiband.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.afw.multiband.MultibandBase.__init__ ( self,
bands,
singles,
bbox = None )

Definition at line 54 of file multiband.py.

Member Function Documentation

◆ __getitem__()

lsst.afw.multiband.MultibandBase.__getitem__ ( self,
args )
Get a slice of the underlying array

If only a single band is specified,
return the single band object sliced
appropriately.

Definition at line 147 of file multiband.py.

◆ __iter__()

lsst.afw.multiband.MultibandBase.__iter__ ( self)

Definition at line 172 of file multiband.py.

◆ __len__()

lsst.afw.multiband.MultibandBase.__len__ ( self)

Definition at line 144 of file multiband.py.

◆ __next__()

lsst.afw.multiband.MultibandBase.__next__ ( self)

Definition at line 176 of file multiband.py.

◆ __repr__()

lsst.afw.multiband.MultibandBase.__repr__ ( self)

Definition at line 310 of file multiband.py.

◆ __str__()

lsst.afw.multiband.MultibandBase.__str__ ( self)

Definition at line 315 of file multiband.py.

◆ _bandNamesToIndex()

lsst.afw.multiband.MultibandBase._bandNamesToIndex ( self,
bandIndex )
protected
Convert a list of band names to an index or a slice

Parameters
----------
bandIndex: iterable or `object`
    Index to specify a band or list of bands,
    usually a string or enum.
    For example `bandIndex` can be
    `"R"` or `["R", "G", "B"]` or `[Band.R, Band.G, Band.B]`,
    if `Band` is an enum.

Returns
-------
bandNames: `list`
    Names of the bands in the slice
bandIndex: `slice` or `list` of `int`
    Index of each band in `bandNames` in
    `self.bands`.

Definition at line 184 of file multiband.py.

◆ _slice()

lsst.afw.multiband.MultibandBase._slice ( self,
bands,
bandIndex,
indices )
protected
Slice the current object and return the result

Different inherited classes will handling slicing differently,
so this method must be overloaded in inherited classes.

Parameters
----------
bands: `list` of `str`
    List of band names for the slice. This is a subset of the
    bands in the parent multiband object
bandIndex: `list` of `int` or `slice`
    Index along the band dimension
indices: `tuple` of remaining indices
    `MultibandBase.__getitem__` separates the first (band)
    index from the remaining indices, so `indices` is a tuple
    of all of the indices that come after `band` in the
    `args` passed to `MultibandBase.__getitem__`.

Returns
-------
result: `object`
    Sliced version of the current object, which could be the
    same class or a different class depending on the
    slice being made.

Reimplemented in lsst.afw.detection.multiband.MultibandFootprint, lsst.afw.image._exposure._multiband.MultibandExposure, lsst.afw.image._image._multiband.MultibandImageBase, lsst.afw.image._image._multiband.MultibandPixel, and lsst.afw.image._image._multiband.MultibandTripleBase.

Definition at line 282 of file multiband.py.

◆ bands()

lsst.afw.multiband.MultibandBase.bands ( self)
List of band names for the single band objects

Definition at line 86 of file multiband.py.

◆ clone()

lsst.afw.multiband.MultibandBase.clone ( self,
deep = True )
Copy the current object

This must be overloaded in a subclass of `MultibandBase`

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

Returns
-------
result: `MultibandBase`
    copy of the instance that inherits from `MultibandBase`

Reimplemented in lsst.afw.detection.multiband.MultibandFootprint, lsst.afw.image._image._multiband.MultibandImageBase, lsst.afw.image._image._multiband.MultibandPixel, and lsst.afw.image._image._multiband.MultibandTripleBase.

Definition at line 68 of file multiband.py.

◆ getBBox()

lsst.afw.multiband.MultibandBase.getBBox ( self)

◆ getXY0()

lsst.afw.multiband.MultibandBase.getXY0 ( self)
Minimum coordinate in the bounding box

Definition at line 102 of file multiband.py.

◆ height()

lsst.afw.multiband.MultibandBase.height ( self)
Height of the images

Definition at line 139 of file multiband.py.

◆ origin()

lsst.afw.multiband.MultibandBase.origin ( self)
Minimum (y,x) position

This is the position of `self.getBBox().getMin()`,
but available as a tuple for numpy array indexing.

Definition at line 124 of file multiband.py.

◆ setXY0()

lsst.afw.multiband.MultibandBase.setXY0 ( self,
xy0 )
Shift the bounding box but keep the same Extent

Parameters
----------
xy0: `Point2I`
    New minimum bounds of the bounding box

Reimplemented in lsst.afw.image._image._multiband.MultibandTripleBase.

Definition at line 228 of file multiband.py.

◆ shiftedBy()

lsst.afw.multiband.MultibandBase.shiftedBy ( self,
offset )
Shift a bounding box by an offset, but keep the same Extent

This method is broken until DM-10781 is completed.

Parameters
----------
offset: `Extent2I`
    Amount to shift the bounding box in x and y.

Returns
-------
result: `MultibandBase`
    A copy of the object, shifted by `offset`

Definition at line 262 of file multiband.py.

◆ shiftedTo()

lsst.afw.multiband.MultibandBase.shiftedTo ( self,
xy0 )
Shift the bounding box but keep the same Extent

This method is broken until DM-10781 is completed.

Parameters
----------
xy0: `Point2I`
    New minimum bounds of the bounding box

Returns
-------
result: `MultibandBase`
    A copy of the object, shifted to `xy0`.

Reimplemented in lsst.afw.image._image._multiband.MultibandTripleBase.

Definition at line 240 of file multiband.py.

◆ singles()

lsst.afw.multiband.MultibandBase.singles ( self)
List of single band objects

Definition at line 92 of file multiband.py.

◆ width()

lsst.afw.multiband.MultibandBase.width ( self)
Width of the images

Definition at line 133 of file multiband.py.

◆ x0()

lsst.afw.multiband.MultibandBase.x0 ( self)
X0

X component of XY0 `Point2I.getX()`

Definition at line 108 of file multiband.py.

◆ y0()

lsst.afw.multiband.MultibandBase.y0 ( self)
Y0

Y component of XY0 `Point2I.getY()`

Definition at line 116 of file multiband.py.

Member Data Documentation

◆ _bandIndex

int lsst.afw.multiband.MultibandBase._bandIndex = 0
protected

Definition at line 173 of file multiband.py.

◆ _bands

lsst.afw.multiband.MultibandBase._bands = tuple([f for f in bands])
protected

Definition at line 55 of file multiband.py.

◆ _bbox

lsst.afw.multiband.MultibandBase._bbox = self._singles[0].getBBox()
protected

Definition at line 59 of file multiband.py.

◆ _singles

lsst.afw.multiband.MultibandBase._singles = tuple(singles)
protected

Definition at line 56 of file multiband.py.

◆ array

lsst.afw.multiband.MultibandBase.array

Definition at line 317 of file multiband.py.

◆ bands

lsst.afw.multiband.MultibandBase.bands

Definition at line 145 of file multiband.py.

◆ singles

lsst.afw.multiband.MultibandBase.singles = Box2I(xy0, self._bbox.getDimensions())

Definition at line 237 of file multiband.py.

◆ x0

lsst.afw.multiband.MultibandBase.x0

Definition at line 130 of file multiband.py.

◆ y0

lsst.afw.multiband.MultibandBase.y0

Definition at line 130 of file multiband.py.


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