MeteoIODoc  MeteoIODoc-2.6.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GridsManager.h
Go to the documentation of this file.
1 /***********************************************************************************/
2 /* Copyright 2009 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 GRIDSMANAGER_H
19 #define GRIDSMANAGER_H
20 
23 #include <meteoio/IOHandler.h>
24 #include <meteoio/Config.h>
25 
26 namespace mio {
27 
28 class GridsManager {
29  public:
30  GridsManager(IOHandler& in_iohandler, const Config& in_cfg);
31 
32  //Legacy support to support functionality of the IOInterface superclass:
33  void read2DGrid(Grid2DObject& grid_out, const std::string& parameter="");
34  void read2DGrid(Grid2DObject& grid_out, const MeteoGrids::Parameters& parameter, const Date& date);
35  void read3DGrid(Grid3DObject& grid_out, const std::string& i_filename="");
36  void read3DGrid(Grid3DObject& grid_out, const MeteoGrids::Parameters& parameter, const Date& date);
37  void readDEM(DEMObject& dem_out);
38  void readAssimilationData(const Date& date_in, Grid2DObject& da_out);
39  void readLanduse(Grid2DObject& landuse_out);
40  void write2DGrid(const Grid2DObject& grid_in, const std::string& options="");
41  void write2DGrid(const Grid2DObject& grid_in, const MeteoGrids::Parameters& parameter, const Date& date);
42  void write3DGrid(const Grid3DObject& grid_out, const std::string& options="");
43  void write3DGrid(const Grid3DObject& grid_out, const MeteoGrids::Parameters& parameter, const Date& date);
44  //end legacy support
45 
46  void setProcessingLevel(const unsigned int& i_level);
47  void clear_cache();
48 
54  const Config getConfig() const {return cfg;}
55 
61  IOHandler& getIOHandler() const {return iohandler;}
62 
63  const std::string toString() const;
64 
65  private:
66  void addToBuffer(const Grid2DObject& in_grid2Dobj, const std::string& grid_hash);
67  bool getFromBuffer(const std::string& grid_hash, Grid2DObject& grid) const;
68 
69  IOHandler& iohandler;
70  const Config& cfg;
71  GridBuffer buffer;
72 
73  unsigned int processing_level;
74 };
75 } //end namespace
76 #endif
const Config getConfig() const
Returns a copy of the internal Config object. This is convenient to clone an iomanager.
Definition: GridsManager.h:54
void readAssimilationData(const Date &date_in, Grid2DObject &da_out)
Definition: GridsManager.cc:127
A class to represent 3D Grids. Typical application: wind field.
Definition: Grid3DObject.h:38
void readDEM(DEMObject &dem_out)
Definition: GridsManager.cc:101
void clear_cache()
Definition: GridsManager.cc:59
Definition: GridsManager.h:28
void setProcessingLevel(const unsigned int &i_level)
Set the desired ProcessingLevel The processing level affects the way meteo data is read and processed...
Definition: GridsManager.cc:47
IOHandler & getIOHandler() const
Returns a copy of the internal IOHandler object. This is convenient to clone an iomanager.
Definition: GridsManager.h:61
void read2DGrid(Grid2DObject &grid_out, const std::string &parameter="")
Definition: GridsManager.cc:64
A class to buffer gridded data. This class buffers Grid2D objects. It implements a proper ring buffer...
Definition: Buffer.h:136
void read3DGrid(Grid3DObject &grid_out, const std::string &i_filename="")
Definition: GridsManager.cc:91
This class is the class to use for raw I/O operations. It is responsible for transparently loading th...
Definition: IOHandler.h:36
A class that reads a key/value file. These files (typically named *.ini) follow the INI file format s...
Definition: Config.h:58
A class to represent DEMs and automatically compute some properties. This class stores elevation grid...
Definition: DEMObject.h:39
A class to represent 2D Grids. Typical application as DEM or Landuse Model.
Definition: Grid2DObject.h:37
void readLanduse(Grid2DObject &landuse_out)
Definition: GridsManager.cc:114
A class to handle timestamps. This class handles conversion between different time display formats (I...
Definition: Date.h:79
GridsManager(IOHandler &in_iohandler, const Config &in_cfg)
Definition: GridsManager.cc:26
void write2DGrid(const Grid2DObject &grid_in, const std::string &options="")
Definition: GridsManager.cc:141
const std::string toString() const
Definition: GridsManager.cc:161
Parameters
Definition: MeteoData.h:44
void write3DGrid(const Grid3DObject &grid_out, const std::string &options="")
Definition: GridsManager.cc:151