第 22卷第 7期2023年 7月
Vol.22 No.7
Jul.2023软件导刊
Software Guide
基于Django的交通事故数据可视分析系统
设计与实现
张同硕1,廖明军1,张荣华2,黄伟东2,邵明宇1
(1.盐城工学院机械工程学院,江苏盐城 224051;
2.盐城市规划市政设计院有限公司,江苏盐城 224055)
摘要:目前,交通管理部门已经积累了大量的交通事故数据,但由于数据分析、可视技术等手段的限制,尚未完全
实现对大量事故数据应用及事故产生原因和事故预防决策的进一步研究。因此,采用一种新型的分析挖掘方式,搭
建Web交通事故可视分析网站,网站后端采用Django架构开发,将Bootstrap作为系统前端框架。利用Echarts结合百
度地图API进行数据多维可视化,实现对时间分析、空间分析、动态分析、事故预测等多维可视分析功能;使用关系型
数据库MySQL存储数据,Redis数据库作为系统缓存;基于Logistic算法对历史交通事故数据的碰撞类型、季度、天气、
是否周末、路段等字段进行训练建模,实现未来某天、某路段可能发生的交通事故次数预测。结果表明,使用该系统
不需要掌握复杂的数据分析方法,只需通过界面上的功能按钮,进行相关选项组合即可实现对数据的可视分析,极大
减少交通领域人员在可视分析技术学习上的时间、精力投入。
关键词:Django;交通事故;Web网站;可视分析
DOI:10.11907/rjdk.231377开放科学(资源服务)标识码(OSID):
中图分类号:TP319  文献标识码:A文章编号:1672-7800(2023)007-0112-06
Design and Implementation of Traffic Accident Data Visual Analysis
System Based on Django
ZHANG Tongshuo1, LIAO Mingjun1, ZHANG Ronghua2, HUANG Weidong2, SHAO Mingyu1
(1.School of Mechanical Engineering, Yancheng Institute of Technology, Yancheng 224051, China;
2.Yancheng City Planning Municipal Design Institute Co. Ltd., Yancheng 224055, China)
Abstract:At present,traffic management departments have accumulated a large number of traffic accident data, but due to the limitations of data analysis, visual technology and other means, has not fully realized the application of a large number of accident data and the cause of the accident and accident prevention decision further research. So this paper adopts a new analysis mining way-web traffic accident visual analysis website. The back end of the website is developed using Django archite
cture, and the front end uses Echarts combined with Baidu Map API to carry out multi-dimensional data visualization, realizing multi-dimensional visual analysis functions such as time analysis, spatial analysis,dynamic analysis and accident prediction. Relational database MySQL is used to store data,and Redis database is used as system cache. Based on the logistic algorithm, training modeling is carried out on the date, month, quarter, weather, road section and other fields of histori‐cal traffic accident data, and the number of traffic accidents that may occur on a certain day and road section in the future is predicted. The re‐sults show that the system does not need to master complex data analysis methods, but only needs to combine related options through the func‐tion buttons on the interface to realize visual analysis of data, which greatly reduces the time and energy investment of transportation personnel in visual analysis technology learning.
Key Words:Django; traffic accidents; website; visual analysis
收稿日期:2023-04-11
基金项目:江苏省产学研合作项目(BY2022458);盐城市创新创业领军人才项目(yccx2019219);盐城工学院校级科研项目(xjr2019029)
作者简介:张同硕(1995-),男,盐城工学院机械工程学院硕士研究生,研究方向为智能交通系统;
廖明军(1974-),男,博士,盐城工学院机械工程学院教授,研究方向为智能交通系统。本文通讯作者:廖明军。
第 7 期张同硕,廖明军,张荣华,等:基于Django 的交通事故数据可视分析系统设计与实现0 引言
随着科技的进步,车联网、GPS 、传感器等技术逐渐在交通领域得以广泛应用,大量丰富的城市道路数据被采集,包括每天发生的道路交通事故数据。针对交通事故大数据中可能蕴含事故发生模式以及其规律尚未得到充分挖掘的问题,采取一种新型的分析挖掘方式尤为必要。可视化分析技术[1]作为一种新型的数据分析手段,是在可视化环境中处理数据的技术,是一种多学科多理论融合的数据分析方法。通过对系统与用户之间的交互进行设计,整合用户的反馈过程,Web 系统一旦构建完成,无需交通管理部门人员掌握复杂的数据分析方法,只需要通过界面上的功能按钮,进行相关选项组合,即可实现对复杂数据的可视分析和隐藏规律的挖掘。
国内外相关研究大多集中在交通时空数据可视分析方法上,系统开发研究相对较少。徐汇江等[2]以交通治理、科学决策为目标,以安徽省某市已有历史数据为原始数据,分析事故规律并进行良好的可视化大屏演示,为政府管理提供决策支持;彭璇等[3]提出一个基于大数据分析的交通事故可视化技术路线,通过联合数据分析、可视化理论知识等方法,解决已有交通事故可视分析中存在的问题。唐婷[4]设计并实现了交通轨迹数据可视分析原型系统,构建主题模型分析GPS 出租车轨迹数据。Ren 等
[5]提出一种结合地理信息数据的混合可视化分析方案以更好地展示空间统计数据。张铁映等[6]提出利用DBSCAN 密度聚类算法,实现兴趣点的可视化。禹文豪等[7]提出一种关于空间网络的核密度算法,针对嵌入式网络结构中的问题进行扩展,同时对阈值和极值可能产生的影响进行探究。Rodriguez 等[8]提出一个基于Web 的可视化分析框架JamVis ,该框架利用了Waze 的多模态时空数据;Thiago
等[9]为了解决城市时空移动数据的多元性,开发交互式可视化工具。王伟丽
[10]django网站
、余鑫琳
[11]
利用Django 框架对智慧
小区系统进行开发,针对社区功能需求进行系统设计。
交通事故可视化分析系统的主要服务对象为交通部门管理人员。本文研究从对历史交通事故数据信息利用不充分入手,建立了新的交通事故数据可视分析系统,为交通管理部门制定相关决策提供一套可视分析方案。同时,该系统还可以进行事故预测,有的放矢减少交通事故
发生,提高交通安全管理水平和效率。  1 基于Logistic 回归模型的交通事故预测
本文收集了2018年全年盐城市公安部交警支队统计的63 483组事故数据,侧重事故数据的分类和可视化展示,分析事故数背后的原因并挖掘数据规律。Logistic 回归模型是一个经典的用于统计的模型,用来研究变量之间的关系,并注重探究变量之间的规律,利用回归方程阐述这种规律,并能够在控制多种因素干扰的条件下进行合理预测。将事故碰撞类型、季度、是否周末、天气、路段进行数据编码,如表1所示。
1.1 模型建立
本文首先对原始交通数据进行缺失值填充、剔除、特征值抽取、标准化等数据预处理工作,然后将事故碰撞类型、季度、是否周末、天气、路段等数据作为输入,预测未来时刻的交通事故次数并将其作为输出建立模型,结果如表2所示。
可以看出,在0.05水平下自变量显著水平均小于0.1,说明碰撞类型、天气、是否周末、季度、路段对未来可能发生的交通事故预测的影响具有统计意义,根据上述结果得
到模型如式(1)所示。
p =
exp (0.335 291+0.180 344x 1-0.153 446x 2+0.182 546x 3+0.095 564x 4-0.225 648x 5)1+exp (0.335 291+0.180 344x 1-0.153 446x 2+0.182 546x 3+0.095 564x 4-0.225 648x 5)(1)
其中,x i (i =1,2,3,4,5)分别为碰撞类型、
天气、是否周末、季度、路段。
1.2 模型准确率检验
本文对交通事故碰撞类型、天气、是否周末、季度、路段数据进行编码,利用预处理后的数据进行训练和测试,将样
本数据的70%作为训练集,剩余30%作为测试集。使用Py‐thon 中的matplotlib 库绘制ROC 曲线。首先需要计算每个阈值下的真正率(True Positive Rate ,TPR )和假正率 (False Pos‐
itive Rate ,FPR ),然后使用matplotlib 的plot 函数绘制FPR 对应的横坐标值和TPR 对应的纵坐标值即可,如图1所示。Table 1 Variable coding
表1 变量编码
变量
事故碰撞类型季度天气是否周末路段
编码
机动车与机动车取值为1,机动车与非机动车取值为2,非机
动车与非机动车取值为3,其它类型取值为4
第一季度取值为1,第二季度取值为2,第三季度取值为3,第四季度取值为4
晴天取值为1,多云取值为2,小雨及以上雨雪雾天气取值为3是周末取值为0,不是周末取值为1
希望大道、新都路、建军路、西环路、人民路、毓龙路、范公路、文港路、解放路、青年路、盐马路、人民南路、 世纪大道、解放南路、开放大道依次取值为1-15
Table 2 Model results
表2 模型结果
自变量常量碰撞类型天气是否周末季度路段
系数0.335 2910.180 344
-0.153 4460.182 5460.095 564-0.225 648误差0.066 5290.016 1930.025 7840.020 1260.023 1040.016 054
z 值
5.64211.138
-4.1955.1434.174
-12.876
p 值
0.000 000 003 12<2e-160.000 000 3540.000 000 003 650.000 044 568 4
<2e-16
显著性******************
·
·113
2023 年
软件导刊根据ROC 曲线,越靠近左上角,接近1分类器,效果越好,结合图1结果可以看出模型准确率较高。本文运用线性回归模型对未来交通事故发生次数进行预测,利用Py‐thon 得到的模型训练集结果与原始数据的对比准确率高达91.96%,模型预测效果良好。由此可知,该模型在交通事故发生预测上具有较高的精确性,能够使用该模型对交
通事故发生进行预测。
2 基于Django 的交通事故数据可视化分析系统需求分析
交通部门对每天发生的交通事故数据进行了记录,因而保存了大量的事故数据信息。如何让用户使用Web 可视系统并以简单的点击按钮方式,获取到到历史交通事故大数据信息中有价值的规律值得研究。同时,还要注重在数据可视分析过程中,考虑用户与图表数据的交互体验。本文根据交通事故可视分析系统具体需求,对可视分析技术提出了如下要求:
(1)观察交通事故的时间规律。交通事故的出现是人们驾驶行为的一种形式,考虑到驾驶行为受社会工作、季节和气候等因素影响,通常会随时间出现波动甚至是呈现出周期性规律。因此,本文研究将通
过科学高效的手段获得事故时间上的信息数据,并用简单清晰的可视化手段加以呈现,让使用者能够洞察到事故随时间变动的趋势、是否存在周期性的概率特征以及事故和不同天气是否存在关联。
(2)观察交通事故的空间规律。交通事故多发区域与交通事故多发地段均是交通事故中常见的空间特点,前者主要反映了事故在城市地区上的集中特征,而后者则主要反映了事故在城市具体路段上的集中特征,这两个空间特点的差异表现都对有针对性地提高城市路面安全性有所助益。因此,研究人员既要研究事故多发的重点区域,也要研究事故多发路段,局部与整体相结合研究,才能更加清晰直观、全面地对交通事故的空间模式进行深入探究。
3 系统架构与模块设计
3.1 系统架构设计
系统是采用Browser/Server 架构,基于Django 构建的
Web 后端框架系统,在PyCharm 的平台中运行。在前端,通过Bootstrap 框架结合HTML5、CSS 、JavaScript 制作页面,并且通过可视化函数库Echarts 达到可视化功能;在后端,通过Django 调用数据库,接收由前端所发出的数据和请求,并使用Python 程序的数据库功能,将有关请求结果信息送回前端。而前后端间的沟通功能,主要采用jQuery 和
Ajax 技术完成。系统整体架构如图2所示。
3.2 系统功能模块设计
系统主要功能模块如图3所示。
(1)首页模块。在首页,用户可以看到多种类型的事故信息分析图表,可以很直观地了解到事故总体情况,如事故总数、已处理事故数、机动车事故数、非机动车事故数、交通逃逸数量等,以及每个季度的事故数量统计图、天气占比统计图、月份统计图、事故车辆类型统计图、最近7天事故趋势统计图及事故分布热力图等。
(2)时间分析模块。用户可以选择开始日期和结束日期,进行时间维度的数据分析,如事故发生次数统计图、天气情况统计图、交通工具发生率占比图等。
(3)空间分析模块。用户可以选择开始日期和结束日期,进行空间维度上的数据分析,如事故多发路段排名、事故热力图、
事故散点图等。
Fig. 1 ROC curve 图1 ROC 曲线
Fig. 2 Overall framework of the system
图2 系统整体框架
Fig. 3 System function module
图3 系统功能模块
··114
第 7 期张同硕,廖明军,张荣华,等:基于Django 的交通事故数据可视分析系统设计与实现(4)事故预测模块。用户可以通过选择预测日期,对未来某一天道路上事故可能发生的次数进行预测。也可以通过选择路段,对某条路进行不同时间的预测,然后与历史数据曲线进行对比拟合。
4 系统展示与案例分析
4.1 系统界面展示
(1)首页展示。导航栏包括历史数据、报警数据、时间分析、空间分析、动态分析、事故预测、用户中心、退出登录,如图4所示。
(2)时间维度分析。点击“请选择时间范围”后方,弹出日期选择下拉菜单,在此点击选择要查询的日期,选择好后,点击下方确定按钮,选择好日期后,点击后方“查询”按钮,在下方“事故发生次数统计图”“天气分析”“交通工具发生率占比图”里查看相应数据,如图5所示。
(3)空间维度分析。点击“请选择时间范围”后方,弹出日期选择下拉菜单,在此点击选择要查询的日期,选择好后,点击下方确定按钮,选择好日期后,点击后方“查询”按钮,在下方“事故多发路段排名”“散点图”“热力图”“事故多发路段”里查看相应数据,如图6所示。
(4)事故预测。点击“预测日期”后,弹出日期选择下拉菜单,在此点击选择要预测的日期,选择好后,点击下方确定按钮,即可看到路段当天的事故发生预测值。选择好路段后,点击后方“预测”按钮,即可看到实际值和预测值的曲线对比图,如图7所示。
4.2 案例分析——图表数据挖掘
图8展示了在季度统计图中,每个季度发送的交通事故次数,第一季度到第四季度分别为14 244、13 916、14 424、16 484。可以明显看出,第四季度的事故次数显著超过另外3个季度。推测其原因,主要可能是天气因素导
致,因为第四季度是冬季,根据爬虫程序获取到的2018
年Fig. 4 Home page display
图4
 首页展示
