8 #ifndef UFO_FILTERS_DIFFERENCECHECK_H_
9 #define UFO_FILTERS_DIFFERENCECHECK_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::RequiredParameter<Variable>
ref{
"reference",
this};
43 oops::RequiredParameter<Variable>
val{
"value",
this};
47 oops::OptionalParameter<float>
minvalue{
"minvalue",
this};
50 oops::OptionalParameter<float>
maxvalue{
"maxvalue",
this};
55 oops::OptionalParameter<float>
threshold{
"threshold",
this};
63 private util::ObjectCounter<DifferenceCheck> {
69 static const std::string
classname() {
return "ufo::DifferenceCheck";}
77 void print(std::ostream &)
const override;
79 std::vector<std::vector<bool>> &)
const override;
void print(std::ostream &) const override
DifferenceCheck(ioda::ObsSpace &, const Parameters_ &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
int qcFlag() const override
static const std::string classname()
DifferenceCheckParameters Parameters_
void applyFilter(const std::vector< bool > &, const Variables &, std::vector< std::vector< bool >> &) const override
Parameters controlling the operation of the DifferenceCheck filter.
oops::RequiredParameter< Variable > ref
Name of the reference variable.
oops::OptionalParameter< float > maxvalue
oops::RequiredParameter< Variable > val
Name of the test variable.
oops::OptionalParameter< float > minvalue
oops::OptionalParameter< float > threshold
Base class for UFO QC filters.
Parameters shared by all filters having a default action (typically "reject").