I am working with a Digital Elevation Model for the area in and around a small city, attempting to delineate watersheds using the Hydrology tools in the Spatial Analyst extension.
The problem is that there are quite a large number of artificial drainage structures (e.g. storm sewers and culverts), not reflected in the DEM, that are preventing me from getting accurate results.
I think I could improve the accuracy of my watersheds if I could modify the DEM by "re-instating" these drainage channels (I have a vector layer containing the locations of the drainage structures, currently as line features that can easily be buffered and exported as polygons).
Does anyone have any experience doing this (or similar) and would like to share the method they used? I believe it is possible to use the Raster Calculator to modify elevations in a DEM within a specific area using a mask, but I do not have experience with this kind of operation and I have not been able to find any example scripts or tutorials just from searching the web.
Thanks in advance for any help or pointers you might be able to provide.
I believe you will be able to accomplish this using the Mosaic to New Raster tool. Steps:
1. Convert the buffered polygons to rasters using the Polygon to Raster tool. Specify a field that will represent the pixel value, and choose the same cell size as the DEM
2. Run the Mosaic to New Raster tool to mosaic the original DEM with the output from the Polygon to Raster tool. Select the Mosaic Method to either 'First' or 'Last' depending on where the output from the Polygon to Raster is within the Input Rasters. This will replace the original DEM values.
Thank you for your response. I think the method you described would work perfectly if I had Invert elevations for all the storm drainage structures that I could use to determine the pixel value when I convert the polygons into Rasters.
In fact I may still be able to come up with a value for these elevations using the Identify tool to query the pixel values at each end of the drainage structures and then populating that into the attribute table, however that might be quite time consuming given that there are over 200 drainage structures in the shapefile!
There is a way to extract the elevation values from a DEM to and populate them to a point feature which might be the way to go but it seems like a lot of steps (converting the drainage line vertices to points and then joining them back again), though still probably less than using the Identify tool for each and every feature!
You shouldn't need elevations for your structures - simply subtract a reasonable value from your DEM at each structure.
1.) Polygon to Raster, as Jake suggests.
2.) Subtract a value (e.g. 10m) from your DEM: Con (IsNull("structures"), "DEM", "DEM"-10)
What you are doing with the SA tools is the same thing that Arc Hydro does. Arc Hydro is an ESRI product free for the downloading. If you are doing a one-time project, the muscling it through SA is fine. If you will do this again and again, then you may get and learn Arc Hydro. Everything that Arc Hydro does I believe you can do with SA. However, Arc Hydro goes way beyond the simple tasks.
The concept is simple. Start with a raw DEM, "burn in the streams" using polylines for the drainage system or streams. Convert the stream layer to a raster with a big value and subtract that from the DEM. You can burn this deep, real deep. The next thing to do is to "build walls". Here you create a raster from a "wall" polyline or polygon using a big value. Then you have to "breach" the wall using the stream raster. Then add the results to the DEM. This raises the DEM where you need the flows not to cross. You need this to be at least 2 cells wide or the flow will "sneak" through the corners. After this is done you need to fill sinks. If you don't fill sinks, when you do the flow direction, some will end in the sinks and not where you want the flows to go. Once the flow direction is final, then the rest of the watershed analysis should go smoothly. There are occasional situations where you need to revise the flow direction (adjust flow direction with streams in Arc Hydro), but I find this to be a rare occasion. Good to be aware of it though. Arc Hydro has a flow trace tool that would make it worth installing Arc Hydro anyway. It allows you to click on a cell and see which way the flow direction goes.
Since this is process is always iterative for me, I use model builder so that I can easily rerun the process as I make minor corrections in the stream polylines or wall polyline. Arc Hydro comes with some ready-made model builder tools and workflows. I copy and modify these for my use.
There is a Arc Hydro discussion group where you can get help from the community. I created a discussion in that forum a while back called ArcHydro Problem Solvers. If you want to try using Arc Hydro, it might be worth perusing that discussion.
Wow, thank you Mark, I will definitely check that out. I'm not sure if the project I am working on is a one time deal or if we may end up having to make revisions or perform this kind of analysis for several areas/locations. Either way it is good to know that these tools exist, and your instructions should give me enough to go on to accomplish what I am trying to do. Thanks again for the advice!
What Darren suggests is the way to go. The technique he describes is sometimes called "burning in the drainages". Essentially you are modifying your DEM to make it hydrologically correct for the exceptions you know about that are not showing in the DEM.
To elaborate for others reading this, Step 2 (The subtraction) is done in Raster Calculator with the Con function. I mention this as it not obvious at first from just reading the Help on Con that Raster Calculator/Map Algebra is one of the places you can run Con.
It will likely take a few runs with with different subtraction values to come up with the optimal result.
Con (Spatial Analyst)
Conditional Evaluation with Con
Chris Donohue, GISP
I believe I'm having a similar issue. I have a 3d multipatch polygon that I want to "burn" into or modify a raster file. I've converted the multipatch to a raster and tried to mosaic but it doesn't seem to work, I just get the following image/raster as my result... Someone has also suggested the "Con(IsNull("New_DEM"),"DEM", ("DEM" + "New_DEM"))" method but it just returns the smaller area.
Here is my original post... Re: Update DEM or elevation data