Python路面平整度检测车辆数据——速度修正

简介: Python路面平整度检测车辆数据——速度修正

全文链接:http://tecdat.cn/?p=31268


目前主流的轻量化路面平整度检测技术方案为:使用车载加速度传感器采集车辆在路面上行驶时的竖向振动数据,并按照每100米计算竖向振动数据统计指标:均方根值RMS,并建立RMS与路面平整度指标:IRI之间的回归模型。检测前需要将车辆行驶至标准路段(即已知IRI真值的路段)上来回行驶对传感器进行标定,完成标定后驾驶车辆前往待检测路段进行平整度检测


目前该技术方案的难点在于,对于同一IRI值的路面,若驾驶同一车辆以不同的行驶速度驶过,测得的振动数据统计指标也会不同,即车辆行驶速度是影响检测结果的主要因素之一。在标定工作中,车辆会被要求已恒定速度行驶进行标定,而实际测量时,车辆的速度往往会随道路交通状况、路况、天气等因素无法维持恒定的速度,导致车辆在检测过程中时的车辆行驶速度时快时慢,严重影响检测结果精度。因此,对检测数据结果进行速度修正(即将车辆某一检测速度下的测量值转换成当量速度下的测量值),是一件急迫且必需的事情。


解决方案


任务目标


基于不同车速下的平整度检测车辆振动数据结果,探究车速与检测结果之间的关系,根据此关系进行速度修正,将不同车速下的检测结果转换成当量速度下的检测结果。

使用到的工具 / 语言

Matlab、Python、Mysql、Navicat。

数据 获取

平整度检测车辆每天会在上海外环高速固定某一路段上进行检测,检测数据(包括振动加速度数据、GPS定位数据、图像数据等)会定时上传至数据库内,需要从数据库中将检测数据批量下载至本地进行分析,其中,需要下载的数据表包括acc表、gps表、stake_info表。

图1 MySQL数据库中数据

(a)

(b)

图2 从数据库抓取数据Python脚本(部分)

编写python脚本从数据库中抓取指定时间的数据,脚本中包括部分mysql语句用于筛选数据。使用表关联命令将acc与gps表以时间为key关联起来,并保存至本地。共从数据库中抓取57天检测数据用于后续分析。

数据清洗

将57天车辆轨迹散点(红)画于图中,同时标注待检测路段桩号点(蓝),发现检测车辆并不是完全按照预定路线进行检测,有诸多路段是多检路段,将影响后续计算结果。将相邻桩号点连接形成若干个线段。对于车辆每一个轨迹散点,找到离该点最近的桩号线段,并计算该点到桩号线段的距离,设定阈值,将阈值外的轨迹散点剔除,保留阈值范围内轨迹散点(蓝)。

图3 检测车辆轨迹散点与桩号点

(横坐标:经度,纵坐标:纬度)

此外,还包括的数据预处理包括加速度数据去均值与车辆轨迹散点桩号重计算。对车辆每一个轨迹散点的桩号进行修正。


点击标题查阅往期内容


杭州出租车行驶轨迹数据空间时间可视化分析


01

02

03

04


数据处理与分析


对于每一天的车辆轨迹数据,按照上述方法进行数据清洗,从桩号起点至桩号终点,每100米划分小路段并编号,选出该路段范围内的加速度数据并计算统计指标RMS。计算第k天数据后将结果表格与第k+1天结果表格按照小路段编号进行关联。得到各小路段在不同天下车辆的检测数据,且每一天的车辆行驶速度均是不同的,也就得到了对于同一路段(即相同IRI值路面),不同车辆行驶速度下的振动数据统计指标。将两者散点画于图中,不同路段部分结果如下所示。

(c)

图4 速度与RMS散点图

(横坐标:速度(km/h)、纵坐标:RMS)


建立模型


