DOI: 10.5281/zenodo.11219313
title: Global River Topology (GRIT) vector datasets

description: The Global River Topology (GRIT) is a vector-based, global river network that not only represents the tributary components of the global drainage network but also the distributary ones, including multi-thread rivers, canals and delta distributaries. It is also the first global hydrography (excl. Antarctica) produced at 30m raster resolution. It is created by merging Landsat-based river mask (GRWL) with elevation-generated streams to ensure a homogeneous drainage density outside of the river mask (rivers narrower than approx. 30m). Crucially, it uses a new 30m digital terrain model (FABDEM, based on TanDEM-X) that shows greater accuracy over the traditionally used SRTM derivatives. After vectorisation and pruning, directionality is assigned by a combination of elevation, flow angle, heuristic and continuity approaches (based on RivGraph). The network topology (lines and nodes, upstream/downstream IDs) is available as layers and attribute information in the GeoPackage files (readable by QGIS/ArcMap/GDAL).

A map of GRIT segments labelled with OSM river names is available here: Map with names

Report bugs and feedback

Your feedback and bug reports are welcome here: GRIT bug report form

The feedback may be used to improve and validate GRIT in future versions.

Regions

Vector files are provided in 7 regions with the following codes:



AF - Africa

AS - Asia (excl. Siberia)

EU - Europe

NA - North America

SA - South America

SI - Siberia

SP - South Pacific/Australia


The domain polygons (GRITv06_domain_GLOBAL.gpkg.zip) provide 60 subcontinental catchment groups that are available as vector attributes. They allow for more fine-grained subsetting of data (e.g. with ogr2ogr --where and the domain attribute).

Vector files are provided both in the original equal-area Equal Earth Greenwich projection (EPSG:8857) as well as in geographic WGS84 coordinates (EPSG:4326).

Change log



v0.6 - 2024-05-30



Rivers/streams outside of the GRWL mask forced by all OSM water lines (not only those with waterway=river/canal)

Some manual directions in the Irrawaddy delta and fixed erronous sink in the Volga delta



v0.5 - 2024-02-14



Cyclicity and discontinuities resolved through improved algorithms, bug fixes, more sophisticated cycle solving algorithms and some manually forced directions. Only insignificant cycles (non-sinks, less than 50) were removed.

Added segment and reach attributes

Computational domain fixes

Segments include OSM river names

Asia domain split into Siberia and rest of Asia

Vector files available in EPSG:8857 and EPSG:4326



v0.4 - 2023-03-11



First globally complete dataset published




Network segments

Lines between inlet, outlet, confluence and bifurcation nodes. Files have lines and nodes layers.

Attribute description of lines layer




Name
Data type
Description




cat
integer
domain internal feature ID


global_id
integer
global river segment ID, same as FID


catchment_id
integer
global catchment ID


upstream_node_id
integer
global segment node ID at upstream end of line


downstream_node_id
integer
global segment node ID at downstream end of line


upstream_line_ids
text
comma-separated list of global river segment IDs connecting at upstream end of line


downstream_line_ids
text
comma-separated list of global river segment IDs connecting at downstream end of line


direction_algorithm
float
code of RivGraph method used to set the direction of line


width_adjusted
float
median river width in m without accounting for width of segments connecting upstream/downstream


length_adjusted
float
segment length in m without accounting for width of segments connecting upstream/downstream in m


is_mainstem
integer
1 if widest segment of bifurcated flow or no bifurcation upstream, otherwise 0


strahler_order
integer
Strahler order of segment, can be used to route in topological order


length
float
segment length in m


azimuth
float
direction of line connecting upstream-downstream nodes in degrees from North


sinuousity
float
ratio of Euclidean distance between upstream-downstream nodes and line length, i.e. 1 meaning a perfectly straight line


drainage_area_in
float
drainage area at beginning of segment, partitioned by width at bifurcations, in km2


drainage_area_out
float
drainage area at end of segment, partitioned by width at bifurcations, in km2


drainage_area_mainstem_in
float
drainage area at beginning of segment, following the mainstem, in km2


