Deriving River Network using QGIS,SRTM and OpenStreetMap
Posted by Deepthij on 21 August 2021 in English. Last updated on 5 September 2021.The article represents the method I have used to generate a stream network in a high altitude region in Kerala. The stream network of Devikulam in Munnar is the selected study area and stream and basin is generated using some tools available in QGIS. I am using SRTM DEM with a 30m resolution clipped to the study area and a set of SAGA tools available.
The steps are as follows:
- Load the DEM and reproject using the Warp/reprojection tool
The first step is to clip and reproject a DEM into a projected coordinate system. Use the option, Raster > Project > Warp/Reproject
Select the required Projected coordinate system with reference to the study area.
- Fill Sinks in the reprojected DEM
This step is done to correct any unusual distortions of the DEM and to obtain a continuous hydrological network.
Here I am using Fill sinks, SAGA algorithm
Firstly, In settings ensure that SAGA tools are enabled.
From the processing toolbar > search and select Fill sinks(Wang & Liu) tool
Save the file and this filled DEM will be used for further processing.
3.Generating Strahler order streams
To get an idea about the existing order of the stream network, we can generate a reference layer using the Strahler order. This will give a clearer picture of Primary, Secondary and feeder streams and their hierarchy based on the principle of Strahler Stream Order
From the processing toolbox > Select Strahler Order
This will generate a raster file with stream networks Use the symbology feature to style the river streams for better visualization.
4.Generating vector channel network
To generate vector network of channels and drainage basins
From Processing toolbar > select the SAGA tool > Channel network and drainage basins tool
The threshold value will determine the detailing of the stream. ie. to decrease the value for a more detailed stream and vice versa. Now we have the stream network and drainage basins
By default, the attribute table of the generated shapefile contains the fields: stream order, length of the stream etc.
5.Visualization using Hillshade
For better visualization, we can overlay a hillshade layer with our stream channels generated.
This will give a better perception of the area. Go to Raster > Analysis > Hillshade, and overlay the stream channel
Identifying missing streams in Openstreetmap
The next most important step is to identify the data gaps in OpenStreetMap. We can do this by comparing the streams we generated using SRTM DEM and existing stream networks in OSM. The streams can either be extracted from OSM using specific tags and values from overpass-turbo or using the QGIS plugin QuickOSM
- Generating Buffer
Firstly load the extracted stream network from OSM and reproject the layer to a projected coordinate system. The reprojected files are used to create buffers.
To create buffer choose, Vector > Geoprocessing tool > Buffer Apply a Buffer distance of 100 meters to both the OSM Channel and SRTM Channel.
- To find the incorrect or missing stream we can apply the Difference tool
From Vector > Geoprocessing tool > Difference
First, take input layer - OSM stream, Overlay layer as SRTM stream 100-meter Buffer
The process will give an output with consecutive Incorrect streams
Secondly, take input layer - SRTM Stream and, Overlay layer as OSM stream 100-meter Buffer
The results will give Missing streams
A logical comparison of the resulting layers will give us an idea about the data gaps in OSM. This can be identified and later hand-drawn using any OSM editors.