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 |
Notice: this is not the latest Heat Anomalies image service.This layer contains the relative degrees Fahrenheit difference between any given pixel and the mean heat value for the city in which it is located, for every city in the contiguous United States, Alaska, Hawaii, and Puerto Rico. The Heat Anomalies is also reclassified into a Heat Severity raster also published on this site. This 30-meter raster was derived from Landsat 8 imagery band 10 (ground-level thermal sensor) from the summer of 2023.To explore previous versions of the data, visit the links below:Full Range Heat Anomalies - USA 2022Full Range Heat Anomalies - USA 2021Full Range Heat Anomalies - USA 2020Federal statistics over a 30-year period show extreme heat is the leading cause of weather-related deaths in the United States. Extreme heat exacerbated by urban heat islands can lead to increased respiratory difficulties, heat exhaustion, and heat stroke. These heat impacts significantly affect the most vulnerable—children, the elderly, and those with preexisting conditions.The purpose of this layer is to show where certain areas of cities are hotter or cooler than the average temperature for that same city as a whole. This dataset represents a snapshot in time. It will be updated yearly, but is static between updates. It does not take into account changes in heat during a single day, for example, from building shadows moving. The thermal readings detected by the Landsat 8 sensor are surface-level, whether that surface is the ground or the top of a building. Although there is strong correlation between surface temperature and air temperature, they are not the same. We believe that this is useful at the national level, and for cities that don’t have the ability to conduct their own hyper local temperature survey. Where local data is available, it may be more accurate than this dataset. Dataset SummaryThis dataset was developed using proprietary Python code developed at The Trust for Public Land, running on the Descartes Labs platform through the Descartes Labs API for Python. The Descartes Labs platform allows for extremely fast retrieval and processing of imagery, which makes it possible to produce heat island data for all cities in the United States in a relatively short amount of time.In order to click on the image service and see the raw pixel values in a map viewer, you must be signed in to ArcGIS Online, then Enable Pop-Ups and Configure Pop-Ups.Using the Urban Heat Island (UHI) Image ServicesThe data is made available as an image service. There is a processing template applied that supplies the yellow-to-red or blue-to-red color ramp, but once this processing template is removed (you can do this in ArcGIS Pro or ArcGIS Desktop, or in QGIS), the actual data values come through the service and can be used directly in a geoprocessing tool (for example, to extract an area of interest). Following are instructions for doing this in Pro.In ArcGIS Pro, in a Map view, in the Catalog window, click on Portal. In the Portal window, click on the far-right icon representing Living Atlas. Search on the acronyms “tpl” and “uhi”. The results returned will be the UHI image services. Right click on a result and select “Add to current map” from the context menu. When the image service is added to the map, right-click on it in the map view, and select Properties. In the Properties window, select Processing Templates. On the drop-down menu at the top of the window, the default Processing Template is either a yellow-to-red ramp or a blue-to-red ramp. Click the drop-down, and select “None”, then “OK”. Now you will have the actual pixel values displayed in the map, and available to any geoprocessing tool that takes a raster as input. Below is a screenshot of ArcGIS Pro with a UHI image service loaded, color ramp removed, and symbology changed back to a yellow-to-red ramp (a classified renderer can also be used): A typical operation at this point is to clip out your area of interest. To do this, add your polygon shapefile or feature class to the map view, and use the Clip Raster tool to export your area of interest as a geoTIFF raster (file extension ".tif"). In the environments tab for the Clip Raster tool, click the dropdown for "Extent" and select "Same as Layer:", and select the name of your polygon. If you then need to convert the output raster to a polygon shapefile or feature class, run the Raster to Polygon tool, and select "Value" as the field.Other Sources of Heat Island InformationPlease see these websites for valuable information on heat islands and to learn about exciting new heat island research being led by scientists across the country:EPA’s Heat Island Resource CenterDr. Ladd Keith, University of ArizonaDr. Ben McMahan, University of Arizona Dr. Jeremy Hoffman, Science Museum of Virginia Dr. Hunter Jones, NOAA Daphne Lundi, Senior Policy Advisor, NYC Mayor's Office of Recovery and ResiliencyDisclaimer/FeedbackWith nearly 14,000 cities represented, checking each city's heat island raster for quality assurance would be prohibitively time-consuming, so The Trust for Public Land checked a statistically significant sample size for data quality. The sample passed all quality checks, with about 98.5% of the output cities error-free, but there could be instances where the user finds errors in the data. These errors will most likely take the form of a line of discontinuity where there is no city boundary; this type of error is caused by large temperature differences in two adjacent Landsat scenes, so the discontinuity occurs along scene boundaries (see figure below). The Trust for Public Land would appreciate feedback on these errors so that version 2 of the national UHI dataset can be improved. Contact Dale.Watt@tpl.org with feedback.
This layer contains the relative degrees Fahrenheit difference between any given pixel and the mean heat value for the city in which it is located, for every city in the contiguous United States, Alaska, Hawaii, and Puerto Rico. This 30-meter raster was derived from Landsat 8 imagery band 10 (ground-level thermal sensor) from the summer of 2022, with patching from summer of 2021 where necessary.Federal statistics over a 30-year period show extreme heat is the leading cause of weather-related deaths in the United States. Extreme heat exacerbated by urban heat islands can lead to increased respiratory difficulties, heat exhaustion, and heat stroke. These heat impacts significantly affect the most vulnerable—children, the elderly, and those with preexisting conditions.The purpose of this layer is to show where certain areas of cities are hotter or cooler than the average temperature for that same city as a whole. This dataset represents a snapshot in time. It will be updated yearly, but is static between updates. It does not take into account changes in heat during a single day, for example, from building shadows moving. The thermal readings detected by the Landsat 8 sensor are surface-level, whether that surface is the ground or the top of a building. Although there is strong correlation between surface temperature and air temperature, they are not the same. We believe that this is useful at the national level, and for cities that don’t have the ability to conduct their own hyper local temperature survey. Where local data is available, it may be more accurate than this dataset. Dataset SummaryThis dataset was developed using proprietary Python code developed at The Trust for Public Land, running on the Descartes Labs platform through the Descartes Labs API for Python. The Descartes Labs platform allows for extremely fast retrieval and processing of imagery, which makes it possible to produce heat island data for all cities in the United States in a relatively short amount of time.In order to click on the image service and see the raw pixel values in a map viewer, you must be signed in to ArcGIS Online, then Enable Pop-Ups and Configure Pop-Ups.Using the Urban Heat Island (UHI) Image ServicesThe data is made available as an image service. There is a processing template applied that supplies the yellow-to-red or blue-to-red color ramp, but once this processing template is removed (you can do this in ArcGIS Pro or ArcGIS Desktop, or in QGIS), the actual data values come through the service and can be used directly in a geoprocessing tool (for example, to extract an area of interest). Following are instructions for doing this in Pro.In ArcGIS Pro, in a Map view, in the Catalog window, click on Portal. In the Portal window, click on the far-right icon representing Living Atlas. Search on the acronyms “tpl” and “uhi”. The results returned will be the UHI image services. Right click on a result and select “Add to current map” from the context menu. When the image service is added to the map, right-click on it in the map view, and select Properties. In the Properties window, select Processing Templates. On the drop-down menu at the top of the window, the default Processing Template is either a yellow-to-red ramp or a blue-to-red ramp. Click the drop-down, and select “None”, then “OK”. Now you will have the actual pixel values displayed in the map, and available to any geoprocessing tool that takes a raster as input. Below is a screenshot of ArcGIS Pro with a UHI image service loaded, color ramp removed, and symbology changed back to a yellow-to-red ramp (a classified renderer can also be used): A typical operation at this point is to clip out your area of interest. To do this, add your polygon shapefile or feature class to the map view, and use the Clip Raster tool to export your area of interest as a geoTIFF raster (file extension ".tif"). In the environments tab for the Clip Raster tool, click the dropdown for "Extent" and select "Same as Layer:", and select the name of your polygon. If you then need to convert the output raster to a polygon shapefile or feature class, run the Raster to Polygon tool, and select "Value" as the field.Other Sources of Heat Island InformationPlease see these websites for valuable information on heat islands and to learn about exciting new heat island research being led by scientists across the country:EPA’s Heat Island Resource CenterDr. Ladd Keith, University of ArizonaDr. Ben McMahan, University of Arizona Dr. Jeremy Hoffman, Science Museum of Virginia Dr. Hunter Jones, NOAA Daphne Lundi, Senior Policy Advisor, NYC Mayor's Office of Recovery and ResiliencyDisclaimer/FeedbackWith nearly 14,000 cities represented, checking each city's heat island raster for quality assurance would be prohibitively time-consuming, so The Trust for Public Land checked a statistically significant sample size for data quality. The sample passed all quality checks, with about 98.5% of the output cities error-free, but there could be instances where the user finds errors in the data. These errors will most likely take the form of a line of discontinuity where there is no city boundary; this type of error is caused by large temperature differences in two adjacent Landsat scenes, so the discontinuity occurs along scene boundaries (see figure below). The Trust for Public Land would appreciate feedback on these errors so that version 2 of the national UHI dataset can be improved. Contact Dale.Watt@tpl.org with feedback.
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 |