23 __all__ = [
"MaskedImage",
"VariancePixel"]
29 from ..image.fitsIoWithOptions
import imageReadFitsWithOptions, exposureWriteFitsWithOptions
30 from ..slicing
import supportSlicing
31 from ..disableArithmetic
import disableImageArithmetic
32 from .maskedImage
import MaskedImageI, MaskedImageF, MaskedImageD, MaskedImageU, MaskedImageL
35 VariancePixel = np.float32
40 def set(self, value, mask=None, variance=None):
41 """Assign a tuple of scalars to the entirety of all three planes.
43 if mask
is None and variance
is None:
45 value, mask, variance = value
54 self.variance.
set(variance)
56 def _set(self, index, value, origin):
57 """Set the pixel at the given index to a triple (value, mask, variance).
61 index : `geom.Point2I`
62 Position of the pixel to assign to.
64 A tuple of (value, mask, variance) scalars.
65 origin : `ImageOrigin`
66 Coordinate system of ``index`` (`PARENT` or `LOCAL`).
68 self.image[index, origin] = value[0]
69 self.mask[index, origin] = value[1]
70 self.variance[index, origin] = value[2]
72 def _get(self, index, origin):
73 """Return a triple (value, mask, variance) at the given index.
77 index : `geom.Point2I`
78 Position of the pixel to assign to.
79 origin : `ImageOrigin`
80 Coordinate system of ``index`` (`PARENT` or `LOCAL`).
82 return (self.image[index, origin],
83 self.mask[index, origin],
84 self.variance[index, origin])
87 """Return a tuple (value, mask, variance) numpy arrays."""
88 return (self.image.array
if self.image
else None,
89 self.mask.array
if self.mask
else None,
90 self.variance.array
if self.variance
else None)
93 return MaskedImageF(self,
True)
96 return MaskedImageD(self,
True)
103 string =
"image={},\nmask={}, maskPlaneDict={}\nvariance={}, bbox={}"
104 return string.format(self.image.array,
106 self.mask.getMaskPlaneDict(),
111 return "{}.{}=({})".format(self.__module__, self.__class__.__name__, str(self))
113 readFitsWithOptions = classmethod(imageReadFitsWithOptions)
115 writeFitsWithOptions = exposureWriteFitsWithOptions
118 MaskedImage.register(np.int32, MaskedImageI)
119 MaskedImage.register(np.float32, MaskedImageF)
120 MaskedImage.register(np.float64, MaskedImageD)
121 MaskedImage.register(np.uint16, MaskedImageU)
122 MaskedImage.register(np.uint64, MaskedImageL)
123 MaskedImage.alias(
"I", MaskedImageI)
124 MaskedImage.alias(
"F", MaskedImageF)
125 MaskedImage.alias(
"D", MaskedImageD)
126 MaskedImage.alias(
"U", MaskedImageU)
127 MaskedImage.alias(
"L", MaskedImageL)
129 for cls
in set(MaskedImage.values()):
def set(self, value, mask=None, variance=None)
def disableImageArithmetic(cls)