---
name: "r.li.patchdensity"
section: "1grass"
platform: "linux"
package: "grass-doc"
version: "8.4.1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/r.li.patchdensity"
---

# r.li.patchdensity(1grass)

Calculates patch density index on a raster map, using a 4 neighbour algorithm

## NAME

**r.li.patchdensity**  - Calculates patch density index on a raster map, using a 4 neighbour algorithm

## KEYWORDS

raster, landscape structure analysis, patch index

## SYNOPSIS

**r.li.patchdensity**\
 **r.li.patchdensity --help**\
 **r.li.patchdensity** **input**=*name* **config**=*name* **output**=*name*  \[--**overwrite**\]  \[--**help**\]  \[--**verbose**\]  \[--**quiet**\]  \[--**ui**\]

### Flags:

- **--overwrite**

  Allow output files to overwrite existing files

- **--help**

  Print usage summary

- **--verbose**

  Verbose module output

- **--quiet**

  Quiet module output

- **--ui**

  Force launching GUI dialog

### Parameters:

- **input**=*name* **\[required\]**

  Name of input raster map

- **config**=*name* **\[required\]**

  Configuration file

- **output**=*name* **\[required\]**

  Name for output raster map

## DESCRIPTION

*r.li.patchdensity* calculates the "patch density index", the number of patches per square kilometer, as:\

```
PD = Npatch / A
```

with:

- •

  **A**:sampling area size

- •

  **Npatch**: number of patches

This index is calculated using a 4 neighbour algorithm, diagonal cells are ignored when tracing a patch.

## NOTES

Do not use absolute path names for the **config** and **output** file/map parameters. If the "moving window" method was selected in **g.gui.rlisetup**, then the output will be a raster map, otherwise an ASCII file will be generated in the folder `C:\Users\userxy\AppData\Roaming\GRASS8\r.li\output\` (MS-Windows) or `$HOME/.grass8/r.li/output/` (GNU/Linux).

A sample area of only NULL values is considered to have zero patches, that is, the result is always ≥ 0.

## EXAMPLES

To calculate patch density index on map *my\_map*, using *my\_conf* configuration file (previously defined with *g.gui.rlisetup*) and saving results in *my\_out*, run:\

```
r.li.patchdensity input=my_map conf=my_conf output=my_out
```

Example for Spearfish forest areas:\

```
g.region raster=landcover.30m -p
# extract forested areas:
r.category landcover.30m
r.mapcalc "forests = if(landcover.30m >= 41 && landcover.30m <= 43, 1, null())"
# patch density (7x7 moving window defined in g.gui.rlisetup):
r.li.patchdensity forests conf=movwindow7 out=forests_p_dens7
r.univar forests_p_dens7
d.rast.leg forests_p_dens7
r.to.vect forests out=forests feature=area
d.vect forests type=boundary
```

Forest map (North Carolina sample dataset) example:\

```
g.region raster=landclass96 -p
r.mapcalc "forests = if(landclass96 == 5, 1, null() )"
r.li.patchdensity input=forests conf=movwindow7 out=forests_patchdensity_mov7
# verify
r.univar forests_patchdensity_mov7
r.to.vect input=forests output=forests type=area
d.mon wx0
d.rast forests_patchdensity_mov7
d.vect forests type=boundary
```

## SEE ALSO

*r.li - package overview,* *g.gui.rlisetup*

## REFERENCES

McGarigal, K., and B. J. Marks. 1995. FRAGSTATS: spatial pattern analysis program for quantifying landscape structure. USDA For. Serv. Gen. Tech. Rep. PNW-351. (PDF)

## AUTHORS

Michael Shapiro - CERL (patch identification)\
 Markus Metz (statistics)

## SOURCE CODE

Available at: r.li.patchdensity source code (history)

Accessed: Monday Feb 24 17:50:45 2025

Main index \| Raster index \| Topics index \| Keywords index \| Graphical index \| Full index

© 2003-2025 GRASS Development Team, GRASS GIS 8.4.1 Reference Manual
