NGSIM数据集Python处理(跟驰车队筛选)

NGSIM数据集具有高精度、覆盖广等特征,大量论文使用NGSIM数据集来研究车辆的跟驰行为,如验证跟驰模型,跟驰模型参数标定等,本文使用Python代码实现对跟驰车队的筛选,未进行数据平滑处理。通过代码自定义车头间距、车头时距、跟驰时间阈值,通过不同的前车对同一ID车辆数据进行切分,解决了原始数据中同一ID被多个车辆复用而导致的数据异常问题,话不多说,直接上代码:

import pandas as pd
import numpy as np
filepath = input('输入原始文件路径:')
filepath_1 = input('输入目标文件保存文件夹:')
answer = int(input('输入跟驰车队最大间距(单位:英尺):'))
answer_1 = int(input('输入跟驰车队最大车头时距(单位:s):'))
time = int(input('输入跟驰最小持续时间(单位:s):'))
origin_data = pd.read_csv(filepath)
data = origin_data[origin_data.Preceding != 0]
for ID in set(list(data['Vehicle_ID'])):
    data_c = data[data.Vehicle_ID == ID]
    for P_ID in set(list(data_c['Preceding'])):
        data_c_0 = data_c[data_c.Preceding == P_ID]
        data_c_1 = data_c_0[data_c_0.Space_Headway < answer]
        data_c_2 = data_c_1[data_c_1.Time_Headway < answer_1]
        if data_c_2.shape[0] > time*10:
            lst_Frame_ID = sorted(list(data_c_2['Frame_ID']))
            lst_Frame_ID_diff = np.diff(lst_Frame_ID)
            if len(set(lst_Frame_ID_diff)) == 1:
                print(data_c_2)
                print('车辆:'+str(ID)+'前车:'+str(P_ID)+'跟驰数据已输出')
                data_c_2.to_csv(filepath_1+'\\主车:'+str(ID)+'前车:'+str(P_ID)+'.csv')

代码执行效果如图:

NGSIM数据集Python处理(跟驰车队筛选)_第1张图片

NGSIM数据集Python处理(跟驰车队筛选)_第2张图片

 若有疑问或有交通数据处理需求欢迎VX探讨:A2528945820

你可能感兴趣的:(NGSIM,数据处理,python,开发语言,后端)