LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Member Functions | Static Public Member Functions | List of all members
lsst.afw.image.image._multiband.MultibandMaskedImage Class Reference
Inheritance diagram for lsst.afw.image.image._multiband.MultibandMaskedImage:
lsst.afw.image.image._multiband.MultibandTripleBase lsst.afw.multiband.MultibandBase

Public Member Functions

def __init__ (self, filters, image=None, mask=None, variance=None)
 
def setXY0 (self, xy0)
 
def shiftedTo (self, xy0)
 
def clone (self, deep=True)
 
def image (self)
 
def mask (self)
 
def variance (self)
 
def getBBox (self, origin=PARENT)
 
def getBBox (self)
 
def filters (self)
 
def singles (self)
 
def getXY0 (self)
 
def x0 (self)
 
def y0 (self)
 
def origin (self)
 
def width (self)
 
def height (self)
 
def __len__ (self)
 
def __getitem__ (self, args)
 
def __iter__ (self)
 
def __next__ (self)
 
def shiftedBy (self, offset)
 
def __repr__ (self)
 
def __str__ (self)
 

Static Public Member Functions

def fromImages (filters, singles)
 
def fromArrays (filters, image, mask, variance, bbox=None)
 
def fromKwargs (filters, filterKwargs, singleType=MaskedImageF, **kwargs)
 

Detailed Description

MultibandMaskedImage class

This class acts as a container for multiple `afw.MaskedImage` objects.
All masked images must have the same bounding box, and the associated
images must all have the same data type.
The `image`, `mask`, and `variance` are all stored separately into
a `MultibandImage`, `MultibandMask`, and `MultibandImage` respectively,
which each have their own internal 3D arrays (filter, y, x).

See `MultibandTripleBase` for parameter definitions.

Definition at line 801 of file _multiband.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.afw.image.image._multiband.MultibandMaskedImage.__init__ (   self,
  filters,
  image = None,
  mask = None,
  variance = None 
)

Reimplemented from lsst.afw.image.image._multiband.MultibandTripleBase.

Definition at line 813 of file _multiband.py.

813  def __init__(self, filters, image=None, mask=None, variance=None):
814  super().__init__(filters, image, mask, variance)
815 

Member Function Documentation

◆ __getitem__()

def lsst.afw.multiband.MultibandBase.__getitem__ (   self,
  args 
)
inherited
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.

147  def __getitem__(self, args):
148  """Get a slice of the underlying array
149 
150  If only a single filter is specified,
151  return the single band object sliced
152  appropriately.
153  """
154  if not isinstance(args, tuple):
155  indices = (args,)
156  else:
157  indices = args
158 
159  # Return the single band object if the first
160  # index is not a list or slice.
161  filters, filterIndex = self._filterNamesToIndex(indices[0])
162  if not isinstance(filterIndex, slice) and len(filterIndex) == 1:
163  if len(indices) > 2:
164  return self.singles[filterIndex[0]][indices[1:]]
165  elif len(indices) == 2:
166  return self.singles[filterIndex[0]][indices[1]]
167  else:
168  return self.singles[filterIndex[0]]
169 
170  return self._slice(filters=filters, filterIndex=filterIndex, indices=indices[1:])
171 

◆ __iter__()

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

Definition at line 172 of file multiband.py.

172  def __iter__(self):
173  self._filterIndex = 0
174  return self
175 

◆ __len__()

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

Definition at line 144 of file multiband.py.

144  def __len__(self):
145  return len(self.filters)
146 

◆ __next__()

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

Definition at line 176 of file multiband.py.

176  def __next__(self):
177  if self._filterIndex < len(self.filters):
178  result = self.singles[self._filterIndex]
179  self._filterIndex += 1
180  else:
181  raise StopIteration
182  return result
183 

◆ __repr__()

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

Definition at line 310 of file multiband.py.

310  def __repr__(self):
311  result = "<{0}, filters={1}, bbox={2}>".format(
312  self.__class__.__name__, self.filters, self.getBBox().__repr__())
313  return result
314 
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174

◆ __str__()

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

Definition at line 315 of file multiband.py.

315  def __str__(self):
316  if hasattr(self, "array"):
317  return str(self.array)
318  return self.__repr__()

◆ clone()

def lsst.afw.image.image._multiband.MultibandTripleBase.clone (   self,
  deep = True 
)
inherited
Make a copy of the current instance

Reimplemented from lsst.afw.multiband.MultibandBase.

Definition at line 639 of file _multiband.py.

