27from ._maskedImage
import MaskedImageI, MaskedImageF, MaskedImageD, MaskedImageU, MaskedImageL
29from .._image._fitsIoWithOptions
import imageReadFitsWithOptions, exposureWriteFitsWithOptions
41 def set(self, value, mask=None, variance=None):
42 """Assign a tuple of scalars to the entirety of all three planes.
44 if mask
is None and variance
is None:
46 value, mask, variance = value
55 self.variance.
set(variance)
57 def _set(self, index, value, origin):
58 """Set the pixel at the given index to a triple (value, mask, variance).
62 index : `geom.Point2I`
63 Position of the pixel to assign to.
65 A tuple of (value, mask, variance) scalars.
66 origin : `ImageOrigin`
67 Coordinate system of ``index`` (`PARENT` or `LOCAL`).
69 self.image[index, origin] = value[0]
70 self.mask[index, origin] = value[1]
71 self.variance[index, origin] = value[2]
73 def _get(self, index, origin):
74 """Return a triple (value, mask, variance) at the given index.
78 index : `geom.Point2I`
79 Position of the pixel to assign to.
80 origin : `ImageOrigin`
81 Coordinate system of ``index`` (`PARENT` or `LOCAL`).
83 return (self.image[index, origin],
84 self.mask[index, origin],
85 self.variance[index, origin])
87 @deprecated(reason=(
"This method is being removed in favor of the individual properties."
88 " It will be removed after v26."),
89 version=
"v26.0", category=FutureWarning)
91 """Return a tuple (value, mask, variance) numpy arrays."""
92 return (self.image.array
if self.image
else None,
93 self.mask.array
if self.mask
else None,
94 self.variance.array
if self.variance
else None)
97 return MaskedImageF(self,
True)
100 return MaskedImageD(self,
True)
104 return reduceToFits(self)
110 string =
"image={},\nmask={}, maskPlaneDict={}\nvariance={}, bbox={}"
111 return string.format(self.image.array,
113 self.mask.getMaskPlaneDict(),
118 return "{}.{}=({})".format(self.
__module__, self.__class__.__name__, str(self))
120 readFitsWithOptions = classmethod(imageReadFitsWithOptions)
122 writeFitsWithOptions = exposureWriteFitsWithOptions
125MaskedImage.register(np.int32, MaskedImageI)
126MaskedImage.register(np.float32, MaskedImageF)
127MaskedImage.register(np.float64, MaskedImageD)
128MaskedImage.register(np.uint16, MaskedImageU)
129MaskedImage.register(np.uint64, MaskedImageL)
130MaskedImage.alias(
"I", MaskedImageI)
131MaskedImage.alias(
"F", MaskedImageF)
132MaskedImage.alias(
"D", MaskedImageD)
133MaskedImage.alias(
"U", MaskedImageU)
134MaskedImage.alias(
"L", MaskedImageL)