问题描述
数据集:Data
我正在使用 0.1 x 0.1 度规则网格上的空气污染数据栅格数据集。我还有一个 shapefile,其中包含不同土地用途的分类数据。
我正在尝试建立土地利用和空气污染之间的关系,为此,我需要计算 R 中每个栅格单元内的不同土地利用面积。
有人知道我该怎么做吗?
我在上面的链接中包含了我正在使用的 shapefile 和 netcdf。
解决方法
请不要提供指向需要下载的数据的链接。这些都会消失,然后这个问题对其他人不再有帮助。这也很麻烦,因为它使您更难为您提供帮助。相反,在询问 R 问题时,您应该创建一个最小自包含、可重现的示例,就像在 R 帮助文件中一样(并且该站点上也有 1000 多个示例)。
示例数据
library(terra)
f <- system.file("ex/elev.tif",package="terra")
pol <- rast(f)
names(pol) <- "pollution"
f <- system.file("ex/lux.shp",package="terra")
v <- vect(f)
v$landuse <- c("a","b","c")
lu <- aggregate(v,"landuse")
解决方案
e <- extract(pol,lu,fun=mean,na.rm=TRUE)
cbind(landuse=lu$landuse,e[,2,drop=F])
# landuse pollution
#1 a 370.1575
#2 b 341.3008
#3 c 336.7545
然而,将土地使用作为多边形是很奇怪的,你会期望它是一个栅格;如果是大型数据集,效果会更好。