24from ._maskedImage
import MaskedImageI, MaskedImageF, MaskedImageD, MaskedImageU, MaskedImageL
26from ..image._fitsIoWithOptions
import imageReadFitsWithOptions, exposureWriteFitsWithOptions
27from ..image._slicing
import supportSlicing
28from ..image._disableArithmetic
import disableImageArithmetic
30__all__ = [
"MaskedImage",
"VariancePixel"]
33VariancePixel = np.float32
38 def set(self, value, mask=None, variance=None):
39 """Assign a tuple of scalars to the entirety of all three planes.
41 if mask
is None and variance
is None:
43 value, mask, variance = value
52 self.variance.
set(variance)
54 def _set(self, index, value, origin):
55 """Set the pixel at the given index to a triple (value, mask, variance).
60 Position of the pixel to assign to.
62 A tuple of (value, mask, variance) scalars.
63 origin : `ImageOrigin`
64 Coordinate system of ``index`` (`PARENT` or `LOCAL`).
66 self.image[index, origin] = value[0]
67 self.mask[index, origin] = value[1]
68 self.variance[index, origin] = value[2]
70 def _get(self, index, origin):
71 """Return a triple (value, mask, variance) at the given index.
76 Position of the pixel to assign to.
77 origin : `ImageOrigin`
78 Coordinate system of ``index`` (`PARENT` or `LOCAL`).
80 return (self.image[index, origin],
81 self.mask[index, origin],
82 self.variance[index, origin])
85 """Return a tuple (value, mask, variance) numpy arrays."""
86 return (self.image.array
if self.image
else None,
87 self.mask.array
if self.mask
else None,
88 self.variance.array
if self.variance
else None)
91 return MaskedImageF(self,
True)
94 return MaskedImageD(self,
True)
98 return reduceToFits(self)
101 string =
"image={},\nmask={}, maskPlaneDict={}\nvariance={}, bbox={}"
102 return string.format(self.image.array,
104 self.mask.getMaskPlaneDict(),
109 return "{}.{}=({})".format(self.__module__, self.__class__.__name__,
str(self))
111 readFitsWithOptions = classmethod(imageReadFitsWithOptions)
113 writeFitsWithOptions = exposureWriteFitsWithOptions
116MaskedImage.register(np.int32, MaskedImageI)
117MaskedImage.register(np.float32, MaskedImageF)
118MaskedImage.register(np.float64, MaskedImageD)
119MaskedImage.register(np.uint16, MaskedImageU)
120MaskedImage.register(np.uint64, MaskedImageL)
121MaskedImage.alias(
"I", MaskedImageI)
122MaskedImage.alias(
"F", MaskedImageF)
123MaskedImage.alias(
"D", MaskedImageD)
124MaskedImage.alias(
"U", MaskedImageU)
125MaskedImage.alias(
"L", MaskedImageL)
127for cls
in set(MaskedImage.values()):
129 disableImageArithmetic(cls)
daf::base::PropertySet * set