如何使用 terra 包填充栅格中的缺失/NA 值?

2024-01-04

我有一个 DEM 栅格,其中有一些小孔(即 NA),我想填充这些小孔,而不改变任何非 NA 值。读完有关建议的解决方案 https://gis.stackexchange.com/questions/278476/filling-na-gaps-in-raster-with-r对于栅格包,我尝试使用 terra 的 focus 函数和以下参数:focal(m, w=9, fun=mean, NAonly=T, na.rm=T)。虽然这确实大部分填补了这个漏洞,但周围的数据似乎略有“平滑”,表明该函数并不局限于仅填充 NA 值(下图显示了之前和之后的图像)。

是否NAonly=T参数在 terra 中仍然适用,就像在栅格中一样?或者有没有更好的方法来填补漏洞而不改变陆地上的非 NA?

DEM prior to applying focal function (yes, the hole was partially filled already) DEM prior to applying focal function

DEM after applying focal function. Note the overall smoother appearance of the DEM. enter image description here


看起来 terra 的论点是na.policy="only"而不是NAonly=TRUE在光栅中使用。所以focal(m, w=9, fun=mean, na.policy="only", na.rm=T)解决了这个问题。与我使用过的其他一些方法相比,它稍微“更笨重”,但除此之外它还完成了工作。

我还注意到输出栅格移动了约 1/2 焦点窗口宽度,但我发布了一个问题here https://stackoverflow.com/questions/71803441/why-is-terras-focal-function-changing-raster-location关于解决这个问题。

更新: 自 1.5.27 起,此错误已得到修复。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 terra 包填充栅格中的缺失/NA 值? 的相关文章

随机推荐