8 #ifndef UFO_FILTERS_MODELBESTFITPRESSURE_H_
9 #define UFO_FILTERS_MODELBESTFITPRESSURE_H_
16 #include "oops/util/ObjectCounter.h"
17 #include "oops/util/parameters/Parameter.h"
18 #include "oops/util/parameters/RequiredParameter.h"
28 template <
typename DATATYPE>
class ObsDataVector;
40 oops::RequiredParameter<Variable>
obs_pressure{
"observation pressure",
this};
85 private util::ObjectCounter<ModelBestFitPressure> {
91 static const std::string
classname() {
return "ufo::ModelBestFitPressure";}
99 void print(std::ostream &)
const override;
101 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 to calculate the best fit pressure and if the pressure is well constrained....
static const std::string classname()
void applyFilter(const std::vector< bool > &, const Variables &, std::vector< std::vector< bool >> &) const override
A filter that calculates the pressure at which the AMV wind vector (u,v) is a best match to the model...
void print(std::ostream &) const override
ModelBestFitPressureParameters Parameters_
ModelBestFitPressure(ioda::ObsSpace &, const Parameters_ &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
int qcFlag() const override
Parameters controlling the operation of the ModelBestFitPressure filter.
oops::RequiredParameter< Variable > obs_pressure
Name of the observation pressure variable to correct.
oops::Parameter< float > upper_vector_diff
Maximum vector difference allowed, for calculating constraint.
oops::Parameter< bool > calculate_best_fit_winds
To calculate bestfit eastward/northward winds by linear interpolation.
oops::Parameter< float > pressure_band_half_width
oops::Parameter< float > tolerance_vector_diff
oops::Parameter< float > tolerance_pressure
oops::Parameter< float > top_pressure
oops::Parameter< float > lower_vector_diff
Minimum vector difference allowed, for calculating constraint.