MeteoIODoc  2.10.0
Meteo1DInterpolator.h
Go to the documentation of this file.
1 // SPDX-License-Identifier: LGPL-3.0-or-later
2 /***********************************************************************************/
3 /* Copyright 2009 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 METEO1DINTERPOLATOR_H
20 #define METEO1DINTERPOLATOR_H
21 
23 #include <meteoio/Config.h>
25 #include <meteoio/meteoFilters/ProcessingBlock.h> //for ProcessingProperties
26 
27 #include <string>
28 #include <vector>
29 #include <map>
30 
31 namespace mio {
85  public:
86 
101  Meteo1DInterpolator(const Config& in_cfg, const char& rank=1, const IOUtils::OperationMode &mode=IOUtils::STD);
103 
105 
114  bool resampleData(const Date& date, const std::string& stationHash, const std::vector<MeteoData>& vecM, MeteoData& md);
115 
119  void resetResampling();
120 
121  void getWindowSize(ProcessingProperties& o_properties) const;
122 
124  const std::string toString() const;
125 
126  private:
127  std::vector< std::pair<std::string, std::string> > getArgumentsForAlgorithm(const std::string& parname, const std::string& algorithm) const;
128  std::string getAlgorithmsForParameter(const std::string& parname) const;
129 
130  std::map< std::string, ResamplingAlgorithms* > mapAlgorithms; //per parameter interpolation algorithms
131  const Config& cfg;
132  double window_size;
133  bool enable_resampling, data_qa_logs;
134 };
135 } //end namespace
136 
137 #endif
A class that reads a key/value file. These files (typically named *.ini) follow the INI file format s...
Definition: Config.h:79
A class to handle timestamps. This class handles conversion between different time display formats (I...
Definition: Date.h:87
A class that can resample MeteoData objects.
Definition: Meteo1DInterpolator.h:84
Meteo1DInterpolator(const Meteo1DInterpolator &org)=default
void getWindowSize(ProcessingProperties &o_properties) const
Definition: Meteo1DInterpolator.cc:66
~Meteo1DInterpolator()
Definition: Meteo1DInterpolator.cc:59
bool resampleData(const Date &date, const std::string &stationHash, const std::vector< MeteoData > &vecM, MeteoData &md)
A function that executes all the resampling algorithms that have been setup in the constructor.
Definition: Meteo1DInterpolator.cc:74
Meteo1DInterpolator & operator=(const Meteo1DInterpolator &)
Assignement operator.
Definition: Meteo1DInterpolator.cc:157
void resetResampling()
Call each ResamplingAlgorithms to reset its cached data (as might be needed after a rebuffer)
Definition: Meteo1DInterpolator.cc:142
Meteo1DInterpolator(const Config &in_cfg, const char &rank=1, const IOUtils::OperationMode &mode=IOUtils::STD)
The default constructor Set up the interpolation algorithm for each parameter Init tasklist: a vector...
Definition: Meteo1DInterpolator.cc:29
const std::string toString() const
Definition: Meteo1DInterpolator.cc:167
A class to represent a singular measurement received from one station at a certain time (represented ...
Definition: MeteoData.h:107
Definition: ProcessingBlock.h:36
OperationMode
Keywords for mode of operation. Please keep all the GRID_xxx last!
Definition: IOUtils.h:63
@ STD
default: extract timeseries from timeseries or grids from grids or spatially interpolate timeseries
Definition: IOUtils.h:64
Definition: Config.cc:30