8 #ifndef UFO_FILTERS_IMPACTHEIGHTCHECK_H_
9 #define UFO_FILTERS_IMPACTHEIGHTCHECK_H_
16 #include "oops/util/ObjectCounter.h"
17 #include "oops/util/parameters/NumericConstraints.h"
18 #include "oops/util/parameters/RequiredParameter.h"
19 #include "oops/util/Printable.h"
24 template <
typename DATATYPE>
class ObsDataVector;
59 private util::ObjectCounter<ImpactHeightCheck> {
65 static const std::string
classname() {
return "ufo::ImpactHeightCheck";}
73 void print(std::ostream &)
const override;
75 std::vector<std::vector<bool>> &)
const override;
79 const std::vector<float> &)
const;
Base class for UFO QC filters.
Parameters shared by all filters having a default action (typically "reject").
int qcFlag() const override
ImpactHeightCheckParameters Parameters_
float calcImpactHeight(float, float, float) const
std::vector< float > calcVerticalGradient(const std::vector< float > &, const std::vector< float > &) const
ImpactHeightCheck(ioda::ObsSpace &, const Parameters_ &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
static const std::string classname()
void applyFilter(const std::vector< bool > &, const Variables &, std::vector< std::vector< bool >> &) const override
void print(std::ostream &) const override
Parameters controlling the operation of the ImpactHeightCheck filter.
oops::Parameter< float > sharpGradientOffset
oops::Parameter< float > surfaceOffset
Reject data within this height (in m) of the surface.
oops::Parameter< float > gradientThreshold