hydrobricks
Loading...
Searching...
No Matches
TimeSeries.h
1#ifndef HYDROBRICKS_TIME_SERIES_H
2#define HYDROBRICKS_TIME_SERIES_H
3
4#include <memory>
5
6#include "Includes.h"
7#include "SettingsBasin.h"
8#include "TimeSeriesData.h"
9
11 public:
12 explicit TimeSeries(VariableType type);
13
14 virtual ~TimeSeries() = default;
15
23 [[nodiscard]] static bool Parse(const string& path, vector<std::unique_ptr<TimeSeries>>& vecTimeSeries);
24
34 static std::unique_ptr<TimeSeries> Create(const string& varName, const axd& time, const axi& ids, const axxd& data);
35
42 [[nodiscard]] virtual bool SetCursorToDate(double date) = 0;
43
49 [[nodiscard]] virtual bool AdvanceOneTimeStep() = 0;
50
56 [[nodiscard]] virtual bool IsDistributed() const = 0;
57
63 [[nodiscard]] virtual double GetStart() const = 0;
64
70 [[nodiscard]] virtual double GetEnd() const = 0;
71
78 [[nodiscard]] virtual double GetTotal(const SettingsBasin* basinSettings) = 0;
79
86 virtual TimeSeriesData* GetDataPointer(int unitId) = 0;
87
93 VariableType GetVariableType() const {
94 return _type;
95 }
96
103 [[nodiscard]] virtual bool IsValid() const = 0;
104
111 virtual void Validate() const;
112
113 protected:
114 VariableType _type;
115
116 private:
124 static void ExtractTimeStep(double timeStepData, int& timeStep, TimeUnit& timeUnit);
125
132 static VariableType MatchVariableType(const string& varName);
133};
134
135#endif // HYDROBRICKS_TIME_SERIES_H
Definition SettingsBasin.h:47
Definition TimeSeriesData.h:6
Definition TimeSeries.h:10
static bool Parse(const string &path, vector< std::unique_ptr< TimeSeries > > &vecTimeSeries)
Definition TimeSeries.cpp:10
virtual void Validate() const
Definition TimeSeries.cpp:174
VariableType GetVariableType() const
Definition TimeSeries.h:93
virtual double GetEnd() const =0
virtual double GetTotal(const SettingsBasin *basinSettings)=0
virtual bool SetCursorToDate(double date)=0
virtual double GetStart() const =0
static std::unique_ptr< TimeSeries > Create(const string &varName, const axd &time, const axi &ids, const axxd &data)
Definition TimeSeries.cpp:92
virtual bool IsDistributed() const =0
virtual TimeSeriesData * GetDataPointer(int unitId)=0
virtual bool IsValid() const =0
virtual bool AdvanceOneTimeStep()=0