WorldQual¶
Modellbeschreibung¶
WorldQual ist ein C++-basiertes Wasserqualitätsmodell zur Simulation von Schadstoffkonzentrationen in Flusssystemen. Das Modell berechnet monatliche Konzentrationen verschiedener Wasserqualitätsparameter unter Berücksichtigung von Instream-Transport, lokalen Einträgen und biochemischen Abbauprozessen.
Zentrale Fragestellung: Wie verteilen sich Nährstoffe und Schadstoffe entlang eines Flusssystems, und welche Quellen tragen in welchem Maß dazu bei?
Installation und Ausführung¶
Vorgehensweise
Voraussetzungen: C++-Compiler (g++/clang++), MySQL 8.0+, MySQL++ Bibliothek, Make
# 1. Repository klonen
git clone https://github.com/Leon-Muehlenbruch/WorldQual.git
cd WorldQual
# 2. Abhängigkeiten installieren
./install_dependencies.sh
# 3. Kompilieren
cd src/worldqual
make clean && make
# 4. Modell ausführen
./worldqual IDrun startYear endYear
Eine ausführliche Anleitung findet sich unter Installation und Modellausführung.
Modellstruktur und Datenfluss¶
Modul-Pipeline
flowchart LR
subgraph Input
DB["MySQL-Datenbank\n(Routing, Szenarien,\nLänderdaten)"]
UNF["UNF-Rasterdaten\n(Hydrologie, Klima,\nNährstoffe)"]
end
subgraph Verarbeitung
direction TB
Load["wq_load\n(Nährstoffeinträge)"]
Temp["water_temperature\n(Wassertemperatur)"]
Main["worldqual\n(Instream-Transport)"]
Stat["wq_stat\n(Statistik)"]
Load --> Main
Temp --> Main
Main --> Stat
end
subgraph Output
Conc["Konzentrationen\n(MySQL-Tabellen)"]
Map["MapRiverQuality\n(Karten)"]
end
DB --> Verarbeitung
UNF --> Verarbeitung
Verarbeitung --> Conc
Verarbeitung --> Map
Simulierte Wasserqualitätsparameter
| Parameter | Beschreibung | Einheit |
|---|---|---|
| BOD | Biochemischer Sauerstoffbedarf | mg/l |
| TDS | Gesamtgelöste Feststoffe | mg/l |
| FC | Fäkalcoliforme Bakterien | MPN/100ml |
| TN | Gesamtstickstoff | mg/l |
| TP | Gesamtphosphor | mg/l |
| Pestizide | Pestizidrückstände | µg/l |
Module im Überblick
WorldQual besteht aus mehreren unabhängigen C++-Modulen, die jeweils separat kompiliert werden:
| Modul | Funktion | Pfad |
|---|---|---|
| worldqual | Hauptprogramm: Instream-Transport und Konzentrationsberechnung | src/worldqual/ |
| wq_load | Berechnung der Nährstoffeinträge (Punkt- und diffuse Quellen) | src/wq_load/ |
| wq_stat | Statistische Auswertung der Simulationsergebnisse | src/wq_stat/ |
| water_temperature | Wassertemperaturmodellierung | src/water_temperature/ |
| find_river_cells | Identifikation und Zuordnung von Flusszellen | src/find_river_cells/ |
| MapRiverQuality | Visualisierung und Kartierung von Ergebnissen | src/MapRiverQuality/ |
Siehe Modulübersicht für eine vollständige Beschreibung.
Abgrenzung zu WorldQual Lite
WorldQual Lite stellt eine vereinfachte Python-Reimplementierung des WorldQual-Modells dar. Die wesentlichen Unterschiede:
| Eigenschaft | WorldQual (Vollversion) | WorldQual Lite |
|---|---|---|
| Implementierung | C++ | Python |
| Wasserqualitätsparameter | BOD, TDS, FC, TN, TP, Pestizide | Nur TP |
| Instream-Transport | Vollständiges Fluss-Routing mit Abbau | Nicht implementiert (reine Frachtsummierung) |
| Räumlicher Umfang | Kompletter Kontinent | Einzelnes Einzugsgebiet |
| Retention | Physikbasiert (Seen, Flussabschnitte) | Vereinfacht nach Vollenweider (HL-basiert) |
| Datenquelle | MySQL (erforderlich) | MySQL oder CSV-Dateien |
| Industriesektoren | 7 Sektoren differenziert | Aggregiert (1 Konzentration) |
| Bergbau | 5 Ressourcentypen | Nicht implementiert |
| Temperaturabhängigkeit | Ja (Abbauraten) | Nicht implementiert |
Weiterführende Dokumentation¶
Anwendung:
- Voraussetzungen – Systemanforderungen und Abhängigkeiten
- Installation – Schritt-für-Schritt Installationsanleitung
- OPTIONS.DAT – Konfigurationsdatei-Format und Parameter
- Datenbank einrichten – MySQL-Datenbank Setup und Schema
- Kompilierung – Build-Prozess für alle Module
- Modellausführung – Simulationen durchführen und Ergebnisse interpretieren
- Projektstruktur – Verzeichnisaufbau und Dateiformate
- Mathematische Grundlagen – Wissenschaftliche Dokumentation und Literatur
Technische Dokumentation:
- Modulübersicht – Detaillierte Beschreibung aller C++-Module
- Architektur – System- und Code-Architektur
- Datenbank-Schema – MySQL-Datenbankstruktur
- Input-Daten Checkliste – Vollständige Auflistung der benötigten Eingabedaten
-
Doxygen API-Referenz – Automatisch generierte API-Dokumentation Verwandtes Projekt:
-
WorldQual Lite – Vereinfachte Python-Implementierung für Gesamtphosphor
Ursprüngliche Entwicklung: Ellen Teichert (2007)
Weiterentwicklung: kynast (2015–2018)
Dokumentation & Build System: Leon Mühlenbruch
Letzte Aktualisierung: März 2026