由点和几何信息生成的OSMNX图 [英] OSMNX graph from point and geometry information

查看:0
本文介绍了由点和几何信息生成的OSMNX图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用osmnx已经有一段时间了,并且做到了: G=ox.graph_from_point(城市中心,距离=距离,网络类型=‘驾驶’,简化=假) 正在返回图形

边迭代的位置 对于u、v,数据位于G.Edge(key=False,Data=True)

将允许用户通过以下方式访问边的地理坐标: DATA[‘GEOMETRY’].坐标

在最新的工作中,不幸的是几何属性不在那里。现在有没有可能访问结点或边的坐标?

非常感谢!

推荐答案

OSMnx仅向简化的边添加geometry属性。如果边未简化,则其几何是其入射节点uv之间的平凡直线。在您的代码中,您使用simplify=False参数化了graph_from_point,因此没有一条边被简化,也没有一条边具有geometry属性:

import osmnx as ox
ox.config(use_cache=True, log_console=True)

point = 40.729630, -73.998835
dist = 100
G = ox.graph_from_point(point, dist=dist, network_type='drive', simplify=False) 

for u, v, data in G.edges(keys=False, data=True):
    simp = '' if 'geometry' in data else 'not '
    print(f'edge {data["osmid"]} has {simp}been simplified')
如果简化该图,其部分或全部边将具有几何属性,具体取决于链接两个交叉点的特定街道段最初是否跨越多个OSM节点。this paper中详细介绍了拓扑简化方法。更多详细信息请参阅the docs。示例:

import osmnx as ox
ox.config(use_cache=True, log_console=True)

point = 40.729630, -73.998835
dist = 100
G = ox.graph_from_point(point, dist=dist, network_type='drive', simplify=True) 

for u, v, data in G.edges(keys=False, data=True):
    simp = '' if 'geometry' in data else 'not '
    print(f'edge {data["osmid"]} has {simp}been simplified')

您还可以通过使用fill_edge_geometry=True调用graph_to_gdfs,然后使用graph_from_gdfs重新构建您的图形,向简化或非简化图形的每条边手动添加几何属性,如下所示:

import osmnx as ox
import pandas as pd
ox.config(use_cache=True, log_console=True)

point = 40.729630, -73.998835
dist = 100
G = ox.graph_from_point(point, dist=dist, network_type='drive', simplify=False)

# create nodes, edges GeoDataFrames and fill in all edge geometry attributes
# then re-create a MultiDiGraph from those GeoDataFrames
nodes, edges = ox.graph_to_gdfs(G, fill_edge_geometry=True)
G2 = ox.graph_from_gdfs(nodes, edges, graph_attrs=G.graph)

for u, v, data in G2.edges(keys=False, data=True):
    assert 'geometry' in data
最后,在上面的一条评论中,您提到了我使用的是最新版本,即osmnx 0.16.1。但是,您的代码片段不能使用v0.16.1,因为distance参数在5或6个版本之前已弃用,并最终被dist替换。尝试运行print(ox.__version__)以查看您实际使用的版本。

这篇关于由点和几何信息生成的OSMNX图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