#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... | |
IOHandler & | getIOHandler () 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... | |
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)
i_date | Representing a point in time |
vecMeteo | A 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.
|
inline |
|
inline |
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.
dateStart | A Date object representing the beginning of an interval (inclusive) |
dateEnd | A Date object representing the end of an interval (inclusive) |
vecVecMeteo | A vector of vector<MeteoData> objects to be filled with data |
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:
i_date | A Date object representing the date/time for the sought MeteoData objects |
vecMeteo | A vector of MeteoData objects to be filled with data |
|
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.
|
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.
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.
level | Level of processing that has already been performed on the data (raw XOR filtered) |
date_start | Representing the beginning of the data |
date_end | Representing the end of the data |
vecMeteo | The 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.
buffer_size | buffer size in days |
buff_before | buffer 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:
The three values can be combined: e.g. IOUtils::filtered | IOUtils:resampled
i_level | The 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 = "" |
||
) |