基于类的加权栅格聚合

时间:2019-07-11 12:35:59

标签: r aggregate weighted

假设我有一个以一定分辨率表示土地利用类别的栅格。我必须将此栅格与R汇总到一个较粗的分辨率和一个模态值方法,以便在较粗的栅格中拥有最主要的像元值。

可以轻松实现
m <- aggregate(r, fact = 3, fun = modal, na.rm = TRUE)

但是,我想对不同的土地利用类别进行加权-例如森林等级(代码1)的权重为4,而水等级(代码2)的权重为2,而街道等级的权重为1。

是否存在遍历栅格像元并为每个像元施加权重的函数?

感谢您的帮助吗?

1 个答案:

答案 0 :(得分:1)

您可以使用reclassify来应用权重,但是那又如何呢?之后,您是否仍要计算模态值?

我认为您想要的是您提供的汇总功能。也许像这样

library(raster)
f <- function(x, ...) {
    y <- c(
       rep(x[x==1], 4),
       rep(x[x==2], 2),
       x[x==3]
    )
    modal(y, ...)
}

r <- raster(res=5)
values(r) <- sample(c(1:3,2,3,3), ncell(r), replace=TRUE)

a <- aggregate(r, fact=10, fun=f)