python - 在大数据上计算 node_centrality 和 edge_centrality 的性能问题
问题描述
我的本地 Osm 文件包含德国的过滤数据(通过 OSMFilter 过滤)并且仅包含以下高速公路
- 高速公路
- 高速公路链接
- 树干
- 中继链接
- 基本的
- 主链接
- 中学
- 次要链接
- 第三
- 三级链接
- 住宅
- 生活街
我正在尝试简化图形并提取重要信息以进一步最小化我的道路网络。我已按照以下步骤
- 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 是瓶颈,考虑转换为图形工具并在那里运行算法。
推荐阅读
- git - 基础分支未显示 UI 拉取请求中可用的所有分支
- django - Django 表单与 HTML 表单
- javascript - 打字稿:防止 React 道具对象的额外键?
- node.js - 无法连接到 Mongo Atlas
- c++ - VSCode 不编译 C++
- react-native - TypeError: _ExponentCameraManager__WEBPACK_IMPORTED_MODULE_13__ .default.requestPermissionsAsync 不是函数
- python - Tensorflow 卡在第一个 epoch
- java - 给定斐波那契数列中的数字总和
- java - Apache Camel 重新交付策略 Junit 测试
- c# - 从键盘键入时创建通用事件处理程序