首页 > 解决方案 > OSMNX:街道边缘的长度

问题描述

我正在尝试获取边缘长度列表,并绘制一个为每个长度类别的边缘着色的图表。我不知道如何访问此属性。

当我检查时:

edge_attributes = ox.graph_to_gdfs(G, nodes=False).columns
print(edge_attributes)

我得到以下信息:

runfile('C:/Users/user/.spyder-py3/temp.py', wdir='C:/Users/user/.spyder- 
py3')
Index(['u', 'v', 'key', 'osmid', 'highway', 'oneway', 'name', 'length',
'geometry', 'maxspeed', 'lanes', 'tunnel', 'service', 'access'],
dtype='object')

所以看起来有一个名为长度的属性,我无法访问它。

很想得到一些支持。

谢谢。

标签: pythonopenstreetmaposmnx

解决方案


从图形中检索边缘信息作为地理数据框

edges = ox.graph_to_gdfs(G, nodes=False, edges=True)
edges_series = edges['length'] #gives you a pandas series with edge lengths
edges[['osmid','length']] #gives you a pandas dataframe with osmids of edges and their corresponding lengths

对于用边缘颜色绘制图形,OSMnx 有一个专门的功能

ec = ox.get_edge_colors_by_attr(G, attr='length')
ox.plot_graph(G, edge_color=ec)

推荐阅读