[GRASS-user] computing percent cover

Hi GRASS community,
I downloaded land cover data from NLCD and reclassed values into 6 categories to generate a vegetation/landcover type raster (tree, shrub, grass, non-veg, water, developed) that is composed of IDs (i.e. 11=tree, 5-shrub, etc…)
I also have a 90 meter patch raster.
Any given 90 meter patch may have more than one vegetation type ID occurring in it.
I would like to generate percent coverage maps to find the percent that each vegetation type occupies of each patch (i.e. patch 1 is composed of 60% tree, 30% shrub, 10%grass).
Is it possible to compute percent cover from a vegetation type ID map?
Any advice would be much appreciated, I have unsuccessfully tried to do this in GRASS as well as R.
thank you,
Janet

···

Tague Team Lab Manager
1005 Bren Hall
UCSB, Santa Barbara, CA.

Hi Janet,

you could run r.report:
r.report map=patches,landcover

But the output is not easily parseable. r.report internally runs r.stats:

r.stats -a input=patches,landcover separator=comma

you get output like (patch id, landcover id, area):
2,1,1205379.000000
1,5,938148.750000
3,1,904034.250000
2,3,557203.500000
1,1,512529.750000
1,4,361451.250000

so you need to postprocess it then.

···

Tague Team Lab Manager
1005 Bren Hall
UCSB, Santa Barbara, CA.

···

On 06/06/2024 3:09, Janet Choate via grass-user wrote:

Hi GRASS community,
I downloaded land cover data from NLCD and reclassed values into 6 categories to generate a vegetation/landcover type raster (tree, shrub, grass, non-veg, water, developed) that is composed of IDs (i.e. 11=tree, 5-shrub, etc…)
I also have a 90 meter patch raster.
Any given 90 meter patch may have more than one vegetation type ID occurring in it.
I would like to generate percent coverage maps to find the percent that each vegetation type occupies of each patch (i.e. patch 1 is composed of 60% tree, 30% shrub, 10%grass).

If a vector approach is relevant, you could:

(Like Anna’s suggestion, requires some additional work…)

1- convert both rasters to vector

2- calculate in advance the area of each patch

3- run v.overlay with the patch vector as ainput, and the landcover as binput.

4- The output vector will have all landcover polygons cut at the patch boundaries. It will retain any attributes from the patches, for identifying which patch each new landcover is in. And it will have the new area of each of these cut landcover polygons. So dividing each new (cut) landcover area by the original a_Area value will give you the percent coverage.

Is it possible to compute percent cover from a vegetation type ID map?
Any advice would be much appreciated, I have unsuccessfully tried to do this in GRASS as well as R.
thank you,
Janet

Tague Team Lab Manager
1005 Bren Hall
UCSB, Santa Barbara, CA.

_______________________________________________
grass-user mailing list
[grass-user@lists.osgeo.org](mailto:grass-user@lists.osgeo.org)
[https://lists.osgeo.org/mailman/listinfo/grass-user](https://lists.osgeo.org/mailman/listinfo/grass-user)

-- 
Micha Silver
Ben Gurion Univ.
Sde Boker, Remote Sensing Lab
cell: +972-523-665918