639  def clone(self, deep=True):
640  """Make a copy of the current instance
641  """
642  image = self.image.clone(deep)
643  if self.mask is not None:
644  mask = self.mask.clone(deep)
645  else:
646  mask = None
647  if self.variance is not None:
648  variance = self.variance.clone(deep)
649  else:
650  variance = None
651  return type(self)(self.filters, image, mask, variance)
652 
table::Key< int > type
Definition: Detector.cc:163

◆ filters()

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

Definition at line 86 of file multiband.py.

86  def filters(self):
87  """List of filter names for the single band objects
88  """
89  return self._filters
90 

◆ fromArrays()

def lsst.afw.image.image._multiband.MultibandMaskedImage.fromArrays (   filters,
  image,
  mask,
  variance,
  bbox = None 
)
static
Construct a MultibandMaskedImage from a collection of arrays

see `tripleFromArrays` for a description of parameters

Definition at line 825 of file _multiband.py.

825  def fromArrays(filters, image, mask, variance, bbox=None):
826  """Construct a MultibandMaskedImage from a collection of arrays
827 
828  see `tripleFromArrays` for a description of parameters
829  """
830  return tripleFromArrays(MultibandMaskedImage, filters, image, mask, variance, bbox)
831 
def tripleFromArrays(cls, filters, image, mask, variance, bbox=None)
Definition: _multiband.py:739

◆ fromImages()

def lsst.afw.image.image._multiband.MultibandMaskedImage.fromImages (   filters,
  singles 
)
static
Construct a MultibandImage from a collection of single band images

see `tripleFromImages` for a description of parameters

Definition at line 817 of file _multiband.py.

817  def fromImages(filters, singles):
818  """Construct a MultibandImage from a collection of single band images
819 
820  see `tripleFromImages` for a description of parameters
821  """
822  return tripleFromSingles(MultibandMaskedImage, filters, singles)
823 
def tripleFromSingles(cls, filters, singles, **kwargs)
Definition: _multiband.py:720

◆ fromKwargs()

def lsst.afw.image.image._multiband.MultibandMaskedImage.fromKwargs (   filters,
  filterKwargs,
  singleType = MaskedImageF,
**  kwargs 
)
static
Build a MultibandImage from a set of keyword arguments

see `makeTripleFromKwargs` for a description of parameters

Definition at line 833 of file _multiband.py.

833  def fromKwargs(filters, filterKwargs, singleType=MaskedImageF, **kwargs):
834  """Build a MultibandImage from a set of keyword arguments
835 
836  see `makeTripleFromKwargs` for a description of parameters
837  """
838  return makeTripleFromKwargs(MultibandMaskedImage, filters, filterKwargs, singleType, **kwargs)
839 
def makeTripleFromKwargs(cls, filters, filterKwargs, singleType, **kwargs)
Definition: _multiband.py:770

◆ getBBox() [1/2]

def lsst.afw.multiband.MultibandBase.getBBox (   self)
inherited
Bounding box

Definition at line 97 of file multiband.py.

97  def getBBox(self):
98  """Bounding box
99  """
100  return self._bbox
101 

◆ getBBox() [2/2]

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

Definition at line 710 of file _multiband.py.

710  def getBBox(self, origin=PARENT):
711  """Bounding box
712  """
713  if origin == PARENT:
714  return self._bbox
715  elif origin == LOCAL:
716  return Box2I(Point2I(0, 0), self._bbox.getDimensions())
717  raise ValueError("Unrecognized origin, expected either PARENT or LOCAL")
718 
719 
Point< int, 2 > Point2I
Definition: Point.h:321

◆ getXY0()

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

Definition at line 102 of file multiband.py.

102  def getXY0(self):
103  """Minimum coordinate in the bounding box
104  """
105  return self.getBBox().getMin()
106 

◆ height()

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

Definition at line 139 of file multiband.py.

139  def height(self):
140  """Height of the images
141  """
142  return self.getBBox().getHeight()
143 

◆ image()

def lsst.afw.image.image._multiband.MultibandTripleBase.image (   self)
inherited
The image of the MultibandMaskedImage

Definition at line 696 of file _multiband.py.

696  def image(self):
697  """The image of the MultibandMaskedImage"""
698  return self._image
699 
afw::table::Key< afw::table::Array< ImagePixelT > > image

◆ mask()

def lsst.afw.image.image._multiband.MultibandTripleBase.mask (   self)
inherited
The mask of the MultibandMaskedImage

Definition at line 701 of file _multiband.py.

701  def mask(self):
702  """The mask of the MultibandMaskedImage"""
703  return self._mask
704 
afw::table::Key< afw::table::Array< MaskPixelT > > mask

◆ origin()

def lsst.afw.multiband.MultibandBase.origin (   self)
inherited
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.

