焦点函数:如何获取中心像素的值并在 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
具有 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