8 #ifndef UFO_FILTERS_VARIABLEASSIGNMENT_H_
9 #define UFO_FILTERS_VARIABLEASSIGNMENT_H_
16 #include "eckit/config/LocalConfiguration.h"
17 #include "ioda/core/ParameterTraitsObsDtype.h"
18 #include "oops/generic/ObsFilterParametersBase.h"
19 #include "oops/util/ObjectCounter.h"
20 #include "oops/util/parameters/OptionalParameter.h"
21 #include "oops/util/parameters/Parameter.h"
22 #include "oops/util/parameters/Parameters.h"
23 #include "oops/util/parameters/RequiredParameter.h"
36 oops::RequiredParameter<std::string>
name{
"name",
this};
39 oops::Parameter<std::string>
channels{
"channels",
"",
this};
45 oops::OptionalParameter<std::string>
value_{
"value",
this};
51 oops::OptionalParameter<ufo::Variable>
sourceVariable{
"source variable",
this};
57 oops::OptionalParameter<ufo::Variable>
function{
"function",
this};
64 oops::OptionalParameter<ioda::ObsDtype>
type{
"type",
this};
68 void deserialize(util::CompositePath &path,
const eckit::Configuration &config)
override;
77 oops::Parameter<std::vector<AssignmentParameters>>
assignments{
"assignments", {},
this};
81 oops::Parameter<std::vector<WhereParameters>>
where{
"where", {},
this};
85 oops::Parameter<bool>
deferToPost{
"defer to post",
false,
this};
142 private util::ObjectCounter<VariableAssignment> {
148 static const std::string
classname() {
return "ufo::VariableAssignment";}
155 void print(std::ostream &)
const override;
Parameters controlling assignment of new values to a variable.
oops::OptionalParameter< std::string > value_
void deserialize(util::CompositePath &path, const eckit::Configuration &config) override
oops::OptionalParameter< ufo::Variable > sourceVariable
oops::RequiredParameter< std::string > name
Name of the variable to which new values should be assigned.
oops::Parameter< std::string > channels
Set of channels to which new values should be assigned.
oops::OptionalParameter< ioda::ObsDtype > type
Base class for UFO observation processors (including QC filters).
Assigns specified values to elements of specified variables selected by the where statement.
static const std::string classname()
void doFilter() const override
VariableAssignment(ioda::ObsSpace &obsdb, const Parameters_ ¶meters, std::shared_ptr< ioda::ObsDataVector< int > > flags, std::shared_ptr< ioda::ObsDataVector< float > > obserr)
void print(std::ostream &) const override
VariableAssignmentParameters Parameters_
Parameters controlling the VariableAssignment filter.
oops::Parameter< std::vector< WhereParameters > > where
oops::Parameter< bool > deferToPost
oops::Parameter< std::vector< AssignmentParameters > > assignments
One or more sets of options controlling the values assigned to a particular variable.