UFO
ObsErrorFactorLatRad.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2019 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_OBSFUNCTIONS_OBSERRORFACTORLATRAD_H_
9 #define UFO_FILTERS_OBSFUNCTIONS_OBSERRORFACTORLATRAD_H_
10 
11 #include <vector>
12 
13 #include "oops/util/parameters/Parameter.h"
14 #include "oops/util/parameters/Parameters.h"
15 #include "oops/util/parameters/RequiredParameter.h"
16 
19 #include "ufo/filters/Variables.h"
20 
21 namespace ufo {
22 
23 ///
24 /// \brief Options controlling the observation error bound reduction in Tropical regions
25 ///
26 class ObsErrorFactorLatRadParameters : public oops::Parameters {
27  OOPS_CONCRETE_PARAMETERS(ObsErrorFactorLatRadParameters, Parameters)
28 
29  public:
30  /// Parameters for reducing observation error bounds within latitude band in Tropics
31  /// params[0] defines the latitude bound for which the observation error function applies.
32  /// params[1-3] determine the error function within the latitude bound given by params[0].
33  /// The error function gives the maximum error bound reduction at equator and decreasing
34  /// towards params[0].
35  /// Error Function = params[1] * ( |latitude| * params[2] + params[3] )
36  oops::RequiredParameter<std::vector<float>> latitudeParameters{"latitude_parameters", this};
37 };
38 
39 ///
40 /// \brief Function determines the observation error bound reduction within Tropics.
41 /// The function gives the maximum error bound reduction at equator and decreasing
42 /// towards higher latitudes.
43 ///
44 class ObsErrorFactorLatRad : public ObsFunctionBase<float> {
45  public:
46  explicit ObsErrorFactorLatRad(const eckit::LocalConfiguration &);
48 
49  void compute(const ObsFilterData &,
51  const ufo::Variables & requiredVariables() const;
52  private:
55  const eckit::LocalConfiguration conf_;
56 };
57 
58 // -----------------------------------------------------------------------------
59 
60 } // namespace ufo
61 
62 #endif // UFO_FILTERS_OBSFUNCTIONS_OBSERRORFACTORLATRAD_H_
Function determines the observation error bound reduction within Tropics. The function gives the maxi...
ObsErrorFactorLatRad(const eckit::LocalConfiguration &)
void compute(const ObsFilterData &, ioda::ObsDataVector< float > &) const
compute the result of the function
ObsErrorFactorLatRadParameters options_
const eckit::LocalConfiguration conf_
const ufo::Variables & requiredVariables() const
geovals required to compute the function
Options controlling the observation error bound reduction in Tropical regions.
oops::RequiredParameter< std::vector< float > > latitudeParameters
ObsFilterData provides access to all data related to an ObsFilter.
Definition: RunCRTM.h:27