8 #ifndef UFO_FILTERS_MODELOBTHRESHOLD_H_
9 #define UFO_FILTERS_MODELOBTHRESHOLD_H_
16 #include "oops/util/ObjectCounter.h"
17 #include "oops/util/parameters/OptionalParameter.h"
18 #include "oops/util/parameters/RequiredParameter.h"
30 template <
typename DATATYPE>
class ObsDataVector;
43 static constexpr util::NamedEnumerator<ThresholdType>
namedValues[] = {
55 public EnumParameterTraits<ufo::ThresholdTypeParameterTraitsHelper>
70 oops::RequiredParameter<Variable>
model_vcoord{
"model vertical coordinate",
this};
72 oops::RequiredParameter<Variable>
obs_height{
"observation height",
this};
74 oops::RequiredParameter<std::vector<double>>
thresholds{
"thresholds",
this};
76 oops::RequiredParameter<std::vector<double>>
coord_vals{
"coordinate values",
this};
78 oops::RequiredParameter<ThresholdType>
threshold_type{
"threshold type",
this};
89 private util::ObjectCounter<ModelObThreshold> {
95 static const std::string
classname() {
return "ufo::ModelObThreshold";}
103 void print(std::ostream &)
const override;
105 std::vector<std::vector<bool>> &)
const override;
Base class for UFO QC filters.
Parameters shared by all filters having a default action (typically "reject").
A filter that interpolates a model profile (GeoVaL) and a height-dependent threshold to the observati...
ModelObThresholdParameters Parameters_
static const std::string classname()
void print(std::ostream &) const override
int qcFlag() const override
ModelObThreshold(ioda::ObsSpace &, const Parameters_ &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
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.
Parameters controlling the operation of the ModelObThreshold filter.
oops::RequiredParameter< Variable > obs_height
Name of the observation height variable to interpolate to.
oops::RequiredParameter< std::vector< double > > thresholds
Vector of threshold values.
oops::RequiredParameter< ThresholdType > threshold_type
Threshold type: min or max.
oops::RequiredParameter< Variable > model_vcoord
Name of the model vertical coordinate variable (GeoVal)
oops::RequiredParameter< std::vector< double > > coord_vals
Vector of vertical coordinates corresponding to vector of thresholds.
oops::RequiredParameter< Variable > model_profile
Name of the model profile variable (GeoVaLs)
constexpr int modelobthresh
static constexpr char enumTypeName[]
static constexpr util::NamedEnumerator< ThresholdType > namedValues[]