Global River Topology (GRIT) vector datasets
<p>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).</p> <p>A map of GRIT segments labelled with OSM river names is available here: <a href="https://michelwortmann.com/research/gritv05-segments-river-names/" target="_blank" rel="noopener">Map with names</a></p> <p><strong>Report bugs and feedback</strong></p> <p>Your feedback and bug reports are welcome here: <a href="https://forms.gle/JrT58QStNKBHPJAH6" target="_blank" rel="noopener">GRIT bug report form</a></p> <p>The feedback may be used to improve and validate GRIT in future versions.</p> <p><strong>Regions</strong></p> <p>Vector files are provided in 7 regions with the following codes:</p> <ul> <li>AF - Africa</li> <li>AS - Asia (excl. Siberia)</li> <li>EU - Europe</li> <li>NA - North America</li> <li>SA - South America</li> <li>SI - Siberia</li> <li>SP - South Pacific/Australia</li> </ul> <p>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).</p> <p>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).</p> <p><strong>Change log</strong></p> <ul> <li>v0.6 - 2024-05-30 <ul> <li>Rivers/streams outside of the GRWL mask forced by all OSM water lines (not only those with waterway=river/canal)</li> <li>Some manual directions in the Irrawaddy delta and fixed erronous sink in the Volga delta</li> </ul> </li> <li>v0.5 - 2024-02-14 <ul> <li>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.</li> <li>Added segment and reach attributes</li> <li>Computational domain fixes</li> <li>Segments include OSM river names</li> <li>Asia domain split into Siberia and rest of Asia</li> <li>Vector files available in EPSG:8857 and EPSG:4326</li> </ul> </li> <li>v0.4 - 2023-03-11<br> <ul> <li>First globally complete dataset published</li> </ul> </li> </ul> <p><strong>Network segments</strong></p> <p>Lines between inlet, outlet, confluence and bifurcation nodes. Files have lines and nodes layers.</p> <p><em><strong>Attribute description of lines layer</strong></em></p> <table> <tbody> <tr> <th>Name</th> <th>Data type</th> <th>Description</th> </tr> </tbody> <tbody> <tr> <td>cat</td> <td>integer</td> <td>domain internal feature ID</td> </tr> <tr> <td>global_id</td> <td>integer</td> <td>global river segment ID, same as FID</td> </tr> <tr> <td>catchment_id</td> <td>integer</td> <td>global catchment ID</td> </tr> <tr> <td>upstream_node_id</td> <td>integer</td> <td>global segment node ID at upstream end of line</td> </tr> <tr> <td>downstream_node_id</td> <td>integer</td> <td>global segment node ID at downstream end of line</td> </tr> <tr> <td>upstream_line_ids</td> <td>text</td> <td>comma-separated list of global river segment IDs connecting at upstream end of line</td> </tr> <tr> <td>downstream_line_ids</td> <td>text</td> <td>comma-separated list of global river segment IDs connecting at downstream end of line</td> </tr> <tr> <td>direction_algorithm</td> <td>float</td> <td>code of RivGraph method used to set the direction of line</td> </tr> <tr> <td>width_adjusted</td> <td>float</td> <td>median river width in m without accounting for width of segments connecting upstream/downstream</td> </tr> <tr> <td>length_adjusted</td> <td>float</td> <td>segment length in m without accounting for width of segments connecting upstream/downstream in m</td> </tr> <tr> <td>is_mainstem</td> <td>integer</td> <td>1 if widest segment of bifurcated flow or no bifurcation upstream, otherwise 0</td> </tr> <tr> <td>strahler_order</td> <td>integer</td> <td>Strahler order of segment, can be used to route in topological order</td> </tr> <tr> <td>length</td> <td>float</td> <td>segment length in m</td> </tr> <tr> <td>azimuth</td> <td>float</td> <td>direction of line connecting upstream-downstream nodes in degrees from North</td> </tr> <tr> <td>sinuousity</td> <td>float</td> <td>ratio of Euclidean distance between upstream-downstream nodes and line length, i.e. 1 meaning a perfectly straight line</td> </tr> <tr> <td>drainage_area_in</td> <td>float</td> <td>drainage area at beginning of segment, partitioned by width at bifurcations, in km2</td> </tr> <tr> <td>drainage_area_out</td> <td>float</td> <td>drainage area at end of segment, partitioned by width at bifurcations, in km2</td> </tr> <tr> <td>drainage_area_mainstem_in</td> <td>float</td> <td>drainage area at beginning of segment, following the mainstem, in km2</td> </tr> <tr> <td>drainage_area_mainstem_out</td> <td>float</td> <td>drainage area at end of segment, following the mainstem, in km2</td> </tr> <tr> <td>bifurcation_balance_out</td> <td>float</td> <td>(drainage_area_out - drainage_area_mainstem_out) / max(drainage_area_out, drainage_area_mainstem_out), dimensionless ratio</td> </tr> <tr> <td>grwl_overlap</td> <td>float</td> <td>fraction of the segment overlapping with the GRWL river mask</td> </tr> <tr> <td>grwl_value</td> <td>integer</td> <td>dominant GRWL value of segment</td> </tr> <tr> <td>name</td> <td>text</td> <td>river name from Openstreetmap where available, English preferred</td> </tr> <tr> <td>name_local</td> <td>text</td> <td>river name from Openstreetmap where available, local name</td> </tr> <tr> <td>n_bifurcations_upstream</td> <td>integer</td> <td>number of bifurcations upstream of segment</td> </tr> <tr> <td>domain</td> <td>text</td> <td>catchment group ID, see domain index file</td> </tr> </tbody> </table> <p> </p> <p><em><strong>Attribute description of nodes layer</strong></em></p> <table> <tbody> <tr> <th>Name</th> <th>Data type</th> <th>Description</th> </tr> </tbody> <tbody> <tr> <td>cat</td> <td>integer</td> <td>domain internal feature ID</td> </tr> <tr> <td>global_id</td> <td>integer</td> <td>global river node ID, same as FID</td> </tr> <tr> <td>catchment_id</td> <td>integer</td> <td>global catchment ID</td> </tr> <tr> <td>upstream_line_ids</td> <td>text</td> <td>comma-separated list of global river segment IDs flowing into node</td> </tr> <tr> <td>downstream_line_ids</td> <td>text</td> <td>comma-separated list of global river segment IDs flowing out of node</td> </tr> <tr> <td>node_type</td> <td>text</td> <td>description of node, one of bifurcation, confluence, inlet, coastal_outlet, sink_outlet, grwl_change</td> </tr> <tr> <td>grwl_value</td> <td>integer</td> <td>GRWL code at node</td> </tr> <tr> <td>grwl_transition</td> <td>text</td> <td>GRWL codes of change at grwl_change nodes</td> </tr> <tr> <td>cycle</td> <td>integer</td> <td>>0 if segment is part of an unresolved cycle, 0 otherwise</td> </tr> <tr> <td>continuity_violated</td> <td>integer</td> <td>1 if flow continuity is violated, otherwise 0</td> </tr> <tr> <td>drainage_area</td> <td>float</td> <td>drainage area, partitioned by width at bifurcations, in km2</td> </tr> <tr> <td>drainage_area_mainstem</td> <td>float</td> <td>drainage area, following the mainstem, in km2</td> </tr> <tr> <td>n_bifurcations_upstream</td> <td>integer</td> <td>number of bifurcations upstream of node</td> </tr> <tr> <td>domain</td> <td>text</td> <td>catchment group, see domain index file</td> </tr> </tbody> </table> <p> </p> <p><strong>Network reaches</strong></p> <p>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.</p> <p><em><strong>Attribute description of lines layer</strong></em></p> <table> <tbody> <tr> <th>Name</th> <th>Data type</th> <th>Description</th> </tr> </tbody> <tbody> <tr> <td>cat</td> <td>integer</td> <td>domain internal feature ID</td> </tr> <tr> <td>segment_id</td> <td>integer</td> <td>global segment ID of reach</td> </tr> <tr> <td>global_id</td> <td>integer</td> <td>global river reach ID, same as FID</td> </tr> <tr> <td>catchment_id</td> <td>integer</td> <td>global catchment ID</td> </tr> <tr> <td>upstream_node_id</td> <td>integer</td> <td>global reach node ID at upstream end of line</td> </tr> <tr> <td>downstream_node_id</td> <td>integer</td> <td>global reach node ID at downstream end of line</td> </tr> <tr> <td>upstream_line_ids</td> <td>text</td> <td>comma-separated list of global river reach IDs connecting at upstream end of line</td> </tr> <tr> <td>downstream_line_ids</td> <td>text</td> <td>comma-separated list of global river reach IDs connecting at downstream end of line</td> </tr> <tr> <td>grwl_overlap</td> <td>float</td> <td>fraction of the reach overlapping with the GRWL river mask</td> </tr> <tr> <td>grwl_value</td> <td>integer</td> <td>dominant GRWL value of node</td> </tr> <tr> <td>grwl_width_median</td> <td>float</td> <td>median width of the GRWL river mask, meters</td> </tr> <tr> <td>grwl_width_std</td> <td>float</td> <td>standard deviation of width of the GRWL river mask, meters</td> </tr> <tr> <td>length</td> <td>float</td> <td>length of reach in meters</td> </tr> <tr> <td>sinuousity</td> <td>float</td> <td>ratio of eucledian distance betwen upstream-downstream nodes and line length, i.e. 1 meaning a perfectly straight line</td> </tr> <tr> <td>azimuth</td> <td>float</td> <td>direction of line connecting upstream-downstream nodes in degrees from North</td> </tr> <tr> <td>domain</td> <td>text</td> <td>catchment group, see domain index file</td> </tr> </tbody> </table> <p><em><strong>Attribute description of nodes layer</strong></em></p> <table> <tbody> <tr> <th>Name</th> <th>Data type</th> <th>Description</th> </tr> </tbody> <tbody> <tr> <td>cat</td> <td>integer</td> <td>domain internal feature ID</td> </tr> <tr> <td>segment_node_id</td> <td>integer</td> <td>global ID of segment node at segment intersections, otherwise blank</td> </tr> <tr> <td>n_segments</td> <td>integer</td> <td>number of segments attached to node</td> </tr> <tr> <td>global_id</td> <td>integer</td> <td>global river reach node ID, same as FID</td> </tr> <tr> <td>upstream_line_ids</td> <td>text</td> <td>comma-separated list of global river reach IDs flowing into node</td> </tr> <tr> <td>downstream_line_ids</td> <td>text</td> <td>comma-separated list of global river reach IDs flowing out of node</td> </tr> <tr> <td>domain</td> <td>text</td> <td>catchment group, see domain index file</td> </tr> </tbody> </table> <p> </p> <p><strong>Catchments</strong></p> <p>Catchment outlines for entire river basins (network components, including coastal drainage areas). Catchments for segments (aka. subbasins) and reaches are also available on request.</p> <p><em><strong>Attribute description</strong></em></p> <table> <tbody> <tr> <th>Name</th> <th>Data type</th> <th>Description</th> </tr> </tbody> <tbody> <tr> <td>cat</td> <td>integer</td> <td>domain internal feature ID</td> </tr> <tr> <td>global_id</td> <td>integer</td> <td>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</td> </tr> <tr> <td>area</td> <td>float</td> <td>catchment area in km2</td> </tr> <tr> <td>is_coastal</td> <td>integer</td> <td>1 for coastal drainage areas, 0 otherwise</td> </tr> <tr> <td>domain</td> <td>text</td> <td>catchment group, see domain index file</td> </tr> </tbody> </table> <p> </p> <p><strong>Raster </strong></p> <p>Upstream drainage area and other raster-based products are also available upon request.</p>
ShareScore
44/100
Overall dataset sharing score
Score breakdown
These five areas show where the dataset supports — or may limit — practical reuse.
- Stewardship
- 12
- Harmonization
- 4
- Access
- 12
- Reuse readiness
- 8
- Engagement
- 8