python - gdfs 到图表,反之亦然

标签 python osmnx

当我使用python的osmnx时,会发生以下情况:

graph = osmnx.graph_from_polygon(Data.bbox)

gdf_nodes, gdf_edges = osmnx.save_load.graph_to_gdfs(
        graph,
        nodes=True, edges=True,
        node_geometry=True,
        fill_edge_geometry=True)
print(gdf_edges['u']) # prints the values nicely

graph2 = osmnx.save_load.gdfs_to_graph(gdf_nodes, gdf_edges) # misses 'v' and 'u' column in gdf_nodes

然后我收到以下错误:

  File "C:\Users\jpelda\AppData\Local\Continuum\anaconda3\lib\site-packages\osmnx\save_load.py", line 513, in gdfs_to_graph
    G.add_edge(u=row['u'], v=row['v'], key=row['key'], **attrs)

TypeError: add_edge() missing 2 required positional arguments: 'u_for_edge' and 'v_for_edge'

最佳答案

确保您使用的是最新发布的 OSMnx 版本(截至目前为 0.8.1)和 NetworkX(截至目前为 2.1)。你的代码片段工作正常。完整的工作示例:

import networkx as nx
import osmnx as ox
print(ox.__version__)
print(nx.__version__)
graph = ox.graph_from_place('Piedmont, California, USA', network_type='drive')
gdf_nodes, gdf_edges = ox.graph_to_gdfs(
        graph,
        nodes=True, edges=True,
        node_geometry=True,
        fill_edge_geometry=True)
graph2 = ox.gdfs_to_graph(gdf_nodes, gdf_edges)

0.13.0之后(2020-05-25)

ox.gdfs_to_graph() 已替换为 ox.graph_from_gdfs()

如果您的OSMnx版本在0.13.0之后,请使用以下代码:

graph2 = ox.graph_from_gdfs(gdf_nodes, gdf_edges)

关于python - gdfs 到图表,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50045662/

相关文章:

python - graph_from_place OSMNX 的响应时间极长

python - Unicode解码错误: 'ascii' codec can't decode byte 0xe0 in position 2: ordinal not in range(128)

Python 名称可见性

python - 混淆矩阵字体大小

python - 保存使用 osmnx 生成的图形时,背景颜色不会保持蓝色

python - 寻找最短路径中 osm 节点列表的路径 ID

python - pyspark : Convert DataFrame to RDD[string]

python - Python 中的 JSON 处理和在线 JSON Linters

openstreetmap - 正确的 OSMnx 自定义过滤器语法