I have a DEM. Created all files related to watershed including accumulation, direction, streams etc... I'm stuck creating a dam. I request you to please let me know how to build an artificial 'dam' across a stream/river.

Please suggest any software/methods to do.

  • 1
    What should the output be? A data structure to analyze the impoundment of the proposed dam? A map? A mock-up satellite or 3D image? A CAD file of contours suitable for engineering analysis?
    – whuber
    Dec 10 '11 at 17:43
  • 1
    yes... I am looking for impoundment surface area/layers/map of proposed dam. I am having arcgis, arc hydro, surfer softwares. Is there any way to accomplish this with this softwares/extensions etc?? And also I want to join/close the contour of elevation"X" so that I can avoid constructing artificial dam.but I am anable to do this so far...please guide me... Dec 11 '11 at 2:43
  • thank you for this example a question what we could do if the slope of the upstream different from the slope of the downstream 1:4 and 1:5, could we do it using the Euclidean distance?? and could you please write how could we combine the DEM of the Dam with the original DEM could you please write the statement prefareabley in QGIS Thanks alot Madi
    – Madi
    Feb 11 '19 at 11:42

Begin by considering the type of dam construction. Some dams are high, thin, and curved; others--including earth dams, which are perhaps commonest--tend to be straight across and quite thick, with slopes that vary from 1:2.5 to 1:5 (40% to 20%). For many examples, see the illustrations in B. Bassell's 1904 study on earthen dams.

You need to create a DEM of the dam which reflects the intended type of construction. For many purposes, such as estimating the impoundment volume, this DEM need not be highly accurate. This may allow you to create its elevations with a simple formula. For example, to create a DEM of a straight earthen dam with upstream and downstream slopes of 1:5,

  • draw a line segment (or thin polygon) corresponding to the top of the dam,

  • compute the Euclidean distance to this line segment (this is a Spatial Analyst operation),

  • divide that by 5 (or whatever the slope should be)--this is a simple "map algebra" operation in Spatial Analyst--and

  • subtract that from the elevation of the top of the dam (another map algebra operation).

Regardless of how you create this DEM of a "raw dam," combine it with the original DEM simply by taking the larger of the dam elevation and the natural elevation, cell by cell (one final map algebra operation).

For example, suppose the area in the western third of this DEM will be impounded by a dam spanning the narrow passage crossed by the yellow line segment (manually) sketched here:


Its Euclidean distance grid initially looks rather uninteresting and useless:

Raw dam

However, when combined with the DEM as described (and hillshaded and contoured for better viewing), we obtain this image, to be compared to the original DEM:

Finished dam

In this map, which is about 3000 feet by 2000 feet, a 57.5 foot dam with 1 in 5 slopes on both sides has been drawn. The contours are at 10 foot intervals.

  • this is very thoughtful! great idea. Dec 11 '11 at 17:44
  • For step 4 where you subtract the slope raster from the elevation of the top of the feature I found I actually had to add it.
    – ndthl
    Aug 25 '13 at 9:36
  • @ndthl Then you must have done something different beforehand, because a positive slope times a distance pretty obviously increases away from the dam location. If you used a negative slope, for instance, then adding was exactly the right thing to do.
    – whuber
    Nov 9 '15 at 21:30

Well, the "de facto" way of doing it, if I understood you correctly (you want to modify a DEM to contain the dam and it's lake) you will need to create a separate DEM just for the dam.

The way to do it is to use a flat DEM with the height of your lake. Create a constant DEM. It cannot be a rectangular DEM, it must have the shape of the lake contour.


After that just replace the values on the original DEM that intersect your lake polygon by this constant DEM. It should provide you with a flat area surface DEM containing your lake.

In this step you will need a polygon,with the lake shape. Convert it to Raster and make it constant (with the value of lake height). Then you can easily replace the values on the old dam (do not sum the values, otherwise you will have just heightened the terrain) using map algebra tools.


To model the actual dam, i would suggest another software, as Google SketchUp.


If you simply want to create a barrier across the stream and don't care about side slopes of the dam:

  1. Make a new shapefile and create a narrow polygon across the stream where you want the wall/dam.
  2. Convert the polygon to raster (Polygon to Raster)
  3. You may need to copy this new raster (Copy Raster) and set the "NoData Value" to zero to remove annoying background data that will cover up your merge in the next step
  4. Merge the new raster with your original DEM (Mosaic to New Raster). Ensure you prioritize which raster values you want to take priority over the other.

Now you have a new raster with the artificial dam. This doesn't have any ground slope. It only changes the elevation values for the pixels where you drew your polygon, in other words, a vertical earth wall.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.