RiversFlow
GRIT Global River Topology
A bifurcating river hydrography (v1.0). 30 m river network with channels that split and rejoin.
A river network built on FABDEM and Landsat-derived river masks that keeps bifurcations, so deltas, braided rivers and canals are represented as multi-threaded channels. Reaches, segments and their catchments come in seven regional files, plus a simplified global network.
- Source
- University of Bristol, Zenodo
- Resolution
- Lines (from 30 m data)
- Data type
- Lines, nodes and catchment polygons
- Time span
- Static (v1.0, 2025)
- Temporal
- Static
- Access type
- Direct download (external)
- Formats
- GeoPackage (EPSG:4326 and EPSG:8857)
- Coverage
- Global land (-180, -56, 180, 84)
- Licence
- CC BY-NC 4.0
- DOI
- 10.5281/zenodo.17435232
- Provider page
- doi.org/10.5281/zenodo.17435232
Cite as. Wortmann, M., et al. (2025). Global River Topology (GRIT): A Bifurcating River Hydrography. Water Resources Research, 61, e2024WR038308. https://doi.org/10.1029/2024WR038308
Access
filesReaches per region (GeoPackage, WGS 84)
filesSimplified global network
linkAll files, including segments and catchments (Zenodo)
curl -fsSL "https://hydrological.org/api/v1/datasets/grit/links.txt?bbox=-75,-20,-50,5" \
| xargs -n 1 curl -fLO
import requests
urls = requests.get("https://hydrological.org/api/v1/datasets/grit/links.txt?bbox=-75,-20,-50,5").text.split()
for url in urls:
name = url.rsplit("/", 1)[-1]
with requests.get(url, stream=True) as r, open(name, "wb") as f:
for chunk in r.iter_content(1 << 20):
f.write(chunk)
const res = await fetch("https://hydrological.org/api/v1/datasets/grit/links?bbox=-75,-20,-50,5");
const { groups } = await res.json();
for (const g of groups) g.links.forEach(l => console.log(l.url));
Also available as JSON: links · manifest · dataset record