Discussion of Roughness

Algorithm | Options | Compute at edges of grid | Geographic grids | All output pixel-is-area | Notes | Reference | |

MICRODEM | Normalize distances | No | Correct | No | |||

GRASS | neighborhood size, exponent | No | Yes |
The index represents the mean change in elevation between a grid cell
and its neighbours, over a user-specified moving window size. The
original calculation in Riley et al. (1999) used only a 3x3
neighbourhood and represented the sum of the absolute deviations between
the center pixel and its immediate 8 neighbours. In r.tri, this
calculation is modified so that the calculation can be extended over any
scale by taking the mean of the absolute deviations.
r.tri produces fairly similar results to the average
deviation of elevation values, apart from the center pixel is used in
place of the mean. In practice, this produces a slightly less smoothed
result that can potentially highlight finer-scale terrain features.
However, because the terrain ruggedness index does not consider the
distance of each cell from the centre cell in it's calculation, the TRI
results can become noisy with large window sizes. To avoid this,
weighting each cell by the inverse of its distance can be used by
setting the exponent parameter
to > 0. |
https://grass.osgeo.org/grass78/manuals/addons/r.tri.html | ||

GDAL, Riley | None | Optional | Single conversion | Yes | This algorithm uses the square root of the sum of the square of the difference between a central pixel and its surrounding cells. This is recommended for terrestrial use cases. | https://gdal.org/programs/gdaldem.html | |

GDAL, Wilson | None | Optional | Single conversion | Yes | algorithm uses the mean difference between a central pixel and its surrounding cells. This is recommended for bathymetric use cases. | https://gdal.org/programs/gdaldem.html | |

Whitebox Tools | None | Yes | Single conversion | No | The terrain ruggedness index (TRI) is a measure of local topographic relief. The TRI calculates the root-mean-square-deviation (RMSD) for each grid cell in a digital elevation model (DEM), calculating the residuals (i.e. elevation differences) between a grid cell and its eight neighbours. Notice that, unlike the output of this tool, the original Riley et al. (1999) TRI did not normalize for the number of cells in the local window (i.e. it is a root-square-deviation only). However, using the mean has the advantage of allowing for the varying number of neighbouring cells along the grid edges and in areas bordering NoData cells. This modification does however imply that the output of this tool cannot be directly compared with the index ranges of level to extremely rugged terrain provided in Riley et al. (1999) | https://www.whiteboxgeo.com/manual/wbt_book/available_tools/geomorphometric_analysis.html#RuggednessIndex | |

SAGA 8.2.1 | Standardize, min, max radii, weighting choices | Yes |
Topographic Position Index (TPI) calculation as proposed by Guisan et
al. (1999). This is literally the same as the difference to the mean
calculation (residual analysis) proposed by Wilson & Gallant (2000). The bandwidth parameter for distance weighting is given as percentage of the (outer) radius. |
https://saga-gis.sourceforge.io/saga_tool_doc/8.2.1/ta_morphometry_16.html |

The 30 m DEM compares with the 1 sec DEM, which has actual spacing of 21.5 m x 30.9m. The average slope for the UTM grid is 56.14%, while for the arc second it is 57.45%. This is because the arc second grid slope is computed over an average distance of 26.2 m, and over shorter grid spacing slope increases (Guth and Kane, 2021). Guth and Kane also showed that the overall statistics for elevation, slope, and aspect are very similar for a 1 sec and 26.2 m UTM DEM at this latitude. You cannot compare individual points in a UTM and an arc second grid, because at some points they are at the same point, and at others are up to half the grid spacing apart.

The values computed by the various programs for TRI do not agree, except for Microdem and WhiteBox (small difference probably because Whitebox computes on the edges where points do not have eight neighbors), and Grass/GDAL Wilson which appear to use the same forumlas.

MICRODEM can create this on the Advanced Tab of the **
Raster GIS**, **
Geomorphometry analysis.**

DEM | MD TRI norm | MD TRI | grass TRI | gdal TRI Riley | gdal TRI Wilson | WB TRI |

TRI n | 132660 | 132686 | 132682 | 132689 | 132682 | 134226 |

TRI mean | 11.1 | 15.47 | 13.51 | 43.76 | 13.51 | 15.44 |

TRI avg dev | 5.03 | 5.32 | 4.76 | 15.05 | 4.76 | 5.33 |

TRI std dev | 6.31 | 6.81 | 6.07 | 19.28 | 6.07 | 6.82 |

TRI skewness | 0.7458 | 0.2061 | 0.2084 | 0.2059 | 0.2084 | 0.2137 |

TRI kurtosis | 1.0301 | 0.6714 | 0.5922 | 0.6712 | 0.5922 | 0.6741 |

TRI min | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 |

TRI max | 61.71 | 63.14 | 56.41 | 178.6 | 56.41 | 63.14 |

TRI median | 10.38 | 15.78 | 13.78 | 44.64 | 13.78 | 15.75 |

Despite the differences in the values, all the TRI results correlate highly except for the MICRODEM normalized by distance (which are probably better numbers).

DEM/Grid | MD TRI norm | MD TRI | grass TRI | gdal TRI Riley | gdal TRI Wilson | WB TRI |

MD TRI norm | 1 | 0.7965 | 0.7957 | 0.7965 | 0.7957 | 0.7965 |

