微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

数据集: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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。