Fig. 5 Time analysis display
图5 时间分析展示
·
·115
2023 年
软件导刊盐城市天气情况显示,12月份梅雨天气总共有7天,下雪天气1天,由雨雪导致的湿滑路面,对驾驶机动车和非机动车都造成了严重影响,交通事故发送次数也因此增加。
如图9所示,选取以中茵海华购物中心为交通事故热区进行事故分析。该交通事故热区是由北面黄海路、西面西环路、南面青年路、东面通榆新村围成交通小区,由于交
通事故数较为密集,故本文选其作为交通小区进行分析。该交通小区内大致为南北走向的主干路有文港北路、开放大道、人民北路、迎宾北路、解放北路、西环路等,东西方向的主路有黄海东路、建军西路
、青年路、大庆路等。该区域的交通事故数分布比较均匀,全区事故数密度最高,可以重点安排交管人员进行管理和整治。
5 结语
本文根据当前交通事故数据分析需求,设计一款基于Django 的可视化分析系统,系统实现时间、空间、预测等多维度可视分析,通过多图表联动,分析各类数据和图表现象背后的原因和规律,为交通管理和规划
提供理论和事实基础。实践测试表明,该系统操作简单,便于上手,登录网站即可实现数据可视分析,不需要用户具备数据分析与软件开发能力。然而,本文只选取时间和空间维度,得到的时空模型存在一
定局限。后续研究中可考虑引入其他数据类型,如事故行政区、兴趣点,并在预测模型建立基础上考虑五一、国庆等节
假日的影响。
Fig. 6 Spatial analysis display
图6
 空间分析展示
Fig. 7 Accident prediction module
图7 事故预测模块
··116