Code accompanying the paper Future freshwater for Greenland's fjords, Vries, A. L., Goelzer, H., van de Berg, W. J., Meire, L., & van den Broeke, M. R. (2026, submitted to JGR Earth Surface).
Which version to use? The
v1.0-papertag corresponds to the exact version used to generate the figures in the submitted manuscript. Themainbranch may contain post-submission clean-up and exploratory work.
The analysis quantifies present-day and future (SSP scenarios, RACMO2.3p2 and MAR forced by CESM2/NorESM2) freshwater fluxes into Greenland's fjords: ice-sheet (GrIS) and peripheral glacier (GIC) runoff, tundra runoff, precipitation onto the fjord surface, and solid ice discharge.
├── README.md
├── requirements.txt <- Python dependencies (Python 3.12)
├── CITATION.cff
├── data/ <- Not in git; place the Zenodo bundle here (see below)
├── results/figures/ <- Figures written by the notebooks (not in git)
├── docs/ <- GitHub-Pages copy of the interactive fjord viewer
└── notebooks
├── production/ <- FINAL notebooks + helpers: reproduce the paper figures
│ ├── Figure1.ipynb <- Fig. 1 (overview/methods)
│ ├── combining_different_sources_Fig2-5-9.ipynb <- Figs. 2, 5, 9 + flux tables
│ ├── map_Fig3_4.ipynb <- Figs. 3, 4 (maps)
│ ├── combining_different_sources_monthly_Fig_6_7.ipynb <- Figs. 6, 7 (seasonal cycle)
│ ├── Figure7_liquid_water_balance.ipynb <- liquid water balance figure
│ ├── MOA_Figure_10.ipynb <- Fig. 10 (melt over accumulation)
│ ├── compute_gridded_climatologies.py <- preprocessing (needs raw RCM data)
│ ├── path_zotero.py <- locates the Zenodo data bundle
│ ├── zenodo/ <- builds the published data record
│ │ ├── survey_bundle.py <- inventory + read-map + coverage
│ │ ├── build_region_timeseries.py <- curated per-region products
│ │ ├── build_fjord_products.py <- curated per-fjord products + metadata
│ │ ├── verify_region_timeseries.py <- checks against the paper's own product
│ │ ├── build_zenodo_bundle.py <- archives + MANIFEST.csv
│ │ ├── coldstart_check.py <- unpack the record, check the code runs
│ │ └── RECORD_README.md <- the record's own documentation
│ ├── functions.py, dicts.py, cmaps.py,
│ │ stat_functions.py, format_plotsAV.py <- shared helpers
│ └── fjord_pipeline/ <- per-fjord freshwater dataset (input per fjord catchment)
│ ├── compute_runoff_per_fjord.py <- per-fjord runoff+precip (needs raw RCM data)
│ ├── compute_discharge_per_fjord.py <- per-fjord solid ice discharge (CISM)
│ ├── export_fjord_viewer.py <- builds the interactive fjord viewer
│ ├── combine_fjord_catchments.py, runoff_for_polygon.py <- per-fjord extraction tools
│ ├── verify_fjord_products.py <- per-fjord dataset verification
│ ├── plot_greenland_totals_fjord_dataset.py <- totals check figures (vs Fig. 2)
│ └── README_fjord_runoff_pipeline.md <- per-fjord pipeline documentation
└── exploration/ <- ARCHIVE: exploratory notebooks & one-off scripts.
└── src/ Not maintained; kept for provenance. Contains
historical copies of some helper modules.
notebooks/production is self-contained: the figure notebooks only import the
helper modules that sit next to them and read data via path_zotero.py.
https://annekev.github.io/FutureFresh/
Freshwater time series summed per individual fjord system (~830 systems;
tundra/GrIS/GIC runoff, precipitation on the fjord surface, solid ice
discharge) can be explored interactively: click a fjord on the map to see its
time series and seasonal cycle. The same page is
docs/index.html if you prefer to open it locally.
Built by notebooks/production/fjord_pipeline/export_fjord_viewer.py;
the underlying NetCDF products and pipeline are documented in
notebooks/production/fjord_pipeline/README_fjord_runoff_pipeline.md.
-
Clone the repository
git clone https://github.com/AnnekeV/FutureFresh.git cd FutureFresh git checkout v1.0-paper # exact manuscript version (optional)
-
Create the environment (Python 3.12)
conda create -n futurefresh python=3.12 conda activate futurefresh pip install -r requirements.txt
-
Download the data record from Zenodo (10.5281/zenodo.18494979).
To reproduce the figures, download the
reproducibility_*.ziparchives and unzip them all intodata/zenodo/inside the repository, or point theFUTUREFRESH_DATAenvironment variable at wherever you put them:export FUTUREFRESH_DATA=/path/to/zenodo/bundlenotebooks/production/path_zotero.pyresolves the data location in that order.If you only want the freshwater time series rather than the figures, take
timeseries_per_region.zip(4 MB) ortimeseries_per_fjord.zip(60 MB) instead. Those hold monthly and annual series in gigatonnes, as NetCDF and CSV, with the regions named and the units on every variable; they need no code from this repository.fjord_metadata_*.csvmaps each fjord id to a position, a drainage basin and a size. -
Run the figure notebooks in
notebooks/production/(any order). Figures are written toresults/figures/.
compute_gridded_climatologies.py (in notebooks/production) and the
compute_*.py scripts in notebooks/production/fjord_pipeline regenerate the
preprocessed inputs of the Zenodo bundle (per-region/per-fjord sums and
gridded climatologies) from the raw 1 km RACMO2.3p2 output. The raw data is
several TB and lives on IMAU storage servers; it is available from the authors
on request. You do not need it to reproduce the figures — the notebooks
read the preprocessed bundle. The same holds for a few clearly marked
(/Volumes/... paths) optional cells in the notebooks.
These notebooks document the path to the final analysis (preprocessing of MAR
and RACMO output, mask construction, regridding, sensitivity checks). They
reference raw data on IMAU servers and external disks and are not expected to
run from the Zenodo bundle alone. The fjord masks were generated with
exploration/src/make_fjord_mask_MAR.py (concave-hull around the land mask;
variants excluding/including islands).
Please cite the accompanying paper:
Vries, A. L., Goelzer, H., van de Berg, W. J., Meire, L., & van den Broeke, M. R. (2026). Future freshwater for Greenland's fjords. JGR Earth Surface (submitted).
and/or this repository via CITATION.cff.
Project structure adapted from the Good Enough Project Cookiecutter template by Barbara Vreede (2019).