GRASS logo

Note: A new GRASS GIS stable version has been released: GRASS GIS 7. Go directly to the new manual page here

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


raster, landscape structure analysis, patch index

SYNOPSIS help map=name conf=name output=name [--overwrite] [--verbose] [--quiet]


Allow output files to overwrite existing files
Verbose module output
Quiet module output


Name of input raster map
Configuration file
Name for output raster map

DESCRIPTION calculates the "patch density index", the number of patches per square kilometer, as:
PD = Npatch / A

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


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

A map of NULL values is considered to have zero patches.
If raster area is 0, returns -1. This is only possible if the raster is masked.
If you want to change these -1 values to NULL, run subsequently on the resulting map:

r.null setnull=-1 map=my_out
after index calculation.


To calculate patch density index on map my_map, using my_conf configuration file (previously defined with and saving results in my_out, run: map=my_map conf=my_conf output=my_out

Example for Spearfish forest areas:

g.region rast=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 forests conf=movwindow7 out=forests_p_dens7
r.univar forests_p_dens7
d.rast.leg forests_p_dens7 forests out=forests feature=area
d.vect forests type=boundary

Forest map (North Carolina sample dataset) example:

g.region rast=landclass96 -p
r.mapcalc "forests = if(landclass96 == 5, 1, null() )" map=forests conf=movwindow7 out=forests_patchdensity_mov7

# verify
r.univar forests_patchdensity_mov7 input=forests output=forests feature=area
d.mon x0
d.rast forests_patchdensity_mov7
d.vect forests type=boundary

SEE ALSO - package overview


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)


Claudio Porta and Lucio Davide Spano, students of Computer Science University of Pisa (Italy).
Commission from Faunalia Pontedera (PI) (
Markus Metz (statistics)

Last changed: $Date: 2014-10-19 14:32:22 -0700 (Sun, 19 Oct 2014) $

Main index - raster index - Full index

© 2003-2016 GRASS Development Team