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
89 axd GetOutletDischarge() const;
90
97 vecInt GetIndicesForSubBasinElements(const string& item) const;
98
105 vecInt GetIndicesForHydroUnitElements(const string& item) const;
106
113 double GetTotalSubBasin(const string& item) const;
114
122 double GetTotalHydroUnits(const string& item, bool needsAreaWeighting = false) const;
123
129 double GetTotalOutletDischarge() const;
130
136 double GetTotalET() const;
137
144 double GetSubBasinInitialStorageState(const string& tag) const;
145
152 double GetSubBasinFinalStorageState(const string& tag) const;
153
160 double GetHydroUnitsInitialStorageState(const string& tag) const;
161
168 double GetHydroUnitsFinalStorageState(const string& tag) const;
169
175 double GetTotalWaterStorageChanges() const;
176
182 double GetTotalSnowStorageChanges() const;
183
189 double GetTotalGlacierStorageChanges() const;
190
196 const vecAxd& GetSubBasinValues() const {
197 return _subBasinValues;
198 }
199
205 const vecAxxd& GetHydroUnitValues() const {
206 return _hydroUnitValues;
207 }
208
214 const axd& GetTime() const {
215 return _time;
216 }
217
223 const vecInt& GetHydroUnitIds() const {
224 return _hydroUnitIds;
225 }
226
232 const axd& GetHydroUnitAreas() const {
233 return _hydroUnitAreas;
234 }
235
241 const vecStr& GetSubBasinLabels() const {
242 return _subBasinLabels;
243 }
244
250 const vecStr& GetHydroUnitLabels() const {
251 return _hydroUnitLabels;
252 }
253
259 const vecStr& GetHydroUnitFractionLabels() const {
260 return _hydroUnitFractionLabels;
261 }
262
268 const vecAxxd& GetHydroUnitFractions() const {
269 return _hydroUnitFractions;
270 }
271
276 _recordFractions = true;
277 }
278
279 protected:
280 int _cursor;
281 axd _time;
282 bool _recordFractions;
283 vecStr _subBasinLabels;
284 axd _subBasinInitialValues;
285 vecAxd _subBasinValues;
286 vecDoublePt _subBasinValuesPt;
287 vecInt _hydroUnitIds;
288 axd _hydroUnitAreas;
289 vecStr _hydroUnitLabels;
290 vecAxd _hydroUnitInitialValues;
291 vecAxxd _hydroUnitValues;
292 vector<vecDoublePt> _hydroUnitValuesPt;
293 vecStr _hydroUnitFractionLabels;
294 vecAxxd _hydroUnitFractions;
295 vector<vecDoublePt> _hydroUnitFractionsPt;
296};
297
298#endif // HYDROBRICKS_LOGGER_H
Definition Logger.h:8
const vecAxxd & GetHydroUnitFractions() const
Definition Logger.h:268
void RecordFractions()
Definition Logger.h:275
bool DumpOutputs(const string &path)
Definition Logger.cpp:107
vecInt GetIndicesForHydroUnitElements(const string &item) const
Definition Logger.cpp:136
void Reset()
Definition Logger.cpp:36
double GetSubBasinFinalStorageState(const string &tag) const
Definition Logger.cpp:220
const vecInt & GetHydroUnitIds() const
Definition Logger.h:223
double GetTotalET() const
Definition Logger.cpp:206
vecInt GetIndicesForSubBasinElements(const string &item) const
Definition Logger.cpp:124
void Record()
Definition Logger.cpp:78
double GetHydroUnitsFinalStorageState(const string &tag) const
Definition Logger.cpp:252
const axd & GetHydroUnitAreas() const
Definition Logger.h:232
void Increment()
Definition Logger.cpp:103
double GetTotalHydroUnits(const string &item, bool needsAreaWeighting=false) const
Definition Logger.cpp:158
double GetTotalGlacierStorageChanges() const
Definition Logger.cpp:284
double GetTotalSnowStorageChanges() const
Definition Logger.cpp:279
void SetDate(double date)
Definition Logger.cpp:59
const axd & GetTime() const
Definition Logger.h:214
void SetHydroUnitFractionPointer(int iUnit, int iLabel, double *valPt)
Definition Logger.cpp:51
const vecAxxd & GetHydroUnitValues() const
Definition Logger.h:205
const vecStr & GetHydroUnitFractionLabels() const
Definition Logger.h:259
void SetSubBasinValuePointer(int iLabel, double *valPt)
Definition Logger.cpp:40
const vecStr & GetSubBasinLabels() const
Definition Logger.h:241
void SetHydroUnitValuePointer(int iUnit, int iLabel, double *valPt)
Definition Logger.cpp:45
double GetSubBasinInitialStorageState(const string &tag) const
Definition Logger.cpp:210
double GetTotalOutletDischarge() const
Definition Logger.cpp:202
double GetHydroUnitsInitialStorageState(const string &tag) const
Definition Logger.cpp:230
void InitContainers(int timeSize, SubBasin *subBasin, SettingsModel &modelSettings)
Definition Logger.cpp:11
double GetTotalSubBasin(const string &item) const
Definition Logger.cpp:148
void SaveInitialValues()
Definition Logger.cpp:64
const vecStr & GetHydroUnitLabels() const
Definition Logger.h:250
double GetTotalWaterStorageChanges() const
Definition Logger.cpp:274
axd GetOutletDischarge() const
Definition Logger.cpp:115
const vecAxd & GetSubBasinValues() const
Definition Logger.h:196
Definition SettingsModel.h:68
Definition SubBasin.h:14