RiversObservations
SWORD SWOT River Database
SWOT River Database, version 17b. 10 km river reaches and 200 m nodes for rivers wider than 30 m.
The prior river network behind SWOT river products, built from GRWL centerlines, MERIT Hydro and HydroBASINS. Reaches and nodes carry width, slope, topology and the identifiers used in SWOT data, so observations can be joined to river lines. Files are split by continent and HydroBASINS level 2.
- Source
- University of North Carolina at Chapel Hill, Zenodo
- Resolution
- Reaches (about 10 km) and nodes (200 m)
- Data type
- Lines and points
- Time span
- Static (v17b, 2025)
- Temporal
- Static
- Access type
- Direct download (external)
- Formats
- Shapefile, GeoPackage, NetCDF
- Coverage
- Global (rivers wider than 30 m) (-180, -60, 180, 84)
- Licence
- CC BY 4.0
- DOI
- 10.5281/zenodo.15299138
- Provider page
- www.swordexplorer.com/
Cite as. Altenau, E. H., et al. (2021). The Surface Water and Ocean Topography (SWOT) Mission River Database (SWORD): A Global River Network for Satellite Data Products. Water Resources Research, 57, e2021WR030054. https://doi.org/10.1029/2021WR030054
Access
filesSWORD v17b (each archive holds every continent)
linkSWORD Explorer (browse reaches before downloading)
curl -fsSL "https://hydrological.org/api/v1/datasets/sword/links.txt?bbox=-75,-20,-50,5" \
| xargs -n 1 curl -fLO
import requests
urls = requests.get("https://hydrological.org/api/v1/datasets/sword/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/sword/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