Is there anyway to alter elevation of DEM where there are bridges and dams for the flood routing of the River?

I have to calculate discharge of the River from ancient times so at that time there were no dams and bridges.

  • I'm not sure how to go about altering the DEM itself, but I have a couple of ideas/clarification questions for you: First, do you have the locations of the bridges and dams in other vector layer(s)? If so you could look for drastic changes in slope near each of the bridge/dam markers to know which cells to change. Second, rivers are constantly changing entities. Their course in ancient times may be vary different from what it is currently. Similarly climate patterns and rainfall may be very different which would also impact discharge. Jun 10, 2019 at 16:13
  • Thanks alot for the reply. Yes I have the location of Bridges and Dams but I dont know how to edit its elevation. Jun 12, 2019 at 16:14
  • Actually the purpose of the study is the Dam Breaching of River in ancient times for that I dont have to incorporate rainfall and climate change.. Jun 12, 2019 at 16:16
  • See this post on stream burning gis.stackexchange.com/questions/143181/dem-stream-burning
    – GBG
    Feb 20, 2020 at 16:29

1 Answer 1


I am also struggling with that. At present time, the best solution I have found is the following:

  1. remove the bridges by doing so: (i) create a polygon for each bridge (or for all of them), (ii) rasterize those polygons, and (iii) use the raster(s) to eliminate bridges from the original DEM
  2. interpolate the gaps with focal statistics.

However, I encounter many trobules when dealing with point nr.2. Close to the banks the interpolation is very poor, even though I am using an irregular kernel filter for the focal statystics analysis.


I found a solution which works pretty well:

  1. clip raster by extent with a polygon that contains the part you wish to modify
  2. create breaklines/points which will have an elevation (you need to add the Z field when you create the layer)
  3. assign elevations to breaklines/points: with the vertex editor right click on the feature, on the bottom right a panel with vertices/points coordinates will appear. There you can assign the elevation to the vertices/points.
  4. create a mask for the part of DEM you wish to modify: (i) polyognize (create a polygon inside the points/breaklines if they do not correspond to the clip-polygon); (ii) generate a raster from the polygon (v.to.rast with 1 inside and NULL outside. Settings: GRASS Region extent = Use layer extent and Source of raster values = Val; Value=1); (iii) use r.null to replace NULL values with zeroes (settings: The value to replace the null value by = 0).
  5. use TIN Interpolation to generate a raster from the points/breaklines: under Interpolation Attribute select Use Z as interpolation attribute (settings: GRASS Region extent = Use layer extent and choose a resolution that is smaller than the one of the original dtm);
  6. clip the dtm on the mask created at 4.(iii) with raster calculator using the formula mask_0*DTM_interp;
  7. combine the original DTM with the interpolated one with the following expression in raster calculator: "DTM_clipped_at_1" * ("mask_created_at_6"=0)+"DTM_interpolated_at_5"

By following these points you will interpolate a part of the raster and insert it in the old raster.

  • Great answer! Can you add some screenshots to your post? And is it possible to do step 4 in ArcGIS? Thanks
    – Tung
    Apr 1 at 23:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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