drainage_area_mainstem_out
float
drainage area at end of segment, following the mainstem, in km2


bifurcation_balance_out
float
(drainage_area_out - drainage_area_mainstem_out) / max(drainage_area_out, drainage_area_mainstem_out), dimensionless ratio


grwl_overlap
float
fraction of the segment overlapping with the GRWL river mask


grwl_value
integer
dominant GRWL value of segment


name
text
river name from Openstreetmap where available, English preferred


name_local
text
river name from Openstreetmap where available, local name


n_bifurcations_upstream
integer
number of bifurcations upstream of segment


domain
text
catchment group ID, see domain index file




 

Attribute description of nodes layer




Name
Data type
Description




cat
integer
domain internal feature ID


global_id
integer
global river node ID, same as FID


catchment_id
integer
global catchment ID


upstream_line_ids
text
comma-separated list of global river segment IDs flowing into node


downstream_line_ids
text
comma-separated list of global river segment IDs flowing out of node


node_type
text
description of node, one of bifurcation, confluence, inlet, coastal_outlet, sink_outlet, grwl_change


grwl_value
integer
GRWL code at node


grwl_transition
text
GRWL codes of change at grwl_change nodes


cycle
integer
>0 if segment is part of an unresolved cycle, 0 otherwise


continuity_violated
integer
1 if flow continuity is violated, otherwise 0


drainage_area
float
drainage area, partitioned by width at bifurcations, in km2


drainage_area_mainstem
float
drainage area, following the mainstem, in km2


n_bifurcations_upstream
integer
number of bifurcations upstream of node


domain
text
catchment group, see domain index file




 

Network reaches

Segment lines split to not exceed 1km in length, i.e. these lines will be shorter than 1km and longer than 500m unless the segment is shorter. A simplified version with no vertices between nodes is also provided. Files have lines and nodes layers.

Attribute description of lines layer




Name
Data type
Description




cat
integer
domain internal feature ID


segment_id
integer
global segment ID of reach


global_id
integer
global river reach ID, same as FID


catchment_id
integer
global catchment ID


upstream_node_id
integer
global reach node ID at upstream end of line


downstream_node_id
integer
global reach node ID at downstream end of line


upstream_line_ids
text
comma-separated list of global river reach IDs connecting at upstream end of line


downstream_line_ids
text
comma-separated list of global river reach IDs connecting at downstream end of line


grwl_overlap
float
fraction of the reach overlapping with the GRWL river mask


grwl_value
integer
dominant GRWL value of node


grwl_width_median
float
median width of the GRWL river mask, meters


grwl_width_std
float
standard deviation of width of the GRWL river mask, meters


length
float
length of reach in meters


sinuousity
float
ratio of eucledian distance betwen upstream-downstream nodes and line length, i.e. 1 meaning a perfectly straight line


azimuth
float
direction of line connecting upstream-downstream nodes in degrees from North


domain
text
catchment group, see domain index file




Attribute description of nodes layer




Name
Data type
Description




cat
integer
domain internal feature ID


segment_node_id
integer
global ID of segment node at segment intersections, otherwise blank


n_segments
integer
number of segments attached to node


global_id
integer
global river reach node ID, same as FID


upstream_line_ids
text
comma-separated list of global river reach IDs flowing into node


downstream_line_ids
text
comma-separated list of global river reach IDs flowing out of node


domain
text
catchment group, see domain index file




 

Catchments

Catchment outlines for entire river basins (network components, including coastal drainage areas). Catchments for segments (aka. subbasins) and reaches are also available on request.

Attribute description




Name
Data type
Description




cat
integer
domain internal feature ID


global_id
integer
global catchment ID, same as global_id of segment/reach ID if is_coastal == 0 for respective catchments or the catchment_id for component_catchments, same as FID


area
float
catchment area in km2


is_coastal
integer
1 for coastal drainage areas, 0 otherwise


domain
text
catchment group, see domain index file




 

Raster 

Upstream drainage area and other raster-based products are also available upon request.