Python实现OSM地图数据解析——OSM2Rail

osm数据下载 python_【神器】你想要的交通网络数据,三行代码搞定! 今天跟大家分享一款由美国亚利桑那州立大学ASU Trans+AI Lab团队开发的开源python依赖库——OSM2GMNS。无需调用地图API,通过OpenStreetMap导出地图数据包,仅需三行代码即可从中提取多模式交通网络数据并输出为符合GMNS (General Modeling Network Specification) 标准的路网文件。从此不再为路网数据而烦恼!有啥用没听... 阅读详情

1. 简介

前期为大家介绍了由美国亚利桑那州立大学ASU Trans+AI Lab团队开发的开源python依赖库——OSM2GMNS,不仅为研究人员提供了快速获取多模交通网络数据的方法,而且引入了GMNS(General Modeling Network Specification)标准,使得数据存储与利用变得更加高效和便捷。通过OSM2GMNS可以快速获取任意区域的多模式交通网络数据(作为铁路爱好者这里我们只关注铁路网络数据):

先来看看北京南站铁路网络数据:
在这里插入图片描述

再来看看上海虹桥铁路网络数据:
在这里插入图片描述
细心的读者是不是发现了一点小问题?在北京南站铁路网络数据中混入了异常的node和link,同样在上海虹桥站铁路网络数据中不仅掺杂了异常的node和link,还包含了地铁的node和link。如果我只想要铁路数据该怎么办呢?在大量的node,link中逐一筛选么?现在告诉你:不用这么麻烦!

为了解决OSM2GMNS中存在的铁路数据解析不彻底的问题,北京交通大学的崔赞扬博士生和陈军华老师与美国亚利桑那州立大学的陆佳炜博士生、英国伯明翰大学的付谦博士,合作开发了开源python依赖库——OSM2Rail,不仅提供了更精确的铁路网络解析结果,而且实现了OpenStreetMap地图数据包自动下载,同时在GMNS标准的基础上扩展了铁路数据字段,将解析数据输出为符合GMNS-Rail标准的路网文件。

架起研究人员与铁路网络数据的桥梁!

2. 功能特色

OSM2Rail相比OSM2GMNS有什么区别?

2.1 自动下载OpenStreetMap地图数据包

引入了由付谦博士开发的OSM地图数据处理包Pydriosm的数据下载核心代码,同时增加了Overpass数据下载方法,实现任意范围内地图数据包下载。具体数据下载方法如下:

  • 通过区域名称下载

