MeteoIODoc  MeteoIODoc-2.6.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ProcNoise.h
Go to the documentation of this file.
1 /***********************************************************************************/
2 /* Copyright 2014 WSL Institute for Snow and Avalanche Research SLF-DAVOS */
3 /***********************************************************************************/
4 /* This file is part of MeteoIO.
5  MeteoIO is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License, or
8  (at your option) any later version.
9 
10  MeteoIO is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with MeteoIO. If not, see <http://www.gnu.org/licenses/>.
17 */
18 #ifndef NOISE_H
19 #define NOISE_H
20 
22 
23 #include <vector>
24 #include <string>
25 
26 namespace mio {
27 
54 class ProcNoise : public ProcessingBlock {
55  public:
56  ProcNoise(const std::vector<std::string>& vec_args, const std::string& name);
57 
58  virtual void process(const unsigned int& param, const std::vector<MeteoData>& ivec,
59  std::vector<MeteoData>& ovec);
60 
61  private:
62  void uniform_add(const unsigned int& param, std::vector<MeteoData>& ovec) const;
63  void uniform_mult(const unsigned int& param, std::vector<MeteoData>& ovec) const;
64  void normal_add(const unsigned int& param, std::vector<MeteoData>& ovec) const;
65  void normal_mult(const unsigned int& param, std::vector<MeteoData>& ovec) const;
66  double getBoxMuller() const;
67  void parse_args(std::vector<std::string> vec_args);
68 
69  double range;
70  char distribution, type;
71 };
72 
73 } //end namespace
74 
75 #endif
virtual void process(const unsigned int &param, const std::vector< MeteoData > &ivec, std::vector< MeteoData > &ovec)
Definition: ProcNoise.cc:36
An abstract class.
Definition: ProcessingBlock.h:63
Generate a noise signal to modify the input. The noise signal is either added ("add") to the input or...
Definition: ProcNoise.h:54
ProcNoise(const std::vector< std::string > &vec_args, const std::string &name)
Definition: ProcNoise.cc:29