MD TRI | 0.7965 | 1 | 0.9958 | 1 | 0.9958 | 1 |

grass TRI | 0.7957 | 0.9958 | 1 | 0.9958 | 1 | 0.9958 |

gdal TRI Riley | 0.7965 | 1 | 0.9958 | 1 | 0.9958 | 1 |

gdal TRI Wilson | 0.7957 | 0.9958 | 1 | 0.9958 | 1 | 0.9958 |

WB TRI | 0.7965 | 1 | 0.9958 | 1 | 0.9958 | 1 |

Highly correlated measures do not add much new information. This tells us if the different programs compute the same thing even if there are differences in the scaling, and for instance that TRI and slope are really the same thing.

**
Correlation Matrix for elevation, slope, TRI, and TPI**

DEM/Grid | MD TRI norm | MD TPI norm | MD TRI | MD TPI | N8E Slope percent | Rugosity (m per 30m) | std 3x3 | grass TRI | gdal TRI Riley | gdal TRI Wilson | gdal TPI | WB TRI | saga tri | saga tpi | |

1.0000 | 0.2356 | 0.0740 | 0.2375 | 0.0752 | 0.2371 | 0.2617 | 0.1202 | 0.2379 | 0.2375 | 0.2379 | 0.0752 | 0.2336 | 0.2334 | 0.1285 | |

MD TRI norm | 0.2356 | 1.0000 | 0.0197 | 0.9990 | 0.0201 | 0.9799 | 0.9459 | 0.3750 | 0.9956 | 0.9990 | 0.9956 | 0.0201 | 0.9990 | 0.9990 | 0.0416 |

MD TPI norm | 0.0740 | 0.0197 | 1.0000 | 0.0199 | 0.9996 | 0.0285 | 0.0117 | 0.0001 | 0.0196 | 0.0199 | 0.0196 | 0.9996 | 0.0199 | 0.0199 | 0.8691 |

MD TRI | 0.2375 | 0.9990 | 0.0199 | 1.0000 | 0.0203 | 0.9799 | 0.9459 | 0.3760 | 0.9958 | 1.0000 | 0.9958 | 0.0203 | 1.0000 | 1.0000 | 0.0423 |

MD TPI | 0.0752 | 0.0201 | 0.9996 | 0.0203 | 1.0000 | 0.0288 | 0.0120 | 0.0002 | 0.0201 | 0.0203 | 0.0201 | 1.0000 | 0.0203 | 0.0203 | 0.8753 |

N8E Slope percent | 0.2371 | 0.9799 | 0.0285 | 0.9799 | 0.0288 | 1.0000 | 0.9305 | 0.2874 | 0.9818 | 0.9799 | 0.9818 | 0.0288 | 0.9799 | 0.9799 | 0.0455 |

Rugosity (m per 30m) | 0.2617 | 0.9459 | 0.0117 | 0.9459 | 0.0120 | 0.9305 | 1.0000 | 0.3382 | 0.9504 | 0.9459 | 0.9504 | 0.0120 | 0.9459 | 0.9459 | 0.0309 |

std 3x3 | 0.1202 | 0.3750 | 0.0001 | 0.3760 | 0.0002 | 0.2874 | 0.3382 | 1.0000 | 0.3408 | 0.3760 | 0.3408 | 0.0002 | 0.3760 | 0.3760 | 0.0169 |

grass TRI | 0.2379 | 0.9956 | 0.0196 | 0.9958 | 0.0201 | 0.9818 | 0.9504 | 0.3408 | 1.0000 | 0.9958 | 1.0000 | 0.0201 | 0.9958 | 0.9958 | 0.0419 |

gdal TRI Riley | 0.2375 | 0.9990 | 0.0199 | 1.0000 | 0.0203 | 0.9799 | 0.9459 | 0.3760 | 0.9958 | 1.0000 | 0.9958 | 0.0203 | 1.0000 | 1.0000 | 0.0423 |

gdal TRI Wilson | 0.2379 | 0.9956 | 0.0196 | 0.9958 | 0.0201 | 0.9818 | 0.9504 | 0.3408 | 1.0000 | 0.9958 | 1.0000 | 0.0201 | 0.9958 | 0.9958 | 0.0419 |

gdal TPI | 0.0752 | 0.0201 | 0.9996 | 0.0203 | 1.0000 | 0.0288 | 0.0120 | 0.0002 | 0.0201 | 0.0203 | 0.0201 | 1.0000 | 0.0203 | 0.0203 | 0.8753 |

WB TRI | 0.2336 | 0.9990 | 0.0199 | 1.0000 | 0.0203 | 0.9799 | 0.9459 | 0.3760 | 0.9958 | 1.0000 | 0.9958 | 0.0203 | 1.0000 | 1.0000 | 0.0420 |

saga tri | 0.2334 | 0.9990 | 0.0199 | 1.0000 | 0.0203 | 0.9799 | 0.9459 | 0.3760 | 0.9958 | 1.0000 | 0.9958 | 0.0203 | 1.0000 | 1.0000 | 0.0417 |

saga tpi | 0.1285 | 0.0416 | 0.8691 | 0.0423 | 0.8753 | 0.0455 | 0.0309 | 0.0169 | 0.0419 | 0.0423 | 0.0419 | 0.8753 | 0.0420 | 0.0417 | 1.0000 |

*Last revision 2/5/2023*