Zum Inhalt

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.