UFO
ufo::StuckCheck Class Reference

#include <StuckCheck.h>

Inheritance diagram for ufo::StuckCheck:
Collaboration diagram for ufo::StuckCheck:

Public Types

typedef StuckCheckParameters Parameters_
 

Public Member Functions

 StuckCheck (ioda::ObsSpace &obsdb, const Parameters_ &parameters, std::shared_ptr< ioda::ObsDataVector< int > > flags, std::shared_ptr< ioda::ObsDataVector< float > > obserr)
 
 ~StuckCheck () override
 
- Public Member Functions inherited from ufo::FilterBase
 FilterBase (ioda::ObsSpace &, const FilterParametersBaseWithAbstractAction &parameters, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
 
 FilterBase (ioda::ObsSpace &, const eckit::Configuration &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
 
 ~FilterBase ()
 
- Public Member Functions inherited from ufo::ObsProcessorBase
 ObsProcessorBase (ioda::ObsSpace &, bool deferToPost, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
 
 ~ObsProcessorBase ()
 
void preProcess () override
 
void priorFilter (const GeoVaLs &) override
 
void postFilter (const ioda::ObsVector &, const ioda::ObsVector &, const ObsDiagnostics &) override
 
oops::Variables requiredVars () const override
 
oops::Variables requiredHdiagnostics () const override
 

Static Public Member Functions

static const std::string classname ()
 

Private Member Functions

void print (std::ostream &) const override
 
void applyFilter (const std::vector< bool > &, const Variables &, std::vector< std::vector< bool >> &) const override
 
int qcFlag () const override
 
std::vector< float > collectStationVariableData (std::vector< size_t >::const_iterator stationObsIndicesBegin, std::vector< size_t >::const_iterator stationObsIndicesEnd, const std::vector< size_t > &validObsIds, const std::vector< float > &globalData) const
 
void potentiallyRejectStreak (std::vector< size_t >::const_iterator stationIndicesBegin, std::vector< size_t >::const_iterator stationIndicesEnd, const std::vector< size_t > &validObsIds, size_t startOfStreakIndex, size_t endOfStreakIndex, std::vector< bool > &isRejected, std::string stationId) const
 

Private Attributes

Parameters_ options_
 
std::unique_ptr< std::vector< util::DateTime > > obsGroupDateTimes_
 

Additional Inherited Members

- Protected Attributes inherited from ufo::FilterBase
const eckit::LocalConfiguration config_
 
ufo::Variables filtervars_
 
- Protected Attributes inherited from ufo::ObsProcessorBase
ioda::ObsSpace & obsdb_
 
std::shared_ptr< ioda::ObsDataVector< int > > flags_
 
std::shared_ptr< ioda::ObsDataVector< float > > obserr_
 
ufo::Variables allvars_
 
ObsFilterData data_
 

Detailed Description

Flags sequential observations whose filter variables have streaks of unchanging measurements over a time span such that the following two conditions are satisfied:

  1. The streak exceeds a user-specified number of observations (numberStuckTolerance)
  2. The streak continues for longer than a user-specified duration (timeStuckTolerance) and/or the streak continues throughout every one of the observations within the observation grouping.

Types of observations that this check might apply to include the following: LNDSYN, LNDSYB, SHPSYN, SHPSYB, BUOY, MOBSYN, and OPENROAD

Definition at line 47 of file src/ufo/filters/StuckCheck.h.

Member Typedef Documentation

◆ Parameters_

Constructor & Destructor Documentation

◆ StuckCheck()

ufo::StuckCheck::StuckCheck ( ioda::ObsSpace &  obsdb,
const Parameters_ parameters,
std::shared_ptr< ioda::ObsDataVector< int > >  flags,
std::shared_ptr< ioda::ObsDataVector< float > >  obserr 
)

Definition at line 31 of file StuckCheck.cc.

◆ ~StuckCheck()

ufo::StuckCheck::~StuckCheck ( )
override

Definition at line 41 of file StuckCheck.cc.

Member Function Documentation

◆ applyFilter()

void ufo::StuckCheck::applyFilter ( const std::vector< bool > &  apply,
const Variables filtervars,
std::vector< std::vector< bool >> &  flagged 
) const
overrideprivatevirtual

The filter removes observations if they are part of a 'streak'. A streak is where the number of identical observation values in sequence (for a given variable) is greater than a user defined count. To be a streak, it must also continue for longer than a user-defined duration or every observation in the station's group must have an identical value.

Implements ufo::FilterBase.

Definition at line 49 of file StuckCheck.cc.

Here is the call graph for this function:

◆ classname()

static const std::string ufo::StuckCheck::classname ( )
inlinestatic

Definition at line 52 of file src/ufo/filters/StuckCheck.h.

◆ collectStationVariableData()

std::vector< float > ufo::StuckCheck::collectStationVariableData ( std::vector< size_t >::const_iterator  stationObsIndicesBegin,
std::vector< size_t >::const_iterator  stationObsIndicesEnd,
const std::vector< size_t > &  validObsIds,
const std::vector< float > &  globalData 
) const
private
Returns
a vector containing all of the necessary data to run this filter for each observation, stored by observation.

Definition at line 124 of file StuckCheck.cc.

Here is the caller graph for this function:

◆ potentiallyRejectStreak()

void ufo::StuckCheck::potentiallyRejectStreak ( std::vector< size_t >::const_iterator  stationIndicesBegin,
std::vector< size_t >::const_iterator  stationIndicesEnd,
const std::vector< size_t > &  validObsIds,
size_t  startOfStreakIndex,
size_t  endOfStreakIndex,
std::vector< bool > &  isRejected,
std::string  stationId = "" 
) const
private

Definition at line 141 of file StuckCheck.cc.

Here is the caller graph for this function:

◆ print()

void ufo::StuckCheck::print ( std::ostream &  os) const
overrideprivatevirtual

Implements ufo::FilterBase.

Definition at line 118 of file StuckCheck.cc.

◆ qcFlag()

int ufo::StuckCheck::qcFlag ( ) const
inlineoverrideprivatevirtual

Implements ufo::FilterBase.

Definition at line 68 of file src/ufo/filters/StuckCheck.h.

Member Data Documentation

◆ obsGroupDateTimes_

std::unique_ptr<std::vector<util::DateTime> > ufo::StuckCheck::obsGroupDateTimes_
private

Definition at line 63 of file src/ufo/filters/StuckCheck.h.

◆ options_

Parameters_ ufo::StuckCheck::options_
private

Definition at line 61 of file src/ufo/filters/StuckCheck.h.


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