【发布时间】:2023-01-12 08:24:53
【问题描述】:
我有一些中等大小的光栅文件(最大大小~190 MB),我想计算网格距离以使用raster::gridDistance()
我发现在最好的情况下,操作非常缓慢,在最坏的情况下,R 只会为我最大的文件崩溃。请注意:我对内存管理建议不太感兴趣(例如最大化memory.limit(),分解成更小的栅格或追求并行处理方法),因为这些正在回避我的真正问题。如果真的不应该为 190+ MB 大小的文件尝试网格距离,那么我将把工作分成更小的块。
raster::gridDistance() documentation 提到该功能“目前仅作为'皇后'案例实现,其中单元格有 8 个邻居”。同样从文档中,我了解到我可以尝试解决“在复杂对象分布在不同块上的情况下的错误......通过改变块大小,请参见函数setOptions()”。并且“'gdistance'包中提供了额外的距离测量和选项(方向,成本距离)”,但我一直在犹豫是否要追求这些而没有真正理解它们的局限性/考虑因素。
感谢这个问题R - terra::distance() equivalent of raster::gridDistance(..., origin = x, omit = y),我知道有一种使用terra::gridDistance()的替代方法,但我无法辨别该操作是否比raster::gridDistance()更有效或更适合我的需要
我没有发布代表或会话信息,因为我的问题实际上如下:
-
terra::gridDistance()(或{gdistance}提供的其他替代方案)真的是使用中等大型光栅文件计算网格距离的更有效(更快)或可自定义的方法吗? - 如果不是,使用
raster::gridDistance()和setOptions()更改网格距离的计算方式(改变块大小或其他方式)有哪些注意事项?如果这个问题不完全符合准则,我深表歉意 - 我只是将其作为对上面链接问题的评论发布,但我的声誉不够高。如果有足够的兴趣,我可以重新格式化我的问题,以便它更好地符合带有 reprex 等的准则。此外,我在这里发布问题而不是 Geographic Information Systems,因为原始链接问题已发布在这里。
【问题讨论】:
标签: r distance raster spatial terra