UFO
SatwindIndivErrors.h
Go to the documentation of this file.
1 /* -----------------------------------------------------------------------------
2  * (C) British Crown Copyright 2020 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 
9 #ifndef UFO_FILTERS_OBSFUNCTIONS_SATWINDINDIVERRORS_H_
10 #define UFO_FILTERS_OBSFUNCTIONS_SATWINDINDIVERRORS_H_
11 
12 #include <string>
13 #include <vector>
14 
15 #include "ioda/ObsDataVector.h"
16 
17 #include "oops/util/parameters/OptionalParameter.h"
18 #include "oops/util/parameters/Parameter.h"
19 #include "oops/util/parameters/Parameters.h"
20 #include "oops/util/parameters/RequiredParameter.h"
21 
24 #include "ufo/filters/Variables.h"
26 
27 namespace ufo {
28 
29 /// \brief Options controlling SatwindIndivErrors ObsFunction
30 class SatwindIndivErrorsParameters : public oops::Parameters {
31  OOPS_CONCRETE_PARAMETERS(SatwindIndivErrorsParameters, Parameters)
32 
33  public:
34  /// Vector error estimate addition
35  oops::RequiredParameter<float> eu_add{"verror add", this};
36  /// Vector error estimate multiply
37  oops::RequiredParameter<float> eu_mult{"verror mult", this};
38  /// String containing the name of the wind component we are calculating the error for
39  oops::RequiredParameter<std::string> profile{"wind component", this};
40  /// String containing the vertical coordinate to use for the wind component
41  oops::RequiredParameter<std::string> vcoord{"vertical coordinate", this};
42  /// Ignore contribution above height of minimum pressure (Pa)
43  oops::Parameter<float> min_press{"minimum pressure", 10000.0, this};
44  /// Name of the variable containing the input height error estimates (Pa)
45  oops::RequiredParameter<Variable> pressure_error{"pressure error", this};
46  /// Name of the variable containing quality index values for use in the vector error calculation
47  oops::RequiredParameter<Variable> quality_index{"quality index", this};
48 };
49 
50 // -----------------------------------------------------------------------------
51 
52 ///
53 /// \brief Function calculates individual observation errors for Satwind u and v winds
54 /// dependent on an input pressure error estimate and the model wind shear.
55 ///
56 
57 class SatwindIndivErrors : public ObsFunctionBase<float> {
58  public:
59  explicit SatwindIndivErrors(const eckit::LocalConfiguration &);
61 
62  void compute(const ObsFilterData &,
64  const ufo::Variables & requiredVariables() const;
65  private:
68 };
69 
70 // -----------------------------------------------------------------------------
71 
72 } // namespace ufo
73 
74 #endif // UFO_FILTERS_OBSFUNCTIONS_SATWINDINDIVERRORS_H_
ObsFilterData provides access to all data related to an ObsFilter.
Function calculates individual observation errors for Satwind u and v winds dependent on an input pre...
SatwindIndivErrorsParameters options_
void compute(const ObsFilterData &, ioda::ObsDataVector< float > &) const
Function to calculate situation dependent observation errors for satwinds.
const ufo::Variables & requiredVariables() const
geovals required to compute the function
SatwindIndivErrors(const eckit::LocalConfiguration &)
Options controlling SatwindIndivErrors ObsFunction.
oops::RequiredParameter< Variable > pressure_error
Name of the variable containing the input height error estimates (Pa)
oops::Parameter< float > min_press
Ignore contribution above height of minimum pressure (Pa)
oops::RequiredParameter< float > eu_mult
Vector error estimate multiply.
oops::RequiredParameter< Variable > quality_index
Name of the variable containing quality index values for use in the vector error calculation.
oops::RequiredParameter< std::string > vcoord
String containing the vertical coordinate to use for the wind component.
oops::RequiredParameter< std::string > profile
String containing the name of the wind component we are calculating the error for.
oops::RequiredParameter< float > eu_add
Vector error estimate addition.
Definition: RunCRTM.h:27