我的本地 Osm 文件包含德国的过滤数据(通过 OSMFilter 过滤),并且仅包含以下高速公路
- 高速公路
- motorway_link
- 树干
- trunk_link
- 主要
- primary_link
- 次要
- 辅助链接
- 高等教育
- tertiary_link
- 住宅
- 生活街
我正在尝试简化图表并提取重要信息以进一步最小化我的道路网络。我已按照以下步骤操作
- G3 = ox.simplify_graph(G, strict=True)
- G3 = ox.add_edge_lengths(G3);
- G3 = ox.remove_isolated_nodes(G3);
- node_centrality = nx.closeness_centrality(G3)
- nx.set_node_attributes(G3, node_centrality, 'node_centrality')
- edge_centrality = nx.closeness_centrality(nx.line_graph(G3))
- nx.set_edge_attributes(G3,edge_centrality,'edge_centrality')
- ox.save_load.save_graphml(G3,..,..,..)
它已经等了一整天才能看到 GraphML 中的输出,但没有看到任何进展。 。我认为edge_centrality和edge_centrality是高计算函数,但是我如何将这些函数用于我的数据?
哪个具体步骤导致了较长的运行时间?当 networkx 计算这些度量时,考虑到算法时间复杂度的性质,对于大型网络(例如整个德国的网络),它们将不可避免地变慢。如果networkx是瓶颈,考虑转换为graph-tool并在那里运行算法。
我是一名优秀的程序员,十分优秀!