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

如何通过OSMnx获取城市污水管网数据?解决momepy连接异常问题

污水管网数据获取与图构建问题的实用解法

一、OSM里找污水管网数据的正确姿势

你之前用的ox.graph_from_place是针对道路网的接口,要获取污水管网得换用OSM基础设施标签查询:

  • 用OSMnx的ox.geometries_from_place函数,指定污水管网专属标签,代码示例:
    tags = {'man_made': 'sewer'}  # 可扩展添加'pipe'(管道)、'manhole'(检查井)等细分标签
    sewer_gdf = ox.geometries_from_place("目标城市名", tags)
    
  • 查询有可用数据的城市:
    • 去OSM Taginfo搜索man_made=sewer,切换到「地区」标签页查看各区域的数据覆盖率;
    • 优先选择欧洲、北美、东亚的大城市(如柏林、阿姆斯特丹、纽约),这类区域的OSM基础设施数据完善度更高。

二、修复momepy管网连接还原错误

momepy默认的转图逻辑对非道路类管线的连接判断容易出错,试试这些优化步骤:

  1. 预处理SHP数据:
    • 先确保相邻管线的端点坐标完全重合,用GeoPandas做容差匹配:
      import geopandas as gpd
      # 容差设为0.5米(可根据数据精度调整)
      cdmx_canal['geometry'] = cdmx_canal.buffer(0.5).unary_union.boundary
      
  2. 调整momepy转换参数:
    • 启用check_snap强制匹配端点,或改用对偶图模式(更适配管网拓扑):
      graph = momepy.gdf_to_nx(cdmx_canal, approach='primal', check_snap=True, snap_tolerance=0.5)
      
  3. 手动修正拓扑:
    • 若仍有错误,用NetworkX的add_edge/remove_edge手动调整连接;也可先在QGIS中完成拓扑检查与修复,导出干净的SHP后再转换。

三、OSM数据不足时的替代来源

如果目标城市OSM数据缺失,可尝试这些渠道:

  • 官方开放数据平台:如美国EPA的流域数据库、欧盟INSPIRE门户;
  • 学术数据集:例如ResearchGate上的Global Sewer Database,包含多个城市的管网数据;
  • 当地政府平台:不少城市会在官方开放数据网站发布污水处理系统的GIS数据,注意确认学术使用许可。

管网连接还原错误示意图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 11:05:12