为什么 terra 的焦点函数会改变栅格位置?

Why is terra's focal function changing raster location?

我正在使用 terra 包中的 focal 函数来填充 DEM 栅格中的孔。但是,在 运行 focal(m, w=19, fun=mean, na.policy="only", na.rm=TRUE) 之后,我的 DEM 相对于其原始位置移动了 ~11cm(见下图)。当我简单地使用 rast() 读取光栅然后使用 writeRaster() 写入时,不会发生此问题,但是当我使用 focal() 时会发生此问题,无论我是否使用 [= 保存输出12=] 或在 focal().

中使用 filename = 参数

我还注意到使用的 window 尺寸越大,输出光栅的移动就越大。 window 大小为 9 会产生 ~5cm 的误差。光栅像素的大小约为 1.2 厘米,因此 focal() 似乎导致了所用 window 宽度的 ~1/2 的移动。据我所知,运动是直线 up/north.

知道为什么会发生这种情况以及如何避免这种情况吗?

这是正确对齐的光栅:

这是在 运行 focal (w = 19) 之后:

我相信这是一个错误,已在 https://github.com/rspatial/terra 上提供的 terra 开发版本中修复(这也是报告错误的最佳位置)。你能试试吗?