只要你能在OSM网站搜索到的(https://www.openstreetmap.org/)区域,OSM2Rail都能帮你搞定;

  • 通过坐标框下载

不知道区域名称没关系,只要经纬度范围就够了;

  • 一次性下载多个文件

想一次下载多个文件?没问题!

2.2 提供更精确的铁路网络数据解析

充分挖掘OSM地图数据包中的铁路数据字段,细化铁路数据解析核心代码,剔除异常node、link、以及地铁线路干扰,保留单纯的铁路数据。

2.3 扩展GMNS标准

根据OSM地图数据包所提供的的铁路数据字段,对GMNS标准进行字段扩展,为铁路网络建模与优化提供更多有效信息,扩展后的GMNS-Rail标准如下:

node.csv

字段备注
nameGMNS
node_idGMNS
x_coordGMNS
y_coordGMNS
geometryGMNS
railwayExtended
level_crossingExtended
accessExtended
descriptionExtended

link.csv

字段备注
nameGMNS
link_idGMNS
osm_way_idGMNS
from_node_idGMNS
to_node_idGMNS
link_type_nameGMNS
lengthGMNS
geometryGMNS
railwayExtended
electrifiedExtended
frequencyExtended
highspeedExtended
max_speedExtended
maxspeed_designedExtended
passenger_linesExtended
railway_ctcsExtended
railway_traffic_modeExtended
start_dateExtended
usageExtended
voltageExtended
gaugeExtended
serviceExtended

poi.csv

字段备注
nameGMNS
poi_idGMNS
osm_way_idGMNS
geometryGMNS
railwayGMNS

3. 快速上手

【Step 1】安装OSM2Rail
打开电脑Command Prompt或Anaconda Prompt,输入如下命令行,通过pip安装。

pip install osm2rail

【Step 2】下载区域路网
新建py文件,输入以下代码,通过区域名称下载地图数据包。

import osm2rail as orl
subarea="北京南"
download_dir='osmfile'
osm_file=orl.download_osm_data_from_overpass(subarea_names=subarea,download_dir=download_dir,ret_download_path=True)
  • 可自定义的选项:
    (1)boxs:tuple,目标区域经纬度坐标范围(e.g. boxs=(minlat,maxlat,minlon,maxlon)),与subarea_name字段用其一即可。
    (2)download_dir:str,文件保存路径,默认为当前路径下的 'osmfile’文件夹 。
    (3)interval_sec:int,连续下载两个文件时时间间隔。
    (4)random_header:bool,是否采用随机请求头文件。
    (5)ret_download_path:bool,是否返回文件保存路径。

【Step 3】解析路网

net=orl.get_network_from_OSMFile(osm_filename=osm_file[0],POIs=True)
  • 可自定义的选项:
    (1)strict_mode:bool,是否严格解析坐标框内的铁路数据,默认为False。
    (2)POIs:bool,是否提取POI(兴趣点Point of Interest)数据,默认为False。
    (3)osm_filename也可直接指定路径和osm文件。

【Step 4】导出文件

orl.saveNetwork(net)
  • 可自定义的选项:
    output_folder:设置文件保存路径,默认为当前路径下的 ‘csvfile’ 文件夹。

【Step 5】可视化
可以输入以下命令进行网络可视化:

orl.showNetwork(net)
  • 可自定义的选项:
    savefig:图像保存参数,需指定文件名及分辨率,例如:
savefig={'filename':"network.png",'dpi':300}

输出的csv文件还可导入QGIS,NeXTA,plot4gmns等工具进行可视化,以便进行后续处理。

完整代码可通过GitHub,pypi主页,google colab获取:

https://github.com/PariseC/osm2rail
https://pypi.org/project/osm2rail/
https://colab.research.google.com/github/PariseC/osm2rail/blob/main/osm2rail.ipynb

4. 效果展示

北京南站:
在这里插入图片描述
满洲里口岸站:
在这里插入图片描述
京津冀铁路网:
在这里插入图片描述
粤港澳大湾区铁路网:
在这里插入图片描述
英国伯明翰站:
在这里插入图片描述
英国大伦敦地区铁路网:
在这里插入图片描述
德国法兰克福周边铁路网:
在这里插入图片描述

5. 相关阅读

如果需要包含道路、航空、慢行等多方式路网,可利用OSM2Rail下载的osm文件,配合OSM2GMNS使用,详见:
【神器】你想要的交通网络数据,三行代码搞定!

更多关于OSM2GMNS的详细信息,请参阅用户手册:
https://osm2gmns.readthedocs.io/en/latest/

更多关于Pydriosm的详细信息,请参阅用户手册:
https://pydriosm.readthedocs.io/en/latest/index.html

更多关于NeXTA的详细信息,请参阅用户手册:
https://github.com/asu-trans-ai-lab/NeXTA4GMNS

更多关于plot4gmns的详细信息,请参阅用户手册:
https://github.com/PariseC/plot4gmns

伦敦通勤智能体:轻量级Agent架构实现动态路径决策 通勤决策系统本质上是融合实时交通、时空建模与人因偏好的多源数据决策问题。其核心原理在于将离散API数据对齐统一时空坐标系,通过规则引擎替代黑盒算法实现可解释、低延迟的路径评分。技术价值体现在确定性响应(<320ms地图渲染)、可审计规则(YAML驱动)与跨平台复用能力(Adapter模式)。典型应用场景包括城市SaaS工具开发、本地生活平台路线推荐及高频通勤人群的分钟级行程规划。本文聚焦‘Commute Agent’架构设计,深入解析感知-决策-呈现三层解耦,以及TfL API稳定抓取、矢量瓦片动态渲染等工 阅读详情

相关推荐

SUMO NetEdit编辑模式全解:从路网绘制到信号交叉口搭建

交通仿真中,路网模型的准确性直接影响车辆行为与信号控制效果。SUMO作为开源微观交通仿真平台,其路网编辑工具NetEdit承担着从拓扑绘制到交叉口精细化调整的关键任务。围绕NetEdit的九大编辑模式,系统梳理了选择、移动、创建道路、转向连接、信号灯及公交站等元素的操作逻辑与常见陷阱,帮助读者理解如何通过模式组合快速搭建可运行的测试路网。结合一个四方向信号交叉口的完整搭建流程,展示了连接完整性检查、TLS相位配置以及sumo-gui验证等工程实践要点。无论是仿真新手还是路网调试工程师,掌握NetEdit模式

weixin_34195364的博客 322

OpenStreetMap开放街道地图(OSM)介绍

OpenStreetMap开放街道地图( OSM) 是一个非常详细的地图数据,是一个建构自由内容之网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图,并且让一般的移动设备有方便的导航方案。其OSM数据开源,可以自由下载使用,免费的全球地图数据库。OpenStreetMap(OSM)是一款由网络大众共同打造的免费开源、可编辑的地图服务,好比是地图领域的维基百科。

weixin_39676449的博客 7万+

数据分享|2023年OSM道路数据(全国,分省,分市)

首先这个工作非常有必要的,因为我们正常使用的道路的分类都是基于包括城市快速路、城市主干路、城市次干路这个体系的,大家对于这个分类体系应该更熟悉,但是OSM地图的道路分类又不是完全按这个来的,所以非常有必要重新分类;搞清楚道路类型是我们使用道路数据做很多工作的基础,比如我们在使用道路数据的时候,经常需要预估道路的行车速度,而这个速度一般就是根据道路类型来的,比如高架路的车速肯定就比城市支路快很多!下载分为两种情况,第一种是下载小区域的数据,比如下载一个街区的数据,第二种为下载整个中国范围的。

JData_Engineer的博客 4307

下载离线地图多种方式(osm,MapTileDownloader )

本文介绍了两种下载离线地图的方法:1)通过OSM方式下载瓦片;2)使用MapTileDownloader工具下载。文章推荐使用OSM方式,并提供了Leaflet加载离线地图的HTML代码示例,包含地图初始化、自定义瓦片图层设置等核心功能。同时分享了相关工具的官方下载地址和技术教程查询方法。作者还推荐了自己的技术博客和微信公众号,提供更多开发技巧和工具资源分享。

