MeteoIODoc  MeteoIODoc-2.6.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mio::TimeSeriesManager Class Reference

#include <TimeSeriesManager.h>

Public Member Functions

 TimeSeriesManager (IOHandler &in_iohandler, const Config &in_cfg)
 
size_t getStationData (const Date &date, STATIONS_SET &vecStation)
 
size_t getMeteoData (const Date &dateStart, const Date &dateEnd, std::vector< METEO_SET > &vecVecMeteo)
 Fill vecMeteo with a time series of objects corresponding to the interval indicated by dateStart and dateEnd. Depending on the ProcessingLevel for the instance of the TimeSeriesManager the data returned will be either raw (read directly from the IOHandler) or processed (read from a buffer and filtered through the MeteoProcessor). vecMeteo will be empty if no datasets were retrieved in the interval defined by dateStart and dateEnd. More...
 
size_t getMeteoData (const Date &i_date, METEO_SET &vecMeteo)
 Fill vector<MeteoData> object with multiple instances of MeteoData corresponding to the instant indicated by a Date object. Each MeteoData instance within the vector represents the data for one station at the given instant. Depending on the ProcessingLevel configured data will be either raw (read directly from the IOHandler) or processed (read from a buffer and filtered through the MeteoProcessor). More...
 
void push_meteo_data (const IOUtils::ProcessingLevel &level, const Date &date_start, const Date &date_end, const std::vector< METEO_SET > &vecMeteo)
 Push a vector of time series of MeteoData objects into the TimeSeriesManager. This overwrites any internal buffers that are used and subsequent calls to getMeteoData or interpolate will be performed upon this data. This method is a way to bypass the internal reading of MeteoData from a certain source and is useful in case the user is only interested in data processing and interpolation performed by the TimeSeriesManager object. More...
 
void push_meteo_data (const IOUtils::ProcessingLevel &level, const Date &date_start, const Date &date_end, const std::vector< MeteoData > &vecMeteo, const bool &invalidate_cache=true)
 
void setProcessingLevel (const unsigned int &i_level)
 Set the desired ProcessingLevel of the TimeSeriesManager instance The processing level affects the way meteo data is read and processed Three values are possible: More...
 
void setMinBufferRequirements (const double &buffer_size, const double &buff_before)
 Set buffer window properties requirements as known to the application itself. This will compare these requirements with the ones expressed by the end user and keep the max between them. The method can be called several times, it will NOT reset the calculated buffer's requirements but keep on merging with new submissions. Any parameter given as IOUtils::nodata will be ignored. More...
 
double getAvgSamplingRate () const
 Returns the average sampling rate in the data. This computes the average sampling rate of the data that is contained in the buffer. This is a quick estimate, centered on how often a station measures "something" (ie, how many timestamps do we have for this station in the buffer). if the station measures TA at h+0 and h+30 and RH at h+15 and h+45, it would return 4 measurements per hour. If the station measures TA and RH at h+0 and h+30, it would return 2 measurements per hour. More...
 
void writeMeteoData (const std::vector< METEO_SET > &vecMeteo, const std::string &name="")
 
const std::string toString () const
 
void add_to_points_cache (const Date &i_date, const METEO_SET &vecMeteo)
 Add a METEO_SET for a specific instance to the point cache. This is a way to manipulate MeteoData variables and be sure that the manipulated values are later used for requests regarding that specific date (e.g. 2D interpolations) More...
 
void clear_cache ()
 Clear the point cache. All resampled values are dismissed, will need to be recalculated. More...
 
const Config getConfig () const
 Returns a copy of the internal Config object. This is convenient to clone an iomanager. More...
 
IOHandlergetIOHandler () const
 Returns a copy of the internal IOHandler object. This is convenient to clone an iomanager. More...
 
Date getRawBufferStart () const
 Returns the begining of the raw buffer. This is the start date of the request that was given to the IOHandler. If there was no data at this date, then the date of the first data would be greater. More...
 
Date getRawBufferEnd () const
 Returns the end of the raw buffer. This is the end date of the request that was given to the IOHandler. If there was no data at this date, then the date of the last data would be less. More...
 

Constructor & Destructor Documentation

mio::TimeSeriesManager::TimeSeriesManager ( IOHandler in_iohandler,
const Config in_cfg 
)

Member Function Documentation

void mio::TimeSeriesManager::add_to_points_cache ( const Date i_date,
const METEO_SET vecMeteo 
)

Add a METEO_SET for a specific instance to the point cache. This is a way to manipulate MeteoData variables and be sure that the manipulated values are later used for requests regarding that specific date (e.g. 2D interpolations)

Parameters
i_dateRepresenting a point in time
vecMeteoA vector of MeteoData objects to be copied into the point cache
void mio::TimeSeriesManager::clear_cache ( )

Clear the point cache. All resampled values are dismissed, will need to be recalculated.

double mio::TimeSeriesManager::getAvgSamplingRate ( ) const

Returns the average sampling rate in the data. This computes the average sampling rate of the data that is contained in the buffer. This is a quick estimate, centered on how often a station measures "something" (ie, how many timestamps do we have for this station in the buffer). if the station measures TA at h+0 and h+30 and RH at h+15 and h+45, it would return 4 measurements per hour. If the station measures TA and RH at h+0 and h+30, it would return 2 measurements per hour.

