Generating hydrology from SRTM data

In terrain with some topographic relief a DEM can be used to estimate the position and relative volume of streams under the principal that all streams flow downhill.

 

STEP 1. Get SRTM data online.

Download the tiles in Arc/Info ASCII if possible, or use HGT or BIL format. DTED is a little more difficult to work with.

SRTM data in 3 arc sec (90m) resolution can be found in either 'research' or 'finished' grade http://SRTM.USGS.GOV (Thanks to NASA and the USGS)

'Finished' grade SRTM data is now available to the public. Finished grade has speckling holes filled and (significantly, for hydrology studies) it has larger rivers "burned in" to the SRTM.

Burned-in hydrology means that these streams are put in a topographic groove in the SRTM data created by lowering the overall elevation of the SRTM slightly along the stream course. This process should help with hydrologic analysis described here. Coastlines are also masked on the 'finished' SRTM data.

The finished grade SRTM data would be ideal for this project except that it still has large no-data void areas. At this point you may not want to get your data from the USGS because of the No-Data area voids.

A team of researchers at the CGIAR Consortium for Spatial Information (UC Berkeley and University of Leeds) are generously serving worldwide SRTM data that has been processed to have the speckling voids filled. This data can be downloaded for free from http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp (Thanks to CGIAR Consortium for Spatial Information)

ArcToolbox can convert Arc/Info ASCII or BIL (HGT) files to binary GRID. SRTM tiles can then be stitched together in Raster Calculator using the Mosaic or Merge commands.

STEP 2. Download and install the Hydrologic Analysis Sample DLL from the ESRI ArcObjects site under Samples -> Spatial Analyst http://arconline.esri.com/arcobjectsonline/ If you have problems with this step see this thread http://forums.esri.com/Thread.asp?c=93&f=995&t=43342&mc=31#msgid111138

STEP 3. Load the DEM data as a single GRID (with Spatial Analyst) and from the Hydrology toolbar choose Fill Sinks...

STEP 4. From the Hydrology toolbar choose Flow Direction... using the Filled Sinks DEM as the Input surface. Check both the Create Drop and Force Flow boxes.

STEP 5. From the Hydrology toolbar choose Flow Accumulation Use the Flow Direction GRID as the Direction Raster and for the Weight Raster use the Rain Drop GRID.

STEP 6. The stream networks should be visible on the resulting GRID surface but they need to be ranked by the size of the stream for proper display. Under Spatial Analyst toolbar choose Reclassify... using the Flow Accumulation GRID. Then click the "Classify" button. You may have to change the Classification Method menu to Jenks. Under Classes choose "6" and click OK. (this step may require that you experiment to find the settings and classifications that work best for your region). Then back in the Reclassify window under the "New Value" column replace the "1" with "NoData" and use the following values:

2 becomes 5

3 becomes 4

4 becomes 3

5 becomes 2

6 becomes 1

STEP 7. Under Spatial Analyst choose "Convert... Raster to Features..." For Input Raster use your Reclass of Flow Accumulation GRID. For Output Geometry choose "Polyline". Your Output features specifies where your streams Shapefile should be saved.

STEP 8. Finally, go to the Properties... Symbology tab for the resulting Streams shapefile and choose "Show: Categories" and Unique Values. For the Value Field use the GRID_CODE field and then click "Add All Values" button. Uncheck the <all other values> line. Select all the output and use the Blue for rivers line symbol. Then choose each one at a time and choose the line weight you want to use. I tend to use the following:

rank weight

1 = 1.5

2 = 1

3 = .7

4 = .4

5 = .4

 

with the intermittent stream (dashed line) symbol. Please post comments or feedback with suggestions below. -

Additional comments

Given the coarseness of the SRTM DEM data (90m) the routes of the streams are probably not very reliable in the flatter regions. To check this you could overlay the resulting vectors o­n satellite imagery and compare them. Rivers and riperian habitat usually appear clearly in imagery.

On further experimentation I've found out a few more things:

1. the "Rain Drop" calculation doesn't work very well over about 1:500,000 scale SRTM DEM in the rolling hills country of South Africa.

2. To get more tributaries to be included in Class 5 try halving the top number in the list of class boundaries in the Classify... box. If this does something like what you want then experiment further with the top two boundaries so that Class 4 and 5 streams are roughly the groups you'd like before converting to Vector. 3. I'm still getting inconsistent Stream classes on the flatter terrain. I think it's just too flat to calculate the accumation basins for these areas. I'll get Class 1 streams (largest) and then class 5 (intermittent) adjacent along the same stretch of river. Clearly the hierarchy isn't worked out. I would be interested in hearing about any solutions to this problem. I ended up manually reassigning river classes where necessary.

Comment on Re: Generating hydrology from SRTM DEM data (Score: 1) by nathan on May 20, 2005 - 11:09 PM (User information | Send a message

Comparing SRTM pixel values against GPS I got an RMSE = 34 m. It fails the specs of the data (16 m accuracy) but the spatial resolution is 90 m; therefore, 34 m error does not seem to be an issue.

However, the side looking nature of SRTM may render interpolated hydrology problematic. Based on literature and tests with SRTM it seems that aspects with higher error vary by the region.

I found greater errors in E, NE, SE, S aspects. These are listed in declining order of error. Accuracy changed by slope as well. Slope <10 deg. RMSE = 30. SLope > 10 deg RMSE = 50.