通常,我通过以下方式指定边界框,将一些OSM数据读入图形中,以仅包含驾驶道路:ox.graph_from_bbox(43.54645, 43.54235, -96.73444, -96.72649, network_type='drive')
上面的边界框的图形看起来像(当使用osmnx绘制时):
现在,我希望直接从一个.osm文件中读取,该文件是直接从OSM网站上选择相同的边界框坐标导出的,我调用:ox.graph_from_xml(file_path)
然而,现在的问题是有更多的节点和边,如下图所示:
我怀疑这与我没有指定网络类型只包含可行驶表面的事实有关。但是,在graph_from_xml
函数中没有可以指定此选项的选项。那么,如何将第二个图(来自.osm文件)缩小到第一个图(来自bbox坐标)?
1条答案
按热度按时间jtjikinw1#
graph_from_xml
函数不接受network_type
参数,因为您没有查询任何内容。您只是将该文件的内容加载到图模型中。文档:https://osmnx.readthedocs.io/en/stable/osmnx.html#module-osmnx.osm_xml如果你想过滤文件的内容,你应该在创建文件时,在加载到OSMnx之前进行过滤。或者,如果绝对有必要,你可以将整个文件加载到OSMnx,然后手动删除你不想要的边,方法是循环遍历它们,检查它们的类型,将它们的
(u, v, key)
元组标识符添加到不想要的类型列表中,然后用networkx.remove_edges_from()
从图中删除它们。