Available with Spatial Analyst license.
Understanding the diverse characteristics of terrain is essential for a wide range of applications, from hydrologic studies to landslide susceptibility assessments. One of these applications is classifying terrain into landforms. A landform is the natural shape of the terrain, such as valleys or peaks.
Among the various terrain classification techniques, the Geomorphon method (Jasiewicz and Stepiski, 2013) identifies landforms based on terrain data using elevation differences and visibility concepts. The Geomorphon Landforms tool applies these concepts to find a distinct pattern representing an area of the terrain.
The Geomorphon method can identify a total of 498 unique patterns. Some geomorphons describe landforms that are not seen in the natural environment, while others describe the same landform type. Therefore, there is a many-to-one type of match between geomorphons and landform types. Once the geomorphon has been identified, it can be matched to a landform using a lookup table.
Geomorphon Landforms tool logic
The Geomorphon Landforms tool uses the Geomorphon method to classify terrain into landforms.
For each cell in the input raster, the tool performs the following operations:
- Set up the analysis area. This determines the analysis area using the Search distance and Skip distance parameters.
- Obtain the geomorphon pattern using the Local Ternary Pattern (LTP). To find the Local Ternary Pattern (LTP) for each of the 8 cardinal directions, extend a line-of-sight and classify it based on the nadir and zenith angles.
- Transform the LTP into a base 3 number that records the unique pattern or geomorphon. Store that value for the target cell.
- Match the geomorphon pattern to one of the 10 most common landforms by using a lookup table.
Each of these steps are explained in more detail in the sections below.
Set up the analysis area to calculate the geomorphon pattern
The analysis area for the tool is the terrain area used to calculate the geomorphon pattern at a target cell. It defines which neighboring cells the tool uses to determine the geomorphon pattern.
The analysis area is determined by the Search distance and Skip distance parameters. The Search distance parameter determines the extent of area covered. The Skip distance parameter identifies which area of the immediate surroundings of the target cell will be excluded from the classification. The following illustration shows an example of the analysis area defined by a search distance of 3 cells and a skip distance of 1 cell. The cells included for processing are determined by comparing the distance between each cell center and the target cell to the search distance value. If the search distance value is greater, the cell will be included for processing.

Specifying larger search distance values may generalize the surrounding terrain. Smaller values will capture more detail in the result. Increasing the skip distance value is useful to reduce noise from nearby cells that may represent erroneous elevation values or that may not give additional information in terms of elevation difference.
These two parameters can also help identify terrain features depending on their size. To do this, adjust these parameters to values that represent what you are looking to classify. Some general guidelines for setting these parameters follow:
- Use 50 to 100 times the input cell size as value to the Search distance parameter to identify wide or large terrain features, such as rivers. Identifying wide or large terrain features would also identify small ones in the process but depending on the Skip distance parameter value they may not be identified. Therefore, it is recommended to vary one parameter at a time to find the optimal value for each.
- Use 5 to 15 times the input cell size to identify narrow or small terrain features, such as narrow streams.
- Use smaller values to identify very narrow terrain features, such as ridgelines.
Obtain the geomorphon pattern
Once the analysis area has been set, the next step is to calculate the geomorphon pattern based on the Local Ternary Pattern (LTP).
Determine the Local Ternary Pattern using the Zenith and Nadir angles
First, the LTP is equivalent to assigning a value of 0, 1 or –1 to each of the 8 cardinal directions. The value that a given direction will be assigned is determined by the difference between the zenith and nadir angles.
The zenith angle, Z, the angle formed between the zenith direction (directly overhead) and the line-of-sight extended up to the analysis area boundary along the direction that is being analyzed. This line represents everything that can be seen from the target cell.
The nadir angle, N, is defined in a similar manner. This corresponds to the angle formed between the nadir direction (directly underfoot) and a hypothetical line-of-sight again following the lowest elevation within the area up to the analysis area boundary.
Figure 2 shows the elevation profile of terrain analyzed in one direction (for example, North) and each of the angles defined using their respective line-of-sight.

Once the two angles have been determined, the Flat terrain angle threshold is used to determine the LTP value to assign to the direction under analysis. The mathematical expression is as follows:

where,
- AD is the value assigned to the direction under analysis.
- ΔD is the difference between the nadir and zenith angles, Z and N.
- t is the flat terrain angle threshold value.
The flat terrain angle threshold is a value in degrees that allows you to set a limit on the terrain that will be classified as flat. Following the same example shown in Figure 2, specifying a flat terrain angle threshold of 1 (t = 1 degree), will result in assigning a value of 1 to the direction under analysis. That is because 90° - 45° = 45° > 1°.
The same process is repeated clockwise in each cardinal direction.
Constructing the geomorphon pattern for the target cell
After each of the 8 directions have been assigned a value, the result is concatenated into an 8-tuple (8 elements) that will be stored at the target cell. An example of the 8-tuple would be (0, -1, 0, 1, 0, 0, 1, 1). For ease of storage, the tuple is transformed into a ternary (base 3) number. This result is the geomorphon pattern.
The total number of possible geomorphon patterns is 6561 (38). Many of these are a result of rotation or reflection of other patterns, and the total number can be reduced to 498.
Match geomorphon pattern to landform type
The tool uses the lookup table to match a geomorphon pattern to a specific landform type, following the arguments presented in Jasiewicz and Stepinski (2013). The table matches a geomorphon pattern to one of the 10 most common landforms.

More than one different geomorphon pattern can be matched to a specific landform if there is little variation in their definition. The acceptable variation is a necessary assumption to create the lookup table.
Only Peak and Pit landform types are matched to a unique geomorphon pattern. For Peak landform type (-1, -1, -1, -1, -1, -1, -1, -1) essentially all cells surrounding the target cell are lower. Similarly for Pit landform type (1, 1, 1, 1, 1, 1, 1, 1) essentially all cells surrounding the target cell are higher.
Final landform and geomorphon raster results
The final step is to store the match result in the Output landforms raster parameter value. The geomorphon pattern is an optional output that can be used for further analysis or diagnosis.
References
Jasiewicz, Juroslav and Tomasz F. Stepinski. 2013. "Geomorphons - a pattern recognition approach to classification and mapping of landforms." Geomorphology Volume 182, January 15, pp. 147–56. https://doi.org/10.1016/j.geomorph.2012.11.005