UFO
AssignError.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2018 UCAR
3  *
4  * This software is licensed under the terms of the Apache Licence Version 2.0
5  * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
6  */
7 
8 #ifndef UFO_FILTERS_ACTIONS_ASSIGNERROR_H_
9 #define UFO_FILTERS_ACTIONS_ASSIGNERROR_H_
10 
11 #include <string>
12 #include <vector>
13 
14 #include "oops/util/parameters/OptionalParameter.h"
16 #include "ufo/filters/Variable.h"
17 #include "ufo/filters/Variables.h"
19 
20 namespace ufo {
21 
22 class ObsFilterData;
23 
24 // -----------------------------------------------------------------------------
25 
28 
29  public:
30  oops::OptionalParameter<float> errorParameter{"error parameter", this};
31  oops::OptionalParameter<Variable> errorFunction{"error function", this};
32 
33  /// This function is overridden to check that either `error parameter` or `error function`
34  /// is specified, but not both.
35  void deserialize(util::CompositePath &path, const eckit::Configuration &config) override;
36 };
37 
38 // -----------------------------------------------------------------------------
39 
40 class AssignError : public FilterActionBase {
41  public:
42  /// The type of parameters accepted by the constructor of this action.
43  /// This typedef is used by the FilterActionFactory.
45 
46  explicit AssignError(const Parameters_ &);
48 
49  void apply(const Variables &, const std::vector<std::vector<bool>> &,
50  const ObsFilterData &, int,
52  const ufo::Variables & requiredVariables() const override {return allvars_;}
53  private:
56 };
57 
58 // -----------------------------------------------------------------------------
59 
60 } // namespace ufo
61 
62 #endif // UFO_FILTERS_ACTIONS_ASSIGNERROR_H_
AssignErrorParameters Parameters_
Definition: AssignError.h:44
const ufo::Variables & requiredVariables() const override
Definition: AssignError.h:52
void apply(const Variables &, const std::vector< std::vector< bool >> &, const ObsFilterData &, int, ioda::ObsDataVector< int > &, ioda::ObsDataVector< float > &) const override
Definition: AssignError.cc:51
const Parameters_ parameters_
Definition: AssignError.h:55
Variables allvars_
Definition: AssignError.h:54
AssignError(const Parameters_ &)
Definition: AssignError.cc:42
oops::OptionalParameter< Variable > errorFunction
Definition: AssignError.h:31
OOPS_CONCRETE_PARAMETERS(AssignErrorParameters, FilterActionParametersBase)
void deserialize(util::CompositePath &path, const eckit::Configuration &config) override
Definition: AssignError.cc:27
oops::OptionalParameter< float > errorParameter
Definition: AssignError.h:30
Parameters controlling a filter action.
ObsFilterData provides access to all data related to an ObsFilter.
Definition: RunCRTM.h:27