I am using a 2x2m DEM to simulate runoff on a 2D hydrodynamic model. After a baseline simulation, I am interested in evaluating the impact of adding depressions in specific areas that may work as small catching basins that accumulate surface runoff. See for example the photo below showing a flooded street near a park, and its DEM:

enter image description here

enter image description here

What I would like to do, is to carve a depression so that the park in the intersection acts as a catchment of the water that has accumulated on the roads. A quick and dirty approach would be to digitize the park's boundaries, convert it to a raster with a flat, constant value, and then use that value to substract it from the original DEM. However, this would mean that the park's topography gets lowered, but remains in shape (e.g. the raised tree pits on the Northeast that block water would be lower, but still exist).

In addition, just lowering the park's limits could mean that water does not accumulate in the new depression if the slope on the roads does not lead to it, so I infer that I should make small alterations on the roads' DEM area in order to redirect flow towards the central part of the park.

Acknowledging that DEM manipulation can be tricky, I am unsure how to approach this. regarding issue #1 (flattening the park before lowering it to create the depression) I think I could just create a raster and calculate the difference between each cell's value and the area's minimum. This way i would remove the park's topography.

Regarding issue #2 (how to make small, suddle alterations on the surrounding area in order to direct flow towards the new basin) I am completely clueless on how to operate in an efficient manner. Is there a method / tool that could be used to, for example, convert a step into a contiguous slope? (see diagrams)

I am working coordinately on ArcGIS and R, so solutions that use any of these options / combine them are welcome.

enter image description here

enter image description here

enter image description here


I made a tool for ArcGIS Desktop many years ago that may be able to help you. It's probably not very efficient because I wrote it before I had a lot of experience in scripting. But it is quite customizable and allows you to add "smooth" depressions while also specifying exactly how "smooth" they should be via a mathematical function. There is a short paper explaining how it works in the repo:


  • Sweet! thanks, will check it out and report back! Feb 2 at 16:48
  • Based on the explanatory paper - wil the result be the same on a non-flat DEM? or should I first flatten the area on which to later apply the tool so that the depression is uniform? Feb 2 at 17:24
  • 1
    The result will be the same raster, but with a depression stamped onto it. Any cells with fall inside a specific step will have a value added to or subtracted from it (based on your parameter choice). That value is calculated via a function where the only variable is " distance away from the input geometry".
    – wfgeo
    Feb 3 at 8:34
  • As I dig into the tool, I have a few questions. 1) can more than one function be used depending on the distance intervals? e.g. have a linear slope first, and a polynomial hole in the center (see option B, alboeit sloppily drawn). and 2) can a maximum depth be defined at which the function stops recalculating the abstraction? e.g. if abstraction = max_depth then abstraction = max_depth. Since I am not using Python, I guess I could at least infer the code and replicate it in R. Feb 3 at 20:47

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.