lsst.meas.astrom
g91f025aaea+ee76a57405
Toggle main menu visibility
Loading...
Searching...
No Matches
include
lsst
meas
astrom
matchOptimisticB.h
Go to the documentation of this file.
1
// -*- lsst-c++ -*-
2
#if !defined(LSST_MEAS_ASTROM_MATCHOPTIMISTICB_H)
3
#define LSST_MEAS_ASTROM_MATCHOPTIMISTICB_H
4
5
#include <cmath>
6
#include <string>
7
#include <vector>
8
9
#include "lsst/pex/config.h"
10
#include "
lsst/geom/Point.h
"
11
#include "
lsst/afw/table/Source.h
"
12
#include "
lsst/afw/table/Match.h
"
13
14
namespace
lsst
{
15
namespace
meas
{
16
namespace
astrom
{
17
22
struct
RecordProxy
{
23
std::shared_ptr<afw::table::SimpleRecord>
record
;
24
geom::Point2D
position
;
25
mutable
bool
used
;
// set true if this star object has already been used for a match
26
// mutable to allow freezing the fundamental object data using const
27
// while keeping track of which objects have been used in each search
28
29
double
getX
()
const
{
return
position
.getX(); }
30
double
getY
()
const
{
return
position
.getY(); }
31
35
operator
std::shared_ptr<afw::table::SimpleRecord>
()
const
{
return
record
; }
36
37
bool
operator==
(
RecordProxy
const
& other)
const
{
return
record
== other.
record
; }
38
bool
operator!=
(
RecordProxy
const
& other)
const
{
return
record
!= other.
record
; }
39
46
RecordProxy
(
std::shared_ptr<afw::table::SimpleRecord>
record
,
geom::Point2D
const
&
position
)
47
:
record
(
record
),
position
(
position
) {}
48
49
explicit
RecordProxy
() {}
// default constructor needed so we can call ProxyVector::resize()
50
};
51
52
typedef
std::vector<RecordProxy>
ProxyVector
;
53
54
ProxyVector
makeProxies
(
afw::table::SourceCatalog
const
& sourceCat,
afw::geom::SkyWcs
const
& distortedWcs,
55
afw::geom::SkyWcs
const
& tanWcs);
56
57
ProxyVector
makeProxies
(
afw::table::SimpleCatalog
const
& posRefCat,
afw::geom::SkyWcs
const
& tanWcs);
58
59
struct
ProxyPair
{
60
RecordProxy
first
;
61
RecordProxy
second
;
62
double
distance
;
63
double
pa
;
64
65
ProxyPair
(
RecordProxy
const
& s1,
RecordProxy
const
& s2) :
first
(s1),
second
(s2) {
66
double
x1 =
first
.position.getX();
67
double
y1 =
first
.position.getY();
68
double
x2 =
second
.position.getX();
69
double
y2 =
second
.position.getY();
70
distance
=
std::hypot
(x2 - x1, y2 - y1);
71
pa
=
std::atan2
(y2 - y1, x2 - x1);
72
}
73
};
74
75
struct
MatchOptimisticBControl
{
76
LSST_CONTROL_FIELD(
refFluxField
,
std::string
,
"name of flux field in reference catalog"
);
77
LSST_CONTROL_FIELD(
sourceFluxField
,
std::string
,
"name of flux field in source catalog"
);
78
LSST_CONTROL_FIELD(
numBrightStars
,
int
,
"maximum number of bright reference stars to use"
);
79
LSST_CONTROL_FIELD(
minMatchedPairs
,
int
,
"minimum number of matches"
);
80
LSST_CONTROL_FIELD(
matchingAllowancePix
,
double
,
81
"maximum allowed distance between reference objects and sources (pixels)"
);
82
LSST_CONTROL_FIELD(
maxOffsetPix
,
double
,
"maximum allowed frame translation (pixels)"
);
83
LSST_CONTROL_FIELD(
maxRotationDeg
,
double
,
"maximum allowed frame rotation (deg)"
);
84
LSST_CONTROL_FIELD(
allowedNonperpDeg
,
double
,
"allowed non-perpendicularity of x and y axes (deg)"
);
85
LSST_CONTROL_FIELD(
numPointsForShape
,
int
,
"number of points in a matching shape"
);
86
LSST_CONTROL_FIELD(
maxDeterminant
,
double
,
"?"
);
87
88
MatchOptimisticBControl
()
89
:
refFluxField
(
"r_flux"
),
90
sourceFluxField
(
"slot_ApFlux_instFlux"
),
91
numBrightStars
(150),
92
minMatchedPairs
(50),
93
matchingAllowancePix
(10.0),
94
maxOffsetPix
(300),
95
maxRotationDeg
(1.0),
96
allowedNonperpDeg
(3.0),
97
numPointsForShape
(6),
98
maxDeterminant
(0.02) {
99
validate
();
100
}
101
102
void
validate
()
const
;
103
104
~MatchOptimisticBControl
(){};
105
};
106
126
afw::table::ReferenceMatchVector
matchOptimisticB(
afw::table::SimpleCatalog
const
& posRefCat,
127
afw::table::SourceCatalog
const
& sourceCat,
128
MatchOptimisticBControl
const
& control,
129
afw::geom::SkyWcs
const
& wcs,
int
posRefBegInd = 0,
130
bool
verbose =
false
);
131
132
}
// namespace astrom
133
}
// namespace meas
134
}
// namespace lsst
135
136
#endif
Match.h
Point.h
Source.h
std::atan2
T atan2(T... args)
std::string
lsst::afw::geom::SkyWcs
std::hypot
T hypot(T... args)
lsst::afw::table::ReferenceMatchVector
std::vector< ReferenceMatch > ReferenceMatchVector
lsst::afw::table::SimpleCatalog
SortedCatalogT< SimpleRecord > SimpleCatalog
lsst::afw::table::SourceCatalog
SortedCatalogT< SourceRecord > SourceCatalog
lsst::geom::Point2D
Point< double, 2 > Point2D
lsst::meas::astrom
Definition
polynomialUtils.h:32
lsst::meas::astrom::ProxyVector
std::vector< RecordProxy > ProxyVector
Definition
matchOptimisticB.h:52
lsst::meas::astrom::makeProxies
ProxyVector makeProxies(afw::table::SourceCatalog const &sourceCat, afw::geom::SkyWcs const &distortedWcs, afw::geom::SkyWcs const &tanWcs)
Definition
matchOptimisticB.cc:436
lsst::meas
Definition
polynomialUtils.h:31
lsst
std::shared_ptr
lsst::meas::astrom::MatchOptimisticBControl::refFluxField
std::string refFluxField
"name of flux field in reference catalog" ;
Definition
matchOptimisticB.h:76
lsst::meas::astrom::MatchOptimisticBControl::validate
void validate() const
Definition
matchOptimisticB.cc:403
lsst::meas::astrom::MatchOptimisticBControl::maxRotationDeg
double maxRotationDeg
"maximum allowed frame rotation (deg)" ;
Definition
matchOptimisticB.h:83
lsst::meas::astrom::MatchOptimisticBControl::matchingAllowancePix
double matchingAllowancePix
"maximum allowed distance between reference objects and sources (pixels)" ;
Definition
matchOptimisticB.h:81
lsst::meas::astrom::MatchOptimisticBControl::numPointsForShape
int numPointsForShape
"number of points in a matching shape" ;
Definition
matchOptimisticB.h:85
lsst::meas::astrom::MatchOptimisticBControl::~MatchOptimisticBControl
~MatchOptimisticBControl()
Definition
matchOptimisticB.h:104
lsst::meas::astrom::MatchOptimisticBControl::MatchOptimisticBControl
MatchOptimisticBControl()
Definition
matchOptimisticB.h:88
lsst::meas::astrom::MatchOptimisticBControl::maxDeterminant
double maxDeterminant
"?" ;
Definition
matchOptimisticB.h:86
lsst::meas::astrom::MatchOptimisticBControl::minMatchedPairs
int minMatchedPairs
"minimum number of matches" ;
Definition
matchOptimisticB.h:79
lsst::meas::astrom::MatchOptimisticBControl::numBrightStars
int numBrightStars
"maximum number of bright reference stars to use" ;
Definition
matchOptimisticB.h:78
lsst::meas::astrom::MatchOptimisticBControl::sourceFluxField
std::string sourceFluxField
"name of flux field in source catalog" ;
Definition
matchOptimisticB.h:77
lsst::meas::astrom::MatchOptimisticBControl::maxOffsetPix
double maxOffsetPix
"maximum allowed frame translation (pixels)" ;
Definition
matchOptimisticB.h:82
lsst::meas::astrom::MatchOptimisticBControl::allowedNonperpDeg
double allowedNonperpDeg
"allowed non-perpendicularity of x and y axes (deg)" ;
Definition
matchOptimisticB.h:84
lsst::meas::astrom::ProxyPair::first
RecordProxy first
Definition
matchOptimisticB.h:60
lsst::meas::astrom::ProxyPair::pa
double pa
Definition
matchOptimisticB.h:63
lsst::meas::astrom::ProxyPair::second
RecordProxy second
Definition
matchOptimisticB.h:61
lsst::meas::astrom::ProxyPair::ProxyPair
ProxyPair(RecordProxy const &s1, RecordProxy const &s2)
Definition
matchOptimisticB.h:65
lsst::meas::astrom::ProxyPair::distance
double distance
Definition
matchOptimisticB.h:62
lsst::meas::astrom::RecordProxy
A wrapper around a SimpleRecord or SourceRecord that allows us to record a pixel position in a way th...
Definition
matchOptimisticB.h:22
lsst::meas::astrom::RecordProxy::operator==
bool operator==(RecordProxy const &other) const
Definition
matchOptimisticB.h:37
lsst::meas::astrom::RecordProxy::operator!=
bool operator!=(RecordProxy const &other) const
Definition
matchOptimisticB.h:38
lsst::meas::astrom::RecordProxy::used
bool used
Definition
matchOptimisticB.h:25
lsst::meas::astrom::RecordProxy::RecordProxy
RecordProxy(std::shared_ptr< afw::table::SimpleRecord > record, geom::Point2D const &position)
Construct a RecordProxy.
Definition
matchOptimisticB.h:46
lsst::meas::astrom::RecordProxy::record
std::shared_ptr< afw::table::SimpleRecord > record
Definition
matchOptimisticB.h:23
lsst::meas::astrom::RecordProxy::getX
double getX() const
Definition
matchOptimisticB.h:29
lsst::meas::astrom::RecordProxy::RecordProxy
RecordProxy()
Definition
matchOptimisticB.h:49
lsst::meas::astrom::RecordProxy::position
geom::Point2D position
Definition
matchOptimisticB.h:24
lsst::meas::astrom::RecordProxy::getY
double getY() const
Definition
matchOptimisticB.h:30
std::vector
Generated on
for lsst.meas.astrom by
1.17.0