Datenbank-Schema
Übersicht
WorldQual nutzt mehrere MySQL-Datenbanken, organisiert nach Funktion und Kontinent:
MySQL-Server/
├── wq_general # Zentrale Konfiguration
├── worldqual_af ... _sa # Routing & Einträge (pro Kontinent)
├── wq_out_af ... _sa # Simulationsergebnisse (pro Kontinent)
├── wq_load_af ... _sa # Berechnete Nährstoffeinträge
└── watergap_unf # WaterGAP-Basisdaten
wq_general (Konfiguration)
_runlist
CREATE TABLE _runlist (
IDrun INT PRIMARY KEY,
IDScen INT,
parameter_id INT,
IDTemp INT,
IDVersion INT,
IDReg INT,
start_year INT,
end_year INT,
description TEXT
);
Jeder Simulationslauf wird durch eine Zeile in _runlist definiert. Die IDrun wird als Kommandozeilenparameter an worldqual übergeben.
_szenario
| Feld |
Typ |
Beschreibung |
| IDScen |
INT (PK) |
Szenario-ID |
| ScenName |
VARCHAR(100) |
Szenarioname |
| description |
TEXT |
Beschreibung |
_parameter
| Feld |
Typ |
Beschreibung |
| parameter_id |
INT (PK) |
Parameter-ID |
| parameter_name |
VARCHAR(50) |
z.B. TN, TP, BOD, DOC |
| unit |
VARCHAR(20) |
Einheit (mg/l, kg/month) |
worldqual_{kontinent} (Routing & Einträge)
routing
| Feld |
Typ |
Beschreibung |
| cell |
INT (PK) |
Zellen-ID (Arc ID) |
| inflow_count |
INT |
Anzahl Zuflüsse |
| inflow_done |
INT |
Routing-Status-Zähler |
| ### flow_velocity |
|
|
| Feld |
Typ |
Beschreibung |
| cell |
INT (PK) |
Zellen-ID |
| velocity |
FLOAT |
Fließgeschwindigkeit [m/s] |
| river_length |
FLOAT |
Flusslänge [km] |
| rout_order |
INT |
Routing-Reihenfolge |
load
| Feld |
Typ |
Beschreibung |
| cell |
INT |
Zellen-ID |
| IDScen |
INT |
Szenario-ID |
| parameter_id |
INT |
Parameter-ID |
| date |
INT |
Datum (YYYYMM) |
| load |
FLOAT |
Eintrag [kg/Monat] |
wq_out_{kontinent} (Ergebnisse)
Ergebnistabellen werden dynamisch erstellt: concentration_{IDrun}
| Feld |
Typ |
Beschreibung |
| date |
INT |
Datum (YYYYMM) |
| cell |
INT |
Zellen-ID |
| con |
FLOAT |
Konzentration |
| con2 |
FLOAT |
Sekundäre Konzentration |
| --- |
|
|
watergap_unf (WaterGAP-Basisdaten)
| Tabelle |
Inhalt |
gr |
Grid Row: Zellen-ID → Zeilen-Index |
gc |
Grid Column: Zellen-ID → Spalten-Index |
g_inflc_arc_id |
Zufluss-Informationen (8 Nachbarn: SW, S, SE, W, E, NW, N, NE) |
mother_{kontinent} |
Einzugsgebiets-Zuordnung (arcid, bas0_id, rout_area) |
country_continent |
Länder-Kontinent-Mapping (isonum, idreg, continent) |
wq_load_{kontinent} (Nährstoffeinträge)
Tabellen werden dynamisch erstellt: calc_cell_month_load_{typ}_{IDScen}_{parameter}
Quelltypen: dom (häuslich), man (industriell), ind (Industrie), atm (atmosphärisch), fert (Dünger), ls (Vieh), etc.
Schema importieren
mysql -u root -p < database_schema.sql
Das vollständige Schema ist in database_schema.sql im Projektverzeichnis definiert.