124  def origin(self):
125  """Minimum (y,x) position
126 
127  This is the position of `self.getBBox().getMin()`,
128  but available as a tuple for numpy array indexing.
129  """
130  return (self.y0, self.x0)
131 

◆ setXY0()

def lsst.afw.image.image._multiband.MultibandTripleBase.setXY0 (   self,
  xy0 
)
inherited
Shift the bounding box but keep the same Extent
This is different than `MultibandBase.setXY0`
because the multiband `image`, `mask`, and `variance` objects
must all have their bounding boxes updated.
Parameters
----------
xy0 : `Point2I`
   New minimum bounds of the bounding box

Reimplemented from lsst.afw.multiband.MultibandBase.

Definition at line 595 of file _multiband.py.

595  def setXY0(self, xy0):
596  """Shift the bounding box but keep the same Extent
597  This is different than `MultibandBase.setXY0`
598  because the multiband `image`, `mask`, and `variance` objects
599  must all have their bounding boxes updated.
600  Parameters
601  ----------
602  xy0 : `Point2I`
603  New minimum bounds of the bounding box
604  """
605  super().setXY0(xy0)
606  self.image.setXY0(xy0)
607  if self.mask is not None:
608  self.mask.setXY0(xy0)
609  if self.variance is not None:
610  self.variance.setXY0(xy0)
611 

◆ shiftedBy()

def lsst.afw.multiband.MultibandBase.shiftedBy (   self,
  offset 
)
inherited
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.

262  def shiftedBy(self, offset):
263  """Shift a bounding box by an offset, but keep the same Extent
264 
265  This method is broken until DM-10781 is completed.
266 
267  Parameters
268  ----------
269  offset: `Extent2I`
270  Amount to shift the bounding box in x and y.
271 
272  Returns
273  -------
274  result: `MultibandBase`
275  A copy of the object, shifted by `offset`
276  """
277  raise NotImplementedError("shiftedBy not implemented until DM-10781")
278  xy0 = self._bbox.getMin() + offset
279  return self.shiftedTo(xy0)
280 

◆ shiftedTo()

def lsst.afw.image.image._multiband.MultibandTripleBase.shiftedTo (   self,
  xy0 
)
inherited
Shift the bounding box but keep the same Extent

This is different than `MultibandBase.shiftedTo`
because the multiband `image`, `mask`, and `variance` objects
must all have their bounding boxes updated.

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

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

Reimplemented from lsst.afw.multiband.MultibandBase.

Definition at line 612 of file _multiband.py.

612  def shiftedTo(self, xy0):
613  """Shift the bounding box but keep the same Extent
614 
615  This is different than `MultibandBase.shiftedTo`
616  because the multiband `image`, `mask`, and `variance` objects
617  must all have their bounding boxes updated.
618 
619  Parameters
620  ----------
621  xy0 : `Point2I`
622  New minimum bounds of the bounding box
623 
624  Returns
625  -------
626  result : `MultibandBase`
627  A copy of the object, shifted to `xy0`.
628  """
629  raise NotImplementedError("shiftedTo not implemented until DM-10781")
630  result = self.clone(False)
631  result._image = result.image.shiftedTo(xy0)
632  if self.mask is not None:
633  result._mask = result.mask.shiftedTo(xy0)
634  if self.variance is not None:
635  result._variance = result.variance.shiftedTo(xy0)
636  result._bbox = result.image.getBBox()
637  return result
638 

◆ singles()

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

Definition at line 92 of file multiband.py.

92  def singles(self):
93  """List of single band objects
94  """
95  return self._singles
96 

◆ variance()

def lsst.afw.image.image._multiband.MultibandTripleBase.variance (   self)
inherited
The variance of the MultibandMaskedImage

Definition at line 706 of file _multiband.py.

706  def variance(self):
707  """The variance of the MultibandMaskedImage"""
708  return self._variance
709 
afw::table::Key< afw::table::Array< VariancePixelT > > variance

◆ width()

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

Definition at line 133 of file multiband.py.

133  def width(self):
134  """Width of the images
135  """
136  return self.getBBox().getWidth()
137 

◆ x0()

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

X component of XY0 `Point2I.getX()`

Definition at line 108 of file multiband.py.

108  def x0(self):
109  """X0
110 
111  X component of XY0 `Point2I.getX()`
112  """
113  return self.getBBox().getMinX()
114 

◆ y0()

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

Y component of XY0 `Point2I.getY()`

Definition at line 116 of file multiband.py.

116  def y0(self):
117  """Y0
118 
119  Y component of XY0 `Point2I.getY()`
120  """
121  return self.getBBox().getMinY()
122 

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