UFO
ufo::ImpactHeightCheck Class Reference

#include <ImpactHeightCheck.h>

Inheritance diagram for ufo::ImpactHeightCheck:
Collaboration diagram for ufo::ImpactHeightCheck:

Public Types

typedef ImpactHeightCheckParameters Parameters_
 

Public Member Functions

 ImpactHeightCheck (ioda::ObsSpace &, const Parameters_ &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
 
 ~ImpactHeightCheck ()
 
- 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 > calcVerticalGradient (const std::vector< float > &, const std::vector< float > &) const
 
float calcImpactHeight (float, float, float) const
 

Private Attributes

Parameters_ parameters_
 

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

ImpactHeightCheck: Calculate the impact height for model profiles, and reject any observations which are outside the range of model impact heights. Check for any sharp refractivity gradients, and reject any observations below them. Refractivity and model heights must have been saved into ObsDiagnostics by the observation operator.

Definition at line 58 of file ImpactHeightCheck.h.

Member Typedef Documentation

◆ Parameters_

The type of parameters accepted by the constructor of this filter. This typedef is used by the FilterFactory.

Definition at line 63 of file ImpactHeightCheck.h.

Constructor & Destructor Documentation

◆ ImpactHeightCheck()

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

ImpactHeightCheck: Calculate the impact height for model profiles, and reject any observations which are outside the range of model impact heights. Check for any sharp refractivity gradients, and reject any observations below them.

Definition at line 30 of file ImpactHeightCheck.cc.

◆ ~ImpactHeightCheck()

ufo::ImpactHeightCheck::~ImpactHeightCheck ( )

Definition at line 46 of file ImpactHeightCheck.cc.

Member Function Documentation

◆ applyFilter()

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

Apply the filter: remove observations which are outside the range of impact heights

Implements ufo::FilterBase.

Definition at line 54 of file ImpactHeightCheck.cc.

Here is the call graph for this function:

◆ calcImpactHeight()

float ufo::ImpactHeightCheck::calcImpactHeight ( float  refractivity,
float  modelHeight,
float  radiusCurv 
) const
private

Calculate the impact parameter from the refractivity, impact height and radius of curvature

Definition at line 218 of file ImpactHeightCheck.cc.

Here is the caller graph for this function:

◆ calcVerticalGradient()

std::vector< float > ufo::ImpactHeightCheck::calcVerticalGradient ( const std::vector< float > &  refrac,
const std::vector< float > &  height 
) const
private

Calculate the vertical gradient of refractivity, assuming that any missing data has already been removed

Definition at line 205 of file ImpactHeightCheck.cc.

Here is the caller graph for this function:

◆ classname()

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

Definition at line 65 of file ImpactHeightCheck.h.

◆ print()

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

Implements ufo::FilterBase.

Definition at line 226 of file ImpactHeightCheck.cc.

◆ qcFlag()

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

Implements ufo::FilterBase.

Definition at line 76 of file ImpactHeightCheck.h.

Member Data Documentation

◆ parameters_

Parameters_ ufo::ImpactHeightCheck::parameters_
private

Definition at line 77 of file ImpactHeightCheck.h.


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