This tool can be used to calculate the spherical standard deviation of the distribution of surface normals for an input digital elevation model (DEM; `dem`). This is a measure of the angular dispersion of the surface normal vectors within a local neighbourhood of a specified size (`filter`). spherical_std_dev_of_normals is therefore a measure of surface shape complexity, texture, and roughness. The spherical standard deviation (s) is defined as:

> s = √[-2ln(R / N)] × 180 / π

where R is the resultant vector length and N is the number of unit normal vectors within the local neighbourhood. s is measured in degrees and is zero for simple planes and increases infinitely with increasing surface complexity or roughness. Note that this formulation of the spherical standard deviation assumes an underlying wrapped normal distribution.

The local neighbourhood size (`filter`) must be any odd integer equal to or greater than three. Grohmann et al. (2010) found that vector dispersion, a related measure of angular dispersion, increases monotonically with scale. This is the result of the angular dispersion measure integrating (accumulating) all of the surface variance of smaller scales up to the test scale. A more interesting scale relation can therefore be estimated by isolating the amount of surface complexity associated with specific scale ranges. That is, at large spatial scales, s should reflect the texture of large-scale landforms rather than the accumulated complexity at all smaller scales, including microtopographic roughness. As such, this tool normalizes the surface complexity of scales that are smaller than the filter size by applying Gaussian blur (with a standard deviation of one-third the filter size) to the DEM prior to calculating R. In this way, the resulting distribution is able to isolate and highlight the surface shape complexity associated with landscape features of a similar scale to that of the filter size.

This tool makes extensive use of integral images (i.e. summed-area tables) and parallel processing to ensure computational efficiency. It may, however, require substantial memory resources when applied to larger DEMs.

## References

Grohmann, C. H., Smith, M. J., & Riccomini, C. (2010). Multiscale analysis of topographic surface roughness in the Midland Valley, Scotland. IEEE Transactions on Geoscience and Remote Sensing, 49(4), 1200-1213.

Hodgson, M. E., and Gaile, G. L. (1999). A cartographic modeling approach for surface orientation-related applications. Photogrammetric Engineering and Remote Sensing, 65(1), 85-95.

Lindsay J. B., Newman D. R., Francioni, A. 2019. Scale-optimized surface roughness for topographic analysis. Geosciences*, 9(7) 322. DOI: 10.3390/geosciences9070322.

## See Also

circular_variance_of_aspect, multiscale_roughness, edge_density, surface_area_ratio, ruggedness_index

## Function Signature

`def spherical_std_dev_of_normals(self, dem: Raster, filter_size: int = 11) -> Raster: ...`

## Project Links

WbW Homepage User Manual Support WbW