The calculation follows the description in Iwahashi and Pike (2007). Terrain surface texture is calculated by smoothing the input elevation using a median filter over a neighborhood specified by the filter_size parameter (in pixels). Second, pits and peaks are extracted based on the difference between the smoothed DEM and the original terrain surface. By default the algorithm uses a threshold of 1 (> 1 m elevation difference) to identify pits and peaks. This threshold is set in the flat_thres parameter. The spatial frequency of pits and peaks is then calculated using a Gaussian resampling filter over a neighborhood size specified in the counting_filter parameter (default is 21 x 21 pixels, as per Iwahashi and Pike (2007).
Surface-form convexity and concavity are calculated by first using a Laplacian filter approximating the second derivative of elevation to measure surface curvature. The Laplacian filter neighborhood size is set by the filter_size parameter (in pixels). This yields positive values in convex-upward areas, and negative values in concave areas, and zero on planar areas. Pixels are identified as either convex or concave when their values exceed the curv_thres. Similarly to terrain surface texture, the spatial frequency of these locations is then calculated to yield terrain surface convexity and concavity measures.
Optionally, these surface-form metrics along with slope-gradient can be used to produce a nested-means classification of the topography. Each class is estimated based on whether the pixels values for each variable exceed the mean of that variable. The classification sequence follows:
A single iteration of this decision tree is completed for the 8-category classification. However for the 12 category classification, classes 1-4 remain but pixels that otherwise relate to classes 5-8 are passed to a second iteration of the decision tree, except that the mean of the gentler half of the area is used as the decision threshold, to produce 8 additional classes. Similarly for the 16 category classification, pixels that otherwise relate to classes 8-12 are passed onto a third iteration of the decision tree, except that the mean of the gentler quarter of the area is used as the decision threshold. This iterative subdivision of terrain properties acts to progressively partition the terrain into more gentle terrain features.
Here we are going to use the GRASS GIS sample North Carolina data set as a basis to perform a terrain classification. First we set the computational region to the elev_state_500m dem, and then generate shaded relief (for visualization) and slope-gradient maps:
g.region raster=elev_state_500m@PERMANENT r.relief input=elev_state_500m@PERMANENT output=Hillshade_state_500m altitude=45 azimuth=315 r.slope.aspect elevation=elev_state_500m@PERMANENT slope=slope_state_500m
Then we produce the terrain classification:
r.terrain.texture elevation=elev_state_500m@PERMANENT slope=slope_state_500m@PERMANENT \ texture=texture_state_500m convexity=convexity_state_500m concavity=concavity_state_500m \ features=classification_state_500m
Terrain surface texture:
8-category terrain classification:
© 2003-2019 GRASS Development Team, GRASS GIS 7.8.2dev Reference Manual