OSMnx中ox.extended_stats已弃用,如何计算对应网络分析统计指标?
解决OSMnx
ox.extended_stats 弃用问题的两种方案 一、使用当前OSMnx版本的替代函数(推荐)
OSMnx 1.0+ 版本把extended_stats的功能拆分到了多个更细分的函数里,不用依赖旧版本就能实现所有统计指标:
- 基础拓扑统计(节点数、边数、平均度等):用
ox.basic_stats() - 中心性指标(介数、接近度等):用
ox.betweenness_centrality()、ox.closeness_centrality() - 其他扩展指标(比如循环比例、平均路径长度):可以通过
basic_stats的结果结合简单计算得到,或者调用ox.stats模块下的对应函数
给你一个新手友好的代码示例:
# 导入OSMnx import osmnx as ox # 下载某区域的路网(比如纽约曼哈顿) G = ox.graph_from_place("Manhattan, New York, USA", network_type="drive") # 计算基础拓扑统计 basic_stats = ox.basic_stats(G) print("基础统计:", basic_stats) # 计算介数中心性(保留前10个节点) betweenness = ox.betweenness_centrality(G, top_n=10) print("介数中心性Top10:", betweenness) # 计算平均路径长度 avg_path_length = basic_stats["avg_edge_length"] * basic_stats["avg_street_length"] print("平均路径长度:", avg_path_length)
如果需要原extended_stats里的特定指标,直接查OSMnx官方文档的stats模块,大部分都有单独的实现函数。
二、安装旧版本OSMnx(仅当替代方案无法满足时)
如果你一定要用ox.extended_stats,可以安装还保留该函数的旧版本(比如0.16.0版本,这是最后包含该函数的稳定版本之一):
- 打开终端(Windows用命令提示符,Mac/Linux用终端)
- 先卸载当前版本(如果已安装):
pip uninstall osmnx -y
- 安装指定旧版本:
pip install osmnx==0.16.0
- 验证安装并使用:
import osmnx as ox # 下载路网 G = ox.graph_from_place("Beijing, China", network_type="bike") # 调用extended_stats extended_stats = ox.extended_stats(G) print("扩展统计指标:", extended_stats)
注意:旧版本可能存在兼容性问题(比如和最新版的geopandas、networkx不兼容),如果安装时出现报错,可能需要同时指定依赖库的旧版本,比如:
pip install osmnx==0.16.0 networkx==2.5 geopandas==0.9.0
内容的提问来源于stack exchange,提问作者Rushikesh Desai- Amrut
相关产品推荐
相关产品推荐

