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#
2# LSST Data Management System
3# Copyright 2008-2017 LSST/AURA.
4#
5# This product includes software developed by the
6# LSST Project (http://www.lsst.org/).
7#
8# This program is free software: you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation, either version 3 of the License, or
11# (at your option) any later version.
12#
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16# GNU General Public License for more details.
17#
18# You should have received a copy of the LSST License Statement and
19# the GNU General Public License along with this program. If not,
20# see <http://www.lsstcorp.org/LegalNotices/>.
21#
23__all__ = ["Exposure"]
25from lsst.utils.deprecated import deprecate_pybind11
26import numpy as np
28from lsst.utils import TemplateMeta
30from ..slicing import supportSlicing
31from ..disableArithmetic import disableImageArithmetic
32from ..image.fitsIoWithOptions import imageReadFitsWithOptions, exposureWriteFitsWithOptions
33from .exposure import ExposureI, ExposureF, ExposureD, ExposureU, ExposureL
36class Exposure(metaclass=TemplateMeta):
38 def _set(self, index, value, origin):
39 """Set the pixel at the given index to a triple (value, mask, variance).
41 Parameters
42 ----------
43 index : `geom.Point2I`
44 Position of the pixel to assign to.
45 value : `tuple`
46 A tuple of (value, mask, variance) scalars.
47 origin : `ImageOrigin`
48 Coordinate system of ``index`` (`PARENT` or `LOCAL`).
49 """
50 self.maskedImage._set(index, value=value, origin=origin)
52 def _get(self, index, origin):
53 """Return a triple (value, mask, variance) at the given index.
55 Parameters
56 ----------
57 index : `geom.Point2I`
58 Position of the pixel to assign to.
59 origin : `ImageOrigin`
60 Coordinate system of ``index`` (`PARENT` or `LOCAL`).
61 """
62 return self.maskedImage._get(index, origin=origin)
64 def __reduce__(self):
65 from lsst.afw.fits import reduceToFits
66 return reduceToFits(self)
68 def convertF(self):
69 return ExposureF(self, deep=True)
71 def convertD(self):
72 return ExposureD(self, deep=True)
74 def getImage(self):
75 return self.maskedImage.image
77 def setImage(self, image):
78 self.maskedImage.image = image
80 image = property(getImage, setImage)
82 def getMask(self):
83 return self.maskedImage.mask
85 def setMask(self, mask):
86 self.maskedImage.mask = mask
88 mask = property(getMask, setMask)
90 def getVariance(self):
91 return self.maskedImage.variance
93 def setVariance(self, variance):
94 self.maskedImage.variance = variance
96 variance = property(getVariance, setVariance)
98 readFitsWithOptions = classmethod(imageReadFitsWithOptions)
100 writeFitsWithOptions = exposureWriteFitsWithOptions
103Exposure.register(np.int32, ExposureI)
104Exposure.register(np.float32, ExposureF)
105Exposure.register(np.float64, ExposureD)
106Exposure.register(np.uint16, ExposureU)
107Exposure.register(np.uint64, ExposureL)
108Exposure.alias("I", ExposureI)
109Exposure.alias("F", ExposureF)
110Exposure.alias("D", ExposureD)
111Exposure.alias("U", ExposureU)
112Exposure.alias("L", ExposureL)
114for cls in set(Exposure.values()):
115 supportSlicing(cls)
116 disableImageArithmetic(cls)
118 cls.getFilter = deprecate_pybind11(
119 cls.getFilter,
120 reason="Replaced by getFilterLabel. Will be removed after v22.",
121 version="v22.0")
123 cls.setFilter = deprecate_pybind11(
124 cls.setFilter,
125 reason="Replaced by setFilterLabel. Will be removed after v22.",
126 version="v22.0")