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

目录

  • 1. 简介
  • 2. 功能介绍
  • 3. 操作流程
    • 3.1 安装
    • 3.2 快速上手
  • 4. 未来计划

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)关于未来的更新计划,欢迎留言交流

部分效果如下:

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

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

    目录 1. 简介 2. 功能特色 2.1 自动下载OpenStreetMap地图数据包 2.2 提供更精确的铁路网络数据解析 2.3 扩展GMNS标准 3. 快速上手 4. 效果展示 5. 相关阅读 ...

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

    转载 OSM2GMNS相关说明文档: 详细用户文档:https://osm2gmns.readthedocs.io: Github链接:https://github.com/jiawei92/OSM2 ...

  3. Python实现OSM地图数据解析——Pydriosm

    目录 1. Pydriosm简介 2. 安装 3. 使用方法 3.1 下载数据 3.2 解析文件 3.3 不同geometry 类型及其数据结构 4. 总结 参考 1. Pydriosm简介 Pydr ...

  4. osm地图数据 mysql_[小O地图-数据] 下载世界范围的OSM地图数据

    [概述] 小O地图是互联网专业地图数据软件,致力为广大科研人员提供专业地图数据,用于科研及学习. OSM是OpenStreet Map的缩写,OSM是全球最大的互联网在线地图网站,提供世界范围的地图数 ...

  5. [小O地图-数据] 下载世界范围的OSM地图数据

    [概述] 小O地图是互联网专业地图数据软件,致力为广大科研人员提供专业地图数据,用于科研及学习. OSM是OpenStreet Map的缩写,OSM是全球最大的互联网在线地图网站,提供世界范围的地图数 ...

  6. 功能上新|使用 Excel 低门槛进行指标分析!

    Kyligence Zen 功能上新啦!用户不仅可以在 Kyligence Zen 中定义.分析和管理指标,还可直接使用 Excel 插件来分析 Kyligence Zen 中已经定义好的指标,学习无 ...

  7. python爬取地图数据_高德3地图之python爬取POI数据及其边界经纬度(根据关键字在城市范围内搜索)...

    目前高德的边界没法批量爬取,不过可以采用百度地图的接口来替代,目前用着还可以,参见这里: 为了方便大家,不用再为安装环境,以及运行报错等问题困扰,目前已经将POI数据爬取做成一个在线公开的数工具,地址 ...

  8. arcgis怎么运行python_在arcgis上用python脚本(arcpy)做数据批处理

    arcgis软件是测绘地理信息行业空间数据处理与数据分析比较普及的一套软件系统,具有良好的扩展功能,其提供的基于python的开发包arcpy为数据的批处理提供了很好的基础.本文就是介绍在arcgis ...

  9. 集中式自动驾驶控制域中的高精地图数据解析算法

    作者 | Aimme 出品 | 焉知 下一代自动驾驶架构设计中已经倾向于以软件定义汽车的方式集合,主要涉及中央集中处理单元的方式会存在较大的改变.这一改变主要体现在外围传感单元将不再有单独的分布式处理 ...

  10. OpenDrive格式地图数据解析

    OpenDrive地图解析代码可以参考,https://github.com/liuyf5231/opendriveparser OpenDrive地图文件格式为xml,详细的介绍可以参考 http: ...

最新文章

  1. 基于Pytorch再次解析使用块的现代卷积神经网络(VGG)
  2. SilverLight MD5加密
  3. VS2010生成的文件在别的机器上运行提示“丢失MSVCR100D.dll”
  4. android 跳转系统通知,android 跳转到应用通知设置界面
  5. android 字体像素转换工具类_Android点9图机制及在聊天气泡中的应用
  6. 常用z变换及其收敛域
  7. 电脑自带蓝牙与HC-06蓝牙模块使用串口助手通信
  8. 你的编程能力从什么时候开始突飞猛进?
  9. 这是我见过最好的唐诗,而且通俗易懂
  10. 机器学习之朴素贝叶斯
  11. 企业流程篇--项目管理(七)
  12. 移动物联网怎么激活?开户流程是怎么样的
  13. 【题解】[POI2006」Tet-Tetris 3D
  14. 2022年系统集成项目管理工程师考试知识点:项目成本管理
  15. 【历史上的今天】9 月 18 日:McAfee 创始人出生;ICANN 成立;QQ 宠物正式下线
  16. ISO8583银联报文规范分析
  17. 什么是亚稳态,如何消除?
  18. 【UCIe】UCIe 协议层介绍
  19. 阿里云——NLP自学习平台产品体验
  20. 常见17个PLM系统

热门文章

  1. 洛谷P1357 花园(状态压缩+矩阵快速幂)
  2. 百度没有文化(转载)
  3. 耶利哥打不开因计算机丢失,我的电脑游戏打不开说什么应用程序错误。是不是中毒了...
  4. 盘点苹果电脑上那些不错的cpu优化工具
  5. 谈谈我对普通莫队和带修莫队的拙见
  6. Nginx 配置子域名
  7. 求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m
  8. fluent linux运行算例,在linux环境下运行fluent,case文件中带有udf的话,jou文件应该做什么改变呢?...
  9. 给一个字符串,将其按照单词顺序进行反转
  10. .Microsoft Visual Studio 2010 Service Pack 1