hydrobricks
Loading...
Searching...
No Matches
ResultWriter Class Reference

Handles writing simulation results to various output formats. More...

#include <ResultWriter.h>

Inheritance diagram for ResultWriter:

Public Member Functions

bool WriteNetCDF (const string &path, const axd &time, const vecInt &hydroUnitIds, const axd &hydroUnitAreas, const vecStr &subBasinLabels, const vecAxd &subBasinValues, const vecStr &hydroUnitLabels, const vecAxxd &hydroUnitValues, const vecStr &hydroUnitFractionLabels=vecStr(), const vecAxxd &hydroUnitFractions=vecAxxd())
 
bool WriteCSV (const string &path, const axd &time, const vecStr &labels, const vecAxd &values)
 
bool AppendToNetCDF (const string &filePath, int timeStep, double time, const axd &subBasinValues, const axxd &hydroUnitValues, const axxd &hydroUnitFractions=axxd())
 
string InitializeStreamingNetCDF (const string &path, int timeSize, const vecInt &hydroUnitIds, const axd &hydroUnitAreas, const vecStr &subBasinLabels, const vecStr &hydroUnitLabels, const vecStr &hydroUnitFractionLabels=vecStr())
 

Protected Member Functions

bool CreateNetCDFStructure (const string &filePath, int timeSize, int numHydroUnits, int numSubBasinItems, int numHydroUnitItems, int numFractions, const vecInt &hydroUnitIds, const axd &hydroUnitAreas, const vecStr &subBasinLabels, const vecStr &hydroUnitLabels, const vecStr &hydroUnitFractionLabels)
 

Detailed Description

Handles writing simulation results to various output formats.

This class is responsible for writing simulation data to files (NetCDF, CSV, etc.). It decouples the data recording/logging from the output writing concerns, allowing for flexible output strategies (snapshot-based or streaming).

Member Function Documentation

◆ AppendToNetCDF()

bool ResultWriter::AppendToNetCDF ( const string & filePath,
int timeStep,
double time,
const axd & subBasinValues,
const axxd & hydroUnitValues,
const axxd & hydroUnitFractions = axxd() )

Append a single time step to a streaming NetCDF file. This allows for progressive writing without storing all data in memory.

Parameters
filePathFull path to the NetCDF file.
timeStepCurrent time step index.
timeCurrent time value.
subBasinValuesCurrent sub-basin values.
hydroUnitValuesCurrent hydro unit values.
hydroUnitFractionsCurrent fraction values (optional).
Returns
true if successful, false otherwise.

◆ CreateNetCDFStructure()

bool ResultWriter::CreateNetCDFStructure ( const string & filePath,
int timeSize,
int numHydroUnits,
int numSubBasinItems,
int numHydroUnitItems,
int numFractions,
const vecInt & hydroUnitIds,
const axd & hydroUnitAreas,
const vecStr & subBasinLabels,
const vecStr & hydroUnitLabels,
const vecStr & hydroUnitFractionLabels )
protected

Create the NetCDF file and define its structure.

Parameters
filePathFull path to the file.
timeSizeSize of time dimension.
numHydroUnitsNumber of hydro units.
numSubBasinItemsNumber of aggregated items.
numHydroUnitItemsNumber of distributed items.
numFractionsNumber of land cover fractions.
hydroUnitIdsVector of hydro unit IDs.
hydroUnitAreasVector of hydro unit areas.
subBasinLabelsLabels for sub-basin values.
hydroUnitLabelsLabels for hydro unit values.
hydroUnitFractionLabelsLabels for fractions.
Returns
true if successful, false otherwise.

◆ InitializeStreamingNetCDF()

string ResultWriter::InitializeStreamingNetCDF ( const string & path,
int timeSize,
const vecInt & hydroUnitIds,
const axd & hydroUnitAreas,
const vecStr & subBasinLabels,
const vecStr & hydroUnitLabels,
const vecStr & hydroUnitFractionLabels = vecStr() )

Initialize a streaming NetCDF file for progressive writing.

Parameters
pathDirectory path where the output file will be created.
timeSizeTotal number of time steps.
hydroUnitIdsVector of hydro unit IDs.
hydroUnitAreasVector of hydro unit areas.
subBasinLabelsLabels for sub-basin values.
hydroUnitLabelsLabels for hydro unit values.
hydroUnitFractionLabelsLabels for fractions (optional).
Returns
Full path to the created file, or empty string on failure.

◆ WriteCSV()

bool ResultWriter::WriteCSV ( const string & path,
const axd & time,
const vecStr & labels,
const vecAxd & values )

Write results to a CSV file.

Parameters
pathDirectory path where the output file will be created.
timeTime series vector.
labelsColumn labels.
valuesVector of value arrays.
Returns
true if successful, false otherwise.

◆ WriteNetCDF()

bool ResultWriter::WriteNetCDF ( const string & path,
const axd & time,
const vecInt & hydroUnitIds,
const axd & hydroUnitAreas,
const vecStr & subBasinLabels,
const vecAxd & subBasinValues,
const vecStr & hydroUnitLabels,
const vecAxxd & hydroUnitValues,
const vecStr & hydroUnitFractionLabels = vecStr(),
const vecAxxd & hydroUnitFractions = vecAxxd() )

Write results to a NetCDF file.

Parameters
pathDirectory path where the output file will be created.
timeTime series vector.
hydroUnitIdsVector of hydro unit IDs.
hydroUnitAreasVector of hydro unit areas.
subBasinLabelsLabels for sub-basin aggregated values.
subBasinValuesVector of sub-basin value arrays.
hydroUnitLabelsLabels for distributed hydro unit values.
hydroUnitValuesVector of 2D hydro unit value arrays.
hydroUnitFractionLabelsLabels for land cover fractions (optional).
hydroUnitFractionsVector of 2D fraction arrays (optional).
Returns
true if successful, false otherwise.

The documentation for this class was generated from the following files: