You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OSMnx无法提取智利普罗维登西亚河流,报错无节点,求解决方法

解决OSMnx提取智利普罗维登西亚河流数据的问题

核心问题:用错了提取函数

你当前使用的ox.graph_from_place()是专门用于提取路网图的函数,它只会识别带highway标签的道路要素,并构建包含节点和边的路网结构。而河流属于OSM中的线性地理要素,不属于路网范畴,所以这个函数找不到对应的节点,才会报错Found no graph nodes within the requested polygon。

正确的解决方案:使用地理要素提取函数

改用ox.geometries_from_place()来提取河流这类地理要素,代码示例:

import osmnx as ox
import matplotlib.pyplot as plt

# 提取普罗维登西亚地区waterway类型为river/stream的要素
river_gdf = ox.geometries_from_place('Providencia, Chile', tags={'waterway': ['river', 'stream']})

# 绘制结果
fig, ax = plt.subplots()
river_gdf.plot(ax=ax, color='blue')
plt.show()

针对你的问题的具体解答

  1. 过滤器调整:先确认目标河流在OSM中的实际标签。部分中小型河流会被标记为stream而非river,你可以查看该河流的OSM详情,确认其waterway属性值后调整过滤器。
  2. 提取区域可用的过滤器值:可以先提取该区域所有带waterway标签的要素,查看所有可能的取值:
import osmnx as ox

# 提取所有waterway相关要素
all_waterway = ox.geometries_from_place('Providencia, Chile', tags={'waterway': True})
# 打印所有唯一的waterway取值
print(all_waterway['waterway'].unique())

运行后就能得到该区域所有可用的waterway类型,根据结果调整过滤器即可。

内容的提问来源于stack exchange,提问作者PerroNoob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 00:15:05