lsst.afw
g3a5ebb7d8a+28b83bf6a5
Toggle main menu visibility
Loading...
Searching...
No Matches
python
lsst
afw
image
_exposure
_exposureContinued.py
Go to the documentation of this file.
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/>.
21
22
__all__ = [
"Exposure"
]
23
24
import
numpy
as
np
25
26
from
lsst.utils
import
TemplateMeta
27
28
from
.._image._slicing
import
supportSlicing
29
from
.._image._disableArithmetic
import
disableImageArithmetic
30
from
.._image._fitsIoWithOptions
import
imageReadFitsWithOptions, exposureWriteFitsWithOptions
31
from
._exposure
import
ExposureI, ExposureF, ExposureD, ExposureU, ExposureL
32
from
..exposure.exposureUtils
import
bbox_to_convex_polygon, bbox_contains_sky_coords
33
34
35
class
Exposure
(metaclass=TemplateMeta):
36
37
def
_set
(self, index, value, origin):
38
"""Set the pixel at the given index to a triple (value, mask, variance).
39
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)
50
51
def
_get
(self, index, origin):
52
"""Return a triple (value, mask, variance) at the given index.
53
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)
62
63
def
__reduce__
(self):
64
from
lsst.afw.fits
import
reduceToFits
65
return
reduceToFits(self)
66
67
def
__deepcopy__
(self, memo=None):
68
return
self.clone()
69
70
def
convertF
(self):
71
return
ExposureF(self, deep=
True
)
72
73
def
convertD
(self):
74
return
ExposureD(self, deep=
True
)
75
76
def
getImage
(self):
77
return
self.maskedImage.image
78
79
def
setImage
(self, image):
80
self.maskedImage.image = image
81
82
image = property(getImage, setImage)
83
84
def
getMask
(self):
85
return
self.maskedImage.mask
86
87
def
setMask
(self, mask):
88
self.maskedImage.mask = mask
89
90
mask = property(getMask, setMask)
91
92
def
getVariance
(self):
93
return
self.maskedImage.variance
94
95
def
setVariance
(self, variance):
96
self.maskedImage.variance = variance
97
98
variance = property(getVariance, setVariance)
99
100
def
getConvexPolygon
(self, padding=10):
101
"""Get the convex polygon associated with the bounding box corners.
102
103
The returned polygon has additional padding to ensure that the
104
bounding box is entirely contained within it. To ensure a set
105
of coordinates are entirely contained within an exposure, run
106
``exposure.containsSkyCoords()``. The default padding
107
size was chosen to be sufficient for the most warped detectors at
108
the edges of the HyperSuprimeCam focal plane.
109
110
Parameters
111
----------
112
padding : `int`
113
Pixel padding to ensure that bounding box is entirely contained
114
within the resulting polygon.
115
116
Returns
117
-------
118
convexPolygon : `lsst.sphgeom.ConvexPolygon`
119
Returns `None` if exposure does not have a valid WCS.
120
"""
121
if
self.
wcs
is
None
:
122
return
None
123
124
return
bbox_to_convex_polygon(self.getBBox(), self.
wcs
, padding=padding)
125
126
convex_polygon = property(getConvexPolygon)
127
128
def
containsSkyCoords
(self, ra, dec, padding=10):
129
"""Check if a set of sky positions is in the pixel bounding box.
130
131
The default padding size was chosen to be sufficient for the
132
most warped detectors at the edges of the HyperSuprimeCam focal plane.
133
134
Parameters
135
----------
136
ra : `astropy.Quantity`, (N,)
137
Array of Right Ascension, angular units.
138
dec : `astropy.Quantity`, (N,)
139
Array of Declination, angular units.
140
padding : `int`, optional
141
Pixel padding to ensure that bounding box is entirely contained
142
within the sky polygon (see ``getConvexPolygon()``).
143
144
Returns
145
-------
146
contained : `np.ndarray`, (N,)
147
Boolean array indicating which points are contained in the
148
bounding box.
149
150
Raises
151
------
152
ValueError if exposure does not have a valid wcs.
153
"""
154
if
self.
wcs
is
None
:
155
raise
ValueError(
"Exposure does not have a valid WCS."
)
156
157
return
bbox_contains_sky_coords(
158
self.getBBox(),
159
self.
wcs
,
160
ra,
161
dec,
162
padding=padding)
163
164
readFitsWithOptions = classmethod(imageReadFitsWithOptions)
165
166
writeFitsWithOptions = exposureWriteFitsWithOptions
167
168
169
Exposure.register(np.int32, ExposureI)
170
Exposure.register(np.float32, ExposureF)
171
Exposure.register(np.float64, ExposureD)
172
Exposure.register(np.uint16, ExposureU)
173
Exposure.register(np.uint64, ExposureL)
174
Exposure.alias(
"I"
, ExposureI)
175
Exposure.alias(
"F"
, ExposureF)
176
Exposure.alias(
"D"
, ExposureD)
177
Exposure.alias(
"U"
, ExposureU)
178
Exposure.alias(
"L"
, ExposureL)
179
180
for
cls
in
set(Exposure.values()):
181
supportSlicing(cls)
182
disableImageArithmetic(cls)
lsst::afw::image._exposure._exposureContinued.Exposure
Definition
_exposureContinued.py:35
lsst::afw::image._exposure._exposureContinued.Exposure.getMask
getMask(self)
Definition
_exposureContinued.py:84
lsst::afw::image._exposure._exposureContinued.Exposure.convertD
convertD(self)
Definition
_exposureContinued.py:73
lsst::afw::image._exposure._exposureContinued.Exposure._get
_get(self, index, origin)
Definition
_exposureContinued.py:51
lsst::afw::image._exposure._exposureContinued.Exposure.convertF
convertF(self)
Definition
_exposureContinued.py:70
lsst::afw::image._exposure._exposureContinued.Exposure.setMask
setMask(self, mask)
Definition
_exposureContinued.py:87
lsst::afw::image._exposure._exposureContinued.Exposure.getImage
getImage(self)
Definition
_exposureContinued.py:76
lsst::afw::image._exposure._exposureContinued.Exposure.setImage
setImage(self, image)
Definition
_exposureContinued.py:79
lsst::afw::image._exposure._exposureContinued.Exposure.getConvexPolygon
getConvexPolygon(self, padding=10)
Definition
_exposureContinued.py:100
lsst::afw::image._exposure._exposureContinued.Exposure.wcs
wcs
Definition
_exposureContinued.py:124
lsst::afw::image._exposure._exposureContinued.Exposure.setVariance
setVariance(self, variance)
Definition
_exposureContinued.py:95
lsst::afw::image._exposure._exposureContinued.Exposure.__reduce__
__reduce__(self)
Definition
_exposureContinued.py:63
lsst::afw::image._exposure._exposureContinued.Exposure.__deepcopy__
__deepcopy__(self, memo=None)
Definition
_exposureContinued.py:67
lsst::afw::image._exposure._exposureContinued.Exposure.containsSkyCoords
containsSkyCoords(self, ra, dec, padding=10)
Definition
_exposureContinued.py:128
lsst::afw::image._exposure._exposureContinued.Exposure.getVariance
getVariance(self)
Definition
_exposureContinued.py:92
lsst::afw::image._exposure._exposureContinued.Exposure._set
_set(self, index, value, origin)
Definition
_exposureContinued.py:37
lsst::afw::fits
Definition
fits.h:32
lsst.utils
Generated on
for lsst.afw by
1.17.0