MeteoIODoc 20241230.207bde49
IDWSlopesAlgorithm.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-3.0-or-later
2/***********************************************************************************/
3/* Copyright 2018 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 IDWSLOPE_ALGORITHM_H
20#define IDWSLOPE_ALGORITHM_H
21
23
24namespace mio {
25
40 public:
41 IDWSlopesAlgorithm(const std::vector< std::pair<std::string, std::string> >& vecArgs, const std::string& i_algo, const std::string& i_param, TimeSeriesManager& i_tsm);
42 virtual double getQualityRating(const Date& i_date);
43 virtual void calculate(const DEMObject& dem, Grid2DObject& grid);
44 private:
45 enum Slopes {firstSlope=0, FLAT=firstSlope, NORTH, EAST, SOUTH, WEST, lastSlope=WEST};
46
47 Grid2DObject computeAspect(const DEMObject& dem, const Slopes& curr_slope);
48
49 std::vector< std::vector<double> > vecDataCache;
50 std::vector< std::vector<StationData> > vecMetaCache;
51 Trend trend;
52 double scale, alpha;
53 static const double min_slope, max_slope;
54 static const size_t nrSlopes;
55};
56
57} //end namespace mio
58
59#endif
A class to represent DEMs and automatically compute some properties. This class stores elevation grid...
Definition: DEMObject.h:40
A class to handle timestamps. This class handles conversion between different time display formats (I...
Definition: Date.h:87
A class to represent 2D Grids. Typical application as DEM or Landuse Model.
Definition: Grid2DObject.h:42
Inverse Distance Weighting interpolation with splitted N/E/S/W slopes and flats.
Definition: IDWSlopesAlgorithm.h:39
virtual double getQualityRating(const Date &i_date)
Definition: IDWSlopesAlgorithm.cc:43
IDWSlopesAlgorithm(const std::vector< std::pair< std::string, std::string > > &vecArgs, const std::string &i_algo, const std::string &i_param, TimeSeriesManager &i_tsm)
Definition: IDWSlopesAlgorithm.cc:28
virtual void calculate(const DEMObject &dem, Grid2DObject &grid)
Definition: IDWSlopesAlgorithm.cc:99
A class to perform 2D spatial interpolations. For more, see Spatial interpolations.
Definition: InterpolationAlgorithms.h:70
Definition: TimeSeriesManager.h:31
Definition: InterpolationAlgorithms.h:36
Definition: Config.cc:31