UFO
ufo::MetOfficeBuddyPairFinder Class Reference

Finds pairs of close observations ("buddies") to check against each other. More...

#include <MetOfficeBuddyPairFinder.h>

Collaboration diagram for ufo::MetOfficeBuddyPairFinder:

Public Member Functions

 MetOfficeBuddyPairFinder (const MetOfficeBuddyCheckParameters &options, const std::vector< float > &latitudes, const std::vector< float > &longitudes, const std::vector< util::DateTime > &datetimes, const std::vector< float > *pressures, const std::vector< int > &stationIds)
 Constructor. More...
 
std::vector< MetOfficeBuddyPairfindBuddyPairs (const std::vector< size_t > &validObsIds)
 Returns a list of MetOfficeBuddyPair objects representing pairs of "buddy" observations that should be checked against each other. More...
 

Private Member Functions

void sortObservations (const std::vector< size_t > &validObsIds, std::vector< int > &validObsIdsInSortOrder, std::vector< int > &bandLbounds)
 Sorts observations in an order facilitating rapid search for buddies. More...
 
std::vector< MetOfficeBuddyPairpairObservations (const std::vector< int > &validObsIdsInSortOrder, const std::vector< int > &bandLbounds)
 Finds pairs of observations to be considered as buddies. Calculates the distance and mutual orientation of each pair of buddies. More...
 
std::unique_ptr< MetOfficeBuddyCollectormakeBuddyCollector () const
 
float getLongitudeSearchRangeHalfWidth (int bandIndex, float bandWidth) const
 

Private Attributes

const MetOfficeBuddyCheckParametersoptions_
 
const std::vector< float > & latitudes_
 
const std::vector< float > & longitudes_
 
const std::vector< util::DateTime > & datetimes_
 
const std::vector< float > * pressures_
 
const std::vector< int > & stationIds_
 

Detailed Description

Finds pairs of close observations ("buddies") to check against each other.

Definition at line 26 of file src/ufo/filters/MetOfficeBuddyPairFinder.h.

Constructor & Destructor Documentation

◆ MetOfficeBuddyPairFinder()

ufo::MetOfficeBuddyPairFinder::MetOfficeBuddyPairFinder ( const MetOfficeBuddyCheckParameters options,
const std::vector< float > &  latitudes,
const std::vector< float > &  longitudes,
const std::vector< util::DateTime > &  datetimes,
const std::vector< float > *  pressures,
const std::vector< int > &  stationIds 
)

Constructor.

Parameters
pressuresOptional – may be null.

Definition at line 30 of file MetOfficeBuddyPairFinder.cc.

Member Function Documentation

◆ findBuddyPairs()

std::vector< MetOfficeBuddyPair > ufo::MetOfficeBuddyPairFinder::findBuddyPairs ( const std::vector< size_t > &  validObsIds)

Returns a list of MetOfficeBuddyPair objects representing pairs of "buddy" observations that should be checked against each other.

Definition at line 40 of file MetOfficeBuddyPairFinder.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getLongitudeSearchRangeHalfWidth()

float ufo::MetOfficeBuddyPairFinder::getLongitudeSearchRangeHalfWidth ( int  bandIndex,
float  bandWidth 
) const
private

Definition at line 240 of file MetOfficeBuddyPairFinder.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ makeBuddyCollector()

std::unique_ptr< MetOfficeBuddyCollector > ufo::MetOfficeBuddyPairFinder::makeBuddyCollector ( ) const
private

Definition at line 231 of file MetOfficeBuddyPairFinder.cc.

Here is the caller graph for this function:

◆ pairObservations()

std::vector< MetOfficeBuddyPair > ufo::MetOfficeBuddyPairFinder::pairObservations ( const std::vector< int > &  validObsIdsInSortOrder,
const std::vector< int > &  bandLbounds 
)
private

Finds pairs of observations to be considered as buddies. Calculates the distance and mutual orientation of each pair of buddies.

See the OPS Scientific Documentation Paper 2, sections 3.4 and 3.5.

Parameters
validObsIdsInSortOrder,bandLboundsOutputs produced by sortObservations().
Returns
Vector of pairs of observations to be considered as buddies.

Definition at line 102 of file MetOfficeBuddyPairFinder.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sortObservations()

void ufo::MetOfficeBuddyPairFinder::sortObservations ( const std::vector< size_t > &  validObsIds,
std::vector< int > &  validObsIdsInSortOrder,
std::vector< int > &  bandLbounds 
)
private

Sorts observations in an order facilitating rapid search for buddies.

See the OPS Scientific Documentation Paper 2, section 3.3.

Parameters
[in]validObsIdsIDs of valid observations.
[out]validObsIdsInSortOrderIDs of valid observations sorted by zonal band index, longitude, -latitude, air pressure (if available) and time.
[out]bandLboundsOn output, a vector of length (options_.numZonalBands + 1) such that [bandLbounds[i], bandLbounds[i + 1]) is the half-open range of indices of elements of validObsIdsInSortOrder representing the IDs of observations from ith zonal band.

Definition at line 48 of file MetOfficeBuddyPairFinder.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ datetimes_

const std::vector<util::DateTime>& ufo::MetOfficeBuddyPairFinder::datetimes_
private

Definition at line 80 of file src/ufo/filters/MetOfficeBuddyPairFinder.h.

◆ latitudes_

const std::vector<float>& ufo::MetOfficeBuddyPairFinder::latitudes_
private

Definition at line 78 of file src/ufo/filters/MetOfficeBuddyPairFinder.h.

◆ longitudes_

const std::vector<float>& ufo::MetOfficeBuddyPairFinder::longitudes_
private

Definition at line 79 of file src/ufo/filters/MetOfficeBuddyPairFinder.h.

◆ options_

const MetOfficeBuddyCheckParameters& ufo::MetOfficeBuddyPairFinder::options_
private

Definition at line 77 of file src/ufo/filters/MetOfficeBuddyPairFinder.h.

◆ pressures_

const std::vector<float>* ufo::MetOfficeBuddyPairFinder::pressures_
private

Definition at line 81 of file src/ufo/filters/MetOfficeBuddyPairFinder.h.

◆ stationIds_

const std::vector<int>& ufo::MetOfficeBuddyPairFinder::stationIds_
private

Definition at line 82 of file src/ufo/filters/MetOfficeBuddyPairFinder.h.


The documentation for this class was generated from the following files: