UFO
ObsCategoricalParameters.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2021 UK Met Office
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_CATEGORICALOPER_OBSCATEGORICALPARAMETERS_H_
9 #define UFO_CATEGORICALOPER_OBSCATEGORICALPARAMETERS_H_
10 
11 #include <map>
12 #include <string>
13 #include <vector>
14 
15 #include "oops/util/parameters/OptionalParameter.h"
16 #include "oops/util/parameters/RequiredParameter.h"
18 
19 namespace ufo {
20 
21 /// Configuration options recognized by the Categorical operator.
23  OOPS_CONCRETE_PARAMETERS(ObsCategoricalParameters, ObsOperatorParametersBase)
24 
25  public:
26  /// Categorical variable used to divide H(x) into sections.
27  oops::RequiredParameter<std::string> categoricalVariable{"categorical variable", this};
28 
29  /// Name of the fallback observation operator to use. This will be used to produce H(x) at
30  /// all locations whose value of the categorical variable does not appear in the
31  /// \p categorisedOperatorNames map.
32  oops::RequiredParameter<std::string> fallbackOperatorName{"fallback operator", this};
33 
34  /// Map between values of the categorical variable and the corresponding observation operators.
35  /// The fallback observation operator will be used for all values of the categorical variable
36  /// that are not represented in this map.
37  oops::RequiredParameter<std::map<std::string, std::string>>
38  categorisedOperatorNames{"categorised operators", this};
39 
40  /// A list of configuration options for each observation operator (i.e. the default operator
41  /// and any operators that have been specified in the \p categorisedOperatorNames map).
42  oops::RequiredParameter<std::vector<eckit::LocalConfiguration>>
43  operatorConfigurations{"operator configurations", this};
44 };
45 
46 } // namespace ufo
47 #endif // UFO_CATEGORICALOPER_OBSCATEGORICALPARAMETERS_H_
Configuration options recognized by the Categorical operator.
oops::RequiredParameter< std::vector< eckit::LocalConfiguration > > operatorConfigurations
oops::RequiredParameter< std::string > fallbackOperatorName
oops::RequiredParameter< std::map< std::string, std::string > > categorisedOperatorNames
oops::RequiredParameter< std::string > categoricalVariable
Categorical variable used to divide H(x) into sections.
Base class of classes storing configuration parameters of specific observation operators and linear o...
Definition: RunCRTM.h:27