25from ._maskedImage
import MaskedImageI, MaskedImageF, MaskedImageD, MaskedImageU, MaskedImageL
27from .._image._fitsIoWithOptions
import imageReadFitsWithOptions, exposureWriteFitsWithOptions
28from .._image._slicing
import supportSlicing
29from .._image._disableArithmetic
import disableImageArithmetic
31__all__ = [
"MaskedImage",
"VariancePixel"]
34VariancePixel = np.float32
39 def set(self, value, mask=None, variance=None):
40 """Assign a tuple of scalars to the entirety of all three planes.
42 if mask
is None and variance
is None:
44 value, mask, variance = value
53 self.variance.
set(variance)
55 def _set(self, index, value, origin):
56 """Set the pixel at the given index to a triple (value, mask, variance).
60 index : `geom.Point2I`
61 Position of the pixel to assign to.
63 A tuple of (value, mask, variance) scalars.
64 origin : `ImageOrigin`
65 Coordinate system of ``index`` (`PARENT` or `LOCAL`).
67 self.image[index, origin] = value[0]
68 self.mask[index, origin] = value[1]
69 self.variance[index, origin] = value[2]
71 def _get(self, index, origin):
72 """Return a triple (value, mask, variance) at the given index.
76 index : `geom.Point2I`
77 Position of the pixel to assign to.
78 origin : `ImageOrigin`
79 Coordinate system of ``index`` (`PARENT` or `LOCAL`).
81 return (self.image[index, origin],
82 self.mask[index, origin],
83 self.variance[index, origin])
86 return MaskedImageF(self,
True)
89 return MaskedImageD(self,
True)
93 return reduceToFits(self)
99 string =
"image={},\nmask={}, maskPlaneDict={}\nvariance={}, bbox={}"
100 return string.format(self.image.array,
102 self.mask.getMaskPlaneDict(),
107 return "{}.{}=({})".format(self.
__module__, self.__class__.__name__, str(self))
109 readFitsWithOptions = classmethod(imageReadFitsWithOptions)
111 writeFitsWithOptions = exposureWriteFitsWithOptions
114MaskedImage.register(np.int32, MaskedImageI)
115MaskedImage.register(np.float32, MaskedImageF)
116MaskedImage.register(np.float64, MaskedImageD)
117MaskedImage.register(np.uint16, MaskedImageU)
118MaskedImage.register(np.uint64, MaskedImageL)
119MaskedImage.alias(
"I", MaskedImageI)
120MaskedImage.alias(
"F", MaskedImageF)
121MaskedImage.alias(
"D", MaskedImageD)
122MaskedImage.alias(
"U", MaskedImageU)
123MaskedImage.alias(
"L", MaskedImageL)
125for cls
in set(MaskedImage.values()):
127 disableImageArithmetic(cls)
__deepcopy__(self, memo=None)
_set(self, index, value, origin)
_get(self, index, origin)
daf::base::PropertySet * set