MeteoIODoc  MeteoIODoc-2.9.0
AllSkyLWGenerator.h
Go to the documentation of this file.
1 // SPDX-License-Identifier: LGPL-3.0-or-later
2 /***********************************************************************************/
3 /* Copyright 2013 WSL Institute for Snow and Avalanche Research SLF-DAVOS */
4 /***********************************************************************************/
5 /* This file is part of MeteoIO.
6  MeteoIO is free software: you can redistribute it and/or modify
7  it under the terms of the GNU Lesser General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  MeteoIO is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public License
17  along with MeteoIO. If not, see <http://www.gnu.org/licenses/>.
18 */
19 #ifndef ALLSKYGENERATOR_H
20 #define ALLSKYGENERATOR_H
21 
24 #include <meteoio/meteoLaws/Sun.h>
25 
26 #include <map>
27 
28 namespace mio {
29 
76  public:
77  AllSkyLWGenerator(const std::vector< std::pair<std::string, std::string> >& vecArgs, const std::string& i_algo, const std::string& i_section, const double& TZ)
78  : GeneratorAlgorithm(vecArgs, i_algo, i_section, TZ), sun(),
79  last_cloudiness(), model(OMSTEDT), clf_model(TauCLDGenerator::KASTEN), use_rswr(false) { parse_args(vecArgs); }
80  bool generate(const size_t& param, MeteoData& md);
81  bool create(const size_t& param, const size_t& ii_min, const size_t& ii_max, std::vector<MeteoData>& vecMeteo);
82  private:
83  void parse_args(const std::vector< std::pair<std::string, std::string> >& vecArgs);
84 
85  typedef enum PARAMETRIZATION {
86  CARMONA,
87  CRAWFORD,
88  KONZELMANN,
89  OMSTEDT,
90  UNSWORTH
91  } parametrization;
92 
93  SunObject sun;
94  std::map< std::string, std::pair<double, double> > last_cloudiness; //as < station_hash, <julian_gmt, cloudiness> >
95  parametrization model;
96  TauCLDGenerator::clf_parametrization clf_model;
97  bool use_rswr;
98 };
99 
100 } //end namespace mio
101 
102 #endif
mio::AllSkyLWGenerator::AllSkyLWGenerator
AllSkyLWGenerator(const std::vector< std::pair< std::string, std::string > > &vecArgs, const std::string &i_algo, const std::string &i_section, const double &TZ)
Definition: AllSkyLWGenerator.h:77
mio::GeneratorAlgorithm
Interface class for the generator models.
Definition: GeneratorAlgorithms.h:111
mio::TauCLDGenerator
Atmospheric transmissivity generator.
Definition: TauCLDGenerator.h:52
mio::AllSkyLWGenerator
ILWR all sky parametrization.
Definition: AllSkyLWGenerator.h:75
mio::MeteoData
A class to represent a singular measurement received from one station at a certain time (represented ...
Definition: MeteoData.h:106
mio::AllSkyLWGenerator::generate
bool generate(const size_t &param, MeteoData &md)
Definition: AllSkyLWGenerator.cc:58
Sun.h
GeneratorAlgorithms.h
mio::AllSkyLWGenerator::create
bool create(const size_t &param, const size_t &ii_min, const size_t &ii_max, std::vector< MeteoData > &vecMeteo)
Fill one time series of MeteoData for one station.
Definition: AllSkyLWGenerator.cc:117
TauCLDGenerator.h
mio
Definition: Config.cc:29