lsst.meas.astrom
g91f025aaea+ee76a57405
Toggle main menu visibility
Loading...
Searching...
No Matches
src
makeMatchStatistics.cc
Go to the documentation of this file.
1
// -*- LSST-C++ -*-
2
3
/*
4
* LSST Data Management System
5
* Copyright 2008, 2009, 2010 LSST Corporation.
6
*
7
* This product includes software developed by the
8
* LSST Project (http://www.lsst.org/).
9
*
10
* This program is free software: you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License as published by
12
* the Free Software Foundation, either version 3 of the License, or
13
* (at your option) any later version.
14
*
15
* This program is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU General Public License for more details.
19
*
20
* You should have received a copy of the LSST License Statement and
21
* the GNU General Public License along with this program. If not,
22
* see <http://www.lsstcorp.org/LegalNotices/>.
23
*/
24
25
#include "
lsst/pex/exceptions/Runtime.h
"
26
#include "
lsst/meas/astrom/makeMatchStatistics.h
"
27
28
namespace
lsst
{
29
namespace
meas
{
30
namespace
astrom
{
31
32
template
<
typename
MatchT>
33
afw::math::Statistics
makeMatchStatistics
(
std::vector<MatchT>
const
& matchList,
int
const
flags,
34
afw::math::StatisticsControl
const
& sctrl) {
35
if
(matchList.
empty
()) {
36
throw
LSST_EXCEPT
(
pexExcept::RuntimeError
,
"matchList is empty"
);
37
}
38
std::vector<double>
val;
39
val.
reserve
(matchList.
size
());
40
41
for
(
auto
const
& match : matchList) {
42
val.
push_back
(match.distance);
43
}
44
return
afw::math::makeStatistics
(val, flags, sctrl);
45
}
46
47
template
<
typename
MatchT>
48
afw::math::Statistics
makeMatchStatisticsInPixels
(
afw::geom::SkyWcs
const
& wcs,
49
std::vector<MatchT>
const
& matchList,
int
const
flags,
50
afw::math::StatisticsControl
const
& sctrl) {
51
if
(matchList.
empty
()) {
52
throw
LSST_EXCEPT
(
pexExcept::RuntimeError
,
"matchList is empty"
);
53
}
54
std::vector<double>
val;
55
val.
reserve
(matchList.
size
());
56
57
for
(
auto
const
& match : matchList) {
58
auto
refPtr = match.first;
59
auto
srcPtr = match.second;
60
auto
srcX = srcPtr->getX();
61
auto
srcY = srcPtr->getY();
62
auto
refPos = wcs.
skyToPixel
(refPtr->getCoord());
63
auto
refX = refPos[0];
64
auto
refY = refPos[1];
65
val.
push_back
(::hypot(srcX - refX, srcY - refY));
66
}
67
return
afw::math::makeStatistics
(val, flags, sctrl);
68
}
69
70
template
<
typename
MatchT>
71
afw::math::Statistics
makeMatchStatisticsInRadians
(
afw::geom::SkyWcs
const
& wcs,
72
std::vector<MatchT>
const
& matchList,
int
const
flags,
73
afw::math::StatisticsControl
const
& sctrl) {
74
if
(matchList.
empty
()) {
75
throw
LSST_EXCEPT
(
pexExcept::RuntimeError
,
"matchList is empty"
);
76
}
77
std::vector<double>
val;
78
val.
reserve
(matchList.
size
());
79
80
for
(
auto
const
& match : matchList) {
81
auto
refPtr = match.first;
82
auto
srcPtr = match.second;
83
auto
refCoord = refPtr->getCoord();
84
auto
srcCoord = wcs.
pixelToSky
(srcPtr->getCentroid());
85
auto
angSep = refCoord.
separation
(srcCoord);
86
val.
push_back
(angSep.asRadians());
87
}
88
return
afw::math::makeStatistics
(val, flags, sctrl);
89
}
90
91
#define INSTANTIATE(MATCH) \
92
template afw::math::Statistics makeMatchStatistics<MATCH>(std::vector<MATCH> const& matchList, \
93
int const flags, \
94
afw::math::StatisticsControl const& sctrl); \
95
template afw::math::Statistics makeMatchStatisticsInPixels<MATCH>( \
96
afw::geom::SkyWcs const& wcs, std::vector<MATCH> const& matchList, int const flags, \
97
afw::math::StatisticsControl const& sctrl); \
98
template afw::math::Statistics makeMatchStatisticsInRadians<MATCH>( \
99
afw::geom::SkyWcs const& wcs, std::vector<MATCH> const& matchList, int const flags, \
100
afw::math::StatisticsControl const& sctrl);
101
102
INSTANTIATE
(
afw::table::ReferenceMatch
);
103
INSTANTIATE
(
afw::table::SourceMatch
);
104
105
}
// namespace astrom
106
}
// namespace meas
107
}
// namespace lsst
LSST_EXCEPT
#define LSST_EXCEPT(type,...)
Runtime.h
lsst::afw::geom::SkyWcs
lsst::afw::geom::SkyWcs::pixelToSky
lsst::geom::SpherePoint pixelToSky(lsst::geom::Point2D const &pixel) const
lsst::afw::geom::SkyWcs::skyToPixel
lsst::geom::Point2D skyToPixel(lsst::geom::SpherePoint const &sky) const
lsst::afw::math::StatisticsControl
lsst::afw::math::Statistics
lsst::geom::SpherePoint::separation
Angle separation(SpherePoint const &other) const noexcept
lsst::pex::exceptions::RuntimeError
std::vector::empty
T empty(T... args)
INSTANTIATE
#define INSTANTIATE(MATCH)
Definition
makeMatchStatistics.cc:91
makeMatchStatistics.h
lsst::afw::math::makeStatistics
Statistics makeStatistics(lsst::afw::image::Image< Pixel > const &img, lsst::afw::image::Mask< image::MaskPixel > const &msk, int const flags, StatisticsControl const &sctrl=StatisticsControl())
lsst::afw::table::SourceMatch
Match< SourceRecord, SourceRecord > SourceMatch
lsst::afw::table::ReferenceMatch
Match< SimpleRecord, SourceRecord > ReferenceMatch
lsst::meas::astrom
Definition
polynomialUtils.h:32
lsst::meas::astrom::makeMatchStatisticsInRadians
afw::math::Statistics makeMatchStatisticsInRadians(afw::geom::SkyWcs const &wcs, std::vector< MatchT > const &matchList, int const flags, afw::math::StatisticsControl const &sctrl=afw::math::StatisticsControl())
Compute statistics of on-sky radial separation for a match list, in radians.
Definition
makeMatchStatistics.cc:71
lsst::meas::astrom::makeMatchStatistics
afw::math::Statistics makeMatchStatistics(std::vector< MatchT > const &matchList, int const flags, afw::math::StatisticsControl const &sctrl=afw::math::StatisticsControl())
Compute statistics of the distance field of a match list.
Definition
makeMatchStatistics.cc:33
lsst::meas::astrom::makeMatchStatisticsInPixels
afw::math::Statistics makeMatchStatisticsInPixels(afw::geom::SkyWcs const &wcs, std::vector< MatchT > const &matchList, int const flags, afw::math::StatisticsControl const &sctrl=afw::math::StatisticsControl())
Compute statistics of on-detector radial separation for a match list, in pixels.
Definition
makeMatchStatistics.cc:48
lsst::meas
Definition
polynomialUtils.h:31
lsst
std::vector::push_back
T push_back(T... args)
std::vector::reserve
T reserve(T... args)
std::vector::size
T size(T... args)
std::vector
Generated on
for lsst.meas.astrom by
1.17.0