Coverage for python/lsst/afw/image/exposure/exposureContinued.py : 78%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1# This file is part of afw.
2#
3# Developed for the LSST Data Management System.
4# This product includes software developed by the LSST Project
5# (https://www.lsst.org).
6# See the COPYRIGHT file at the top-level directory of this distribution
7# for details of code ownership.
8#
9# This program is free software: you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation, either version 3 of the License, or
12# (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program. If not, see <https://www.gnu.org/licenses/>.
22__all__ = ["Exposure"]
24from lsst.utils.deprecated import deprecate_pybind11
25import numpy as np
27from lsst.utils import TemplateMeta
29from ..slicing import supportSlicing
30from ..disableArithmetic import disableImageArithmetic
31from ..image.fitsIoWithOptions import imageReadFitsWithOptions, exposureWriteFitsWithOptions
32from .exposure import ExposureI, ExposureF, ExposureD, ExposureU, ExposureL
35class Exposure(metaclass=TemplateMeta):
37 def _set(self, index, value, origin):
38 """Set the pixel at the given index to a triple (value, mask, variance).
40 Parameters
41 ----------
42 index : `geom.Point2I`
43 Position of the pixel to assign to.
44 value : `tuple`
45 A tuple of (value, mask, variance) scalars.
46 origin : `ImageOrigin`
47 Coordinate system of ``index`` (`PARENT` or `LOCAL`).
48 """
49 self.maskedImage._set(index, value=value, origin=origin)
51 def _get(self, index, origin):
52 """Return a triple (value, mask, variance) at the given index.
54 Parameters
55 ----------
56 index : `geom.Point2I`
57 Position of the pixel to assign to.
58 origin : `ImageOrigin`
59 Coordinate system of ``index`` (`PARENT` or `LOCAL`).
60 """
61 return self.maskedImage._get(index, origin=origin)
63 def __reduce__(self):
64 from lsst.afw.fits import reduceToFits
65 return reduceToFits(self)
67 def convertF(self):
68 return ExposureF(self, deep=True)
70 def convertD(self):
71 return ExposureD(self, deep=True)
73 def getImage(self):
74 return self.maskedImage.image
76 def setImage(self, image):
77 self.maskedImage.image = image
79 image = property(getImage, setImage)
81 def getMask(self):
82 return self.maskedImage.mask
84 def setMask(self, mask):
85 self.maskedImage.mask = mask
87 mask = property(getMask, setMask)
89 def getVariance(self):
90 return self.maskedImage.variance
92 def setVariance(self, variance):
93 self.maskedImage.variance = variance
95 variance = property(getVariance, setVariance)
97 readFitsWithOptions = classmethod(imageReadFitsWithOptions)
99 writeFitsWithOptions = exposureWriteFitsWithOptions
102Exposure.register(np.int32, ExposureI)
103Exposure.register(np.float32, ExposureF)
104Exposure.register(np.float64, ExposureD)
105Exposure.register(np.uint16, ExposureU)
106Exposure.register(np.uint64, ExposureL)
107Exposure.alias("I", ExposureI)
108Exposure.alias("F", ExposureF)
109Exposure.alias("D", ExposureD)
110Exposure.alias("U", ExposureU)
111Exposure.alias("L", ExposureL)
113for cls in set(Exposure.values()):
114 supportSlicing(cls)
115 disableImageArithmetic(cls)
117 cls.getFilter = deprecate_pybind11(
118 cls.getFilter,
119 reason="Replaced by getFilterLabel. Will be removed after v22.",
120 version="v22.0")
122 cls.setFilter = deprecate_pybind11(
123 cls.setFilter,
124 reason="Replaced by setFilterLabel. Will be removed after v22.",
125 version="v22.0")