焦点函数:如何获取中心像素的值并在 focal fun 参数中使用该值?

Focal function: How do I get the value of the center pixel and use this value within the focal fun argument?

具有 3*3 邻域的示例,其中总和乘以中心值 "center"。

library(raster)
r <- raster(ncol=10, nrow=10)
r[] <- 1:100
f<-function(x,center) {sum(x)*center}
r.f <- focal(r, w=matrix(1,3,3),fun=f}

有意思。由于参数 fun 必须接受多个值,因此您很可能应该使用

f <-function(x) {
y = sum(x)/x[5]
return(y)
}

因为您总是输入一个 x,它是一个 3x3 矩阵,所以第五个元素将是中心元素。 我用来输入的机器上没有 R,所以我无法验证 :-(

Carl 的方法会奏效。这样做可能更有效:

library(raster)
r <- raster(ncol=10, nrow=10)
r[] <- 1:100
r.f <- focal(r, w=matrix(1,3,3)) * r