1#ifndef HYDROBRICKS_LOGGER_H
2#define HYDROBRICKS_LOGGER_H
5#include "SettingsModel.h"
148 [[nodiscard]]
double GetTotalHydroUnits(
const string& item,
bool needsAreaWeighting =
false)
const;
244 return _subbasinValues;
253 return _hydroUnitValues;
280 return _subbasinDownstreamIds;
289 return _subbasinStructureIds;
298 return _subbasinLocalAreas;
307 return _subbasinDrainedAreas;
316 return static_cast<int>(_subbasinIds.size());
325 return _hydroUnitIds;
334 return _hydroUnitAreas;
343 return _subbasinLabels;
352 return _hydroUnitLabels;
361 return _hydroUnitFractionLabels;
370 return _hydroUnitFractions;
379 return _hydroUnitLabelBases;
388 return _hydroUnitSubbasinFractions;
395 _recordFractions =
true;
412 _hydroUnitEtIndices.push_back(iLabel);
418 bool _recordFractions;
420 vecInt _subbasinDownstreamIds;
421 vecInt _subbasinStructureIds;
422 axd _subbasinLocalAreas;
423 axd _subbasinDrainedAreas;
424 axd _subbasinWeights;
426 vecStr _subbasinLabels;
427 vecAxd _subbasinInitialValues;
428 vecAxxd _subbasinValues;
429 vector<vecDoublePt> _subbasinValuesPt;
430 vecInt _hydroUnitIds;
431 vecInt _hydroUnitStructureIds;
433 vecStr _hydroUnitLabels;
434 vecStr _hydroUnitLabelBases;
435 axd _hydroUnitSubbasinFractions;
436 vecAxd _hydroUnitInitialValues;
437 vecAxxd _hydroUnitValues;
438 vector<vecDoublePt> _hydroUnitValuesPt;
439 vecStr _hydroUnitFractionLabels;
440 vecAxxd _hydroUnitFractions;
441 vector<vecDoublePt> _hydroUnitFractionsPt;
442 vecInt _subbasinEtIndices;
443 vecInt _hydroUnitEtIndices;
452 [[nodiscard]]
double WeightedTotal(
int iLabel)
const;
460 [[nodiscard]]
int GetSubbasinIndex(
int subbasinId)
const;
467 [[nodiscard]]
int GetOutletLabelIndex()
const;
const vecAxxd & GetHydroUnitFractions() const
Definition Logger.h:369
const vecStr & GetHydroUnitLabelBases() const
Definition Logger.h:378
void RecordFractions()
Definition Logger.h:394
void SetSubbasinValuePointer(int iSubbasin, int iLabel, double *valPt)
Definition Logger.cpp:97
int GetSubbasinCount() const
Definition Logger.h:315
bool DumpOutputs(const string &path)
Definition Logger.cpp:191
const vecInt & GetSubbasinIds() const
Definition Logger.h:270
void AddHydroUnitEtIndex(int iLabel)
Definition Logger.h:411
vecInt GetIndicesForHydroUnitElements(const string &item) const
Definition Logger.cpp:250
void Reset()
Definition Logger.cpp:93
const vecInt & GetHydroUnitIds() const
Definition Logger.h:324
const vecAxxd & GetSubbasinValuesPerSubbasin() const
Definition Logger.h:243
double GetTotalET() const
Definition Logger.cpp:334
double GetTotalSubbasin(const string &item) const
Definition Logger.cpp:274
void Record()
Definition Logger.cpp:154
double GetHydroUnitsFinalStorageState(const string &tag) const
Definition Logger.cpp:416
const axd & GetHydroUnitAreas() const
Definition Logger.h:333
void Increment()
Definition Logger.cpp:187
double GetTotalHydroUnits(const string &item, bool needsAreaWeighting=false) const
Definition Logger.cpp:284
double GetTotalGlacierStorageChanges() const
Definition Logger.cpp:445
const vecInt & GetSubbasinDownstreamIds() const
Definition Logger.h:279
const vecStr & GetSubbasinLabels() const
Definition Logger.h:342
double GetTotalSnowStorageChanges() const
Definition Logger.cpp:440
const axd & GetSubbasinDrainedAreas() const
Definition Logger.h:306
void SetDate(double date)
Definition Logger.cpp:128
const axd & GetTime() const
Definition Logger.h:261
void SetHydroUnitFractionPointer(int iUnit, int iLabel, double *valPt)
Definition Logger.cpp:114
void SetHydroUnitLabelBasis(int iLabel, const string &basis)
Definition Logger.cpp:109
const vecAxxd & GetHydroUnitValues() const
Definition Logger.h:252
double GetSubbasinFinalStorageState(const string &tag) const
Definition Logger.cpp:387
const vecStr & GetHydroUnitFractionLabels() const
Definition Logger.h:360
void SetHydroUnitValuePointer(int iUnit, int iLabel, double *valPt)
Definition Logger.cpp:103
const vecInt & GetSubbasinStructureIds() const
Definition Logger.h:288
double GetSubbasinInitialStorageState(const string &tag) const
Definition Logger.cpp:377
double GetTotalOutletDischarge() const
Definition Logger.cpp:328
double GetHydroUnitsInitialStorageState(const string &tag) const
Definition Logger.cpp:398
int GetFractionIndexForComponent(const string &componentName) const
Definition Logger.cpp:366
const axd & GetSubbasinLocalAreas() const
Definition Logger.h:297
vecInt GetIndicesForSubbasinElements(const string &item) const
Definition Logger.cpp:238
axd GetSubbasinDischarge(int subbasinId) const
Definition Logger.cpp:234
const axd & GetHydroUnitSubbasinFractions() const
Definition Logger.h:387
void SaveInitialValues()
Definition Logger.cpp:133
vecAxd GetSubbasinValues() const
Definition Logger.cpp:221
const vecStr & GetHydroUnitLabels() const
Definition Logger.h:351
void InitContainers(int timeSize, const std::vector< Subbasin * > &subbasins, SettingsModel &modelSettings)
Definition Logger.cpp:21
void AddSubbasinEtIndex(int iLabel)
Definition Logger.cpp:122
double GetTotalWaterStorageChanges() const
Definition Logger.cpp:435
axd GetOutletDischarge() const
Definition Logger.cpp:230
Definition SettingsModel.h:87