UFO
SolarZenith.h
Go to the documentation of this file.
1 /*
2  * (C) 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 #ifndef UFO_FILTERS_OBSFUNCTIONS_SOLARZENITH_H_
9 #define UFO_FILTERS_OBSFUNCTIONS_SOLARZENITH_H_
10 
12 #include "ufo/filters/Variables.h"
13 
14 namespace ufo {
15 
16 /// \brief Configuration options of SolarZenith.
17 class SolarZenithParameters : public oops::Parameters {
18  OOPS_CONCRETE_PARAMETERS(SolarZenithParameters, Parameters)
19 
20  public:
21  /// Set this option to `true` to skip calculations and produce missing values at locations
22  /// where all simulated variables have been rejected. Default: `false`.
23  oops::Parameter<bool> skipRejected{"skip rejected", false, this};
24 };
25 
26 /// \brief Compute the solar zenith angle of observations (in degrees) as a function of their time
27 /// and location.
28 ///
29 /// References:
30 /// * `Ops_Solar_Zenith` (subroutine in the Met Office OPS system): original source code
31 /// * Air Almanac: useful for checking GHA and DECL
32 /// * Norton's Star Atlas: for equation of time
33 /// * Robinson N., Solar Radiation, Ch. 2: for useful introduction to theory/terminology.
34 class SolarZenith : public ObsFunctionBase<float> {
35  public:
36  explicit SolarZenith(const eckit::LocalConfiguration &conf);
37 
38  void compute(const ObsFilterData &, ioda::ObsDataVector<float> &) const override;
39  const ufo::Variables & requiredVariables() const override;
40 
41  private:
44 };
45 
46 // -----------------------------------------------------------------------------
47 
48 } // namespace ufo
49 
50 #endif // UFO_FILTERS_OBSFUNCTIONS_SOLARZENITH_H_
ObsFilterData provides access to all data related to an ObsFilter.
Compute the solar zenith angle of observations (in degrees) as a function of their time and location.
Definition: SolarZenith.h:34
SolarZenith(const eckit::LocalConfiguration &conf)
Definition: SolarZenith.cc:46
SolarZenithParameters options_
Definition: SolarZenith.h:42
void compute(const ObsFilterData &, ioda::ObsDataVector< float > &) const override
compute the result of the function
Definition: SolarZenith.cc:55
ufo::Variables invars_
Definition: SolarZenith.h:43
const ufo::Variables & requiredVariables() const override
geovals required to compute the function
Definition: SolarZenith.cc:218
Configuration options of SolarZenith.
Definition: SolarZenith.h:17
oops::Parameter< bool > skipRejected
Definition: SolarZenith.h:23
Definition: RunCRTM.h:27