lsst.afw
g3a5ebb7d8a+28b83bf6a5
Toggle main menu visibility
Loading...
Searching...
No Matches
python
lsst
afw
detection
_footprintContinued.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
20
__all__ = []
# import this module only for its side effects
21
22
from
typing
import
TYPE_CHECKING
23
24
if
TYPE_CHECKING:
25
from
lsst.afw.image
import
Image
26
27
import
numpy
as
np
28
29
from
lsst.utils
import
continueClass
30
31
from
lsst.geom
import
Point2I
32
from
._detection
import
Footprint
33
34
35
def
getFootprintIntersection
(
36
footprint1: Footprint,
37
footprint2: Footprint,
38
copyPeaks: bool =
True
,
39
) -> Footprint:
40
"""Calculate the intersection of two Footprints.
41
42
Parameters
43
----------
44
footprint1: Footprint
45
The first Footprint.
46
footprint2: Footprint
47
The second Footprint.
48
copyFromFirst: bool
49
Whether or not to copy the peaks from the first Footprint.
50
51
Returns
52
-------
53
result:
54
The Footprint containing the intersection of the two footprints.
55
"""
56
# Create the intersecting footprint
57
spans = footprint1.spans.intersect(footprint2.spans)
58
result =
Footprint
(spans)
59
result.setPeakSchema(footprint1.peaks.getSchema())
60
61
if
copyPeaks:
62
# Only copy peaks that are contained in the intersection
63
for
peak
in
footprint1.peaks:
64
if
spans.contains(
Point2I
(peak.getIx(), peak.getIy())):
65
# Add a copy of the entire peak record to preserve the ID
66
result.peaks.append(peak)
67
return
result
68
69
70
@continueClass
71
class
Footprint
:
# noqa: F811
72
def
computeFluxFromArray
(self, image: np.ndarray, xy0: Point2I) -> float:
73
"""Calculate the total flux in the region of an image array
74
contained in this Footprint.
75
76
Parameters
77
----------
78
image:
79
Array containing the pixels to extract.
80
xy0:
81
The origin of the image array.
82
83
Returns
84
flux:
85
Flux from the image in pixels contained in the footprint.
86
"""
87
return
self.spans.flatten(image, xy0).sum()
88
89
def
computeFluxFromImage
(self, image:
"Image"
) -> float:
90
"""Calculate the total flux in the region of an Image contained in
91
this Footprint.
92
93
Parameters
94
----------
95
image:
96
Image to extract.
97
98
Returns
99
-------
100
flux:
101
Flux from the image pixels contained in the footprint.
102
"""
103
return
self.
computeFluxFromArray
(image.array, image.getXY0())
104
105
def
intersect
(self, other: Footprint, copyPeaks: bool =
True
) -> Footprint:
106
"""Calculate the intersection of this Footprint with another Footprint.
107
108
Parameters
109
----------
110
other:
111
The other Footprint.
112
copyPeaks:
113
Whether or not to copy the peaks from this Footprint.
114
Note: the peaks in other are always ignored.
115
116
Returns
117
-------
118
result:
119
The Footprint containing the intersection of the two footprints.
120
"""
121
return
getFootprintIntersection
(self, other,
True
)
lsst::afw::detection._footprintContinued.Footprint
Definition
_footprintContinued.py:71
lsst::afw::detection._footprintContinued.Footprint.computeFluxFromArray
float computeFluxFromArray(self, np.ndarray image, Point2I xy0)
Definition
_footprintContinued.py:72
lsst::afw::detection._footprintContinued.Footprint.intersect
Footprint intersect(self, Footprint other, bool copyPeaks=True)
Definition
_footprintContinued.py:105
lsst::afw::detection._footprintContinued.Footprint.computeFluxFromImage
float computeFluxFromImage(self, "Image" image)
Definition
_footprintContinued.py:89
lsst::geom::Point< int, 2 >
lsst::afw::detection._footprintContinued.getFootprintIntersection
Footprint getFootprintIntersection(Footprint footprint1, Footprint footprint2, bool copyPeaks=True)
Definition
_footprintContinued.py:39
lsst::afw::image
Definition
imageAlgorithm.dox:1
lsst::geom
lsst.utils
Generated on
for lsst.afw by
1.17.0