hydrobricks
Loading...
Searching...
No Matches
TimeSeries.h
1#ifndef HYDROBRICKS_TIME_SERIES_H
2#define HYDROBRICKS_TIME_SERIES_H
3
4#include "Includes.h"
5#include "SettingsBasin.h"
6#include "TimeSeriesData.h"
7
8class TimeSeries : public wxObject {
9 public:
10 explicit TimeSeries(VariableType type);
11
12 ~TimeSeries() override = default;
13
20 [[nodiscard]] static bool Parse(const string& path, vector<TimeSeries*>& vecTimeSeries);
21
31 static TimeSeries* Create(const string& varName, const axd& time, const axi& ids, const axxd& data);
32
39 [[nodiscard]] virtual bool SetCursorToDate(double date) = 0;
40
46 [[nodiscard]] virtual bool AdvanceOneTimeStep() = 0;
47
53 [[nodiscard]] virtual bool IsDistributed() const = 0;
54
60 virtual double GetStart() const = 0;
61
67 virtual double GetEnd() const = 0;
68
75 virtual double GetTotal(const SettingsBasin* basinSettings) = 0;
76
83 virtual TimeSeriesData* GetDataPointer(int unitId) = 0;
84
90 VariableType GetVariableType() const {
91 return _type;
92 }
93
100 [[nodiscard]] virtual bool IsValid() const = 0;
101
108 virtual void Validate() const;
109
110 protected:
111 VariableType _type;
112
113 private:
121 static void ExtractTimeStep(double timeStepData, int& timeStep, TimeUnit& timeUnit);
122
129 static VariableType MatchVariableType(const string& varName);
130};
131
132#endif // HYDROBRICKS_TIME_SERIES_H
Definition SettingsBasin.h:47
Definition TimeSeriesData.h:6
Definition TimeSeries.h:8
virtual void Validate() const
Definition TimeSeries.cpp:168
VariableType GetVariableType() const
Definition TimeSeries.h:90
virtual double GetEnd() const =0
static bool Parse(const string &path, vector< TimeSeries * > &vecTimeSeries)
Definition TimeSeries.cpp:10
static TimeSeries * Create(const string &varName, const axd &time, const axi &ids, const axxd &data)
Definition TimeSeries.cpp:91
virtual double GetTotal(const SettingsBasin *basinSettings)=0
virtual bool SetCursorToDate(double date)=0
virtual double GetStart() const =0
virtual bool IsDistributed() const =0
virtual TimeSeriesData * GetDataPointer(int unitId)=0
virtual bool IsValid() const =0
virtual bool AdvanceOneTimeStep()=0