hydrobricks
Loading...
Searching...
No Matches
Logger.h
1#ifndef HYDROBRICKS_LOGGER_H
2#define HYDROBRICKS_LOGGER_H
3
4#include "Includes.h"
5#include "SettingsModel.h"
6#include "SubBasin.h"
7
8class Logger : public wxObject {
9 public:
10 explicit Logger();
11
12 ~Logger() override = default;
13
21 void InitContainers(int timeSize, SubBasin* subBasin, SettingsModel& modelSettings);
22
26 void Reset();
27
34 void SetSubBasinValuePointer(int iLabel, double* valPt);
35
43 void SetHydroUnitValuePointer(int iUnit, int iLabel, double* valPt);
44
52 void SetHydroUnitFractionPointer(int iUnit, int iLabel, double* valPt);
53
59 void SetDate(double date);
60
64 void SaveInitialValues();
65
69 void Record();
70
74 void Increment();
75
82 bool DumpOutputs(const string& path);
83
90
97 vecInt GetIndicesForSubBasinElements(const string& item);
98
105 vecInt GetIndicesForHydroUnitElements(const string& item);
106
113 double GetTotalSubBasin(const string& item);
114
122 double GetTotalHydroUnits(const string& item, bool needsAreaWeighting = false);
123
130
136 double GetTotalET();
137
144 double GetSubBasinInitialStorageState(const string& tag);
145
152 double GetSubBasinFinalStorageState(const string& tag);
153
160 double GetHydroUnitsInitialStorageState(const string& tag);
161
168 double GetHydroUnitsFinalStorageState(const string& tag);
169
176
183
190
196 const vecAxd& GetSubBasinValues() {
197 return m_subBasinValues;
198 }
199
205 const vecAxxd& GetHydroUnitValues() {
206 return m_hydroUnitValues;
207 }
208
213 m_recordFractions = true;
214 }
215
216 protected:
217 int m_cursor;
218 axd m_time;
219 bool m_recordFractions;
220 vecStr m_subBasinLabels;
221 axd m_subBasinInitialValues;
222 vecAxd m_subBasinValues;
223 vecDoublePt m_subBasinValuesPt;
224 vecInt m_hydroUnitIds;
225 axd m_hydroUnitAreas;
226 vecStr m_hydroUnitLabels;
227 vecAxd m_hydroUnitInitialValues;
228 vecAxxd m_hydroUnitValues;
229 vector<vecDoublePt> m_hydroUnitValuesPt;
230 vecStr m_hydroUnitFractionLabels;
231 vecAxxd m_hydroUnitFractions;
232 vector<vecDoublePt> m_hydroUnitFractionsPt;
233};
234
235#endif // HYDROBRICKS_LOGGER_H
Definition Logger.h:8
void RecordFractions()
Definition Logger.h:212
double GetTotalHydroUnits(const string &item, bool needsAreaWeighting=false)
Definition Logger.cpp:227
bool DumpOutputs(const string &path)
Definition Logger.cpp:107
void Reset()
Definition Logger.cpp:36
const vecAxxd & GetHydroUnitValues()
Definition Logger.h:205
void Record()
Definition Logger.cpp:78
void Increment()
Definition Logger.cpp:103
vecInt GetIndicesForSubBasinElements(const string &item)
Definition Logger.cpp:193
double GetTotalOutletDischarge()
Definition Logger.cpp:265
double GetTotalGlacierStorageChanges()
Definition Logger.cpp:345
void SetDate(double date)
Definition Logger.cpp:59
void SetHydroUnitFractionPointer(int iUnit, int iLabel, double *valPt)
Definition Logger.cpp:51
double GetTotalSubBasin(const string &item)
Definition Logger.cpp:217
double GetSubBasinInitialStorageState(const string &tag)
Definition Logger.cpp:273
void SetSubBasinValuePointer(int iLabel, double *valPt)
Definition Logger.cpp:40
void SetHydroUnitValuePointer(int iUnit, int iLabel, double *valPt)
Definition Logger.cpp:45
double GetHydroUnitsInitialStorageState(const string &tag)
Definition Logger.cpp:293
double GetHydroUnitsFinalStorageState(const string &tag)
Definition Logger.cpp:314
void InitContainers(int timeSize, SubBasin *subBasin, SettingsModel &modelSettings)
Definition Logger.cpp:11
double GetSubBasinFinalStorageState(const string &tag)
Definition Logger.cpp:283
double GetTotalWaterStorageChanges()
Definition Logger.cpp:335
axd GetOutletDischarge()
Definition Logger.cpp:184
double GetTotalET()
Definition Logger.cpp:269
double GetTotalSnowStorageChanges()
Definition Logger.cpp:340
void SaveInitialValues()
Definition Logger.cpp:64
vecInt GetIndicesForHydroUnitElements(const string &item)
Definition Logger.cpp:205
const vecAxd & GetSubBasinValues()
Definition Logger.h:196
Definition SettingsModel.h:66
Definition SubBasin.h:10