I was wondering whether anyone might be able to tell me in layman's terms how to extract or differentiate between ridges and hilltops from 10m elevation data using ArcGIS 10.1?

2 Answers 2


Defining ridges vs hill/mountain tops is pretty scale-dependent. Jeff Jenness covers conceptually how to model topographic landforms in his article Some Thoughts on Analyzing Topographic Habitat Characteristics. If you poke around on his website, you can find his poster on this as well, under ArcGIS tools > Land Facet Corridor Designer. (Link is here)

Jeff has a tool to model topographic position in his land facet tools extension for ArcMap, and I rewrote a simple 4 class (ridges, canyons, flat slopes, steep slopes) version of his tool as part of a Python toolbox (download the CorridorDesigner general use toolbox).

If you're doing this from scratch, you can:

  1. Run focal stats (mean) on a DEM using a neighborhood size that makes sense for your analysis (large neighborhoods will choke on a 10m DEM though).
  2. Subtract the focal stats mean from the original DEM. This layer (topographic position index - TPI) will give you a measure of whether a pixel is above or below its neighborhood average. Negative values indicate a pixel is below the average elevation of its neighborhood (valleys & canyon bottoms). Positive values indicate a pixel is above the average elevation of its neighborhood (ridgetops & hilltops).
  3. Reclassify the TPI layer to pick out drainages, ridgetops, and slopes. With my implementation of the tool, I used values >= 12 to indicate ridgetops, <= to indicate canyon bottoms, and between -12 and 12 to indicate slopes. What you use for these thresholds really depends on your landscape and study.
  4. If you're interested in breaking out slope classes (e.g. flat areas vs steep slopes), you can optionally calculate slope, reclass it to flat/gentle/steep slopes, and then use a CON statement to replace slope values calculated in step 3 with slope categories.
  • Wonderful Answer! Feb 26, 2014 at 5:37
  • In ArcMap, the geoprocessing tool to use is "Focal Statistics" for the zonal stats mean.
    – dvdhns
    Sep 14, 2016 at 19:08

Creating watersheds should help you locate both ridges and hill top. Then, I would define a hill top as a local maximum, while a point on a ridge is not the maximum (there is one other point higher or equal to this point). You can identify local maxima using the focal statistic tool.

another way to look at the problem is to analyse at the opposite of your DEM (zero minus DEM). You compute the flow accumulation that you convert into streams. One of the ends of the streams will be a top, and the stream will be the ridge.

Note that 10 m DEM is quite precise, so for this type of analysis it is probably better to smooth your layer first in order to avoid local maxima.

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.