LSST Applications  21.0.0+04719a4bac,21.0.0-1-ga51b5d4+4b710797af,21.0.0-1-gfc31b0f+3b24369756,21.0.0-10-g2408eff+50e97f2f47,21.0.0-10-g560fb7b+0803ad37c5,21.0.0-10-g5daeb2b+f9b8dc6d5a,21.0.0-10-g8d1d15d+77a6b82ebf,21.0.0-10-gcf60f90+c961be884d,21.0.0-11-g25eff31+7692554667,21.0.0-17-g6590b197+a14a01c114,21.0.0-2-g103fe59+b79afc2051,21.0.0-2-g1367e85+1003a3501c,21.0.0-2-g45278ab+04719a4bac,21.0.0-2-g5242d73+1003a3501c,21.0.0-2-g7f82c8f+c2a1919b98,21.0.0-2-g8f08a60+fd0b970de5,21.0.0-2-ga326454+c2a1919b98,21.0.0-2-gde069b7+ca45a81b40,21.0.0-2-gecfae73+afcaaec585,21.0.0-2-gfc62afb+1003a3501c,21.0.0-21-g5d80ea29e+5e3c9a3766,21.0.0-3-g357aad2+c67f36f878,21.0.0-3-g4be5c26+1003a3501c,21.0.0-3-g65f322c+02b1f88459,21.0.0-3-g7d9da8d+3b24369756,21.0.0-3-ge02ed75+a423c2ae7a,21.0.0-4-g591bb35+a423c2ae7a,21.0.0-4-g65b4814+0803ad37c5,21.0.0-4-g88306b8+199c7497e5,21.0.0-4-gccdca77+a631590478,21.0.0-4-ge8a399c+b923ff878e,21.0.0-5-gd00fb1e+d8b1e95daa,21.0.0-53-ge728e5d5+3cb64fea8e,21.0.0-6-g2d4f3f3+04719a4bac,21.0.0-7-g04766d7+8d320c19d5,21.0.0-7-g98eecf7+205433fbda,21.0.0-9-g39e06b5+a423c2ae7a,master-gac4afde19b+a423c2ae7a,w.2021.11
LSST Data Management Base Package
Public Member Functions | List of all members
lsst.afw.image.image.multiband.MultibandTripleBase Class Reference
Inheritance diagram for lsst.afw.image.image.multiband.MultibandTripleBase:
lsst.afw.multiband.MultibandBase lsst.afw.image.exposure.multiband.MultibandExposure lsst.afw.image.image.multiband.MultibandMaskedImage

Public Member Functions

def __init__ (self, filters, image, mask, variance)
 
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 filters (self)
 
def singles (self)
 
def getBBox (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)
 

Detailed Description

MultibandTripleBase class

This is a base class inherited by multiband classes
with `image`, `mask`, and `variance` objects,
such as `MultibandMaskedImage` and `MultibandExposure`.

Parameters
----------
filters : `list`
   List of filter names. If `singles` is an `OrderedDict`
   then this argument is ignored, otherwise it is required.
image : `list` or `MultibandImage`
   List of `Image` objects that represent the image in each band or
   a `MultibandImage`.
   Ignored if `singles` is not `None`.
mask : `list` or `MultibandMask`
   List of `Mask` objects that represent the mask in each bandor
   a `MultibandMask`.
   Ignored if `singles` is not `None`.
variance : `list` or `MultibandImage`
   List of `Image` objects that represent the variance in each bandor
   a `MultibandImage`.
   Ignored if `singles` is not `None`.

Definition at line 554 of file multiband.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.afw.image.image.multiband.MultibandTripleBase.__init__ (   self,
  filters,
  image,
  mask,
  variance 
)

Reimplemented in lsst.afw.image.image.multiband.MultibandMaskedImage.

Definition at line 579 of file multiband.py.

579  def __init__(self, filters, image, mask, variance):
580  self._filters = tuple(filters)
581  # Convert single band images into multiband images
582  if not isinstance(image, MultibandBase):
583  image = MultibandImage.fromImages(filters, image)
584  if mask is not None:
585  mask = MultibandMask.fromMasks(filters, mask)
586  if variance is not None:
587  variance = MultibandImage.fromImages(filters, variance)
588  self._image = image
589  self._mask = mask
590  self._variance = variance
591 
592  self._singles = self._buildSingles(self._image, self._mask, self._variance)
593  self._bbox = self.singles[0].getBBox()
594 

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 
)
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 

◆ 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 
)
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)
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)
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 
)
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 
)
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)
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: