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

Python通过OSM获取全国屋顶数据(经纬度、轮廓、面积、地址等) 本文实现了使用Python通过OSM获取全国屋顶数据(经纬度、轮廓、面积、地址等)的效果,详细过程和效果可参考以下内容。 阅读详情

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

1. 简介

作为一款面向铁路工作者的开源网络建模工具,OSM2Rail实现了在线OSM地图包快速下载、铁路元素自动解析、网络快速可视化以及规范化数据输出。借助OSM2Rail,你可以快速构建以下车站、站场、线路、网络的地理网络。

(1)北京南站
在这里插入图片描述
(2)襄阳北
在这里插入图片描述
(3)伦敦城区网
在这里插入图片描述
为了进一步简化铁路网建模工作,快速提取特定名称的铁路元素集合,在新版本0.0.6中对包进行了一定功能完善,可实现特定线路的提取。

2. 功能介绍

0.0.6版本的OSM2Rail功能如下:

  • 支持在线下载.osm或.osm.pbf格式的OSM地图数据包
  • 支持解析.osm或.osm.pbf格式的OSM地图数据包
  • 支持提取特定名称的铁路元素
  • 以GMNS数据格式导出CSV文件
  • 导出文件可被QGIS读取

3. 操作流程

3.1 安装

PyPI地址:

https://pypi.org/project/osm2rail/

新版本需要以下三方包支持:

  • bs4
  • osmium
  • shapely
  • matplotlib
  • fuzzywuzzy
  • pandas
  • numpy
  • requests

配置好以上环境后,可输入以下命令快速安装包,

pip install osm2rail

3.2 快速上手

(1)在线下载地图包

支持通过名称或坐标框两种格式在线下载地图包

subarea_names = '徐州东'
download_dir= './osmfile'
osmfile=orl.download_osm_data_from_overpass(subarea_names='徐州东',download_dir=output_dir,ret_download_path=True)

subarea_names:区域名称,可以是 str 或 包含多个str 的list
download_dir:下载到本地的路径
bboxs:区域的坐标范围,格式为:tuple(min_lat, max_lat,min_lon, max_lon)
ret_download_path:是否返回文件路径

(2)解析地图包并格式化

net = orl.get_network_from_file(filename=osmfile[0],POIs=True,check_boundary=True)
orl.show_network(net)

filename:文件路径
bbox:解析的目标范围,格式为:tuble(min_lat, max_lat,min_lon, max_lon)
check_boundary:bool,是否剔除不再范围内的元素
target_elements:需要解析的特定元素名称,格式为str或包含多个str 的list
POIs:bool,是否解析POI元素

可视化结果如下:
在这里插入图片描述
接下来我们尝试使用特定铁路元素解析功能:
首先需要自己准备好一个包含目标区域的地图包,比如:
在这里插入图片描述
然后输入以下代码提取:

net = orl.get_network_from_file(filename=osm_file,POIs=True,check_boundary=True,target_elements=['South London Line'])

你将会得到以下结果:
在这里插入图片描述
这样就不用在准备地图数据包时刻意的裁剪额外区域,可有助于简化铁路网络建模工具。经测试,此功能对于线路的提取效果较好,对于车站级别的提取效果不是太理想,主要是因为:在OSM地图数据结构中,车站的relation元素集合中一般只包含POI和控制点数据,不包含侧线。

(3)保存CSV文件
输入以下命令即可将数据保存为CSV文件

orl.save_network(net,output_folder=output_dir)

4. 未来计划

目前正在完善以下功能:

(1)为车站侧线添加车站名称属性,方便通过输入名称搜索两个车站间的可行列车路径。
(2)将站台与车站侧线建立连接,构建连通的铁路网络。
(3)关于未来的更新计划,欢迎留言交流

部分效果如下:
在这里插入图片描述

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

相关推荐

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

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

weixin_34195364的博客 322

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

开源python依赖库——OSM2Rail,不仅提供了更精确的铁路网络解析结果,而且实现了OpenStreetMap地图数据包自动下载,同时在GMNS标准的基础上扩展了铁路数据字段,将解析数据输出为符合GMNS-Rail 标准的路网文件。轻松获取想要的铁路网络数据!

Better.C的博客 4144

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

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

JData_Engineer的博客 4307

如何使用python提取OSM地图的建筑轮廓数据及道路数据

要在OSM地图上获取道路数据,并按照行政边界裁剪,可以使用Python中的OSMnx库。以下是一个示例代码,可以提取指定地点的道路数据,并按照指定的行政边界进行裁剪。函数按照行政边界进行裁剪,最后将裁剪后的数据保存为Shapefile文件。库来筛选出所有“建筑物”类型的要素,并将其保存为Shapefile文件。函数将道路数据转换为GeoDataFrame格式,并使用。函数来获取指定地点的所有地理要素,然后使用。函数来获取指定地点的道路网络数据,然后使用。函数来获取地点的行政边界。

2301_77925375的博客 3436

Python-中国高铁地图python

中国高铁地图(通过编辑各城市高铁站的经纬度数据,并在地图上通过线路连续实现动态展示中国高铁地图)线路越粗,设计时速越高,目前最高350KM/h。

Python获取openstreetmap(OSM)路网信息 自动爬取城市路网图片和矢量图

# Python获取openstreetmap(OSM)路网信息 自动爬取城市路网图片和矢量图 1. 包含中国城市的经纬度 json文件,根据经纬度自动爬取 osm 道路网; 2. 使用 matplotlib 将路网绘制为白底黑线的png格式图片; 3. 使用 matplotlib 将路网绘制为svg格式矢量图。

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

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

weixin_30307921的博客 535

【博客汇总】UV打印机博客汇总

UV平板机博客汇总

Print World的专栏 1746

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

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

weixin_34384557的博客 468

AFSim插件开发实战:从环境搭建到功能扩展

本文详细介绍了AFSim插件开发的完整流程,从环境搭建到功能扩展,涵盖了SDK配置、插件创建、核心代码解析、功能扩展实战、调试优化以及高级开发技巧。通过实战案例和实用技巧,帮助开发者快速掌握AFSim插件开发,提升仿真系统的扩展性和灵活性。

weixin_29309475的博客 578

Tip-Adapter: Training-free Adaption of CLIP for Few-shot Classification

对比式视觉-语言预训练,也称为CLIP,通过大规模的图像-文本对来学习视觉表示,为zero-shot知识迁移展示了新的范式。它在下游任务上展现出令人瞩目的性能,实现了zeri-shot的知识迁移。为了进一步增强CLIP的适应能力,现有方法提出了微调可学习模块的方法,显著提高了少样本情况下的性能,但也引入了额外的训练时间和计算资源。在本文中,我们提出了一种适用于CLIP的无需训练的少样本分类方法,称为Tip-Adapter。

qq_43800752的博客 1165

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

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

weixin_34396902的博客 396

告别“为了写而写”:GJB438C-2021新规下,软件文档如何真正为项目服务?

本文深入解析GJB438C-2021新规如何重构软件文档的实战价值,通过文档体系瘦身、流程再造和敏捷化实践,显著提升军工软件项目的效率。新标准删除30%冗余文档,引入动态编制法和轻量化模板,使文档编制工作量降低37%,关键路径周期缩短15%。

weixin_30765577的博客 448

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

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

weixin_34129696的博客 338

11. 使用 HTTP PUT, PATCH 以及 MERGE 请求消费 SAP ABAP OData 服务修改操作的实现及其区别

使用 SAP ABAP SEGW 事物码实现 OData 服务的修改操作时,对于消费端通过 PATCH/MERGE 和 PUT 这三种不同类型的 HTTP 请求触发的场景,我们应该在 UPDATE_ENTITY 方法里用 IF 分支分别进行处理,原因就在于 GET_ENTITY 方法是否在修改处理逻辑的过程中被触发。......

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2463

【unity知识】最新的虚拟相机Cinemachine3简单使用介绍

