【问题标题】:R - terra::distance() equivalent of raster::gridDistance(..., origin = x, omit = y)R - terra::distance() 等效于 raster::gridDistance(..., origin = x, omit = y)
【发布时间】:2021-10-31 14:37:31
【问题描述】:

更新 - 此问题与 terra 1.4-1 相关,现在已与 terra 1.5-12(或更早?)一起过时。


我正在寻找与raster::gridDistance(..., origin = my_origin, omit = my_omit) 等效的terra

我在terra::gridDistance 上发现了一个旧网页,来自terra v0.2-8 here,但据我所知,terra::distanceraster::gridDistance (list of terra's replacement functions here) 的当前替代品。

但是,我不知道在terra::distance 中实现omit = my_omit(或等效项)。从 documentation page 看来,任何非 NA 都被视为 origin,但没有提及 omit,或将 origin 更改为特定值的选项(与下面的 raster::gridDistance 示例不同)。

这是来自raster::gridDistance的示例:

library(raster)

# world lon/lat raster
r <- raster(ncol=10,nrow=10, vals=1)
r[48] <- 2     # this will be the origin
r[66:68] <- 3  # this will be the area that can't be traversed
plot(r)

d <- gridDistance(r,origin=2,omit=3) 
plot(d)

任何人都可以使用terra::distance 重现此示例吗?

我可以使用raster 做我需要做的事情,但我仍在学习如何正确处理空间栅格数据,并且正在努力学习新的terra 包。

【问题讨论】:

  • 嗨@hugh-allan,我的评论可能为时已晚,但我想让您知道,您的代码使用terra::gridDistance() 库的terra::gridDistance() 函数运行良好。干杯。
  • 非常感谢,现在回答永远不会太晚!我最初使用的是terra v1.4-1,这解释了为什么该功能似乎“缺失”。谢谢:)
  • 非常感谢您的反馈。很高兴我能帮上忙。干杯。

标签: r distance raster spatial terra


【解决方案1】:

感谢@lovalery 在 cmets 中指出这一点。

在最初的问题中,我使用的是terra 1.4-1。截至 2022 年 1 月,terra 1.5-12 已发布(2022 年 1 月 13 日),它现在包含一个与raster::gridDistance() 函数非常相似的terra::gridDistance() 函数。

为了完整起见,这是来自?terra::gridDistance的示例:

#world lon/lat raster
r <- rast(ncol=10,nrow=10, vals=1)
r[48] <- 2
r[66:68] <- 3
d <- gridDistance(r,origin=2,omit=3) 
plot(d)

#UTM small area
crs(r) <- "+proj=utm +zone=15 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"
d <- gridDistance(r,origin=2,omit=3) 
plot(d)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-19
    • 2022-12-28
    • 2015-07-31
    • 1970-01-01
    • 2023-01-12
    • 2013-03-25
    • 2021-03-30
    • 2017-12-02
    相关资源
    最近更新 更多