Returns
average sampling rate in Hz, nodata if the buffer is empty
const Config mio::TimeSeriesManager::getConfig ( ) const
inline

Returns a copy of the internal Config object. This is convenient to clone an iomanager.

Returns
new Config object as a copy of the internal Config
IOHandler& mio::TimeSeriesManager::getIOHandler ( ) const
inline

Returns a copy of the internal IOHandler object. This is convenient to clone an iomanager.

Returns
new IOHandler object as a copy of the internal IOHandler
size_t mio::TimeSeriesManager::getMeteoData ( const Date dateStart,
const Date dateEnd,
std::vector< METEO_SET > &  vecVecMeteo 
)

Fill vecMeteo with a time series of objects corresponding to the interval indicated by dateStart and dateEnd. Depending on the ProcessingLevel for the instance of the TimeSeriesManager the data returned will be either raw (read directly from the IOHandler) or processed (read from a buffer and filtered through the MeteoProcessor). vecMeteo will be empty if no datasets were retrieved in the interval defined by dateStart and dateEnd.

Parameters
dateStartA Date object representing the beginning of an interval (inclusive)
dateEndA Date object representing the end of an interval (inclusive)
vecVecMeteoA vector of vector<MeteoData> objects to be filled with data
Returns
Number of stations for which data has been found in the interval
size_t mio::TimeSeriesManager::getMeteoData ( const Date i_date,
METEO_SET vecMeteo 
)

Fill vector<MeteoData> object with multiple instances of MeteoData corresponding to the instant indicated by a Date object. Each MeteoData instance within the vector represents the data for one station at the given instant. Depending on the ProcessingLevel configured data will be either raw (read directly from the IOHandler) or processed (read from a buffer and filtered through the MeteoProcessor).

NOTE:

  • vecMeteo will be empty if there is no data found for any station
Parameters
i_dateA Date object representing the date/time for the sought MeteoData objects
vecMeteoA vector of MeteoData objects to be filled with data
Returns
Number of stations for which data has been found in the interval
Date mio::TimeSeriesManager::getRawBufferEnd ( ) const
inline

Returns the end of the raw buffer. This is the end date of the request that was given to the IOHandler. If there was no data at this date, then the date of the last data would be less.

Returns
end date of the buffer
Date mio::TimeSeriesManager::getRawBufferStart ( ) const
inline

Returns the begining of the raw buffer. This is the start date of the request that was given to the IOHandler. If there was no data at this date, then the date of the first data would be greater.

Returns
start date of the buffer
size_t mio::TimeSeriesManager::getStationData ( const Date date,
STATIONS_SET vecStation 
)
void mio::TimeSeriesManager::push_meteo_data ( const IOUtils::ProcessingLevel level,
const Date date_start,
const Date date_end,
const std::vector< METEO_SET > &  vecMeteo 
)

Push a vector of time series of MeteoData objects into the TimeSeriesManager. This overwrites any internal buffers that are used and subsequent calls to getMeteoData or interpolate will be performed upon this data. This method is a way to bypass the internal reading of MeteoData from a certain source and is useful in case the user is only interested in data processing and interpolation performed by the TimeSeriesManager object.

Parameters
levelLevel of processing that has already been performed on the data (raw XOR filtered)
date_startRepresenting the beginning of the data
date_endRepresenting the end of the data
vecMeteoThe actual data being pushed into the TimeSeriesManager object
void mio::TimeSeriesManager::push_meteo_data ( const IOUtils::ProcessingLevel level,
const Date date_start,
const Date date_end,
const std::vector< MeteoData > &  vecMeteo,
const bool &  invalidate_cache = true 
)
void mio::TimeSeriesManager::setMinBufferRequirements ( const double &  buffer_size,
const double &  buff_before 
)

Set buffer window properties requirements as known to the application itself. This will compare these requirements with the ones expressed by the end user and keep the max between them. The method can be called several times, it will NOT reset the calculated buffer's requirements but keep on merging with new submissions. Any parameter given as IOUtils::nodata will be ignored.

Parameters
buffer_sizebuffer size in days
buff_beforebuffer centering in days
void mio::TimeSeriesManager::setProcessingLevel ( const unsigned int &  i_level)

Set the desired ProcessingLevel of the TimeSeriesManager instance The processing level affects the way meteo data is read and processed Three values are possible:

  • IOUtils::raw data shall be read directly from the buffer
  • IOUtils::filtered data shall be filtered before returned to the user
  • IOUtils::resampled data shall be resampled before returned to the user this only affects the function getMeteoData(const Date&, METEO_DATASET&);

The three values can be combined: e.g. IOUtils::filtered | IOUtils:resampled

Parameters
i_levelThe ProcessingLevel values that shall be used to process data
const std::string mio::TimeSeriesManager::toString ( ) const
void mio::TimeSeriesManager::writeMeteoData ( const std::vector< METEO_SET > &  vecMeteo,
const std::string &  name = "" 
)

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