EuroFlood
Query Europe's observed satellite flood-depth maps by place and time: lightweight, cloud-native, pip-installable.
Flood-recurrence over Zutphen (river IJssel): how often each ~90 m pixel flooded across a decade, straight from the index.
EuroFlood is a data-access tool for the JRC / Copernicus CEMS-EFAS Satellite-Derived Flood Depth Maps for Europe: ~3,610 observed, Sentinel-1-derived flood-depth maps across Europe, 2015–2025. The source is published only as an un-indexed bulk FTP archive; EuroFlood turns it into a queryable index so you can discover which flood events touched a region (and when) and extract only the depth rasters you actually need.
It follows a Discover → Extract model:
- Discover:
floods("Zutphen, Netherlands")streams a compact index (a Cloud-Optimized GeoTIFF read a window at a time via/vsicurl, plus a small sorted GeoParquet dictionary cached on first use) and returns aGeoDataFrameof matching flood events, transferring a few MB, never the whole archive. - Extract:
.download("out/")fetches and crops only the source depth GeoTIFFs for the events you selected.
It also exposes the global CEMS-GLOFAS modelled flood-hazard maps via hazard().
Install
pip install euroflood
Quick start
import euroflood as ef
# Discover observed flood events (place name, bbox, point+radius, ...)
cat = ef.floods("Zutphen, Netherlands") # a GeoDataFrame
cat = ef.floods(bbox=(6.14, 52.09, 6.27, 52.17), start=2024, end=2024)
cat = ef.floods(nuts="NL22") # a Eurostat NUTS region
# Extract: download + crop the depth rasters for the selected events
cat[cat["date"] >= "2024-01-01"].download("out/")
# Global modelled hazard (CEMS-GLOFAS return-period depth)
ef.hazard("Zutphen, Netherlands", return_period=100).download("hazard/")
Or from the command line:
euroflood floods "Zutphen, Netherlands"
euroflood hazard "Zutphen, Netherlands" -r 100 --download --out hazard/
New to EuroFlood? Work through the runnable tutorials: Quickstart → Discover & filter → Visualize → Download & measure → Hazard.
Visualize (optional [viz] extra)
pip install "euroflood[viz]" adds plotting: flood-recurrence and per-event
footprints straight from the index (no download), plus the downloaded depth maps:
cat = ef.floods("Zutphen, Netherlands")
cat.plot() # flood-recurrence heatmap (shown at the top)
cat.footprints() # a GeoDataFrame of each event's extent (+ extent_km2)
cat.explore() # interactive map with per-region hover tooltips
cat.head(3).download().plot(depth=True) # fetch + render the actual depth rasters
A decade at Zutphen: per-cell recurrence, per-event depth, and observed depths against the modelled CEMS-GLOFAS return-period curve (see the case study).
See the Visualize tutorial.
Documentation
Full docs: https://cisgroup.github.io/euroflood/
- Getting Started: install and run your first query.
- Tutorials: runnable, progressive notebooks (Quickstart → Hazard).
- Case studies: real-world flood analyses on genuine events across Europe (Storm Boris, the Valencia DANA, and more).
- Concepts: how the index works (the data model in one page).
- API Reference · HPC runbook
Data source, attribution & license
EuroFlood code is licensed under the MIT License.
The index and the underlying flood-depth maps are derived from the JRC / Copernicus CEMS-EFAS Satellite-Derived Flood Depth Maps for Europe and are licensed CC-BY-4.0.
For how to cite EuroFlood (the software, the index dataset, the source data, and the paper reproduction package), see Citing EuroFlood.
Developed at Princeton University (Complex Infrastructure Systems Group).
This is the public mirror of EuroFlood. Development happens in a separate private repository; each release here is a clean snapshot. Issues and pull requests are welcome — PRs are triaged and applied upstream.
Metadata
Release files for euroflood 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| euroflood-0.3.1.tar.gz | 3.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| euroflood-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.4 MB
Release files / euroflood-0.3.1.tar.gz
| Download URL | euroflood-0.3.1.tar.gz |
|---|---|
| Size | 3.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
11462c9b0a5962256c30994c5e7cf5909cd29763560aebba7b58430554a73d12
|
|
BLAKE2b-256 checksum How to use checksums |
29789bf5db2fc71a5a300b63220a64ad780cdcdd48f049e62b3cf779951fc7c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency logRelease files / euroflood-0.3.1-py3-none-any.whl
| Download URL | euroflood-0.3.1-py3-none-any.whl |
|---|---|
| Size | 337.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a0e0d3d83dd2e89b667f657880ac734731e4bbe3a903b22dd986fb9d610eafd6
|
|
BLAKE2b-256 checksum How to use checksums |
a64755eb0ccfd84e976136987621a7dcd273db5e01da2bd15bfc150e61b673c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency log