8 #ifndef UFO_FILTERS_OBSBOUNDSCHECK_H_
9 #define UFO_FILTERS_OBSBOUNDSCHECK_H_
16 #include "oops/util/ObjectCounter.h"
17 #include "oops/util/parameters/OptionalParameter.h"
18 #include "oops/util/parameters/RequiredParameter.h"
29 template <
typename DATATYPE>
class ObsDataVector;
41 oops::OptionalParameter<float>
minvalue{
"minvalue",
this};
44 oops::OptionalParameter<float>
maxvalue{
"maxvalue",
this};
66 oops::OptionalParameter<std::vector<Variable>>
testVariables{
"test variables",
this};
73 "flag all filter variables if any test variable is out of bounds",
false,
this};
80 "test only filter variables with passed qc when flagging all filter variables",
false,
this};
95 private util::ObjectCounter<ObsBoundsCheck> {
101 static const std::string
classname() {
return "ufo::ObsBoundsCheck";}
109 void print(std::ostream &)
const override;
111 std::vector<std::vector<bool>> &)
const override;
Base class for UFO QC filters.
Parameters shared by all filters having a default action (typically "reject").
Flag observations that lie outside specified bounds.
void applyFilter(const std::vector< bool > &, const Variables &, std::vector< std::vector< bool >> &) const override
static const std::string classname()
ObsBoundsCheck(ioda::ObsSpace &, const Parameters_ &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
ObsBoundsCheckParameters Parameters_
void print(std::ostream &) const override
int qcFlag() const override
Parameters controlling the operation of the ObsBoundsCheck filter.
oops::Parameter< bool > onlyTestGoodFilterVarsForFlagAllFilterVars
oops::OptionalParameter< std::vector< Variable > > testVariables
oops::Parameter< bool > treatMissingAsOutOfBounds
oops::Parameter< bool > flagAllFilterVarsIfAnyTestVarOutOfBounds
oops::OptionalParameter< float > minvalue
Minimum allowed value of the tested variables.
oops::OptionalParameter< float > maxvalue
Maximum allowed value of the tested variables.