lsst.afw g9c22b2923f+53520f316c
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
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, filters, singles, bbox=None)
 
 clone (self, deep=True)
 
 filters (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
 
 filters
 
 array
 

Protected Member Functions

 _filterNamesToIndex (self, filterIndex)
 
 _slice (self, filters, filterIndex, indices)
 

Protected Attributes

 _filters
 
 _singles
 
 _bbox
 
 _filterIndex
 

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 `_filters`, `_singles`, and `_bbox`.

Parameters
----------
filters: `list`
    List of filter 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,
filters,
singles,
bbox = None )

Member Function Documentation

◆ __getitem__()

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

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

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

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.

◆ _filterNamesToIndex()

lsst.afw.multiband.MultibandBase._filterNamesToIndex ( self,
filterIndex )
protected
Convert a list of filter names to an index or a slice

Parameters
----------
filterIndex: iterable or `object`
    Index to specify a filter or list of filters,
    usually a string or enum.
    For example `filterIndex` can be
    `"R"` or `["R", "G", "B"]` or `[Filter.R, Filter.G, Filter.B]`,
    if `Filter` is an enum.

Returns
-------
filterNames: `list`
    Names of the filters in the slice
filterIndex: `slice` or `list` of `int`
    Index of each filter in `filterNames` in
    `self.filters`.

Definition at line 184 of file multiband.py.

◆ _slice()

lsst.afw.multiband.MultibandBase._slice ( self,
filters,
filterIndex,
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
----------
filters: `list` of `str`
    List of filter names for the slice. This is a subset of the
    filters in the parent multiband object
filterIndex: `list` of `int` or `slice`
    Index along the filter dimension
indices: `tuple` of remaining indices
    `MultibandBase.__getitem__` separates the first (filter)
    index from the remaining indices, so `indices` is a tuple
    of all of the indices that come after `filter` 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.MultibandPixel, lsst.afw.image._image._multiband.MultibandImageBase, and lsst.afw.image._image._multiband.MultibandTripleBase.

Definition at line 282 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.MultibandPixel, lsst.afw.image._image._multiband.MultibandImageBase, and lsst.afw.image._image._multiband.MultibandTripleBase.

Definition at line 68 of file multiband.py.

◆ filters()

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

Definition at line 86 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

◆ _bbox

lsst.afw.multiband.MultibandBase._bbox
protected

Definition at line 59 of file multiband.py.

◆ _filterIndex

lsst.afw.multiband.MultibandBase._filterIndex
protected

Definition at line 173 of file multiband.py.

◆ _filters

lsst.afw.multiband.MultibandBase._filters
protected

Definition at line 55 of file multiband.py.

◆ _singles

lsst.afw.multiband.MultibandBase._singles
protected

Definition at line 56 of file multiband.py.

◆ array

lsst.afw.multiband.MultibandBase.array

Definition at line 317 of file multiband.py.

◆ filters

lsst.afw.multiband.MultibandBase.filters

Definition at line 145 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: