如何计算城市区域内多个区的树种多样性? (在 R 或 QGIS 中)

问题描述 投票:0回答:1

我的数据: 我有一个城市区域的光栅文件,分辨率为 3 x 3 米,每个像素都显示了这个地方的发球台。

我的目标: 我想将城市区域划分为 100 x 100 米的网格单元。 然后我想计算每个网格单元的香农多样性指数。

我在QGIS中尝试过的: 我将光栅文件转换为多边形。我还创建了一个 100 x 100 米的网格,并将其裁剪为城市边界的大小。 然后我在 QGIS 中对树种栅格图层和网格进行“空间连接”。但每个网格单元的输出只有一个值。 有效的方法是使用 LecoS 插件的“区域统计”来计算网格单元内树种的变异性和总和。

抱歉,我无法更详细地描述我的问题。那是因为我不理解这些步骤背后的大部分逻辑。 如果您能帮助我,我会非常高兴!我有点绝望,因为我已经被这个问题困扰很长时间了:/

r qgis
1个回答
0
投票

示例数据

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。

© www.soinside.com 2019 - 2024. All rights reserved.