MeteoIODoc 20241221.207bde49
mio::SNIO Class Reference

Detailed Description

This class enables the access to meteo data stored in SNOWPACK format.

Author
Mathias Bavay
Date
2009-12-04

#include <SNIO.h>

Public Member Functions

 SNIO (const std::string &configfile)
 
 SNIO (const SNIO &)
 
 SNIO (const Config &cfgreader)
 
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...
 
- Public Member Functions inherited from mio::IOInterface
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 &parameter="")
 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 &parameter, 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 &parameter, 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 &parameter="")
 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 &parameter, 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 &parameter, 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 &parameter, const Date &date)
 Write a Grid3DObject comtaining a known meteorological parameter A filename is build relative to GRID3DPATH for most plugins. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from mio::IOInterface
static void set2DGridLatLon (Grid2DObject &grid, const double &i_ur_lat, const double &i_ur_lon)
 
static double computeGridXYCellsize (const std::vector< double > &vecX, const std::vector< double > &vecY)
 
static std::vector< LinesRangeinitLinesRestrictions (const std::string &args, const std::string &where, const bool &negate)
 built the set of line ranges to read or skip. More...
 
- Static Protected Member Functions inherited from mio::IOInterface
static void mergeLinesRanges (std::vector< LinesRange > &lines_specs)
 Merge potentially overlaping line ranges. More...
 

Constructor & Destructor Documentation

◆ SNIO() [1/3]

mio::SNIO::SNIO ( const std::string &  configfile)

◆ SNIO() [2/3]

mio::SNIO::SNIO ( const SNIO )

◆ SNIO() [3/3]

mio::SNIO::SNIO ( const Config cfgreader)

Member Function Documentation

◆ readMeteoData()

void mio::SNIO::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; //empty vector
Date d1(2008,06,21,11,0, 1); //21.6.2008 11:00 UTC+1
Date d2(2008,07,21,11,0, 1); //21.7.2008 11:00 UTC+1
IOHandler io1("io.ini");
io1.readMeteoData(d1, d2, vecMeteo);
A class to handle timestamps. This class handles conversion between different time display formats (I...
Definition: Date.h:87
This class is the class to use for raw I/O operations. It is responsible for transparently loading th...
Definition: IOHandler.h:37
Parameters
dateStartA Date object representing the beginning of an interval (inclusive)
dateEndA Date object representing the end of an interval (inclusive)
vecMeteoA vector of vector<MeteoData> objects to be filled with data

Reimplemented from mio::IOInterface.

◆ readStationData()

void mio::SNIO::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; //empty vector
Date d1(2008,06,21,11,0, 1.); //21.6.2008 11:00 UTC+1
IOHandler io1("io.ini");
io1.readStationData(d1, vecStation);
Parameters
dateA Date object representing the date for which the meta data is to be fetched
vecStationA vector of StationData objects to be filled with meta data

Reimplemented from mio::IOInterface.

◆ writeMeteoData()

void mio::SNIO::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; //empty vector
Date d1(2008,06,21,11,0, 1.); //21.6.2008 11:00 UTC+1
Date d2(2008,07,21,11,0, 1.); //21.7.2008 11:00 UTC+1
IOHandler io1("io.ini");
io1.readMeteoData(d1, d2, vecMeteo);
io1.writeMeteoData(vecMeteo)
Parameters
vecMeteoA 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 from mio::IOInterface.


The documentation for this class was generated from the following files: