LSSTApplications
18.1.0
LSSTDataManagementBasePackage
stack
Linux64
ip_isr
18.1.0
python
lsst
ip
isr
vignette.py
Go to the documentation of this file.
1
# This file is part of ip_isr.
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
import
numpy
22
23
import
lsst.geom
24
import
lsst.afw.geom
as
afwGeom
25
26
from
lsst.pex.config
import
Config, Field
27
from
lsst.pipe.base
import
Task
28
29
30
class
VignetteConfig
(
Config
):
31
"""
32
Settings to define vignetteing pattern
33
"""
34
xCenter =
Field
(
35
dtype=float,
36
doc=
"Center of vignetting pattern, in focal plane x coordinates."
,
37
default=0.0,
38
)
39
yCenter =
Field
(
40
dtype=float,
41
doc=
"Center of vignetting pattern, in focal plane y coordinates."
,
42
default=0.0,
43
)
44
radius =
Field
(
45
dtype=float,
46
doc=
"Radius of vignetting pattern, in focal plane coordinates."
,
47
default=100.0,
48
check=
lambda
x: x >= 0
49
)
50
numPolygonPoints =
Field
(
51
dtype=int,
52
doc=
"Number of points used to define the vignette polygon."
,
53
default=100,
54
)
55
doWriteVignettePolygon =
Field
(
56
dtype=bool,
57
doc=
"Persist polygon used to define vignetted region?"
,
58
default=
False
,
59
)
60
61
62
class
VignetteTask
(
Task
):
63
"""Define a simple circular vignette pattern.
64
"""
65
ConfigClass = VignetteConfig
66
_DefaultName =
"isrVignette"
67
68
def
run
(self, exposure):
69
"""Generate circular vignette pattern.
70
71
Parameters
72
----------
73
exposure : `lsst.afw.image.Exposure`
74
Exposure to construct vignette for.
75
76
Returns
77
-------
78
polygon : `lsst.afw.Geom.Polygon`
79
Polygon defining the boundary of the vignetted region.
80
"""
81
82
if
self.
config
.doWriteVignettePolygon:
83
theta = numpy.linspace(0, 2*numpy.pi, num=self.
config
.numPolygonPoints, endpoint=
False
)
84
x = self.
config
.radius*numpy.cos(theta) + self.
config
.xCenter
85
y = self.
config
.radius*numpy.sin(theta) + self.
config
.yCenter
86
points = numpy.array([x, y]).transpose()
87
polygon =
afwGeom.Polygon
([
lsst.geom.Point2D
(x1, y1)
for
x1, y1
in
reversed(points)])
88
return
polygon
89
else
:
90
return
None
lsst::ip::isr.vignette.VignetteConfig
Definition:
vignette.py:30
lsst::geom::Point< double, 2 >
lsst.pipe.base
Definition:
__init__.py:1
lsst::ip::isr.vignette.VignetteTask
Definition:
vignette.py:62
lsst.pex.config
Definition:
__init__.py:1
lsst.pipe.base.task.Task
Definition:
task.py:46
lsst.pex.config.config.Field
Definition:
config.py:188
lsst::geom
Definition:
geomOperators.dox:4
lsst.pex.config.config.Config
Definition:
config.py:662
lsst::ip::isr.vignette.VignetteTask.run
def run(self, exposure)
Definition:
vignette.py:68
lsst.pipe.base.task.Task.config
config
Definition:
task.py:149
lsst::afw::geom::polygon::Polygon
Cartesian polygons.
Definition:
Polygon.h:59
lsst::afw::geom
Definition:
AffineTransform.h:36
Generated on Thu Aug 8 2019 20:20:15 for LSSTApplications by
1.8.13