qq_37550440的博客 9312

Python库osm2gmns 0.6.2版本:OSM数据转换为GMNS格式

osm2gmns是一个开源的Python库,主要用于将OpenStreetMap(OSM)数据转换为GMNS(Global Model for Network Simulation)格式,以满足交通模拟和网络建模的需求。它的主要作用是简化了从OSM数据到交通模型输入数据的转换过程,使得研究人员和开发者能更专注于模型开发和分析,而不必花费大量时间在数据预处理上。对于想要开始使用osm2gmns的开发者来说,安装过程非常简单。通过Python的包管理工具pip,用户可以轻松地安装osm2gmns。

weixin_35433448的博客 888

Python库 | osm2gmns-0.0.4.tar.gz

资源分类:Python库 所属语言:Python 资源全名:osm2gmns-0.0.4.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.youkuaiyun.com/article/details/101784059

【功能上新】Python实现OSM地图数据解析——OSM2Rail

一款开源的铁路网络建模工具

Better.C的博客 3206

Shell数学计算(算术运算,加减乘除运算)

声明: 本篇博客的学习途径主要为以下网站和课堂讲解,发博客目的仅为学习使用,在该博客的基础上做了一定程序的简略和修改。 参考博客 : 原文链接:http://c.biancheng.net/shell/ Shell数学计算Shell数学计算数学计算命令对整数进行数学运算: (()) / let / $[] /exprShell (())Shell let命令bc命令:一款数学计算器在 Shell 中使用 bc 计算器 Shell数学计算 默认情况下,Shell 不会直接进行算术运算,而是把+两边的数据(数

AKUANer的博客 2万+

UK train mapping 实战:从铁路数据到地图可视化的完整工程路径

地图可视化是数据工程与前端渲染技术交叉的典型场景,其核心挑战在于如何将海量地理空间数据高效组织并流畅呈现。GeoJSON 作为前端地图数据的主流格式,承载着从原始数据清洗、坐标对齐到几何简化的关键链路;而浏览器端渲染性能则直接决定用户体验,尤其在处理数万车站与密集线路时,DOM 节点数量、图层加载策略和瓦片缓存机制都会成为瓶颈。本文以英国铁路网络可视化项目 UK train mapping 为例,系统拆解此类工程的验收方法:从环境准备、本地启动、功能测试到数据接口调用,再到拖拽缩放时的帧率观察与内存排查,提

weixin_30307921的博客 535

BurpSuite实战:5分钟搞定Pikachu靶场表单爆破(附最新字典配置技巧)

