LSSTApplications
20.0.0
LSSTDataManagementBasePackage
stack
1a1d771
Linux64
meas_astrom
20.0.0
python
lsst
meas
astrom
sip
sourceMatchStatistics.py
Go to the documentation of this file.
1
#
2
# LSST Data Management System
3
# Copyright 2008, 2009, 2010 LSST Corporation.
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
#
22
23
__all__ = [
"sourceMatchStatistics"
]
24
25
import
numpy
as
np
26
27
28
def
sourceMatchStatistics
(matchList, log=None):
29
"""Compute statistics on the accuracy of a wcs solution, using a
30
precomputed list of matches between an image and a catalog.
31
32
Parameters
33
----------
34
matchList : `lsst.afw.detection.SourceMatch`
35
List of matches between sources and references to compute statistics
36
on.
37
38
Returns
39
-------
40
values : `dict
41
Value dictionary with fields:
42
43
- diffInPixels_mean : Average distance between image and
44
catalog position in pixels (`float`).
45
- diffInPixels_std : Root mean square of distribution of distances
46
(`float`).
47
- diffInPixels_Q25 : 25% quantile boundary of the match dist
48
distribution (`float`).
49
- diffInPixels_Q50 : 50% quantile boundary of the match dist
50
distribution (`float`).
51
- diffInPixels_Q75 : 75% quantile boundary of the match
52
dist distribution (`float`).
53
"""
54
55
size = len(matchList)
56
if
size == 0:
57
raise
ValueError(
"matchList contains no elements"
)
58
59
dist = np.zeros(size)
60
i = 0
61
for
match
in
matchList:
62
catObj = match.first
63
srcObj = match.second
64
65
cx = catObj.getXAstrom()
66
cy = catObj.getYAstrom()
67
68
sx = srcObj.getXAstrom()
69
sy = srcObj.getYAstrom()
70
71
dist[i] = np.hypot(cx-sx, cy-sy)
72
i = i+1
73
74
dist.sort()
75
76
quartiles = []
77
for
f
in
(0.25, 0.50, 0.75):
78
i = int(f*size + 0.5)
79
if
i >= size:
80
i = size - 1
81
quartiles.append(dist[i])
82
83
values = {}
84
values[
'diffInPixels_Q25'
] = quartiles[0]
85
values[
'diffInPixels_Q50'
] = quartiles[1]
86
values[
'diffInPixels_Q75'
] = quartiles[2]
87
values[
'diffInPixels_mean'
] = dist.mean()
88
values[
'diffInPixels_std'
] = dist.std()
89
90
return
values
lsst::meas::astrom::sip.sourceMatchStatistics.sourceMatchStatistics
def sourceMatchStatistics(matchList, log=None)
Definition:
sourceMatchStatistics.py:28
Generated on Wed Jun 24 2020 18:10:09 for LSSTApplications by
1.8.18