GINA result files: Difference between revisions

From BlueM
Jump to navigation Jump to search
(→‎GINA binary WEL format (*.GBL): update from https://github.com/bluemodel/BlueM.Wave/pull/212)
(add GINA HDF5 file format (added in v2.14.0))
 
Line 52: Line 52:
* 21 columns for pollutant scenarios
* 21 columns for pollutant scenarios
* 3 columns for hydraulic scenarios
* 3 columns for hydraulic scenarios
== GINA HDF5 Files (<code>*.H5</code>) ==
The GINA HDF5 files contain three groups:
* ERG
* Stichprobe
* timeseries
Of these groups, only the timeseries group is relevant for BlueM.Wave, as the other groups do not contain time series data. The timeseries group contains a subgroup corresponding to the simulated scenario (e.g., HNW for hydraulics, SN2 for pollutants).
These scenario-specific subgroups include:
* a <code>time</code> dataset containing timestamps stored as <code>strings</code>
* one dataset for each simulated river segment, holding the time series for values such as <code>Q_zu</code>, <code>Q_ab</code>, <code>O2_zu</code>, <code>O2_ab</code>, etc.
The attributes <code>Spalten_Einheiten</code> and <code>Spalten_Namen</code> are attached to each subgroup. These attributes are used when selecting data for plotting in Wave, since they provide the names and units for the columns within each dataset.


[[Category:BlueM.Wave]]
[[Category:BlueM.Wave]]
[[Category:Timeseries formats]]
[[Category:Timeseries formats]]

Latest revision as of 03:45, 7 February 2026

Wave.png Wave | Download | Development

GINA is a model used for calculating hydrographs of discharge and pollution concentrations from sewage systems. It outputs result files in the following formats which can be read by Wave:

GINA CSV WEL format (*.CSV)

The GINA CSV WEL format is a CSV format with semicolon separator and additional header lines.

Example:

Gew.Typ.:;19   ;;                   
Grundlast:;  1069.200; l/s;                   
AEO:;    13.500; km2;                   
AEOpnat:;    13.728; km2;                   
T Datum Zeit     ;    Q_zu;    Q_ab;      tf;
 - ;l/s;l/s;min;
01.01.2003 00:00 ;  1069.2;  1069.2;   10.90;
01.01.2003 00:05 ;  1069.2;  1069.2;   10.90;
01.01.2003 00:10 ;  1069.2;  1069.2;   10.90;
01.01.2003 00:15 ;  1069.2;  1069.2;   10.90;
01.01.2003 00:20 ;  1069.2;  1069.2;   10.90;
01.01.2003 00:25 ;  1069.2;  1069.2;   10.90;
01.01.2003 00:30 ;  1069.2;  1069.2;   10.90;

GINA binary WEL format (*.GBL)

The GBL format is a proprietary binary format used to store time series data.

If the GBL file is produced as part of a pollutant scenario, it contains 21 data columns.
If it is produced as part of a hydraulic scenario, it contains 3 data columns.

File Structure

Header Record

The first 8 bytes contain a 64-bit floating-point value (double) with the value −999.0.

The next 4 bytes contain a 32-bit floating-point value (single) with the value:

  • −1.0 for pollutant scenario files
  • −2.0 for hydraulic scenario files

The remaining bytes in the header are zero-filled:

  • 80 bytes of 0.0 for pollutant scenario files
  • 8 bytes of 0.0 for hydraulic scenario files

Data Records

Each record contains:

Column 1: Timestamp (8 bytes, double) — number of hours since 01.01.1601

Remaining columns: Data values (single, 4 bytes each)

  • 21 columns for pollutant scenarios
  • 3 columns for hydraulic scenarios

GINA HDF5 Files (*.H5)

The GINA HDF5 files contain three groups:

  • ERG
  • Stichprobe
  • timeseries

Of these groups, only the timeseries group is relevant for BlueM.Wave, as the other groups do not contain time series data. The timeseries group contains a subgroup corresponding to the simulated scenario (e.g., HNW for hydraulics, SN2 for pollutants).

These scenario-specific subgroups include:

  • a time dataset containing timestamps stored as strings
  • one dataset for each simulated river segment, holding the time series for values such as Q_zu, Q_ab, O2_zu, O2_ab, etc.

The attributes Spalten_Einheiten and Spalten_Namen are attached to each subgroup. These attributes are used when selecting data for plotting in Wave, since they provide the names and units for the columns within each dataset.