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
22 [[nodiscard]] static bool Parse(const string& path, vector<std::unique_ptr<TimeSeries>>& vecTimeSeries);
23
33 static std::unique_ptr<TimeSeries> Create(const string& varName, const axd& time, const axi& ids, const axxd& data);
34
41 [[nodiscard]] virtual bool SetCursorToDate(double date) = 0;
42
48 [[nodiscard]] virtual bool AdvanceOneTimeStep() = 0;
49
55 [[nodiscard]] virtual bool IsDistributed() const = 0;
56
62 [[nodiscard]] virtual double GetStart() const = 0;
63
69 [[nodiscard]] virtual double GetEnd() const = 0;
70
77 [[nodiscard]] virtual double GetTotal(const SettingsBasin* basinSettings) = 0;
78
85 virtual TimeSeriesData* GetDataPointer(int unitId) = 0;
86
92 VariableType GetVariableType() const {
93 return _type;
94 }
95
102 [[nodiscard]] virtual bool IsValid() const = 0;
103
110 virtual void Validate() const;
111
112 protected:
113 VariableType _type;
114
115 private:
123 static void ExtractTimeStep(double timeStepData, int& timeStep, TimeUnit& timeUnit);
124
131 static VariableType MatchVariableType(const string& varName);
132};
133
134#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:168
VariableType GetVariableType() const
Definition TimeSeries.h:92
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:91
virtual bool IsDistributed() const =0
virtual TimeSeriesData * GetDataPointer(int unitId)=0
virtual bool IsValid() const =0
virtual bool AdvanceOneTimeStep()=0