【问题标题】:How to compute distances along a network in shapefile? in R如何计算shapefile中沿网络的距离?在 R 中
【发布时间】:2015-04-08 17:57:34
【问题描述】:

我在 shapefile(类:“SpatialLinesDataFrame”)中有一个河流网络,上面有一些点(见下图)。

我想计算点之间的距离,但是沿着河流。我一直在搜索,但找不到任何直接允许这样做的功能。

我发现最接近的是“secrlinear”包中的“networkdistance”函数,但是我无法将我的 shapefile 转换为使用该函数所需的格式(“linearmask”对象)。

对此的任何帮助将不胜感激。

提前致谢,

蒂娜。

【问题讨论】:

  • 假设您可以唯一地识别每个点,您可以计算沿河流的点到点的距离的累积总和。您需要对河流(即点)进行“分组”,例如点数最多的河流中的四个。结果是近似的,但是有几个包可以计算点之间的陆地英里(或公里)。
  • 路由可能会有所帮助:rpubs.com/geospacedman/routing
  • 谢谢!按照@lawyeR 的建议去做,我需要以某种方式提取两个给定点之间的河流部分。一旦我有了它,就更容易获得形成河流形状文件的点之间的累积和。问题是我不得不承认我不知道如何隔离两点之间的河流部分......
  • 感谢@Edi,但显然我也无法将我的 shapefile 转换为 igraph 类...
  • 但是,如果您可以找到河网上的点(您必须将它们绘制为红点),您可以添加一列以按河流对它们进行分组并沿河流排序,对吗?

标签: r networking gis distance shapefile


【解决方案1】:

我知道这是一个旧线程,但以防万一将来有人遇到这个问题:我刚刚发布了一个处理这个问题的 R 包(riverdist),还提供了一些用于网络编辑和数据摘要的工具 &可视化。它是在考虑渔业工作的情况下编写的,但可能适用于您正在从事的工作,或者至少这是希望!

https://cran.r-project.org/web/packages/riverdist/vignettes/riverdist_vignette.html

对不起,这不是更及时 -

【讨论】:

  • 惊人的马特!非常感谢你。我的问题是计算从地图上 2 个点到巴士路线 shapefile 的距离。你的函数可以外推到我的问题吗?干杯!
【解决方案2】:

我认为我们离线解决了这个问题:需要先投影 shapefile 的地理坐标(纬度/经度),然后才能在 secrlinear 中使用它们。该软件包近似于线性网络并使用 igraph 函数来计算距离。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-20
    • 2018-07-14
    • 1970-01-01
    • 2022-01-08
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    相关资源
    最近更新 更多