在R中的shapefile中查找百分比土地覆盖类别

问题描述

我在R中有shapefile和一个土地覆盖类的tiff文件。如何在shapefile中找到土地覆盖类别的百分比?例如,该shapefile中的研究区域中有多少土地?

#example data for cover
rat <- levels(raster2 )[[1]]
rat[["landcover"]] <- c("land","ocean/lake","rivers")
levels(raster2 ) <- rat

#and a raster
raster1 <-  raster(matrix(c(1,1,2,3,4,5,6,7),ncol =3))

解决方法

在提出R问题时,请提供一个自成体系的最小示例

栅格数据

library(raster)
r <- raster(ncol=36,nrow=18)
set.seed(111)
values(r) <- sample(3,18*36,replace=TRUE)

多边形

cds1 <- rbind(c(-180,-20),c(-160,5),c(-60,0),-60),c(-180,-20))
polys <- spPolygons(cds1)

解决方案

x <- extract(r,polys)
table(x)
#x
# 1  2  3 
#16  9 13