UFO
ModelHeightAdjustedMarineWind.h
Go to the documentation of this file.
1 /* -----------------------------------------------------------------------------
2  * (C) British Crown Copyright 2021 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_MODELHEIGHTADJUSTEDMARINEWIND_H_
10 #define UFO_FILTERS_OBSFUNCTIONS_MODELHEIGHTADJUSTEDMARINEWIND_H_
11 
12 #include <string>
13 
16 #include "ufo/filters/Variables.h"
17 
18 #include "oops/util/parameters/Parameters.h"
19 #include "oops/util/parameters/RequiredParameter.h"
21 
22 namespace ufo {
23 
24 /// \brief Function to calculate surface marine wind value adjusted from
25 /// anemometer height to reference height of 10m. Outputs a derived eastward
26 /// or northward wind adjusted to the reference height. Observed winds are
27 /// adjusted to the reference height by multiplying by a scaling factor (S)
28 /// based on a simple stability-independent adjustment based on one of the
29 /// TurboWin options (Eqn 1 of Thomas et al, 2005; doi.org/10.1002/joc.1176).
30 /// Observations where the anemometer height is 0m are NOT corrected,
31 /// instead a missing data indicator is assigned.
32 
34  protected:
35  ModelHeightAdjustedMarineWindComponent(const eckit::LocalConfiguration &conf,
36  const Variable & windComponent);
37  public:
38  void compute(const ObsFilterData &,
40  const ufo::Variables & requiredVariables() const;
41 
42  private:
45 };
46 
48  public:
49  explicit ModelHeightAdjustedEastwardMarineWind(const eckit::LocalConfiguration &conf)
50  : ModelHeightAdjustedMarineWindComponent(conf, Variable("eastward_wind@ObsValue"))
51  {}
52 };
53 
55  public:
56  explicit ModelHeightAdjustedNorthwardMarineWind(const eckit::LocalConfiguration &conf)
57  : ModelHeightAdjustedMarineWindComponent(conf, Variable("northward_wind@ObsValue"))
58  {}
59 };
60 
61 } // namespace ufo
62 
63 #endif // UFO_FILTERS_OBSFUNCTIONS_MODELHEIGHTADJUSTEDMARINEWIND_H_
ModelHeightAdjustedEastwardMarineWind(const eckit::LocalConfiguration &conf)
Function to calculate surface marine wind value adjusted from anemometer height to reference height o...
ModelHeightAdjustedMarineWindComponent(const eckit::LocalConfiguration &conf, const Variable &windComponent)
void compute(const ObsFilterData &, ioda::ObsDataVector< float > &) const
compute the result of the function
const ufo::Variables & requiredVariables() const
geovals required to compute the function
ModelHeightAdjustedNorthwardMarineWind(const eckit::LocalConfiguration &conf)
ObsFilterData provides access to all data related to an ObsFilter.
Definition: RunCRTM.h:27