从每一路段速度与RMS散点图中可看出二者之间存在较强的线性关系,建立两者之间线性模型,所有路段散点图与线性拟合结果如下图所示。从图中可看出不同IRI值路面,检测车辆速度与检测结果统计指标RMS均存在较强的线性关系,对于不同的IRI值路面,其表现出线性的斜率不同。从下图中可看出所有直线的截距虽然主要集中于0~0.1范围内,但仍表现较为分散。按照常理,对于不同IRI值路面,当测量速度为0时,此时车辆振动仅由车辆发动机提供,因此表现出的统计指标RMS应当为同一值。分析原因,认为由于外环道路等级为高速公路,故数据中低速样本较少所致。

图5 速度-RMS散点图与拟合直线

(横坐标:速度(km/h)、纵坐标:RMS)

模型优化

统计每一条直线截距值,画出其分布直方图(图6),发现截距在0.05至0.1区间内频率最高,取频率最高值0.07作为所有直线的共同截距,重新对各条路段数据进行线性拟合,拟合结果如图7所示。

图6 拟合直线截距分布直方图

图7 改进后的拟合结果

得出平整度检测车辆检测结果速度修正方案,对于每一条路段在不同车辆速度下的振动数据统计指标RMS,减去同一截距0.07。取当量速度为70km/h,按照各路段线性拟合直线斜率将不同速度下的检测结果修正至70km/h速度下的检测值。

相关文章
|
11天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:智能数据隐私保护
使用Python实现深度学习模型:智能数据隐私保护 【10月更文挑战第3天】
40 0
|
9天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:智能质量检测与控制
使用Python实现深度学习模型:智能质量检测与控制 【10月更文挑战第8天】
102 62
使用Python实现深度学习模型:智能质量检测与控制
|
9天前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
27 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
9天前
|
计算机视觉 Python
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
这篇文章介绍了如何使用Python的OpenCV库将多张图片合并为一张图片显示,以及如何使用matplotlib库从不同txt文档中读取数据并绘制多条折线图。
31 3
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
|
10天前
|
数据可视化 算法 Python
基于OpenFOAM和Python的流场动态模态分解:从数据提取到POD-DMD分析
本文介绍了如何利用Python脚本结合动态模态分解(DMD)技术,分析从OpenFOAM模拟中提取的二维切片数据,以深入理解流体动力学现象。通过PyVista库处理VTK格式的模拟数据,进行POD和DMD分析,揭示流场中的主要能量结构及动态特征。此方法为研究复杂流动系统提供了有力工具。
22 2
基于OpenFOAM和Python的流场动态模态分解:从数据提取到POD-DMD分析
|
6天前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
25 2
|
7天前
|
JSON 安全 数据安全/隐私保护
深度剖析:Python如何运用OAuth与JWT,为数据加上双保险🔐
【10月更文挑战第10天】本文介绍了OAuth 2.0和JSON Web Tokens (JWT) 两种现代Web应用中最流行的认证机制。通过使用Flask-OAuthlib和PyJWT库,详细展示了如何在Python环境中实现这两种认证方式,从而提升系统的安全性和开发效率。OAuth 2.0适用于授权过程,JWT则简化了认证流程,确保每次请求的安全性。结合两者,可以构建出既安全又高效的认证体系。
25 1
|
8天前
|
运维 安全 网络协议
Python 网络编程:端口检测与IP解析
本文介绍了使用Python进行网络编程的两个重要技能:检查端口状态和根据IP地址解析主机名。通过`socket`库实现端口扫描和主机名解析的功能,并提供了详细的示例代码。文章最后还展示了如何整合这两部分代码,实现一个简单的命令行端口扫描器,适用于网络故障排查和安全审计。
14 0
|
10天前
|
数据处理 Python
Python读取大文件的“坑“与内存占用检测
Python读取大文件的“坑“与内存占用检测
25 0
|
11天前
|
安全 Java Python
基于python-django的Java网站全站漏洞检测系统
基于python-django的Java网站全站漏洞检测系统
23 0