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.
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
Whitebox GAT (open-source hydrology and remote sensing package) has a method by this name in its Hydrology utilities. Whitebox is unique in that it exposes the source code and algorithms used by the analysis via the UI (note the View Code button). Even if you intend to isolate your procedures to ArcGIS, there may be some benefits to experimenting with another flavor.
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.
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.
For Arcgis, Luke's answer seems perfect, but as it's mentionned WhiteBox GAT in another answer, i can't help adding some additionnal info on other "flavors" in case it could help.
SAGA-GIS (free) has some interesting preprocessing features - one of them can answer your question : http://www.saga-gis.org/saga_tool_doc/2.1.3/ta_preprocessor_6.html
You will need a raster DEM and your river network in a raster format (Shapes to Grid should accomplish that - anything else should be nodata)
Module Burn Stream Network into DEM
Burns a stream network into a Digital Elevation Model (DEM). Stream cells have to be coded with valid data values, all other cells should be set to no data value. First two methods decrease . The third method ensures a steady downstream gradient. An elevation decrease is only applied, if a downstream cell is equally high or higher. You should provide a grid with flow directions for determination of downstream cells. The 'Sink Drainage Route Detection' module offers such flow directions.
Author: O.Conrad (c) 2011
Menu: Terrain Analysis|Preprocessing
Check out the MAPC (MAPC.org) toolbox here
One of the tools creates a "Burn Raster" from vector lines and DEM