Projektstruktur
WorldQualLite/
├── docs/ # MkDocs-Dokumentation
│ ├── index.md # Startseite
│ ├── user/ # Benutzer-Dokumentation
│ │ ├── konfiguration.md
│ │ ├── durchfuehrung.md
│ │ ├── visualisierung.md
│ │ ├── config-builder.md
│ │ ├── schnellreferenz.md
│ │ ├── projektstruktur.md
│ │ └── mathematik.md
│ ├── technical/ # Entwickler-Dokumentation
│ │ ├── skripte.md
│ │ ├── ARCHITECTURE.md
│ │ ├── API.md
│ │ ├── DATA_SOURCES.md
│ │ ├── DATA_REQUIREMENTS.md
│ │ └── code/ # Auto-generierte Code-Dokumentation
│ │ ├── WorldQual_Lite_TP.md
│ │ ├── InputDataFetchFunctions.md
│ │ ├── BinaryFileHandler.md
│ │ ├── BasinDelineation.md
│ │ ├── config.md
│ │ └── Paths_and_params.md
│ ├── stylesheets/extra.css # Custom CSS
│ └── javascripts/extra.js # Custom JavaScript
├── src/ # Python-Quellcode
│ ├── WorldQual_Lite_TP.py # Hauptmodul (Frachtberechnung)
│ ├── config.py # YAML-Config-Loader mit Validierung
│ ├── Paths_and_params.py # Kompatibilitäts-Wrapper (leitet an config.py weiter)
│ ├── InputDataFetchFunctions.py # Datenbankzugriff (Credentials via .env)
│ ├── BinaryFileHandler.py # UNF-Datei-Handler
│ └── BasinDelineation.py # Einzugsgebiets-Definition
├── scripts/ # Hilfsskripte
│ └── generate_code_docs.py # Generiert Code-Dokumentation aus Quellcode
├── config.yaml # Zentrale Konfigurationsdatei (alle Parameter)
├── .env.example # Vorlage für Datenbankzugangsdaten
├── data/ # Input-Daten (nicht in Git)
│ ├── sample_run/ # Beispiellauf (Möhne, DE, 2000)
│ │ ├── basin/ # Einzugsgebiets-Zellenliste
│ │ │ └── basin_cells.csv
│ │ ├── cell_input/ # Zell-Input CSVs (pro Jahr)
│ │ │ └── europe_cell_input_2000.csv
│ │ ├── country_input/ # Länderdaten (Bevölkerung, Kläranlagen)
│ │ │ └── SSP2_country_input.csv
│ │ ├── country_parameter_input/ # Emissionsfaktoren, Konzentrationen
│ │ │ └── SSP2_country_parameter_input.csv
│ │ ├── parameter_input/ # Entfernungsraten (Reinigungsleistung)
│ │ │ └── SSP2_parameter_input.csv
│ │ ├── shapefiles/ # WaterGAP-Referenzgitter (Shapefiles)
│ │ │ └── mother_eu.*
│ │ └── unf/ # UNF-Binärdateien
│ │ ├── G_SURFACE_RUNOFF/ # Oberflächenabfluss (monatlich)
│ │ ├── G_URBAN_RUNOFF/ # Urbaner Abfluss (monatlich)
│ │ ├── G_LIVESTOCK_NR/ # Viehbestandsdichte (monatlich)
│ │ ├── G_CORR_FACT_RTF/ # Korrekturfaktoren (monatlich)
│ │ ├── P_RATE_TON_KM2/ # P-Düngungsrate (jährlich)
│ │ ├── CROPLAND_CORR_KM2/ # Ackerfläche (jährlich)
│ │ └── OTHER_UNF_FILES/ # Statische Raster (Routing, Erosion, etc.)
│ └── output/ # Modellergebnisse
├── mkdocs.yml # MkDocs-Konfiguration
├── requirements.txt # Python-Abhängigkeiten
├── .gitignore
└── README.md
Verzeichnisse im Detail
src/ – Python-Quellcode
| Datei |
Zeilen |
Funktion |
WorldQual_Lite_TP.py |
~830 |
Hauptmodul: Berechnet alle 8 TP-Frachtkomponenten, Erosion, Retention, Validierung |
InputDataFetchFunctions.py |
~490 |
Datenzugriff: MySQL-Abfragen für Länder- und Zellparameter (Credentials via .env) |
config.py |
~300 |
Config-Loader: Liest config.yaml, validiert Parameter, löst Pfade auf |
BinaryFileHandler.py |
~220 |
UNF-Handler: Liest/schreibt Binärdateien, konvertiert zu NumPy/GeoTIFF |
BasinDelineation.py |
~110 |
Einzugsgebiet: Zell-Identifikation über Routing oder Shapefile-Overlay |
Paths_and_params.py |
~100 |
Kompatibilitäts-Wrapper: Leitet alle Werte aus config.py weiter |
data/sample_run/ – Beispiellauf (Möhne, DE, 2000)
Der sample_run/-Ordner enthält alle Dateien für einen minimalen, funktionsfähigen Modelllauf: das Möhne-Einzugsgebiet in Deutschland für das Jahr 2000. Der Gesamtumfang beträgt ca. 90 MB (gegenüber ~35 GB im vollständigen Datensatz).
In jedem Unterordner liegen PLATZHALTER_*.txt-Dateien, die beschreiben, welche zusätzlichen Daten für erweiterte Läufe benötigt werden und wo diese zu finden sind.
Tabellarische Daten
| Ordner |
Datei |
Inhalt |
basin/ |
basin_cells.csv |
23 Zellen des Möhne-Einzugsgebiets mit Flächenanteil |
cell_input/ |
europe_cell_input_2000.csv |
Zell-Eigenschaften (Bevölkerung, Return Flows, BIP) |
country_input/ |
SSP2_country_input.csv |
Bevölkerung, Kläranlagen-Anschlussraten, Sanitärversorgung |
country_parameter_input/ |
SSP2_country_parameter_input.csv |
Emissionsfaktor (ef), Konzentrationen (conc_man, conc_urb) |
parameter_input/ |
SSP2_parameter_input.csv |
Entfernungsraten der Kläranlagenstufen (rem_prim/sec/tert/quat) |
Die Country-CSVs wurden mit scripts/fetch_real_data.py aus Eurostat- und Weltbank-Daten generiert.
UNF-Binärdateien (Rasterdaten)
Ordner unter unf/ |
Datei(en) |
Inhalt |
Zeitauflösung |
G_SURFACE_RUNOFF/ |
G_SURFACE_RUNOFF_2000.12.UNF0 |
Oberflächenabfluss [mm/Monat] |
12 Monatsschichten |
G_SURFACE_RUNOFF/ |
G_SURFACE_RUNOFF_MEAN.UNF0 |
Klimamittel Abfluss (für Erosionsmodell) |
1 Schicht |
G_URBAN_RUNOFF/ |
G_URBAN_RUNOFF_2000.12.UNF0 |
Urbaner Abfluss [mm/Monat] |
12 Monatsschichten |
G_LIVESTOCK_NR/ |
G_LIVESTOCK_NR_2000.12.UNF0 |
Viehbestandsdichte [Tiere/Zelle] |
12 Monatsschichten |
G_CORR_FACT_RTF/ |
G_CORR_FACT_RTF_2000.12.UNF0 |
Return-Flow-Korrekturfaktoren |
12 Monatsschichten |
P_RATE_TON_KM2/ |
P_RATE_TON_KM2_2000.UNF0 |
P-Düngungsrate [t/km²] |
1 Schicht (jährlich) |
CROPLAND_CORR_KM2/ |
CROPLAND_CORR_KM2_2000.UNF0 |
Ackerfläche [km²] pro Zelle |
1 Schicht (jährlich) |
Statische UNF-Dateien (unf/OTHER_UNF_FILES/)
| Datei |
Format |
Inhalt |
GAREA.UNF0 |
Float |
Zellfläche [km²] pro Breitengrad |
GC.UNF2 |
Short |
Spalten-Koordinate im Raster |
GR.UNF2 |
Short |
Zeilen-Koordinate im Raster |
GCRC.UNF4 |
Integer |
Zell-ID (GCRC-Nummer) |
G_OUTFLC.UNF4 |
Integer |
Routing: nächste Unterstrom-Zelle |
GBUILTUP.UNF0 |
Float |
Versiegelungsgrad [-] |
G_SOILEROS.UNF0 |
Float |
Bodenerosionsrate [kg/km²/a] |
G_PATMDEPOS.UNF0 |
Float |
Atmosphärische P-Deposition [kg/km²/a] |
G_PWEATHERING.UNF0 |
Float |
Chemische P-Verwitterung [kg/km²/a] |
GFREQW.UNF1 |
Byte |
Wasserflächenanteil [%] |
G_LAND_AREA.UNF1 |
Byte |
Landflächenanteil [%] |
GLCC2000.UNF2 |
Short |
Landbedeckungsklasse (GLC2000) |
GLCT.UNF1 |
Byte |
Landbedeckungstyp |
GFREQ.UNF1 |
Byte |
Überflutungshäufigkeit |
GCELLDIST.9.UNF0 |
Float |
Zelldistanzen (9 Nachbarn) |
G_WG3_WATCH.UNF4 |
Integer |
WaterGAP3-WATCH-Referenz |
G_LAND_AREA_EU.UNF1 |
Byte |
Landflächenanteil (Europa-spezifisch) |
Shapefiles (shapefiles/)
| Datei |
Inhalt |
mother_eu.* |
WaterGAP-Referenzgitter für Europa (5-Bogenminuten-Raster) |
Für andere Kontinente werden zusätzliche Shapefiles benötigt (mother_af, mother_as, etc.) — siehe PLATZHALTER_ANDERE_KONTINENTE.txt.