我的数据: 我有一个城市区域的光栅文件,分辨率为 3 x 3 米,每个像素都显示了这个地方的发球台。
我的目标: 我想将城市区域划分为 100 x 100 米的网格单元。 然后我想计算每个网格单元的香农多样性指数。
我在QGIS中尝试过的: 我将光栅文件转换为多边形。我还创建了一个 100 x 100 米的网格,并将其裁剪为城市边界的大小。 然后我在 QGIS 中对树种栅格图层和网格进行“空间连接”。但每个网格单元的输出只有一个值。 有效的方法是使用 LecoS 插件的“区域统计”来计算网格单元内树种的变异性和总和。
抱歉,我无法更详细地描述我的问题。那是因为我不理解这些步骤背后的大部分逻辑。 如果您能帮助我,我会非常高兴!我有点绝望,因为我已经被这个问题困扰很长时间了:/
示例数据
library(terra)
x <- rast(xmin=0, xmax=270, ymin=0, ymax=270, res=3)
set.seed(123)
values(x) <- sample(10, ncell(x), replace=TRUE)
香农函数
shannon <- function(x) {
x <- na.omit(x)
n <- length(x)
if (n == 0) {
NA
} else {
p <- table(x)/n
-sum(p*log(p))
}
}
在
aggregate
中使用它
a <- aggregate(x, 33, shannon)
a
的空间分辨率为99m。您无法将 3 m 个单元聚合为正好 100 m。