从栅格单元内的 shapefile 计算不同土地用途的面积

时间:2021-05-08 15:56:57

标签: r raster shapefile area

数据集:Data

我正在使用 0.1 x 0.1 度规则网格上的空气污染数据栅格数据集。我还有一个 shapefile,其中包含不同土地用途的分类数据。

我正在尝试建立土地利用和空气污染之间的关系,为此,我需要计算 R 中每个栅格单元内的不同土地利用面积。

有人知道我该怎么做吗?

我在上面的链接中包含了我正在使用的 shapefile 和 netcdf。

1 个答案:

答案 0 :(得分:0)

不要提供指向需要下载的数据的链接。这些都会消失,然后这个问题对其他人不再有帮助。这也很麻烦,因为它使您更难为您提供帮助。相反,在询问 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

然而,将土地使用作为多边形是很奇怪的,你会期望它是一个栅格;如果是大型数据集,效果会更好。

相关问题