Attribution-NonCommercial 4.0 (CC BY-NC 4.0)https://creativecommons.org/licenses/by-nc/4.0/
License information was derived automatically
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).
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:
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
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 |
Attribution-NonCommercial 4.0 (CC BY-NC 4.0)https://creativecommons.org/licenses/by-nc/4.0/
License information was derived automatically
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 |
sinuous | float | ratio of line length and Euclidean distance between upstream-downstream nodes, 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 line length and Euclidian distance between upstream-downstream nodes, 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.
Attribution-NonCommercial 4.0 (CC BY-NC 4.0)https://creativecommons.org/licenses/by-nc/4.0/
License information was derived automatically
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).
A map of GRIT segments labelled with OSM river names is available here: https://michelwortmann.com/research/gritv05-segments-river-names/
Regions
Vector files are provided in 7 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 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).
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, |
Not seeing a result you expected?
Learn how you can add new datasets to our index.
Attribution-NonCommercial 4.0 (CC BY-NC 4.0)https://creativecommons.org/licenses/by-nc/4.0/
License information was derived automatically
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).
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:
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
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 |