LSSTApplications  8.0.0.0+107,8.0.0.1+13,9.1+18,9.2,master-g084aeec0a4,master-g0aced2eed8+6,master-g15627eb03c,master-g28afc54ef9,master-g3391ba5ea0,master-g3d0fb8ae5f,master-g4432ae2e89+36,master-g5c3c32f3ec+17,master-g60f1e072bb+1,master-g6a3ac32d1b,master-g76a88a4307+1,master-g7bce1f4e06+57,master-g8ff4092549+31,master-g98e65bf68e,master-ga6b77976b1+53,master-gae20e2b580+3,master-gb584cd3397+53,master-gc5448b162b+1,master-gc54cf9771d,master-gc69578ece6+1,master-gcbf758c456+22,master-gcec1da163f+63,master-gcf15f11bcc,master-gd167108223,master-gf44c96c709
LSSTDataManagementBasePackage
Classes | Namespaces | Functions
Match.h File Reference

Spatial crossmatch algorithms. More...

#include <stdexcept>
#include <vector>
#include "Common.h"
#include "EllipseTypes.h"
#include "SpatialUtil.h"
#include "ZoneTypes.h"

Go to the source code of this file.

Classes

struct  lsst::ap::PassthroughFilter< T >
 A default "let everything through" filter implementation. More...
 
struct  lsst::ap::MatchWithDistance< T >
 Contains a pointer to a match and an associated distance. More...
 
struct  lsst::ap::MatchWithoutDistance< T >
 Contains a pointer to a match. More...
 
struct  lsst::ap::EmptyMatchListProcessor< F, M >
 A default "do nothing" match list processing implementation. More...
 
struct  lsst::ap::EmptyMatchPairProcessor< F, S >
 A default "do nothing" match pair processing implementation. More...
 

Namespaces

 lsst
 Estimate image backgrounds.
 
 lsst::ap
 

Functions

template<typename FirstEntryT , typename SecondEntryT , typename FirstFilterT , typename SecondFilterT , typename MatchListProcessorT >
std::size_t lsst::ap::distanceMatch (ZoneIndex< FirstEntryT > &first, ZoneIndex< SecondEntryT > &second, double const radius, FirstFilterT &firstFilter, SecondFilterT &secondFilter, MatchListProcessorT &matchListProcessor)
 
template<typename FirstEntryT , typename SecondEntryT , typename FirstFilterT , typename SecondFilterT , typename MatchPairProcessorT >
std::size_t lsst::ap::ellipseMatch (EllipseList< FirstEntryT > &first, ZoneIndex< SecondEntryT > &second, FirstFilterT &firstFilter, SecondFilterT &secondFilter, MatchPairProcessorT &matchPairProcessor)
 
template<typename FirstEntryT , typename SecondEntryT , typename FirstFilterT , typename SecondFilterT , typename MatchListProcessorT >
std::size_t lsst::ap::ellipseGroupedMatch (EllipseList< FirstEntryT > &first, ZoneIndex< SecondEntryT > &second, FirstFilterT &firstFilter, SecondFilterT &secondFilter, MatchListProcessorT &matchListProcessor)
 

Detailed Description

Spatial crossmatch algorithms.

The spatial crossmatch routines currently implemented take match list (or pair) processors as parameters. In this model, a processor could for example be some part of the LSST alert generation pipeline. More likely, it will be something that sets various flags on entities involved in the match and/or records matches in some form (e.g. as an id-id pair) for later use.

Note that the routines currently don't do anything special (like match-processing) for cases where no matches to a given entity are found. The routines could be extended with a no-match-processor parameter, or the existing processors could simply be called with empty match lists. Finally, the user could write a match processor that flags all entities involved in a match, and then post-process over unflagged entities.

Note that a single match pair/list processor instance is used by all threads involved in a parallel match. Ensuring that this doesn't cause problems is the responsibility of the match pair/list processor author.

Definition in file Match.h.