I am trying to come up with a workflow that will extract the location of surface mines from a DEM. My original thought was to fill the depressions in the DEM and then subtract the original DEM from the filled DEM to produce a grid of the sinks in the landscape. This worked well, and the surface mines stick out like a sore thumb because they are very deep sinks, but it also includes shallower natural depressions that were filled in the landscape.

Is there a way I can only fill sinks that exceed a certain depth such that when I subtract the original DEM from the filled DEM the resulting grid only includes the deepest of sinks (which will, hopefully, be all of the mines in the landscape).

I'm using ArcGIS 10 but I recently discovered SAGA GIS so any solutions using SAGA would be welcome as well.


One way: Regiongroup the depression indicator grid (which simply compares the original DEM to the filled DEM), perform a zonal max of the elevation difference grid over those regions, and select accordingly.

  • 1
    I independently came up with this exact same workflow and it looks like the solution I'm looking for! I guess now it is just a matter of figuring out the threshold depth for selecting what is a mine and what isn't. – David Feb 25 '16 at 21:23
  • 1
    Good job, then! You might consider performing a cluster analysis of the distribution of max depths: possibly the old mines will show up as a cluster of greatest depths, with a gap between them and natural depressions. If that doesn't work, do a 2D cluster analysis based on max depth and area of the region. – whuber Feb 25 '16 at 21:35

Since you've already differenced the fill sinks grid, you could Extract by Attributes using the "Where clause". For example: OutRas = ExtractByAttributes(DiffRas, "Value >= 2").

  • The problem with this approach is that many of the "natural" depressions (I call them natural but in reality many of them are valleys crossed by roads which the DEM interprets like a dam) have values that overlap with the values of the depressions I am interested in (surface mines). If I were to simply set the difference grid to Null for values below a threshold (which I think accomplishes the same thing as your Extract above a threshold), the threshold would have to be quite high and I would lose quite a bit of data from the depressions I am interested in. – David Feb 25 '16 at 20:02

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.