标签: sfnetwork

使用 R 包 sfnetworks 对给定节点上游的河流网络进行子集化

我正在尝试使用该sfnetworks 来查询河流网络。具体来说,我想相对于任何给定站点对河流网络的上游部分进行子集化。

我有一个小型河流网络数据集(可在此处获取),我可以将其转换为sfnetwork,该数据集由包定义为具有空间明确边缘的有根树。生成的网络是有向非循环图(参见ggraph下图)。

library(sf)
library(sfnetworks)
library(ggraph)
library(cowplot)

ss <- st_read(file.path("stream_network_subsetS_KNIG.gpkg")) # subset small network (Lull Creek)

#' create sfnetwork object from river network
#' https://github.com/luukvdmeer/sfnetworks/discussions/143
n.ss <- as_sfnetwork(st_cast(ss, "LINESTRING"))

n.ss

plot(n.ss)

#' visualize directness of network
ggraph(n.ss, layout = "tree") +
  geom_node_point(size = 1) +
  geom_edge_link(arrow = arrow(length = unit(2, 'mm'), ends = "first"),
                 end_cap = circle(2, 'mm'),
                 start_cap = circle(2, 'mm')) +
  theme_graph()
Run Code Online (Sandbox Code Playgroud)

sfnetwork对象的直接性 我想做的是子集/过滤我指定的任何给定节点上游的网络。由于sfnetworks用于igraph底层网络数据结构,我尝试使用igraph::shortest_paths获取上游节点:

#' …
Run Code Online (Sandbox Code Playgroud)

r network-analysis r-sf sfnetwork

6
推荐指数
1
解决办法
390
查看次数

R:sfnetworks:如何在同一数据集中查找多个 A 和 B 位置之间的路线

这是我的数据集

df<-tribble(
  ~"shop.x",~"shop.y", ~"cust.x", ~"cust.y",
  78.100378,    9.944226,   78.096318,  9.954789,
  78.101155,    9.932190,   78.089824,  9.929975,
  78.141887,    9.928319,   78.110863,  9.952235,
  78.100381,    9.944226,   78.104066,  9.97013,
  78.097206,    9.948872,   78.11631,   9.947862
)
Run Code Online (Sandbox Code Playgroud)

df 数据集包含商店和顾客的位置。

我想使用 R 中的 OSM 地图为每一行(每个商店到客户位置)创建最短路径。是否可以使用 sfnetworks?

当地道路网络数据在这里

r shortest-path stplanr sfnetwork

0
推荐指数
1
解决办法
484
查看次数

标签 统计

r ×2

sfnetwork ×2

network-analysis ×1

r-sf ×1

shortest-path ×1

stplanr ×1