本文通过Pikachu靶场实战,详细演示了如何使用BurpSuite的Intruder模块对Web登录表单进行暴力破解。从代理配置、请求捕获、集束炸弹模式设置,到载荷配置与结果分析,提供了完整的操作流程。文中还分享了2024年有效的字典获取与优化技巧,帮助安全测试人员快速定位弱口令漏洞。

weixin_29327977的博客 601

从IR Drop到EM分析:数字IC电源规划中那些没人明说的细节(以MTCMOS配置为例)

本文深入探讨数字IC后端设计中电源规划的关键细节,特别关注MTCMOS配置、电源网络电阻最小化和level shifter供电等实战技巧。通过分析IR Drop和EM问题,提供优化floorplan和powerplan的具体策略,帮助工程师避免常见陷阱,提升芯片设计的稳定性和可靠性。

q9w8e7r6t5的博客 511

英国铁路地图可视化开源项目:从数据清洗到交互地图部署全解析

地图可视化是GIS工程与前端渲染结合最紧密的领域之一,其核心挑战在于将分散、格式异构的交通数据转化为可交互的线路与站点图层。开源项目UK train mapping通过整合英国铁路开放数据,完成坐标转换、线路简化、分层渲染及批量导入等关键步骤,提供了一套从原始数据到地图服务的完整链路。本文以该项目为例,系统讲解环境准备、数据处理、服务部署、接口调用与性能优化方案,并给出坐标系统偏差、跨域请求、数据压缩等常见问题的排查方法。无论你处理的是铁路网络、公交线网还是物流路径,这套工程化思路均可复用,是地图产品原型搭

weixin_34384557的博客 468

从数据库到数据仓库:数据仓库导论

本文为数据仓库导论,旨在介绍数据仓库的基本理念和应用场景,帮助读者理解数据仓库的重要性及其在企业中的实际应用。

探索大数据世界 - 深入解析数据存储、分布式计算与人工智能 2786

Python动态地图制作:从时空数据到铁路网络演变可视化

时空数据分析是地理信息系统(GIS)与数据可视化交叉领域的重要分支,其核心在于将时间维度与地理空间信息相结合,揭示事物的发展规律。从技术原理看,它通过时间序列与地理坐标的关联,利用动画算法逐帧渲染空间状态变化,形成动态叙事。这种技术的工程价值在于能将抽象的历史进程或发展趋势转化为直观的视觉语言,极大提升了数据分析的洞察力与传播效率。在应用场景上,它广泛用于基础设施发展追踪、城市扩张模拟、环境变化监测等领域。本文以德国铁路网络历史演变为例,具体展示了如何运用Python生态中的GeoPandas进行地理数据处

weixin_34396902的博客 396

开源的预测气象大模型与数据获取/可视化

「开源气象大模型与数据获取指南」摘要: 当前主流AI气象模型(如ECMWF的AIFS、DeepMind的GraphCast、华为Pangu等)主要基于ERA5/HRES数据训练。开源资源可通过ECMWF OpenData、GitHub仓库及Google Cloud获取,其中AIFS数据采用CCBY-4.0许可可商用,其他模型多有限制性许可。典型应用流程包括:1)通过Python包获取实时预报数据;2)加载预训练权重进行推理;3)使用xarray/cartopy或Zarr进行可视化。训练数据可从CDS下载ER

专注AI大模型,软件混淆,授权 795

逻辑判断1-逻辑基础知识

判断推理学习笔记

小y的学习笔记 2133

中国铁路网矢量shp数据获取与处理实战:从坐标系到缓冲区分析

在GIS工程中,矢量数据是空间分析的基石,而铁路网作为线性要素,其shp数据的质量直接决定项目成败。Shapefile由几何、索引与属性表等多个文件构成,坐标系(WGS84、CGCS2000、GCJ02)的混乱是数据不可用的头号原因。通过OpenStreetMap与国家基础地理信息中心等正规渠道获取的铁路网数据,经投影转换、拓扑修复与属性清洗后,可用于缓冲区分析、物流选址及人口覆盖评估。本文结合真实项目经验,详解从数据获取、QGIS/ArcGIS预处理到多源数据融合的完整链路,帮助读者避开坐标系错乱、属性乱

weixin_34129696的博客 338

Vue和Vue-Element-Admin(六):集成中的CORS(跨域资源共享)问题

