栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

NGSIM数据集Python处理(跟驰车辆前后车数据提取)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

NGSIM数据集Python处理(跟驰车辆前后车数据提取)

本文使用Python代码实现对NGSIM数据集中跟驰车辆前后车数据的获取。主要使用numpy和pandas两个库。在筛选时,去掉了无前车和后车的数据,即前车或后车ID为0。本文提供代码大体框架介绍。

  • 构建初始数据列

构建空白列,用于保存数据。

data['v_Preceding'] = np.nan
data['a_Preceding']=np.nan
data['x_Preceding']=np.nan
data['y_Preceding']=np.nan
data['v_Following']=np.nan
data['a_Following']=np.nan
data['x_Following']=np.nan
data['y_Following']=np.nan
  • 获取主车、前车、后车完整数据

        该部分主要实现从原始数据中获取主车ID、速度、加速度、坐标信息,以及前后车ID数据。使用Global_Time和循环获取时间相同的片段索引,并获取该时刻对应的主车、前车和后车ID。

for item in set_Global_Time:
    id = [i for i, x in enumerate(Global_Time) if x == item]        #获取每一时刻在原始数据中对应的索引
    '''获取该时刻对应的主车、前车、后车ID'''
    new_ID = Vehicle_ID[id[0]:id[-1] + 1]
    new_P_ID = Preceding[id[0]:id[-1] + 1]
    new_F_ID=Following[id[0]:id[-1] + 1]
  • 目标数据获取

        通过遍历主车、前车、后车列表,判别在该时刻是否相等,若相等则进行数据提取,代码逻辑较复杂,以获取前车速度、后车速度为例,主要代码如下:

v_Preceding[id[new_P_ID.index(P_ID)]] = v_Vel[id[new_ID.index(P_ID)]]
v_Following[id[new_F_ID.index(F_ID)]] = v_Vel[id[new_ID.index(F_ID)]]

        最后将生成个目标列表赋值给第一步构建的空白列中。以前后车速度赋值为例,代码如下:

data['v_Preceding'] = v_Preceding
data['v_Following'] = v_Following

        以前100万条原始数据为例,最终生成的文件如下:

         后八列分别表示:前车速度、加速度、x坐标、y坐标;后车速度、加速度、x坐标、y坐标

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/879497.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号