OSMnx下载了意外的江边网络,如何解决这个问题?

OSMnx downloaded unexpected edges of a river network, how to fix this?

我正在使用 OSMnx (0.15.1) 提取河流网络。使用下面的代码,我希望下载一个只有中央河道的河流网络,参见 图。 1,使用QGIS中的QuickOSM插件获得,标签为"waterway=river":

Fig. 1 with QuickOSM

使用 OSMnx 时,该河流流域内的大部分网络似乎都正确显示为河流的中心道路。然而,在这个特定的经纬度点 (51.062981, 13.270961)OSMnx 工具也下载了河岸的边缘(图 2 ,灰线)。对于某些河段(右下),下载的是河岸的边缘,而不是河流的中央通道。问题出在哪里,我该如何解决?

OSM 标签 "waterway"~"river" 被用作过滤器。一个可重现的例子:

import osmnx as ox

"""
A simple attempt to download a river network from a point with OSMnx.
"""
# Get a river network and plot it with all edge intersections.
point = 51.062981, 13.270961 # lat, long
G = ox.graph_from_point(point, 
                        dist=1000,
                        custom_filter='["waterway"~"river"]')
fig, ax = ox.plot_graph(G, node_color='r')

Fig. 2 with OSMnx

您的过滤器 '["waterway"~"river"]' 匹配“river”和“riverbank”,因此您在图表中得到了河岸。相反,使用 = 来匹配 "river":

G = ox.graph_from_point(point, dist=1000, custom_filter='["waterway"="river"]')