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

如何用OSMnx移除城市路网图中的外环道路(以巴黎为例)

如何用OSMnx保留巴黎城市路网并移除外环及近郊道路?

完全可以通过OSMnx实现这个需求,分两步操作就能精准裁剪路网:

1. 裁剪至巴黎行政边界,移除近郊道路

先获取巴黎的官方行政边界,再用这个边界多边形把初始路网裁剪到城市范围内,自动剔除近郊区域的道路:

# 获取初始路网
import osmnx as ox
G = ox.graph_from_place("Paris, Ile-de-France, France", network_type="drive")

# 获取巴黎行政边界的GeoDataFrame
paris_boundary = ox.geocode_to_gdf("Paris, Ile-de-France, France")

# 裁剪路网至行政边界内
G_city_only = ox.truncate.truncate_graph_to_polygon(G, paris_boundary.geometry.iloc[0])

2. 识别并移除环城大道(外环道路)

如果巴黎的环城大道(Boulevard Périphérique)在行政边界内,可通过OSM的名称标签精准识别并移除:

# 筛选出环城大道的所有边
peripherique_edges = [(u, v, k) for u, v, k, data in G_city_only.edges(data=True, keys=True) 
                      if data.get("name") == "Boulevard Périphérique"]

# 复制路网并移除目标边
G_final = G_city_only.copy()
G_final.remove_edges_from(peripherique_edges)

# 可选:清理裁剪后产生的孤立节点
G_final = ox.utils_graph.remove_isolated_nodes(G_final)

验证结果

可以可视化对比裁剪前后的路网,确认是否符合需求:

ox.plot_graph(G_final, node_size=0, edge_linewidth=0.5)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:50:00