GRASS logo


r3.forestfrag - Computes the forest fragmentation index (Riitters et al. 2000)


raster3d, landscape structure analysis, vegetation structure analysis, forest, fragmentation index, Riitters


r3.forestfrag --help
r3.forestfrag [-rta] input=name output=name size=number [pf=name] [pff=name] transitional_limit=float patch_limit=float [interior_limit=float] [color=string] [--overwrite] [--help] [--verbose] [--quiet] [--ui]


Set computational region to input raster map
Keep Pf and Pff maps
Trim the output map to avoid border effects
Allow output files to overwrite existing files
Print usage summary
Verbose module output
Quiet module output
Force launching GUI dialog


input=name [required]
Name of forest raster map (where forest=1, non-forest=0)
output=name [required]
Name for output 3D raster map
size=number [required]
Moving window size (odd number)
Options: 3-
Default: 3
Name for output Pf (forest area density) raster map
Proportion of area which is forested (amount of forest)
Name for output Pff (forest connectivity) raster map
Conditional probability that neighboring cell is forest
transitional_limit=float [required]
Default: 0.6
patch_limit=float [required]
Default: 0.4
Source raster for colorization
Input and color_input are taken from input and color_input options respectively. The rest is computed using r.slope.aspect
Options: sambale, riitters, perceptual
Default: sambale
sambale: Sambale, Stefan Sylla
riitters: Riitters et. al 2000
perceptual: Perceptually uniform

Table of contents


TODO: Create a description specific for 3D version r.forestfrag Computes the forest fragmentation following the methodology proposed by Riitters et. al (2000). See this article for a detailed explanation.

It follows a "sliding window" algorithm with overlapping windows. The amount of forest and its occurence as adjacent forest pixels within fixed- area "moving-windows" surrounding each forest pixel is measured. The window size is user-defined. The result is stored at the location of the center pixel. Thus, a pixel value in the derived map refers to "between-pixel" fragmentation around the corresponding forest location.

As input it requires a binary map with (1) forest and (0) non-forest. Obviously, one can replace forest any other land cover type. If one wants to exclude the influence of a specific land cover type, e.g., water bodies, it should be classified as no-data (NA) in the input map. See e.g., blog post.

Let Pf be the proportion of pixels in the window that are forested. Define Pff (strictly) as the proportion of all adjacent (cardinal directions only) pixel pairs that include at least one forest pixel, for which both pixels are forested. Pff thus (roughly) estimates the conditional probability that, given a pixel of forest, its neighbor is also forest. The classification model then identifies six fragmentation categories as:

interior:       Pf = 1.0
patch:          Pf < 0.4
transitional:   0.4 ≤ Pf < 0.6
edge:           Pf ≥ 0.6 and Pf - Pff < 0
perforated:     Pf ≥ 0.6 and Pf - Pff > 0
undetermined:   Pf ≥ 0.6 and Pf = Pff



Petras, V., Newcomb D. J., Mitasova, H. 2017. Generalized 3D fragmentation index derived from lidar point clouds. Open Geospatial Data, Software and Standards 2017 2:9 DOI: 10.1186/s40965-017-0021-8
Riitters, K., J. Wickham, R. O'Neill, B. Jones, and E. Smith. 2000. Global-scale patterns of forest fragmentation. Conservation Ecology 4(2): 3. [online] URL:


r3.count.categories, g.region, r.forestfrag


Vaclav Petras, NCSU GeoForAll Lab
Paulo van Breugel, main author of the 2D version (r.forestfrag)


Available at: r3.forestfrag source code (history)

Latest change: Monday Jan 30 19:52:26 2023 in commit: cac8d9d848299297977d1315b7e90cc3f7698730

Main index | 3D raster index | Topics index | Keywords index | Graphical index | Full index

© 2003-2024 GRASS Development Team, GRASS GIS 8.3.3dev Reference Manual