Python 3.x 多个源节点和目标节点上的Networkx最短路径分析

Python 3.x 多个源节点和目标节点上的Networkx最短路径分析,python-3.x,routes,networkx,geopandas,osmnx,Python 3.x,Routes,Networkx,Geopandas,Osmnx,我所拥有的: 学校点的地理数据框架(来源-共18个) 医院pts的地理数据框架(目标-共27个) 投影Osmnx图(节点+边) 我想要的是: 包含从每所学校到每所医院的最短路线几何图形的地理数据框(表中总共有486[18*27]个特征,每个特征都有一条路线) 即 学号 医院id 路线 xxxxxxxxx XXXXXXXXXX 线串(x,x,x) 您正在寻找您的出发地和目的地的笛卡尔乘积,而不是将它们压缩在一起。例如: 将numpy导入为np 将osmnx作为ox导入 来自itertool

我所拥有的:

  • 学校点的地理数据框架(来源-共18个)
  • 医院pts的地理数据框架(目标-共27个)
  • 投影Osmnx图(节点+边)
我想要的是:

  • 包含从每所学校到每所医院的最短路线几何图形的地理数据框(表中总共有486[18*27]个特征,每个特征都有一条路线) 即
学号 医院id 路线 xxxxxxxxx XXXXXXXXXX 线串(x,x,x) 您正在寻找您的出发地和目的地的笛卡尔乘积,而不是将它们压缩在一起。例如:

将numpy导入为np
将osmnx作为ox导入
来自itertools进口产品
ox.config(log_console=True)
#获取图形并添加边移动时间
G=ox.graph_从_地点('Piedmont,CA,USA',网络类型='drive')
G=ox.add\u edge\u旅行时间(ox.add\u edge\u速度(G))
#随机选择10个出发地和10个目的地
n=10
原点=np.随机选择(G.节点,大小=n)
dests=np.random.choice(G.nodes,size=n)
#计算100条(10个起点x 10个目的地)最短路径
路径=[]
对于产品中的o、d(原始、目的):
路径=ox.最短路径(G,o,d,weight='travel\u time')
路径。追加(路径)
len(路径)#100