python - 在大数据上计算node_centrality和edge_centrality的性能问题

标签 python openstreetmap networkx osmnx

我的本​​地 Osm 文件包含德国的过滤数据(通过 OSMFilter 过滤),并且仅包含以下高速公路

  1. 高速公路
  2. motorway_link
  3. 树干
  4. trunk_link
  5. 主要
  6. primary_link
  7. 次要
  8. 辅助链接
  9. 高等教育
  10. tertiary_link
  11. 住宅
  12. 生活街

我正在尝试简化图表并提取重要信息以进一步最小化我的道路网络。我已按照以下步骤操作

  1. G3 = ox.simplify_graph(G, strict=True)
  2. G3 = ox.add_edge_lengths(G3);
  3. G3 = ox.remove_isolated_nodes(G3);
  4. node_centrality = nx.closeness_centrality(G3)
  5. nx.set_node_attributes(G3, node_centrality, 'node_centrality')
  6. edge_centrality = nx.closeness_centrality(nx.line_graph(G3))
  7. nx.set_edge_attributes(G3,edge_centrality,'edge_centrality')
  8. ox.save_load.save_graphml(G3,..,..,..)

它已经等了一整天才能看到 GraphML 中的输出,但没有看到任何进展。 。 我认为edge_centrality和edge_centrality是高计算函数,但是我如何将这些函数用于我的数据?

最佳答案

哪个具体步骤导致了较长的运行时间?当 networkx 计算这些度量时,考虑到算法时间复杂度的性质,对于大型网络(例如整个德国的网络),它们将不可避免地变慢。如果networkx是瓶颈,考虑转换为graph-tool并在那里运行算法。

关于python - 在大数据上计算node_centrality和edge_centrality的性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53127759/

相关文章:

python - 如何通过 networkx 制作可点击的图表?

python - 如何复制QtableWidget的一行并插入到它下面的行?

不同操作系统上的 Python 程序

python - Pyramid 遍历和 URL 调度程序和不同的根

google-maps - OpenStreetMaps - tiles - 大量使用的性能问题

php - 使用 Php 从 .osm XML 文件中提取数据

java - 如何在我的 Java 应用程序中显示 map 数据(最好使用 OpenStreetMaps)?

python - 将组 ID 分配给 networkx 中的组件

javascript - Python 的 NetworkX 库可以创建动画吗?他们的主页上有一个精美的动画

python - 如何根据索引同时遍历多个列表的项目