LSST Applications g0da5cf3356+25b44625d0,g17e5ecfddb+50a5ac4092,g1c76d35bf8+585f0f68a2,g295839609d+8ef6456700,g2e2c1a68ba+cc1f6f037e,g38293774b4+62d12e78cb,g3b44f30a73+2891c76795,g48ccf36440+885b902d19,g4b2f1765b6+0c565e8f25,g5320a0a9f6+bd4bf1dc76,g56364267ca+403c24672b,g56b687f8c9+585f0f68a2,g5c4744a4d9+78cd207961,g5ffd174ac0+bd4bf1dc76,g6075d09f38+3075de592a,g667d525e37+cacede5508,g6f3e93b5a3+da81c812ee,g71f27ac40c+cacede5508,g7212e027e3+eb621d73aa,g774830318a+18d2b9fa6c,g7985c39107+62d12e78cb,g79ca90bc5c+fa2cc03294,g881bdbfe6c+cacede5508,g91fc1fa0cf+82a115f028,g961520b1fb+2534687f64,g96f01af41f+f2060f23b6,g9ca82378b8+cacede5508,g9d27549199+78cd207961,gb065e2a02a+ad48cbcda4,gb1df4690d6+585f0f68a2,gb35d6563ee+62d12e78cb,gbc3249ced9+bd4bf1dc76,gbec6a3398f+bd4bf1dc76,gd01420fc67+bd4bf1dc76,gd59336e7c4+c7bb92e648,gf46e8334de+81c9a61069,gfed783d017+bd4bf1dc76,v25.0.1.rc3
LSST Data Management Base Package
Loading...
Searching...
No Matches
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)
 

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

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

◆ 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

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: