lsst.jointcal
g29ae962dfc+4cfc7946bc
Toggle main menu visibility
Loading...
Searching...
No Matches
include
lsst
jointcal
ListMatch.h
Go to the documentation of this file.
1
// -*- LSST-C++ -*-
2
/*
3
* This file is part of jointcal.
4
*
5
* Developed for the LSST Data Management System.
6
* This product includes software developed by the LSST Project
7
* (https://www.lsst.org).
8
* See the COPYRIGHT file at the top-level directory of this distribution
9
* for details of code ownership.
10
*
11
* This program is free software: you can redistribute it and/or modify
12
* it under the terms of the GNU General Public License as published by
13
* the Free Software Foundation, either version 3 of the License, or
14
* (at your option) any later version.
15
*
16
* This program is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
* GNU General Public License for more details.
20
*
21
* You should have received a copy of the GNU General Public License
22
* along with this program. If not, see <https://www.gnu.org/licenses/>.
23
*/
24
25
#ifndef LSST_JOINTCAL_LIST_MATCH_H
26
#define LSST_JOINTCAL_LIST_MATCH_H
27
28
#include <string>
29
30
#include "
lsst/jointcal/BaseStar.h
"
31
#include "
lsst/jointcal/StarMatch.h
"
32
33
namespace
lsst
{
34
namespace
jointcal
{
35
36
class
AstrometryTransform
;
37
class
AstrometryTransformLinear
;
38
40
struct
MatchConditions
{
41
int
nStarsList1
,
nStarsList2
;
42
int
maxTrialCount
;
43
double
nSigmas
;
44
double
maxShiftX
,
maxShiftY
;
45
double
sizeRatio
,
deltaSizeRatio
,
minMatchRatio
;
46
int
printLevel
;
47
int
algorithm
;
48
49
MatchConditions
()
50
:
nStarsList1
(70),
51
nStarsList2
(70),
52
maxTrialCount
(4),
53
nSigmas
(3.),
54
maxShiftX
(50),
55
maxShiftY
(50),
56
sizeRatio
(1),
57
deltaSizeRatio
(0.1 *
sizeRatio
),
58
minMatchRatio
(1. / 3.),
59
printLevel
(0),
60
algorithm
(2) {}
61
62
double
minSizeRatio
()
const
{
return
sizeRatio
-
deltaSizeRatio
; }
63
double
maxSizeRatio
()
const
{
return
sizeRatio
+
deltaSizeRatio
; }
64
};
65
77
79
83
84
std::unique_ptr<StarMatchList>
matchSearchRotShift
(
BaseStarList
&list1,
BaseStarList
&list2,
85
const
MatchConditions &conditions);
86
88
89
std::unique_ptr<StarMatchList>
matchSearchRotShiftFlip
(
BaseStarList
&list1,
BaseStarList
&list2,
90
const
MatchConditions &conditions);
91
93
95
96
std::unique_ptr<StarMatchList>
listMatchCollect
(
const
BaseStarList
&list1,
const
BaseStarList
&list2,
97
const
AstrometryTransform *guess,
double
maxDist);
98
100
101
std::unique_ptr<StarMatchList>
listMatchCollect
(
const
BaseStarList
&list1,
const
BaseStarList
&list2,
102
double
maxDist);
103
105
106
std::unique_ptr<AstrometryTransformLinear>
listMatchupShift
(
const
BaseStarList
&list1,
107
const
BaseStarList
&list2,
108
const
AstrometryTransform &
transform
,
109
double
maxShift,
double
binSize = 0);
110
111
std::unique_ptr<AstrometryTransform>
listMatchCombinatorial
(
112
const
BaseStarList
&list1,
const
BaseStarList
&list2,
113
const
MatchConditions &conditions = MatchConditions());
114
std::unique_ptr<AstrometryTransform>
listMatchRefine
(
const
BaseStarList
&list1,
const
BaseStarList
&list2,
115
std::unique_ptr<AstrometryTransform>
transform
,
116
int
maxOrder = 3);
117
118
#ifdef DO_WE_NEED_THAT
119
inline
AstrometryTransform *ListMatch(
const
BaseStarList
&list1,
const
BaseStarList
&list2,
120
const
int
maxOrder = 3) {
121
AstrometryTransform *
transform
=
listMatchCombinatorial
(list1, list2);
122
transform
=
listMatchRefine
(list1, list2,
transform
, maxOrder);
123
return
transform
;
124
}
125
#endif
/* DO_WE_NEED_THAT */
126
}
// namespace jointcal
127
}
// namespace lsst
128
129
#endif
// LSST_JOINTCAL_LIST_MATCH_H
BaseStar.h
StarMatch.h
pairs of points
lsst::jointcal::AstrometryTransform
a virtual (interface) class for geometric transformations.
Definition
AstrometryTransform.h:65
lsst::jointcal::AstrometryTransformLinear
implements the linear transformations (6 real coefficients).
Definition
AstrometryTransform.h:426
lsst::jointcal
Definition
Associations.h:50
lsst::jointcal::listMatchRefine
std::unique_ptr< AstrometryTransform > listMatchRefine(const BaseStarList &list1, const BaseStarList &list2, std::unique_ptr< AstrometryTransform > transform, int maxOrder=3)
Definition
ListMatch.cc:719
lsst::jointcal::listMatchCombinatorial
std::unique_ptr< AstrometryTransform > listMatchCombinatorial(const BaseStarList &list1, const BaseStarList &list2, const MatchConditions &conditions=MatchConditions())
Definition
ListMatch.cc:679
lsst::jointcal::listMatchCollect
std::unique_ptr< StarMatchList > listMatchCollect(const BaseStarList &list1, const BaseStarList &list2, const AstrometryTransform *guess, double maxDist)
assembles star matches.
Definition
ListMatch.cc:568
lsst::jointcal::BaseStarList
StarList< BaseStar > BaseStarList
Definition
BaseStar.h:121
lsst::jointcal::matchSearchRotShift
std::unique_ptr< StarMatchList > matchSearchRotShift(BaseStarList &list1, BaseStarList &list2, const MatchConditions &conditions)
searches a geometrical transformation that goes from list1 to list2.
Definition
ListMatch.cc:424
lsst::jointcal::matchSearchRotShiftFlip
std::unique_ptr< StarMatchList > matchSearchRotShiftFlip(BaseStarList &list1, BaseStarList &list2, const MatchConditions &conditions)
same as above but searches also a flipped solution.
Definition
ListMatch.cc:432
lsst::jointcal::listMatchupShift
std::unique_ptr< AstrometryTransformLinear > listMatchupShift(const BaseStarList &list1, const BaseStarList &list2, const AstrometryTransform &transform, double maxShift, double binSize=0)
searches for a 2 dimensional shift using a very crude histogram method.
Definition
ListMatch.cc:490
lsst
lsst::jointcal::MatchConditions::deltaSizeRatio
double deltaSizeRatio
Definition
ListMatch.h:45
lsst::jointcal::MatchConditions::maxTrialCount
int maxTrialCount
Definition
ListMatch.h:42
lsst::jointcal::MatchConditions::maxShiftX
double maxShiftX
Definition
ListMatch.h:44
lsst::jointcal::MatchConditions::algorithm
int algorithm
Definition
ListMatch.h:47
lsst::jointcal::MatchConditions::maxShiftY
double maxShiftY
Definition
ListMatch.h:44
lsst::jointcal::MatchConditions::maxSizeRatio
double maxSizeRatio() const
Definition
ListMatch.h:63
lsst::jointcal::MatchConditions::minSizeRatio
double minSizeRatio() const
Definition
ListMatch.h:62
lsst::jointcal::MatchConditions::nStarsList1
int nStarsList1
Definition
ListMatch.h:41
lsst::jointcal::MatchConditions::printLevel
int printLevel
Definition
ListMatch.h:46
lsst::jointcal::MatchConditions::nSigmas
double nSigmas
Definition
ListMatch.h:43
lsst::jointcal::MatchConditions::MatchConditions
MatchConditions()
Definition
ListMatch.h:49
lsst::jointcal::MatchConditions::nStarsList2
int nStarsList2
Definition
ListMatch.h:41
lsst::jointcal::MatchConditions::sizeRatio
double sizeRatio
Definition
ListMatch.h:45
lsst::jointcal::MatchConditions::minMatchRatio
double minMatchRatio
Definition
ListMatch.h:45
std::transform
T transform(T... args)
std::unique_ptr
Generated on
for lsst.jointcal by
1.17.0