UFO
ufo::ProfileCheckBase Class Referenceabstract

Profile QC checker base class. More...

#include <ProfileCheckBase.h>

Inheritance diagram for ufo::ProfileCheckBase:
Collaboration diagram for ufo::ProfileCheckBase:

Public Member Functions

 ProfileCheckBase (const ConventionalProfileProcessingParameters &options)
 
virtual ~ProfileCheckBase ()
 
virtual void runCheck (ProfileDataHandler &profileDataHandler)=0
 Run check. More...
 
virtual void fillValidationData (ProfileDataHandler &profileDataHandler)
 
virtual bool getResult ()
 Get result of check (default fail) More...
 
virtual bool runOnEntireSample ()
 Run this check on the entire sample? More...
 
virtual oops::Variables getGeoVaLNames ()
 List of names of required GeoVaLs. More...
 
virtual oops::Variables getValidationGeoVaLNames ()
 List of names of GeoVaLs used in check validation. More...
 
virtual oops::Variables getObsDiagNames ()
 List of names of required obs diagnostics. More...
 

Protected Member Functions

template<typename T >
void correctVector (const std::vector< T > &v1, const std::vector< T > &v2, std::vector< T > &vout)
 Apply correction to vector of values. More...
 
template<typename T >
void SetQCFlag (const int &flag, const size_t &jlev, std::vector< T > &vec)
 
template<typename T , typename... Args>
void SetQCFlag (const int &flag, const size_t &jlev, std::vector< T > &vec1, Args &... vecs)
 

Protected Attributes

const ConventionalProfileProcessingParametersoptions_
 Configurable parameters. More...
 
const int missingValueInt = util::missingValue(1)
 Missing value (int) More...
 
const float missingValueFloat = util::missingValue(1.0f)
 Missing value (float) More...
 

Detailed Description

Profile QC checker base class.

Definition at line 38 of file ProfileCheckBase.h.

Constructor & Destructor Documentation

◆ ProfileCheckBase()

ufo::ProfileCheckBase::ProfileCheckBase ( const ConventionalProfileProcessingParameters options)
explicit

Definition at line 16 of file ProfileCheckBase.cc.

◆ ~ProfileCheckBase()

virtual ufo::ProfileCheckBase::~ProfileCheckBase ( )
inlinevirtual

Definition at line 42 of file ProfileCheckBase.h.

Member Function Documentation

◆ correctVector()

template<typename T >
void ufo::ProfileCheckBase::correctVector ( const std::vector< T > &  v1,
const std::vector< T > &  v2,
std::vector< T > &  vout 
)
inlineprotected

Apply correction to vector of values.

Definition at line 73 of file ProfileCheckBase.h.

Here is the caller graph for this function:

◆ fillValidationData()

virtual void ufo::ProfileCheckBase::fillValidationData ( ProfileDataHandler profileDataHandler)
inlinevirtual

Fill variables in validator using a ProfileDataHandler. This function will only be called for subclasses of ProfileCheckBase whose runOnEntireSample() implementation returns false. If runOnEntireSample() returns true, the subclass needs to handle the storage of validation data on its own. For an example see the ProfileAveragePressure class.

Reimplemented in ufo::ProfileCheckUnstableLayer, ufo::ProfileCheckUInterp, ufo::ProfileCheckRH, ufo::ProfileCheckInterpolation, and ufo::ProfileCheckHydrostatic.

Definition at line 53 of file ProfileCheckBase.h.

◆ getGeoVaLNames()

virtual oops::Variables ufo::ProfileCheckBase::getGeoVaLNames ( )
inlinevirtual

◆ getObsDiagNames()

virtual oops::Variables ufo::ProfileCheckBase::getObsDiagNames ( )
inlinevirtual

◆ getResult()

virtual bool ufo::ProfileCheckBase::getResult ( )
inlinevirtual

Get result of check (default fail)

Reimplemented in ufo::ProfileCheckBasic.

Definition at line 56 of file ProfileCheckBase.h.

◆ getValidationGeoVaLNames()

virtual oops::Variables ufo::ProfileCheckBase::getValidationGeoVaLNames ( )
inlinevirtual

List of names of GeoVaLs used in check validation.

Reimplemented in ufo::ProfileAverageWindSpeed, ufo::ProfileAverageTemperature, ufo::ProfileAverageRelativeHumidity, and ufo::ProfileAveragePressure.

Definition at line 65 of file ProfileCheckBase.h.

◆ runCheck()

◆ runOnEntireSample()

virtual bool ufo::ProfileCheckBase::runOnEntireSample ( )
inlinevirtual

◆ SetQCFlag() [1/2]

template<typename T >
void ufo::ProfileCheckBase::SetQCFlag ( const int &  flag,
const size_t &  jlev,
std::vector< T > &  vec 
)
inlineprotected

Set a QC flag on one profile level. This is the base case for one vector.

Definition at line 85 of file ProfileCheckBase.h.

Here is the caller graph for this function:

◆ SetQCFlag() [2/2]

template<typename T , typename... Args>
void ufo::ProfileCheckBase::SetQCFlag ( const int &  flag,
const size_t &  jlev,
std::vector< T > &  vec1,
Args &...  vecs 
)
inlineprotected

Set a QC flag on one profile level. This is the recursive case that accepts an arbitrary number of vectors using a variadic template.

Definition at line 96 of file ProfileCheckBase.h.

Here is the call graph for this function:

Member Data Documentation

◆ missingValueFloat

const float ufo::ProfileCheckBase::missingValueFloat = util::missingValue(1.0f)
protected

Missing value (float)

Definition at line 113 of file ProfileCheckBase.h.

◆ missingValueInt

const int ufo::ProfileCheckBase::missingValueInt = util::missingValue(1)
protected

Missing value (int)

Definition at line 110 of file ProfileCheckBase.h.

◆ options_

const ConventionalProfileProcessingParameters& ufo::ProfileCheckBase::options_
protected

Configurable parameters.

Definition at line 107 of file ProfileCheckBase.h.


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