r.li.mps(1grass)

🌸 r.li.mps β€” the mean patch size girlie πŸ’…

okay so bestie, welcome to r.li.mps from the GRASS User's Manual β€” she calculates the mean patch size index on a raster map, and she does it with a 4 neighbour algorithm. no notes. iconic behavior honestly ✨


✨ NAME ✨

r.li.mps β€” calculates mean patch size index on a raster map, using a 4 neighbour algorithm πŸ¦‹


πŸŽ€ KEYWORDS πŸŽ€

raster, landscape structure analysis, patch index


πŸ’– SYNOPSIS πŸ’–

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

🌈 Flags:

  • --overwrite β€” Allow output files to overwrite existing files πŸ’€ (yes she will simply replace them, be careful)
  • --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 🧚

so r.li.mps (that's mean patch size, mwah) calculates the mean size of the patches in the sampling area, like:

MPS = A / Npatch

with:

  • A: sampling area size without null cells
  • Npatch: number of patches

the unit of the mean size is hectare πŸ‘‘

this index is calculated using a 4 neighbour algorithm β€” diagonal cells are literally ignored when tracing a patch. not invited to the party, sorry 🚫


⭐ NOTES ⭐

bestie do NOT use absolute path names for the config and output file/map parameters. just don't. πŸ’…

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).

and ngl this part is important: if the sample area contains only NULL value cells, r.li.mps returns 0 (zero). that's it, that's the answer, no drama 🫠


πŸ”₯ EXAMPLES πŸ”₯

to calculate mean path size 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.mps input=my_map conf=my_conf output=my_out

Forest map (Spearfish sample dataset) example 🌲:

g.region raster=landcover.30m -p
r.mapcalc "forests = if(landcover.30m >= 41 && landcover.30m <= 43,1,null())"
r.li.mps input=forests conf=movwindow7 out=forests_mps_mov7
r.univar forests_mps_mov7

Forest map (North Carolina sample dataset) example 🌳:

g.region raster=landclass96 -p
r.mapcalc "forests = if(landclass96 == 5, 1, null() )"
r.li.mps input=forests conf=movwindow7 out=forests_mps_mov7
# verify
r.univar forests_mps_mov7
r.to.vect input=forests output=forests type=area
d.mon wx0
d.rast forests_mps_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.mps source code (history)

Latest change: Friday Apr 17 01:04:26 2026 in commit: 32a143358df26b2e518b03c7e0d79541e8d1e5b1

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


and that's the whole vibe bestie β€” Β© 2003-2026 GRASS Development Team, GRASS 8.5.0 Reference Manual, running the GRASS 8.5.0 era of r.li.mps(1grass) πŸ’–βœ¨πŸŽ€πŸ¦‹ slay, go compute some patch sizes, ily 🫢

πŸ“¦ where this page comes from