本文介绍了Unity中Cinemachine 3虚拟相机系统的使用方法。相比旧版本,新版功能更强大且参数分类更直观。文章详细讲解了摄像机镜头参数、旋转控制(包括None、目标跟随、样条线推拉、旋转追随等6种模式)和位置控制(跟随、样条轨道、硬锁定等5种模式)。重点演示了样条轨道摄像机的创建与配置,以及如何实现第一人称和第三人称视角。通过丰富的GIF图示,展示了各种模式的运行效果,帮助用户快速掌握Cinemachine 3的核心功能。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 866

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

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

weixin_30889885的博客 673

Open-Sora代码详细解读(1):解读DiT结构

目前开源的DiT视频生成模型不是很多,Open-Sora是开发者生态最好的一个,涵盖了DiT、时空DiT、3D VAE、Rectified Flow、因果卷积等Diffusion视频生成的经典知识点。本篇博客从Open-Sora的代码出发,深入解读背后的原理。

沉迷单车的追风少年 2265

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

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

gitblog_00984的博客 365

YOLOv12优化:原创自研 | 带有注意力机制的隐藏状态混合器的状态空间(HSM-SSD),实现暴力涨点 | CVPR2025 EfficientViM

可以将 带有注意力机制的隐藏状态混合器的状态空间(HSM-SSD)中的注意力机制换成专栏其他注意力机制 ,那么你就能实现独一无二的原创。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 665

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

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

基于python语言,实现OSM开源地图数据解析,获取交通网路数据。

Better.C的博客 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Python读取本地文件OSM文件中的路网数据结合CSV数据处理

编写一个Python程序,使它能读取本地文件OSM文件中的路网数据,并将csv文件中的时间速度和公交车设备号根据公交站点信息或者经纬度信息赋值到OSM路网数据中对应的路段上, 如果有些路段处于两个经纬度之间,赋值的时间则取前后经纬度坐标所对应时间的的中间值。并设计时间间隔为5分钟,计算任意时间段任意路段的平均速度。 步骤实现: 读取OSM路网数据,可以使用OSMnx库来实现。 读取CSV文件中的公交车设备号,时间速度和公交站点信息或经纬度信息。 将公交车设备号和时间速度信息匹配到OSM路网数据的对应路段

lizhihua0625的博客 1906

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

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

weixin_39676449的博客 7万+

OSM获取路网数据 (数据转换方法对比

ArcMap加载百度地图 由之前安装ArcBruTile插件转换成将百度地图适配为标准的WMTS服务,感谢大佬cehui0303 1.打开ArcMap,使用Catalog添加WMTS服务,url输入 http://demo.cxgis.com/wmts/baidu/vec?request=getcapabilities 2.点击确定,成功添加服务 3.将图层拖入视图,放大即可看到百度地图 OpenStreetMap获取城市路网数据 ...

Puzzle的博客 1万+

OSM数据内容解析

OpenStreetMap(简称OSM,中文是公开地图),这是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。是一款由网络大众共同打造的免费开源、可编辑的地图服务。OSM采用WGS 84(EPSG:4326)地理坐标系。优点:数据开放,可自己搭建服务器,自己修改数据。缺点:数据尚不完善,资源不是十分丰富。OSM数据很大程度上依赖于本地参与者的贡献,因而地图数据的质量在不同地区差异很大。

DIY_Liu的博客 9971

Python处理OpenStreetMap(OSM)数据

做项目的时候发现osm自定义bounding区域导出后,还是会有延伸到区域外的数据,且会影响其他软件导入osm后的锚点,如下图,黑色背景的区域全是多余的数据 推测官网导出的规则为:只要某条道路的其中一部分存在于我们选择的区域内,osm就会导出该条道路包含的全部节点。 这个问题似乎没办法避免,于是想到了用python手动处理一下osm数据,将多余节点删除。 其实osm数据采用的也是xml格式,使用ElementTree解析即可,下面直接上代码 #author:dizzyding #date:20

dizzyding的博客 6386
上一篇: 【CVRP&VRPTW】Python+Gurobi求解运输问题建模实践二
下一篇: 【进阶四】Python实现(MD)HVRP常见求解算法——遗传算法(GA)
Better.C
博客等级 码龄9年 1万+粉丝 72原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Better.C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值