我想使用具有偶数边矩阵的terra::ocus()(例如,应用"Roberts cross"边缘检测;https://en.wikipedia.org/wiki/Roberts_cross).
但是,ocus()只接受具有奇数边的窗口. 另一方面,afal3D()文档声明为"w =window. [...] If you desire to use even sides, you can use an array, and pad the values with rows and/or columns that contain only NAs."
对2D Focus应用此"技巧"不起作用:
r <- rast(matrix(rnorm(1000),ncol=100,nrow=100))
robx <- matrix(c(NA,1,0,NA,0,1),nrow=3)
plot(focal(r,w=robx,fun="sum")
而(当然),没有NAS的3乘3矩阵工作:
sobx <- matrix(c(-1,-2,-1,0,0,0,1,2,1) / 4, nrow=3)
plot(focal(r,w=sobx,fun="sum")
是否有任何已知的解决方法?我如何才能让Focus()接受均匀的窗口(或者至少欺骗它)?
干杯.