UFO
|
A filter that interpolates a model profile (GeoVaL) and a height-dependent threshold to the observation location and flags observations which are outside the specified limit. More...
#include <ModelObThreshold.h>
Public Types | |
typedef ModelObThresholdParameters | Parameters_ |
Public Member Functions | |
ModelObThreshold (ioda::ObsSpace &, const Parameters_ &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >) | |
~ModelObThreshold () | |
![]() | |
FilterBase (ioda::ObsSpace &, const FilterParametersBaseWithAbstractAction ¶meters, 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 () | |
![]() | |
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 |
Filter to apply a threshold to a model profile interpolated to the observation height. More... | |
int | qcFlag () const override |
Private Attributes | |
Parameters_ | parameters_ |
Additional Inherited Members | |
![]() | |
const eckit::LocalConfiguration | config_ |
ufo::Variables | filtervars_ |
![]() | |
ioda::ObsSpace & | obsdb_ |
std::shared_ptr< ioda::ObsDataVector< int > > | flags_ |
std::shared_ptr< ioda::ObsDataVector< float > > | obserr_ |
ufo::Variables | allvars_ |
ObsFilterData | data_ |
A filter that interpolates a model profile (GeoVaL) and a height-dependent threshold to the observation location and flags observations which are outside the specified limit.
See ModelObThresholdParameters for the documentation of the parameters controlling this filter.
Definition at line 88 of file ModelObThreshold.h.
The type of parameters accepted by the constructor of this filter. This typedef is used by the FilterFactory.
Definition at line 93 of file ModelObThreshold.h.
ufo::ModelObThreshold::ModelObThreshold | ( | ioda::ObsSpace & | obsdb, |
const Parameters_ & | parameters, | ||
std::shared_ptr< ioda::ObsDataVector< int > > | flags, | ||
std::shared_ptr< ioda::ObsDataVector< float > > | obserr | ||
) |
Definition at line 29 of file ModelObThreshold.cc.
ufo::ModelObThreshold::~ModelObThreshold | ( | ) |
Definition at line 42 of file ModelObThreshold.cc.
|
overrideprivatevirtual |
Filter to apply a threshold to a model profile interpolated to the observation height.
The specified model profile variable is linearly (vertical) interpolated to the observation height using the specified model vertical coordinate variable. This is referred to as the "ModelOb". Note that the ModelOb is not necessarily one of the HofX variables.
The observation height must be in the same coordinate system as that specified for the model vertical coordinate, e.g. both pressure.
The thresholds to compare the ModelOb against is specified as height-dependent. We supply a vector of threshold values, and a vector of vertical coordinate values corresponding to those thresholds. The coordinate values must be in the same vertical coordinate as the observation, e.g. pressure. The threshold values are then linearly interpolated to the observation height.
The observation is flagged for rejection if the ModelOb lies outside the threshold value according to threshold type - min or max. E.g. if the threshold type is min, then the observation is flagged if ModelOb is less than the interpolated threshold value.
Example for relative humidity:
Implements ufo::FilterBase.
Definition at line 89 of file ModelObThreshold.cc.
|
inlinestatic |
Definition at line 95 of file ModelObThreshold.h.
|
overrideprivatevirtual |
Implements ufo::FilterBase.
Definition at line 174 of file ModelObThreshold.cc.
|
inlineoverrideprivatevirtual |
Implements ufo::FilterBase.
Definition at line 106 of file ModelObThreshold.h.
|
private |
Definition at line 108 of file ModelObThreshold.h.