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 | Properties | List of all members
lsst.afw.image.image.multiband.MultibandPixel Class Reference
Inheritance diagram for lsst.afw.image.image.multiband.MultibandPixel:
lsst.afw.multiband.MultibandBase

Public Member Functions

def __init__ (self, filters, singles, position)
 
def clone (self, deep=True)
 
def __getitem__ (self, indices)
 
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 __iter__ (self)
 
def __next__ (self)
 
def setXY0 (self, xy0)
 
def shiftedTo (self, xy0)
 
def shiftedBy (self, offset)
 
def __repr__ (self)
 
def __str__ (self)
 

Properties

 array = property(_getArray, _setArray)
 

Detailed Description

Multiband Pixel class

This represent acts as a container for a single pixel
(scalar) in multiple bands.

Parameters
----------
singles : `sequence`
   Either a list of single band objects or an array of values.
filters : `list`
   List of filter names. If `singles` is an `OrderedDict` or
   a `MultibandPixel` then this argument is ignored,
   otherwise it is required.
position : `Point2I`
   Location of the pixel in the parent image.
   Unlike other objects that inherit from `MultibandBase`,
   `MultibandPixel` objects don't have a full `Box2I`
   bounding box, since they only contain a single pixel,
   so the bounding box cannot be inherited from the
   list of `singles`.

Definition at line 33 of file multiband.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.afw.image.image.multiband.MultibandPixel.__init__ (   self,
  filters,
  singles,
  position 
)

Reimplemented from lsst.afw.multiband.MultibandBase.

Definition at line 55 of file multiband.py.

55  def __init__(self, filters, singles, position):
56  if any([arg is None for arg in [singles, filters, position]]):
57  err = "Expected an array of `singles`, a list of `filters, and a `bbox`"
58  raise NotImplementedError(err)
59 
60  # Make sure that singles is an array
61  singles = np.array(singles, copy=False)
62 
63  super().__init__(filters, singles, bbox=Box2I(position, Extent2I(1, 1)))
64  # In this case we want self.singles to be an array
65  self._singles = singles
66 
67  # Make sure that the bounding box has been setup properly
68  assert self.getBBox().getDimensions() == Extent2I(1, 1)
69 
bool any(CoordinateExpr< N > const &expr) noexcept
Return true if any elements are true.
Extent< int, 2 > Extent2I
Definition: Extent.h:397

Member Function Documentation

◆ __getitem__()

def lsst.afw.image.image.multiband.MultibandPixel.__getitem__ (   self,
  indices 
)
Get a slice of the underlying array

Since a `MultibandPixel` is a scalar in the
spatial dimensions, it can only be indexed with
a filter name, number, or slice.

Reimplemented from lsst.afw.multiband.MultibandBase.

Definition at line 100 of file multiband.py.

100  def __getitem__(self, indices):
101  """Get a slice of the underlying array
102 
103  Since a `MultibandPixel` is a scalar in the
104  spatial dimensions, it can only be indexed with
105  a filter name, number, or slice.
106  """
107  if isinstance(indices, tuple):
108  err = ("Too many indices: "
109  "`MultibandPixel has no spatial dimensions and "
110  "only accepts a filterIndex")
111  raise IndexError(err)
112  # Make the index into a valid numpy index or slice
113  filters, filterIndex = self._filterNamesToIndex(indices)
114  if len(filters) == 1 and not isinstance(filterIndex, slice):
115  # The user only requested a pixel in a single band, so return it
116  return self.array[filterIndex[0]]
117 
118  result = self.clone(False)
119  result._filters = filters
120  result._singles = self._singles[filterIndex]
121  # No need to update the bounding box, since pixels can only be sliced in the filter dimension
122  return result
123 

◆ __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.MultibandPixel.clone (   self,
  deep = True 
)
Make a copy of the current instance

`MultibandPixel.singles` is an array,
so this just makes a copy of the array
(as opposed to a view of the parent array).

Reimplemented from lsst.afw.multiband.MultibandBase.

Definition at line 84 of file multiband.py.

84  def clone(self, deep=True):
85  """Make a copy of the current instance
86 
87  `MultibandPixel.singles` is an array,
88  so this just makes a copy of the array
89  (as opposed to a view of the parent array).
90  """
91  if deep:
92  singles = np.copy(self.singles)
93  position = self.getBBox().getMin()
94  return MultibandPixel(filters=self.filters, singles=singles, position=position)
95 
96  result = MultibandPixel(filters=self.filters, singles=self.singles, position=self.getBBox().getMin())
97  result._bbox = self.getBBox()
98  return result
99 

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

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 

◆ 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 

◆ 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.multiband.MultibandBase.setXY0 (   self,
  xy0 
)
inherited
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.

228  def setXY0(self, xy0):
229  """Shift the bounding box but keep the same Extent
230 
231  Parameters
232  ----------
233  xy0: `Point2I`
234  New minimum bounds of the bounding box
235  """
236  self._bbox = Box2I(xy0, self._bbox.getDimensions())
237  for singleObj in self.singles:
238  singleObj.setXY0(xy0)
239 

◆ 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.multiband.MultibandBase.shiftedTo (   self,
  xy0 
)
inherited
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.

240  def shiftedTo(self, xy0):
241  """Shift the bounding box but keep the same Extent
242 
243  This method is broken until DM-10781 is completed.
244 
245  Parameters
246  ----------
247  xy0: `Point2I`
248  New minimum bounds of the bounding box
249 
250  Returns
251  -------
252  result: `MultibandBase`
253  A copy of the object, shifted to `xy0`.
254  """
255  raise NotImplementedError("shiftedBy not implemented until DM-10781")
256  result = self.clone(False)
257  result._bbox = Box2I(xy0, result._bbox.getDimensions())
258  for singleObj in result.singles:
259  singleObj.setXY0(xy0)
260  return result
261 

◆ 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 

◆ 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 

Property Documentation

◆ array

lsst.afw.image.image.multiband.MultibandPixel.array = property(_getArray, _setArray)
static

Definition at line 82 of file multiband.py.


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