Burning stream network into DEM layer using ArcGIS Desktop?

I am working on a DEM that in an area where there is little relief.

I would like to 'burn' the river network into the DEM so I can calculate flow accumulation and flow length accurately.

I am using ArcGIS Desktop 10.

-
Do your river network polylines have Z values? – Kirk Kuykendall Jan 9 '12 at 3:23
No they don't have Z values. They from the DNR. – Kate Jan 9 '12 at 3:27

You could use your existing DEM to create height points and/or contours, then use the Topo to Raster tool to re-create a hydrologically correct DEM including your water network. I'm not 100% certain how different the resultant surface would be from your original DEM, though you can be sure it'll work for creating stream networks, if exact height measures aren't vital. The Topo to Raster tool also allows for other hydrologically significant features such as water bodies and known sinks.

It requires the Spatial Analyst extension, though I'm assuming you have that if you're looking at flow accumulation & length in the first place.

I haven't tried this myself and don't have data handy to whip up a test right now, but I can't see a reason why it wouldn't work.

-

ArcHydro has many DEM processing tools, one being Stream burning using the AGREE methodology. I've used it several times. It's an extension to ArcMap and is fairly comprehensive.

-

Convert your stream vectors to raster with a value of 1 and the same extent and cellsize as your DEM. In the Raster Calculator use a map algebra expression something along the lines of:

``````Con("rivers"==1, "DEM" - 1, "DEM")
``````

If you want to burn in the streams more than 1 elevation unit, change `"DEM" - 1` to `"DEM" - a bigger value`.

To implement the Whitebox GAT decay coefficient algorithm (Z = E - (G / (G + D))^k * H) from @elrobis answer in the ArcGIS 10 raster calculator, use something like:

`"DEM" - Power (G / (G + EucDistance("rivers_raster") ), k ) * H`

Replace G with your cellsize, k with a value >0 (decay coefficient) and H with the maximum amount to lower your DEM by., e.g:

`"DEM" - Power (30 / (30 + EucDistance("rivers_raster") ), 2 ) * 5`

-
Thank you! Simple, I like it. – Kate Jan 9 '12 at 3:25