在vue-element-admin登录集成时候碰到跨域资源共享问题,CORS(Cross-origin resource sharing)是浏览器的技术规范,浏览器可以发起跨域请求但Javascript脚本不能,传统的ajax只能获取在同域名下的资源,但Html5允许ajax发起跨域请求,解决方案有:JSONP、Flash、IFrame、CORS。 一、CORS(跨域资源共享)问题 针对vue-element-admin的登录模块的后端接口完成后,前端调用时候出现报错,因为前端的端口是9527而后.

叶子叶来 9615

用公开数据集打造高含金量数据科学项目

数据科学项目能力本质是处理真实数据、定义业务问题并交付可验证结论的综合工程能力。公开数据集作为未经修饰的原始素材,天然具备字段缺失、格式混杂、语义模糊等工业级挑战,倒逼学习者掌握数据清洗、时区转换、元数据解读、许可合规等关键技能。相比人造数据或教程复现,它更强调从混沌中建立秩序的能力——这正是招聘方评估候选人是否具备实战素养的核心标尺。结合WHO、data.gov、Kaggle等权威平台,可系统训练业务理解力、工程鲁棒性与长期维护意识,最终产出可部署、可解释、可复用的数据产品。本文聚焦十大高价值开放数据源及

weixin_30889885的博客 673

从 QQ 聊天到 AI Agent:AstrBot + NapCat 接入 DeepSeek

<think>我们根据要求,根据提供的内容生成≤150字的文章摘要。内容是关于在Windows上使用Docker部署AstrBot+NaPCat,配置DeepSeek,实现QQ AI机器人。摘要需简洁概括主要步骤和结论。注意字数。</think>在Windows 11上通过Docker一键部署AstrBot与NapCat,实现QQ机器人。NapCat扫码登录QQ,AstrBot接入并配置DeepSeek API,完成AI对话。后续可扩展人格、插件及MCP工具,并通过cpolar提供公网管理入口,打造可扩展的

天道酬勤 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Valhalla API 全指南:多模态开源路由引擎的 11 大服务与请求/响应协议详解

Valhalla 是一个基于开放数据(OpenStreetMap 主路网 + GTFS 公交数据)的多模态开源路由引擎,其全部 HTTP API 遵循标准的 REST 交互模型,以 JSON 作为请求与响应格式,并额外支持 Protocol Buffers(PBF)二进制格式。本文以 [API 索引文档](https://link.gitcode.com/i/0c0f5886013bec79d99

gitblog_00984的博客 365

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

OSM下载路网数据

OpenStreetMap(简称OSM,中文是公开地图)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。 本文介绍如何使用OSM免费下载路网数据。如想直接获取全国路网数据,可见文末! OSM地址:https://www.openstreetmap.org 在浏览器直接搜索“OSM”也可以找到官方网页 首先利用电子邮件进行注册和登录。 OSM下载路网数据可以分为小区域下载和大范围下载两类,本文对两类下载分别进行介绍。 小范围下载: 01点击页面左上角“导出”

weixin_45250770的博客 1万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

OSM道路数据下载及详细介绍

OpenStreetMap(简称OSM,公开地图),这是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。

qq_35776031的博客 7673

Geoserver发布OSM官网地图

一、前言 在Geoserver发布地图中,数据获取与处理、图层样式调节是最繁琐最复杂的工作,最近一直在寻找Geoserver能不能直接发布OSM官网地图使用OSM官方样式,最终实现OSM官方地图的离线发布。每次进Geoserver官网左侧有官方发布的OSM地图,通过F12查看网络请求链接为Geoserver发布的地图服务。 在官网文档搜索,确实发现了Geoserver发布OSM地图的项目说明,在Geosolution也提到了发布OSM地图相关说明,因此在Github搜索发......

DX奥特曼的博客 8236

离线OSM数据条件下,出租车轨迹数据的地图匹配

osmnx库由于受到网络限制很难较为完整的获取一个城市或更大范围的路网数据。为了解决这个问题,本人采用了osm2gmns库,构建网络并进行地图匹配,实现了和交通数据小旭学长一样的效果。

weixin_45562896的博客 2988

为OSM地图建立网络拓扑关系,导出shp文件

为OSM地图建立网络拓扑关系,导出shp文件

imlpf的专栏 1586
上一篇: Python实现基于OSM地图数据的交通需求生成——Grid2demand
下一篇: Python实现分配问题常见求解算法——竞拍算法(Auction Algorithm)
Better.C
博客等级 码龄9年 1万+粉丝 72原创
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值