25#ifndef LSST_AFW_TABLE_MATCH_H
26#define LSST_AFW_TABLE_MATCH_H
30#include "lsst/pex/config.h"
49 "Return only the closest match if more than one is found "
52 "Produce symmetric matches (default: true):\n"
53 "i.e. if (s1, s2, d) is reported, then so is (s2, s1, d)");
55 "Include failed matches (i.e. one 'match' is NULL) "
66template <
typename Record1,
typename Record2>
77 template <
typename R1,
typename R2>
81using SimpleMatch = Match<SimpleRecord, SimpleRecord>;
82using ReferenceMatch = Match<SimpleRecord, SourceRecord>;
83using SourceMatch = Match<SourceRecord, SourceRecord>;
96 SourceCatalog
const &cat1,
97 SourceCatalog
const &cat2,
99 MatchControl
const &mc =
109 SourceCatalog
const &cat,
111 MatchControl
const &mc =
123template <
typename Cat1,
typename Cat2>
128 MatchControl
const &mc =
139template <
typename Cat>
143 MatchControl
const &mc =
155template <
typename Record1,
typename Record2>
177template <
typename Cat1,
typename Cat2>
Tag types used to declare specialized field types.
Pass parameters to algorithms that match list of sources.
bool findOnlyClosest
"Return only the closest match if more than one is found " "(default: true)" ;
bool symmetricMatch
"Produce symmetric matches (default: true):\n" "i.e. if (s1, s2, d) is reported, then so is (s2,...
bool includeMismatches
"Include failed matches (i.e. one 'match' is NULL) " "(default: false)" ;
std::vector< ReferenceMatch > ReferenceMatchVector
std::vector< SimpleMatch > SimpleMatchVector
std::vector< Match< typename Cat1::Record, typename Cat2::Record > > unpackMatches(BaseCatalog const &matches, Cat1 const &cat1, Cat2 const &cat2)
Reconstruct a MatchVector from a BaseCatalog representation of the matches and a pair of catalogs.
BaseCatalog packMatches(std::vector< Match< Record1, Record2 > > const &matches)
Return a table representation of a MatchVector that can be used to persist it.
std::vector< SourceMatch > SourceMatchVector
SourceMatchVector matchXy(SourceCatalog const &cat1, SourceCatalog const &cat2, double radius, MatchControl const &mc=MatchControl())
Compute all tuples (s1,s2,d) where s1 belings to cat1, s2 belongs to cat2 and d, the distance between...
std::vector< Match< typename Cat1::Record, typename Cat2::Record > > matchRaDec(Cat1 const &cat1, Cat2 const &cat2, lsst::geom::Angle radius, MatchControl const &mc=MatchControl())
Compute all tuples (s1,s2,d) where s1 belings to cat1, s2 belongs to cat2 and d, the distance between...
Lightweight representation of a geometric match between two records.
Match(Match< R1, R2 > const &other)
Match(std::shared_ptr< Record1 > const &r1, std::shared_ptr< Record2 > const &r2, double dist)
std::shared_ptr< Record2 > second
std::shared_ptr< Record1 > first