Skip to content

Repository files navigation

Future Freshwater for Greenland's Fjords

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-paper tag corresponds to the exact version used to generate the figures in the submitted manuscript. The main branch 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.

Repository layout

├── 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.

Interactive per-fjord viewer

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.

Reproducing the figures

  1. Clone the repository

    git clone https://github.com/AnnekeV/FutureFresh.git
    cd FutureFresh
    git checkout v1.0-paper   # exact manuscript version (optional)
  2. Create the environment (Python 3.12)

    conda create -n futurefresh python=3.12
    conda activate futurefresh
    pip install -r requirements.txt
  3. Download the data record from Zenodo (10.5281/zenodo.18494979).

    To reproduce the figures, download the reproducibility_*.zip archives and unzip them all into data/zenodo/ inside the repository, or point the FUTUREFRESH_DATA environment variable at wherever you put them:

    export FUTUREFRESH_DATA=/path/to/zenodo/bundle

    notebooks/production/path_zotero.py resolves 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) or timeseries_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_*.csv maps each fjord id to a position, a drainage basin and a size.

  4. Run the figure notebooks in notebooks/production/ (any order). Figures are written to results/figures/.

What needs data that is not on Zenodo?

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.

Notes on the archive (notebooks/exploration)

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).

Citation

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.

License

MIT License.


Project structure adapted from the Good Enough Project Cookiecutter template by Barbara Vreede (2019).

About

Code and notebooks accompanying the paper “Future freshwater for Greenland’s fjords” (Vries et al., 2026, JGR Earth Surface).

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages