A class representing the IO Layer of the software Alpine3D. For each type of IO (File, DB, Webservice, etc) a derived class is to be created that holds the specific implementation of the appropriate virtual methods. The IOHandler class is a wrapper class that is able to deal with all above implementations of the IOInterface abstract base class.
- Author
- Thomas Egger
- Date
- 2009-01-08
|
virtual | ~IOInterface () |
|
virtual bool | list2DGrids (const Date &start, const Date &end, std::map< Date, std::set< size_t > > &list) |
| Return the list of grids within a given time period that could be read by the plugin, if requested. More...
|
|
virtual void | read2DGrid (Grid2DObject &grid_out, const std::string ¶meter="") |
| A generic function for parsing 2D grids into a Grid2DObject. The string parameter shall be used for addressing the specific 2D grid to be parsed into the Grid2DObject, relative to GRID2DPATH for most plugins. More...
|
|
virtual void | read2DGrid (Grid2DObject &grid_out, const MeteoGrids::Parameters ¶meter, const Date &date) |
| Read the given meteo parameter into a Grid2DObject. Each plugin has its own logic for finding the requested meteo parameter grid relative to GRID2DPATH for most plugins. More...
|
|
virtual void | readPointsIn2DGrid (std::vector< double > &data, const MeteoGrids::Parameters ¶meter, const Date &date, const std::vector< std::pair< size_t, size_t > > &Pts) |
| Read the given meteo parameter into a vector for a list of points. Each plugin has its own logic for finding the requested meteo parameter grid relative to GRID2DPATH for most plugins. More...
|
|
virtual void | read3DGrid (Grid3DObject &grid_out, const std::string ¶meter="") |
| A generic function for parsing 3D grids into a Grid3DObject. The string parameter shall be used for addressing the specific 3D grid to be parsed into the Grid3DObject, relative to GRID3DPATH for most plugins. More...
|
|
virtual void | read3DGrid (Grid3DObject &grid_out, const MeteoGrids::Parameters ¶meter, const Date &date) |
| Read the given meteo parameter into a Grid3DObject. Each plugin has its own logic for finding the requested meteo parameter grid relative to GRID3DPATH for most plugins. More...
|
|
virtual void | readDEM (DEMObject &dem_out) |
| Parse the DEM (Digital Elevation Model) into the Grid2DObject. More...
|
|
virtual void | readLanduse (Grid2DObject &landuse_out) |
| Parse the landuse model into the Grid2DObject. More...
|
|
virtual void | readGlacier (Grid2DObject &glacier_out) |
| Parse the input glacier grid into the Grid2DObject. More...
|
|
virtual void | readStationData (const Date &date, std::vector< StationData > &vecStation) |
| Fill vecStation with StationData objects for a certain date of interest. More...
|
|
virtual void | readMeteoData (const Date &dateStart, const Date &dateEnd, std::vector< std::vector< MeteoData > > &vecMeteo) |
| Fill vecMeteo with a time series of objects corresponding to the interval indicated by dateStart and dateEnd. More...
|
|
virtual void | writeMeteoData (const std::vector< std::vector< MeteoData > > &vecMeteo, const std::string &name="") |
| Write vecMeteo time series to a certain destination. More...
|
|
virtual void | readAssimilationData (const Date &date_in, Grid2DObject &da_out) |
| Parse the assimilation data into a Grid2DObject for a certain date represented by the Date object. More...
|
|
virtual void | readPOI (std::vector< Coords > &pts) |
| Read a list of points by their grid coordinates This allows for example to get a list of points where to produce more detailed outputs. More...
|
|
virtual void | write2DGrid (const Grid2DObject &grid_out, const std::string &options="") |
| Write a Grid2DObject The filename is specified relative to GRID2DPATH for most plugins. More...
|
|
virtual void | write2DGrid (const Grid2DObject &grid_out, const MeteoGrids::Parameters ¶meter, const Date &date) |
| Write a Grid2DObject containing a known meteorological parameter A filename is built relative to GRID2DPATH for most plugins. More...
|
|
virtual void | write3DGrid (const Grid3DObject &grid_out, const std::string &options="") |
| Write a Grid3DObject The filename is specified relative to GRID3DPATH for most plugins. More...
|
|
virtual void | write3DGrid (const Grid3DObject &grid_out, const MeteoGrids::Parameters ¶meter, const Date &date) |
| Write a Grid3DObject comtaining a known meteorological parameter A filename is build relative to GRID3DPATH for most plugins. More...
|
|
bool mio::IOInterface::list2DGrids |
( |
const Date & |
start, |
|
|
const Date & |
end, |
|
|
std::map< Date, std::set< size_t > > & |
list |
|
) |
| |
|
virtual |
Return the list of grids within a given time period that could be read by the plugin, if requested.
This call should be implemented by all plugins reading grids, so the GridsManager can perform all kinds of advanced features with grids (computing a parameter from other ones, temporally interpolating, etc)
- Parameters
-
[in] | start | the start of the time interval |
[in] | end | the end of the interval |
[out] | list | the list of grids. The first key is the date, then a set of parameters (from MeteoGrids::Parameters) |
- Returns
- true if the list could be filled (even if empty), false if such as list can not be filled by the plugin (for example, it does not have the data before actually reading it)
Reimplemented in mio::ARPSIO, mio::GrassIO, mio::GRIBIO, mio::IOHandler, mio::ARCIO, mio::NetCDFIO, mio::OshdIO, and mio::PGMIO.
void mio::IOInterface::readMeteoData |
( |
const Date & |
dateStart, |
|
|
const Date & |
dateEnd, |
|
|
std::vector< std::vector< MeteoData > > & |
vecMeteo |
|
) |
| |
|
virtual |
Fill vecMeteo with a time series of objects corresponding to the interval indicated by dateStart and dateEnd.
Matching rules:
- if dateStart and dateEnd are the same: return exact match for date
- if dateStart > dateEnd: return first data set with date > dateStart
- read in all data starting with dateStart until dateEnd
- if there is no data at all then the vectors will be empty, no exception will be thrown
Example Usage:
vector< vector<MeteoData> > vecMeteo;
Date d1(2008,06,21,11,0, 1);
Date d2(2008,07,21,11,0, 1);
io1.readMeteoData(d1, d2, vecMeteo);
- Parameters
-
dateStart | A Date object representing the beginning of an interval (inclusive) |
dateEnd | A Date object representing the end of an interval (inclusive) |
vecMeteo | A vector of vector<MeteoData> objects to be filled with data |
Reimplemented in mio::A3DIO, mio::ALPUG, mio::ArgosIO, mio::BUFRIO, mio::CosmoXMLIO, mio::CsvIO, mio::DBO, mio::GeotopIO, mio::GoesIO, mio::GRIBIO, mio::iCSVIO, mio::ImisIO, mio::MeteoBlue, mio::MYSQLIO, mio::NetCDFIO, mio::OshdIO, mio::PSQLIO, mio::SASEIO, mio::SMETIO, mio::SNIO, mio::SynthIO, and mio::PmodIO.
void mio::IOInterface::readStationData |
( |
const Date & |
date, |
|
|
std::vector< StationData > & |
vecStation |
|
) |
| |
|
virtual |
Fill vecStation with StationData objects for a certain date of interest.
Example Usage:
vector<StationData> vecStation;
Date d1(2008,06,21,11,0, 1.);
io1.readStationData(d1, vecStation);
- Parameters
-
date | A Date object representing the date for which the meta data is to be fetched |
vecStation | A vector of StationData objects to be filled with meta data |
Reimplemented in mio::A3DIO, mio::ALPUG, mio::ArgosIO, mio::BUFRIO, mio::CosmoXMLIO, mio::CsvIO, mio::DBO, mio::GeotopIO, mio::GoesIO, mio::iCSVIO, mio::ImisIO, mio::MeteoBlue, mio::MYSQLIO, mio::NetCDFIO, mio::OshdIO, mio::PmodIO, mio::PSQLIO, mio::SASEIO, mio::SMETIO, mio::SNIO, and mio::SynthIO.
void mio::IOInterface::writeMeteoData |
( |
const std::vector< std::vector< MeteoData > > & |
vecMeteo, |
|
|
const std::string & |
name = "" |
|
) |
| |
|
virtual |
Write vecMeteo time series to a certain destination.
Example Usage: Configure the io.ini to use a certain plugin for the output:
METEODEST = GEOTOP
METEODESTPATH = /tmp
METEODESTSEQ = Iprec SWglobal
An example implementation (reading and writing):
vector< vector<MeteoData> > vecMeteo;
Date d1(2008,06,21,11,0, 1.);
Date d2(2008,07,21,11,0, 1.);
io1.readMeteoData(d1, d2, vecMeteo);
io1.writeMeteoData(vecMeteo)
- Parameters
-
vecMeteo | A vector of vector<MeteoData> objects to be filled with data |
name | (optional string) Identifier useful for the output plugin (it could become part of a file name, a db table, etc) |
Reimplemented in mio::A3DIO, mio::BUFRIO, mio::GeotopIO, mio::iCSVIO, mio::NetCDFIO, mio::PSQLIO, mio::SMETIO, mio::SNIO, and mio::ZRXPIO.