今天要给大家介绍的是在2019年开发竞赛中,获得【GIS应用开发组】的特等奖作品:《城市新型智慧地铁管理系统》。该系统通过从宏观角度挖掘地铁运营数据的潜在规律,将众源数据与传统地理数据相结合,建立精准预测模型,满足了地铁复杂客流预测的需求,拓展了地理数据的使用价值。而浏览器端、移动端、微信小程序三端交互,可有效缓解交通压力,改变传统地铁公司的运营模式。
PS:我们将持续为大家解说2019年开发竞赛中的优秀作品哦~
作品编号:C28(特等奖) 作品名称:城市新型智慧地铁管理系统 作品单位:聊城大学环境与规划学院 小组成员:唐杰,王志远,吕晓青,孙佳浩 指导老师:何振芳,马雪梅随着城市化进程加快,城市人口大幅度增加,城市交通拥堵问题日益严重。为缓解交通压力,城市地铁应运而生,然而随着人口增长地铁站的客流量越来越多,其拥堵情况也日益严重,高峰时段更是拥堵不堪。如何缓解地铁站拥堵状况、降低地铁超载率、最大效率利用地铁运送客流是当今地铁发展面临的主要问题。
我们通过调查研究发现地铁运营每天都会产生海量的刷卡数据,但是这些数据不仅没有被有序的存储处理,大部分也没有进一步衍生有益于地铁运营的数据。基于此,本系统以地铁刷卡数据为数据基础,设计了针对地铁公司运营管理的web端进行数据深入挖掘分析和辅助决策支持、针对地铁工作人员的移动端用于及时处理事故与故障、针对乘客的微信小程序主要用于乘客问题反馈以及数据统计结果查看。
存在问题我们通过调查和信息爬取,发现地铁运营过程中存在以下问题:
数据挖掘不充分,无法对海量运营数据进行深入挖掘。
车辆调度存在滞后性,运营计划制定缺少历史时空数据辅助支撑。
车站规划不精准,没有明确乘客需求,没有充分挖掘周边数据。
事故处理、问题上报不及时不充分。
基于以上背景和问题,我们设计了城市新型智慧地铁管理系统,本系统分为Web端、移动端和微信小程序。Web端包括数据分析和辅助决策系统、辅助调度系统,移动端设计给工作人员使用,微信小程序设计给乘客使用。其中数据分析和辅助决策系统,用于充分利用地铁刷卡历史数据,做出科学、合理的规划方案。辅助调度系统,用于调度员使用,界面简洁、使用方便、实用性高、管理性强。移动端,工作人员使用,信息查看,事件上传,接收通知,请假等基本功能可以加快工作效率。微信小程序,乘客使用,查看人流量信息,上报事件及建议,我们已将小程序上传至微信公众平台,在微信中搜索 HiSOS 即可。
系统设计系统架构与关键技术
城市新型智慧地铁管理系统总体利用轻量高效的Node.js技术,使用Express框架,结合跨平台数据库MongoDB进行搭建,并利用socket技术实现实时交互。本系统采用四层体系架构,分为:数据层、应用支撑层、业务逻辑层和表现层。空间数据采用ArcGIS的地理数据库进行组织管理和存储发布。非关系型数据采用轻巧、灵活、可快速访问的MongoDB数据库进行存储,并利用Map-Reduce编程模式对数据进行分析统计,结合GIS技术、GP服务对数据进行挖掘分析,并分别在浏览器和移动端进行展示。系统体系架构如图1所示:
图1系统体系架构图
系统功能设计
根据分布的终端,系统分为web端的数据分析与辅助决策系统、辅助调度系统,移动端的工作人员系统和乘客使用的微信小程序:
数据分析与辅助规划子系统服务对象是地铁公司决策人员,通过对历史刷卡数据的有效挖掘,并与GIS相结合,充分分析客流特征,为车辆调度和站点规划提供决策支持;辅助调度子系统的服务对象是地铁调度员,用于调度员结合数据与GIS,科学的进行调度,提高调度工作的效率;移动端为现场工作人员设计,可以及时上报事件由调度员进行调度以及接收调度通知;微信小程序为乘客设计,可以查看历史数据统计,可以上报问题。系统详细功能图,如图2所示:
图2 系统详细功能图
Web端:
(1) 数据分析与辅助决策系统:
时空数据统计:以动态图表的方式展示客流量的变化特征,点符号的大小和颜色共同表示站点客流量的大小;在地图上显示高峰客流量,通过此功能可以得到北京市客流规律;以热力图显示北京市人流热力状态;将热力图随时间变化的状态动态展示;对历史客流进行统计和分析,得到客流的折线图、柱状图、饼状图、笛卡尔坐标系上的热力图等统计图,通过这些统计图得到站点的客流特征,可以为车辆调度提供辅助参考。
辅助决策:对北京市出行OD点生成OD线,可得到北京市出行热点路段;对北京市出行OD点做点密度分析得到的北京市热点区域与北京市主道路做标识分析得到北京市热点道路;利用站点构建泰森多边形,将北京市区划分为若干区域,根据POI数据按照比例分级的方法对站点进行模糊分类,将站点分为住宅型、工作教育型、其它类型;对地铁站点做缓冲区,将缓冲区内部的POI做聚类分析得到聚类分析点,为站点优化改建起到参考作用。
客流预测:利用历史刷卡数据、POI数据、微博签到数据结合MATLAB建模得到客流预测模型,选择站点即可利用此模型预测客流。
站点评价信息:选择站点可以得到站点各个评价指标雷达图,同时可以观看3D模型,对多个站点进行对比可得到对比柱状图。
(2) 辅助调度系统:
通过对MongoDB中存储的司机信息进行添加、删除、修改、查询,方便管理者对司机信息进行管理。
将车辆历史轨迹储存在数据库,读取数据可回放车辆历史轨迹,同时分析出车辆速度异常点。
通过MongoDB数据库对事故信息进行存储和管理,把事件和地图结合,显示在地图上,统计历史事故生成图表,提取出事故高发区域。
与移动端交互实现事件的上传和指令的下发。
移动端:
(1) 工作人员通过APP可以查看值班信息等基本信息,方便安排工作时间和任务。
(2) 工作人员可以通过APP上报事故信息,接收调度中心下达的紧急通知。
(3) 工作人员通过APP上交请假需求
微信小程序:
(1) 乘客可以通过小程序查看地铁公司公布的地铁信息,如:站点具体信息,地铁拥堵程度排行,客流量统计表等;
(2) 乘客可以通过小程序上传地铁运行过程中存在的问题,同时提出自己的意见和建议。
(3) 在地图界面可以定位到当前位置,也可以查看街景图。
数据库设计空间数据储存在ArcGIS Server托管的企业级地理数据库中,非空间数据储存在非关系型数据库—MongoDB,将数据分类存储,保障了数据的时效性及用户访问的快捷性,方便用户进行操作、管理及更新数据。
地理数据库
地理数据库是一种面向对象的空间数据模型,它对地理空间特征的表达更接近我们对现实世界的认识。地理数据库在一个公共模型框架下,对GIS处理和表达的空间特征进行统一的描述和存储,是目前最先进的数据管理模式。地理数据库具有实用性、集成化 、网络化、标准化、可视化等特点,用于存储和使用地理数据。
图3 北京地铁线路和站点
MongoDB数据库
MongoDB拥有更大的存储容量、更快的处理速度、更高的性能、更便利的操作、内部进行数据分析等优点,更加方便处理和使用数据。前期使用MongoDB数据库结合MapReduce编程模式对数据进行清洗和筛选,后期使用MongoDB数据库进行数据的存储和调用。数据库中部分数据的属性结构如表1、表2所示:
集合 history | ||
序号 | 属性名 | 属性标识码 |
1 | 站点名 | sitename |
2 | 线路名 | linename |
3 | 位置经度 | X |
4 | 位置纬度 | Y |
5 | 时间 | time |
6 | 编号 | Num |
7 | 描述 | accident |
8 | 状态 | status |
9 | 程度 | class1 |
10 | 日期 | date |
表1 历史事件属性结构
集合 driver | ||
序号 | 属性名 | 属性标识码 |
1 | 姓名 | Name |
2 | 性别 | Sex |
3 | 联系方式 | Phone |
4 | 工号 | Jobnum |
5 | 工作时长 | Worktime |
6 | 请假记录 | Vacation |
7 | 违规记录 | Outofline |
8 | 行驶里程 | Gross |
表2 司机信息属性结构
系统亮点充分挖掘历史刷卡数据,助力车辆调度。对海量的历史刷卡数据进行挖掘分析,利用ECharts丰富图表、地图渲染、数据可视化技术并结合ArcGIS API for JavaScript在前台进行展示,分析出其潜在的规律,为车辆调度提供决策支持,改变了传统车辆调度模式,使调度有提前性,及时性,提高了调度效率。
深入运用多源数据,建立精准预测模型。利用POI数据、微博签到数据及历史刷卡数据,并在MATLAB中使用curve fitting函数生成模型,极大提高了预测的精度,满足了复杂客流预测的需求。
设计多种系统终端交互,提高工作效率。web端与移动端和微信小程序相交互,分别从地铁公司管理员、调度员、乘客三方面缓解交通压力,极大的提高了工作效率,改善了传统地铁公司的运营模式。
采用跨平台数据库,提升用户体验。MongoDB数据库效率高且便于操作。在数据处理及数据挖掘分析方面使用MongoDB的map-Reduce编程模式,提高了大规模数据处理能力。