Class 基于加权栅格聚合
Class based weighted raster aggregation
让我们假设我有一个栅格以特定分辨率表示土地利用 classes。我必须将此栅格与 R 聚合到更粗略的分辨率和模态值方法,以便在更粗略的栅格中拥有最主要的像元值。这很容易实现
m <- aggregate(r, fact = 3, fun = modal, na.rm = TRUE)
但是,我想权衡不同的土地用途 classes – 例如森林 class(代码 1)的权重为 4,而水 class(代码 2)的权重为 2,街道 class 的权重为 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)
让我们假设我有一个栅格以特定分辨率表示土地利用 classes。我必须将此栅格与 R 聚合到更粗略的分辨率和模态值方法,以便在更粗略的栅格中拥有最主要的像元值。这很容易实现
m <- aggregate(r, fact = 3, fun = modal, na.rm = TRUE)
但是,我想权衡不同的土地用途 classes – 例如森林 class(代码 1)的权重为 4,而水 class(代码 2)的权重为 2,街道 class 的权重为 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)