Authors: Michel Wortmann, Louise Slater, Laurence Hawker, Yinxue Liu, Jeffrey Neal
Licensed under CC BY-NC 4.0
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 and Greenland) 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).
Regions
Vector files are provided in 6 continental regions with the following codes:
The domain polygons (GRITv04_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).
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 |
cycle | integer | >0 if segment is part of an unresolved cycle, 0 otherwise |
length | float | segment length in m |
azimuth | float | direction of line connecting upstream-downstream nodes in degrees from North |
sinuousity | float | ratio of eucledian distance betwen upstream-downstream nodes and line length, i.e. 1 meaning a perfectly straight line |
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 |
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 |
length | float | length of reach in m |
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), segments (aka. subbasins) and reaches.
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, flow direction and other raster-based products are also available upon request.