UFO
ModelHeightAdjustedAirTemperature.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_MODELHEIGHTADJUSTEDAIRTEMPERATURE_H_
10 #define UFO_FILTERS_OBSFUNCTIONS_MODELHEIGHTADJUSTEDAIRTEMPERATURE_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 Options controlling ModelHeightAdjustedAirTemperature ObsFunction
25 class ModelHeightAdjustedAirTemperatureParameters : public oops::Parameters {
26  OOPS_CONCRETE_PARAMETERS(ModelHeightAdjustedAirTemperatureParameters, Parameters)
27 
28  public:
29  /// Input observation station height to be used
30  oops::RequiredParameter<Variable> elevation{"elevation", this};
31 };
32 
33 /// \brief Function to calculate surface temperature observation value
34 /// adjusted from station height to model surface height. Outputs a derived
35 /// 2m air temperature adjusted to the model surface height. The correction
36 /// applied to the temperature is calculated using a standard lapse rate
37 /// (Constants::Lclr).
38 
40  public:
41  explicit ModelHeightAdjustedAirTemperature(const eckit::LocalConfiguration &
42  = eckit::LocalConfiguration());
43  void compute(const ObsFilterData &,
45  const ufo::Variables & requiredVariables() const;
46 
47  private:
50 };
51 } // namespace ufo
52 
53 #endif // UFO_FILTERS_OBSFUNCTIONS_MODELHEIGHTADJUSTEDAIRTEMPERATURE_H_
Function to calculate surface temperature observation value adjusted from station height to model sur...
ModelHeightAdjustedAirTemperature(const eckit::LocalConfiguration &=eckit::LocalConfiguration())
void compute(const ObsFilterData &, ioda::ObsDataVector< float > &) const
compute the result of the function
ModelHeightAdjustedAirTemperatureParameters parameters_
const ufo::Variables & requiredVariables() const
geovals required to compute the function
Options controlling ModelHeightAdjustedAirTemperature ObsFunction.
oops::RequiredParameter< Variable > elevation
Input observation station height to be used.
ObsFilterData provides access to all data related to an ObsFilter.
Definition: RunCRTM.h:27