Aral Sea — André van der Veen#
This repository contains the codebase, data-processing workflows, model experiments, and analysis developed for my MSc thesis in Hydrology at TU Delft.
Full Thesis: TU Delft Repository Link
Abstract & Scope#
The project investigates how climate change, CMIP6 future projections, and human water use affect river discharge and the water balance of the Aral Sea basin.
It combines:
Meteorological Forcing: Processing and correction of historical and CMIP6 climate datasets.
Hydrological Modeling: PCR-GLOBWB2 river-discharge simulations.
Basin Scale Modeling: An Aral Sea volume-balance model.
Note: The complete thesis analysis is not yet fully automated or end-to-end reproducible from this repository alone.
Overview#
There are two distinct parts of this project. They serve different purposes and should not be treated as interchangeable workflows.
work_in_progress/: exploratory development#
work_in_progress/ is the exploratory research
workspace. It contains intermediate, experimental, and development material,
including:
data/– raw and processed data, including GRDC, DAHITI, bathymetry, Karakum, and shapefile data;forcing/– forcing-generation notebooks and generated forcing experiments;model_runs/– calibration, optimization, HBV, LeakyBucket, and PCR-GLOBWB experiments;notebooks/– exploratory notebooks for forcing, calibration, bias mapping, modelling, plotting, and utilities. These form the basis for the later final workflow.outputs/– intermediate figures, tables, and model outputs;src/– development Python modules for forcing, models, calibration, plotting, I/O, and utilities;Test_Aral/– initial exploratory Aral Sea simulations and diagnostic experiments, oldest code, can be mostly disregarded;
This folder is useful for understanding the research process and finding experimental code, but it is not the canonical reproduction path.
Report/: structured thesis workflow#
Report/ contains the structured workflow used for the thesis
report. Its main entrypoints and components are:
README.md– setup, configuration, execution, outputs, and current limitations;Snakefile– Snakemake workflow orchestration;config_aral.yaml– project paths, scenarios, simulation periods, parameter sets, and stations;environment.yaml– Conda environment definition;config/– experiment-planning configuration;workflow/– Snakemake scripts for forcing processing and PCR-GLOBWB workflow steps;src/– workflow and model helper modules;tests/– focused tests for workflow helpers;data/– workflow inputs and generated forcing;results/– workflow results and derived outputs.
The Report workflow is the recommended starting point for the documented pipeline. It automates forcing generation, CMIP6 processing, PCR-GLOBWB experiments, and discharge extraction. The later Aral Sea volume-balance and final-analysis stages remain represented by incomplete example notebooks rather than a complete set of Snakemake rules.
Workflow status#
Start with Report/README.md for the documented setup
and execution instructions. The workflow requires external datasets, model
parameter sets, and a PCR-GLOBWB container, and its configuration currently
contains machine-specific paths.
The notebooks in Report/notebooks/ are examples of the
intended workflow. They are incomplete and may require manual edits, local
inputs, or code that has not yet been converted into Snakemake rules. Their
numbering indicates the intended order, not a guaranteed end-to-end execution
path.
Examples#
The Report notebooks provide examples of the intended analysis stages:
00_setup.ipynb01_forcing_generation.ipynb02_pcr_globwb_experiments.ipynb04_figures_and_results.ipynb
[!NOTE] These notebooks serve as reference material and exploratory code samples. They are as of now incomplete and do not constitute a fully automated or complete reproducible workflow. For standard workflow execution, use the Snakemake pipeline.