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

本文介绍了如何使用Python的numpy和pandas库处理NGSIM数据集,提取车辆跟驰状态下的前后车速度、加速度和坐标信息。通过对原始数据筛选,去除无前车和后车的数据,然后通过遍历获取每个时刻对应车辆的详细信息,并填充到预定义的数据框中。最终,将提取到的数据存储为新的数据列,包括前车和后车的速度、加速度和坐标。
摘要由CSDN通过智能技术生成

        本文使用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坐标

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

惜君如常

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值