当前位置: 首页 > news >正文

【第一期】看图识车站,快来看看你是不是资深铁路迷

科普铁路车站空间拓扑

前言

新增“铁路科普”专栏,将融合文字、图片、代码、模型等多种形式分享铁路知识。第一期将以“看图识站名”的形式向大家展示熟悉的铁路车站空间拓扑。

北京市

北京铁路枢纽是连接八个方向的全国最大的铁路枢纽,众多铁路干线呈辐射状通向全国各地,并有大大小小几十座铁路车站,接下来小编将选取其中8个车站,如下图所示,通过OSM地图数据解析得到车站地理信息数据,然后借助QGIS软件进行可视化展示。
在这里插入图片描述

1. 准备OSM文件

  • Step1:打开OpenStreetMap网页。OSM是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图,包含丰富的地理数据。 (https://www.openstreetmap.org)

  • Step2:搜索目标车站
    在这里插入图片描述

  • Step3:点击导出→手动选择不同的区域→点击导出按钮
    在这里插入图片描述
    在这里插入图片描述

  • Step4:将下载好的地图文件(.osm)准备好

在这里插入图片描述

2. 解析OSM文件

  • Step1:Python中安装osm2rail开源包
pip install osm2rail
  • Step2:解析.osm文件,获取网络文件
import osm2rail as orl
osmfile = '北京南站.osm'
net=orl.get_network_from_file(osmfile,check_boundary=True,POIs=True)
orl.save_network(net)
  • Step3:准备好输出的网络文件
    在这里插入图片描述
    node.csv:存放地理节点信息,如道岔位置
    link.csv:存放地理节点连接信息,如轨道长度
    poi.csv:存放地理区域信息,如站台区域

3. QGIS可视化

  • Step1:打开QGIS,新建项目。QGIS是一个用户界面友好、跨平台的开源版桌面地理信息系统。

  • Step2:逐次读取node.csv, link.csv, poi.csv,注意图层名称加以区别。

在这里插入图片描述

  • Step3:左侧“图层栏”双击需要编辑的图层,可对显示样式进行修改

在这里插入图片描述

4. 车站可视化结果

01号车站

在这里插入图片描述

02号车站

在这里插入图片描述

03号车站

在这里插入图片描述

04号车站

在这里插入图片描述

05号车站

在这里插入图片描述

06号车站

在这里插入图片描述

07号车站

在这里插入图片描述

08号车站

在这里插入图片描述

5. 车站揭秘

①号车站:北京南站
②号车站:北京站
③号车站:北京东站
④号车站:北京朝阳站
⑤号车站:北京清河站
⑥号车站:北京丰台站
⑦号车站:北京西站
⑧号车站:北京北站

6. 数据来源

[1]. https://www.openstreetmap.org
[2]. 百度百科
注:由于底层数据缺失,部分车站的站台信息无法获取

相关文章:

  • 初识PLSQL
  • F-Theta扫描镜头的性能评估
  • A40I工控主板(SBC-X40I)USB接口读写测试
  • 基于C#实现自己的webapi调用软件
  • QChart绘制图形遇到的问题
  • springboot停车场车辆定位管理可视化分析系统的设计与实现毕业设计源码101702
  • Web前端笔记--HTML5学习1
  • QT计算函数运行时间,精确到ms和us
  • CentOS7 rabbitmq3.8 与 erlang22. 安装、干净卸载
  • ROS导航相关消息
  • lombok注解介绍
  • 猿创征文|final的细节,你知多少
  • SCM供应链具体有哪些优越性?智能供应链管理系统助力汽车服务企业数字化转型
  • 百数标准应用——一站式实现疫情流调管理数字化
  • 优盘格式化了怎么恢复里面的数据
  • 4个实用的微服务测试策略
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • Docker入门(二) - Dockerfile
  • gf框架之分页模块(五) - 自定义分页
  • Mysql优化
  • vue.js框架原理浅析
  • 你不可错过的前端面试题(一)
  • 强力优化Rancher k8s中国区的使用体验
  • 如何借助 NoSQL 提高 JPA 应用性能
  • k8s使用glusterfs实现动态持久化存储
  • 从如何停掉 Promise 链说起
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (九)One-Wire总线-DS18B20
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转) RFS+AutoItLibrary测试web对话框
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • @ComponentScan比较
  • @KafkaListener注解详解(一)| 常用参数详解
  • [ 隧道技术 ] 反弹shell的集中常见方式(四)python反弹shell
  • [ai笔记4] 将AI工具场景化,应用于生活和工作
  • [Angular 基础] - 数据绑定(databinding)
  • [ArcPy百科]第三节: Geometry信息中的空间参考解析
  • [bzoj 3534][Sdoi2014] 重建
  • [BZOJ] 2427: [HAOI2010]软件安装
  • [hihocoder1395] 最大权闭合子图
  • [IE编程] 如何设置IE8的WebBrowser控件(MSHTML) 的渲染模式
  • [linux] C语言Linux系统编程进程基本概念
  • [linux]linux命令学习-netstat
  • [MAT]使用MAT比較多个heap dump文件
  • [NLP] LlaMa2模型运行在Mac机器
  • [NYOJ 536] 开心的mdd