GDS для графа и наоборот - PullRequest
       9

GDS для графа и наоборот

0 голосов
/ 26 апреля 2018

Когда я использую 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'

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Убедитесь, что вы используете последние выпущенные версии 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 голосов
/ 27 апреля 2018

импорт networkx как nx

nx.Graph.add_edge (строка ['u'], строка ['v']) работает!

Очевидно, что вы и v не могут быть заданы как опциональные! Изменилось ли это для новой версии networkx?

...