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

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"]
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)