换道

#!/usr/bin/env python
# coding: utf-8# In[1]:import numpy as np
import pandas as pd
import random
f=pd.read_csv("./CL_train41.csv")
# df=pd.read_csv("/home/mt/learn/NGSIM数据处理/csv/80/4:00-4:15/CL_train41.csv")
ff=pd.read_csv("./trajectories-0750.csv")
f# In[2]:f=f.rename(columns={'Preceeding':'Preceding'})
num1=int(len(f)/41)
id_max=max(ff.Vehicle_ID.values)
time_point=0
point_list=[]
for i in range(num1):point_list.append(time_point+41*i)
point_list# In[3]:f1=f.iloc[point_list]
f2=f1[['Vehicle_ID','Preceding','Following']].values
index=[]
for i in range(num1):if f2[i][1]>id_max or f2[i][2]>id_max:index.append(i)
index_row=[]
for i in index:index_row.extend(a for a in range(i*41,i*41+41))
f=f.drop(index_row)
f=f.reset_index(drop=True)
f.Vehicle_ID=f.Vehicle_ID.astype('object')
f.Preceding=f.Preceding.astype('object')
f.Following=f.Following.astype('object')
f=f.astype('object')
f# In[4]:num2=int(len(f)/41)
point_list2=[]
for i in range(num2):point_list2.append(time_point+41*i)
f3=f.iloc[point_list2]
f4=f3[['Vehicle_ID','Frame_ID','Preceding','Following']].values
f4# In[5]:row41=[]
for i in range(num2):row41.append(41*i+40)
df=f.drop(row41)
df=df.reset_index(drop=True)
df  # In[6]:pd41=f.loc[row41]
pd41# In[7]:aim_lane=pd41.Lane_ID.values
aim_lane# In[8]:aim_lane_list=[]
for i in aim_lane:for a in range(40):aim_lane_list.append(i)
aim_lane_list# In[9]:aim_lane_data=pd.DataFrame(data=aim_lane_list,columns={'aim_lane'})
aim_lane_data# In[10]:df_new=pd.concat([df,aim_lane_data],axis=1)
df_new# In[11]:def choose_frame(arr):Pre = pd.DataFrame(columns=['Vehicle_ID','Frame_ID','Total_Frames','Global_Time','Local_X','Local_Y','Global_X','Global_Y','v_Length','v_Width','v_Class','v_Vel','v_Acc','Lane_ID','Preceding','Following','Space_Headway','Time_Headway'])Fol = pd.DataFrame(columns=['Vehicle_ID','Frame_ID','Total_Frames','Global_Time','Local_X','Local_Y','Global_X','Global_Y','v_Length','v_Width','v_Class','v_Vel','v_Acc','Lane_ID','Preceding','Following','Space_Headway','Time_Headway'])shape=np.shape(arr)for i in range(shape[0]):a=ff[ff.Vehicle_ID.isin([arr[i][2]])]b=a[a.Frame_ID.isin([arr[i][1]])]b['Vehicle_ID1']=arr[i][0]c=ff[ff.Vehicle_ID.isin([arr[i][3]])]d=c[c.Frame_ID.isin([arr[i][1]])]d['Vehicle_ID1']=arr[i][0]Pre=pd.concat([Pre,b], ignore_index=True)Fol=pd.concat([Fol,d], ignore_index=True)return Pre,Fol# In[12]:Pre1,Fol1=choose_frame(f4)# In[13]:Fol1.Vehicle_ID1=Fol1.Vehicle_ID1.astype('object')
Pre1.Vehicle_ID1=Pre1.Vehicle_ID1.astype('object')# In[14]:Pre1=Pre1[['Vehicle_ID','Frame_ID','Local_X','Local_Y','v_Vel','Vehicle_ID1']]
Fol1=Fol1[['Vehicle_ID','Frame_ID','Local_X','Local_Y','v_Vel','Vehicle_ID1']]
Pre1.columns=['Preceding','Frame_ID','Pre1_Local_X','Pre1_Local_Y','Pre1_v_Vel','Vehicle_ID']
Fol1.columns=['Following','Frame_ID','Fol1_Local_X','Fol1_Local_Y','Fol1_v_Vel','Vehicle_ID']# In[15]:pd1=pd.merge(df_new,Pre1, how='left', on=['Frame_ID','Preceding','Vehicle_ID'])
pd2=pd.merge(pd1,Fol1, how='left', on=['Frame_ID','Following','Vehicle_ID'])
pd3=pd2.dropna(axis=0,how='any')
# pd3
# pd2.to_csv("/home/mt/learn/NGSIM数据处理/csv/80/单帧提取/zhixing2.csv")
pd2# In[16]:pd3# In[17]:useful_pd=pd3[['Vehicle_ID','Frame_ID','Local_X','Local_Y','v_Vel','Lane_ID','aim_lane']]
useful_list=useful_pd.values
useful_pd# In[18]:useful_list# In[19]:def NB(arr):shape=np.shape(arr)Pre2=[]Fol2=[]prev2=[]folv2=[]for i in range(shape[0]):x=[]y=[]v_pre=[]v_fol=[]a=ff[ff.Frame_ID.isin([arr[i][1]])]b=a[a.Lane_ID.isin([arr[i][6]])]c=b.Local_Y.valuesvc=b.v_Vel.valuesfor valuey in range(len(c)):d=c[valuey]-arr[i][3]vd=vc[valuey]-arr[i][4]if d>0:x.append(d)v_pre.append(vd)if d<0:y.append(d)v_fol.append(vd)if x!=[]:pre_x=np.min(x)vx_index=x.index(pre_x)pre_v=v_pre[vx_index]else:pre_x=100pre_v=40if y!=[]:fol_y=np.max(y)vy_index=y.index(fol_y)fol_v=v_fol[vy_index]else:fol_y=-100fol_v=5Pre2.append(pre_x)prev2.append(pre_v)Fol2.append(fol_y)folv2.append(fol_v)return Pre2,Fol2,prev2,folv2         # In[20]:Pre2,Fol2,prev2,folv2=NB(useful_list)# In[21]:Pr2=pd.DataFrame(columns=['y3'], data =Pre2)
Fo2=pd.DataFrame(columns=['y4'], data =Fol2)
v3=pd.DataFrame(columns=['v3'], data =prev2)
v4=pd.DataFrame(columns=['v4'], data =folv2)# In[22]:pd4=pd3[['Local_Y','Pre1_Local_Y','Fol1_Local_Y','v_Vel','Pre1_v_Vel','Fol1_v_Vel']]# In[23]:y_list=pd4.Local_Y.values
y1_list=pd4.Pre1_Local_Y.values
y2_list=pd4.Fol1_Local_Y.values
v_list=pd4.v_Vel.values
v1_list=pd4.Pre1_v_Vel.values
v2_list=pd4.Fol1_v_Vel.values# In[24]:y1=y1_list-y_list
y2=y2_list-y_list
v1=v_list-v1_list
v2=v_list-v2_list
Pr1=pd.DataFrame(columns=['y1'], data =y1)
Fo1=pd.DataFrame(columns=['y2'], data =y2)
pre_v=pd.DataFrame(columns=['v1'], data =v1)
fol_v=pd.DataFrame(columns=['v2'], data =v2)# In[25]:pd5=pd3[['Vehicle_ID','Frame_ID']]
pd5=pd5.reset_index(drop=True)
pd6=pd.concat([pd5,pre_v,fol_v,v3,v4,Pr1,Fo1,Pr2,Fo2],axis=1)
# pd6.to_csv("/home/mt/learn/NGSIM数据处理/csv/80/单帧提取/zhixing.csv")
# pd6['label']=0
pd6# In[26]:# pd6=pd6.dropna(axis=0,how='any')
# pd6 = pd6[pd6!= 0]
# pd6.dropna(axis=0, how='any', inplace=True)
pd6['label']=1
pd6# In[27]:pd6.to_csv("./biandao_new.csv",index=0)# In[ ]:

直行

#!/usr/bin/env python
# coding: utf-8# In[1]:import numpy as np
import pandas as pd
import random
f=pd.read_csv("./KL_train40.csv")
ff=pd.read_csv("./trajectories-0750.csv")
f# In[2]:f=f.rename(columns={'Preceeding':'Preceding'})
num1=int(len(f)/40)
id_max=max(ff.Vehicle_ID.values)
time_point=0
point_list=[]
for i in range(num1):point_list.append(time_point+40*i)
point_list# In[3]:f1=f.iloc[point_list]
f2=f1[['Vehicle_ID','Preceding','Following']].values
index=[]
for i in range(num1):if f2[i][1]>id_max or f2[i][2]>id_max:index.append(i)
index_row=[]
for i in index:index_row.extend(a for a in range(i*40,i*40+40))
f=f.drop(index_row)
f=f.reset_index(drop=True)
f.Vehicle_ID=f.Vehicle_ID.astype('object')
f.Preceding=f.Preceding.astype('object')
f.Following=f.Following.astype('object')
f=f.astype('object')
f# In[4]:num2=int(len(f)/40)
point_list2=[]
for i in range(num2):point_list2.append(time_point+40*i)
f3=f.iloc[point_list2]
f4=f3[['Vehicle_ID','Frame_ID','Preceding','Following']].values
f4# In[5]:def choose_frame(arr):Pre = pd.DataFrame(columns=['Vehicle_ID','Frame_ID','Total_Frames','Global_Time','Local_X','Local_Y','Global_X','Global_Y','v_Length','v_Width','v_Class','v_Vel','v_Acc','Lane_ID','Preceding','Following','Space_Headway','Time_Headway'])Fol = pd.DataFrame(columns=['Vehicle_ID','Frame_ID','Total_Frames','Global_Time','Local_X','Local_Y','Global_X','Global_Y','v_Length','v_Width','v_Class','v_Vel','v_Acc','Lane_ID','Preceding','Following','Space_Headway','Time_Headway'])shape=np.shape(arr)for i in range(shape[0]):a=ff[ff.Vehicle_ID.isin([arr[i][2]])]b=a[a.Frame_ID.isin([arr[i][1]])]b['Vehicle_ID1']=arr[i][0]c=ff[ff.Vehicle_ID.isin([arr[i][3]])]d=c[c.Frame_ID.isin([arr[i][1]])]d['Vehicle_ID1']=arr[i][0]Pre=pd.concat([Pre,b], ignore_index=True)Fol=pd.concat([Fol,d], ignore_index=True)return Pre,Fol# In[6]:Pre1,Fol1=choose_frame(f4)# In[7]:Fol1.Vehicle_ID1=Fol1.Vehicle_ID1.astype('object')
Pre1.Vehicle_ID1=Pre1.Vehicle_ID1.astype('object')# In[8]:Pre1# In[9]:Pre1=Pre1[['Vehicle_ID','Frame_ID','Local_X','Local_Y','v_Vel','Vehicle_ID1']]
Fol1=Fol1[['Vehicle_ID','Frame_ID','Local_X','Local_Y','v_Vel','Vehicle_ID1']]
Pre1.columns=['Preceding','Frame_ID','Pre1_Local_X','Pre1_Local_Y','Pre1_v_Vel','Vehicle_ID']
Fol1.columns=['Following','Frame_ID','Fol1_Local_X','Fol1_Local_Y','Fol1_v_Vel','Vehicle_ID']# In[10]:Pre1# In[11]:pd1=pd.merge(f,Pre1, how='left', on=['Frame_ID','Preceding','Vehicle_ID'])
pd2=pd.merge(pd1,Fol1, how='left', on=['Frame_ID','Following','Vehicle_ID'])
pd3=pd2.dropna(axis=0,how='any')
# pd3
# pd2.to_csv("/home/mt/learn/NGSIM数据处理/csv/80/单帧提取/zhixing2.csv")
pd3# In[12]:# a=ff[ff.Frame_ID.isin([511])]
# b=a[a.Lane_ID.isin([3])]
# c=pd3.Local_Y.values
# d=b.Local_Y.values
# x=[]
# y=[]
# d=list(d)
# c=list(c)
# for i in range(len(d)):
#     e=d[i]-c[0]
#     if e>0:
#         x.append(e)
#     if e<0:
#         y.append(e)
# h=np.min(x)
# z=np.max(y)
# z# In[13]:useful_pd=pd3[['Vehicle_ID','Frame_ID','Local_X','Local_Y','v_Vel','Lane_ID']]
useful_list=useful_pd.values
useful_pd# In[14]:useful_list# In[15]:def NB(arr):shape=np.shape(arr)Pre2=[]Fol2=[]prev2=[]folv2=[]for i in range(shape[0]):x=[]y=[]v_pre=[]v_fol=[]a=ff[ff.Frame_ID.isin([arr[i][1]])]if arr[i][5]==1:   b=a[a.Lane_ID.isin([2])]else:b=a[a.Lane_ID.isin([arr[i][5]-1])]c=b.Local_Y.valuesvc=b.v_Vel.valuesfor valuey in range(len(c)):d=c[valuey]-arr[i][3]vd=vc[valuey]-arr[i][4]if d>0:x.append(d)v_pre.append(vd)if d<0:y.append(d)v_fol.append(vd)if x!=[]:pre_x=np.min(x)vx_index=x.index(pre_x)pre_v=v_pre[vx_index]else:pre_x=100pre_v=40if y!=[]:fol_y=np.max(y)vy_index=y.index(fol_y)fol_v=v_fol[vy_index]else:fol_y=-100fol_v=5Pre2.append(pre_x)prev2.append(pre_v)Fol2.append(fol_y)folv2.append(fol_v)return Pre2,Fol2,prev2,folv2         # In[16]:np.shape(useful_list)# In[17]:Pre2,Fol2,prev2,folv2=NB(useful_list)# In[18]:np.shape(Pre2)# In[19]:Pre2# In[20]:Fol2# In[21]:Pr2=pd.DataFrame(columns=['y3'], data =Pre2)
Fo2=pd.DataFrame(columns=['y4'], data =Fol2)
v3=pd.DataFrame(columns=['v3'], data =prev2)
v4=pd.DataFrame(columns=['v4'], data =folv2)
v3# In[22]:pd4=pd3[['Local_Y','Pre1_Local_Y','Fol1_Local_Y','v_Vel','Pre1_v_Vel','Fol1_v_Vel']]
pd4# In[23]:y_list=pd4.Local_Y.values
y1_list=pd4.Pre1_Local_Y.values
y2_list=pd4.Fol1_Local_Y.values
v_list=pd4.v_Vel.values
v1_list=pd4.Pre1_v_Vel.values
v2_list=pd4.Fol1_v_Vel.values# In[24]:y1=y1_list-y_list
y2=y2_list-y_list
v1=v_list-v1_list
v2=v_list-v2_list
Pr1=pd.DataFrame(columns=['y1'], data =y1)
Fo1=pd.DataFrame(columns=['y2'], data =y2)
pre_v=pd.DataFrame(columns=['v1'], data =v1)
fol_v=pd.DataFrame(columns=['v2'], data =v2)# In[25]:pd5=pd3[['Vehicle_ID','Frame_ID']]
pd5=pd5.reset_index(drop=True)
pd6=pd.concat([pd5,pre_v,fol_v,v3,v4,Pr1,Fo1,Pr2,Fo2],axis=1)
# pd6.to_csv("/home/mt/learn/NGSIM数据处理/csv/80/单帧提取/zhixing.csv")
# pd6['label']=0
pd6# In[26]:pd6['label']=0
pd6# In[27]:pd6.to_csv("./zhixing_new.csv",index=0)# In[ ]:# In[ ]:# In[ ]:

变道和直行数据合并得到最终的结果数据

#!/usr/bin/env python
# coding: utf-8# In[1]:import numpy as np
import pandas as pd
import random
f1=pd.read_csv("./Doubel_label.csv")
f2=pd.read_csv("./zhixing_new.csv")
f3=pd.read_csv("./biandao_new.csv")
f1=f1.rename(columns={'label':'label1'})
# pd1=pd.merge(f1,f2, how='left', on=['Frame_ID','Vehicle_ID'])
# pd2=pd.merge(pd1,f3, how='left', on=['Frame_ID','Vehicle_ID'])
# pd1
f1# In[2]:pd2=pd.concat([f2,f3])
pd2.to_csv('./v1-y4_new.csv',index=0)
pd2# In[3]:pd3=pd.merge(f1,pd2, how='left', on=['Frame_ID','Vehicle_ID'])
# pd3.to_csv('/home/mt/learn/NGSIM数据处理/csv/80/4:00-4:15/new/kankna.csv')
pd3# In[4]:# pd3.label=pd3.label.astype('object')
pd4=pd3.dropna()
pd4.label=pd4.label.astype('object')
pd5=pd4.reset_index(drop=True)
pd5# In[ ]:# In[ ]:# In[5]:pd5.to_csv("./result11.csv",index=0)# In[ ]:# In[ ]:# In[ ]:# In[ ]:# In[ ]:

NGSIM数据集提取换道前4s周围车辆的特征数据相关推荐

  1. NGSIM数据集Python处理(车辆变道时周边车辆数据提取)

    本文通过Python代码的编写,对NGSIM数据集中车辆变道时周边车辆的加速度.速度等信息进行提取,主要介绍代码逻辑及思路. 关于NGSIM数据集不再赘述,本人上传有NGSIM各路段各车型的车辆数据以 ...

  2. NGSIM数据集Python处理(变道数据筛选)

    本文通过Python代码的编写,实现对NGSIM数据I-80路段小型车数据中产生变道行为的车辆进行筛选.关于前期数据的准备,可参看本人原来发表的资源和文章 NGSIM数据.zip-交通文档类资源-CS ...

  3. 基于车辆轨迹时空数据的城市热点预测模型研究

    目 录 摘 要 I Abstract III 插图清单 IX 附表清单 XI 1引 言 1 1.1研究背景及意义 1 1.2研究内容与方法 2 1.3本文组织内容 2 2文献综述 4 2.1交通预测概 ...

  4. NGSIM数据集解析(含代码)

    一.数据集介绍 NGSIM(Next Generation Simulation)数据集是美国FHWA搜集的美国高速公路行车数据,它包括了US101.I-80等道路上的所有车辆在一个时间段的车辆行驶状 ...

  5. ocr数据集批量换随机背景

    # ocr数据集批量换背景 import os import cv2 import random background_path="/images_base_prenorm/" r ...

  6. COCO数据集提取自己需要的类,转VOC

    github:https://github.com/zcc720/COCO2VOC.git 原文地址:http://www.manongjc.com/article/28607.html 接上篇VOC ...

  7. SpringBoot+Vue实现前后端分离的4S店车辆管理系统

    文末获取源码 开发语言:Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7/8.0 应用服务:Tomcat7/Tomcat8 是否Maven项目:是 后端框架:SpringBoo ...

  8. java语言基于springboot+vue+elementUI 4S店车辆管理系统-#计算机毕业设计

    项目介绍 随着信息化的不断深入,经济的飞速发展,企业要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的.汽车4S营销管理,作为一种新型的以品牌为单位个体经营管理为主体,同时集系统管理.采 ...

  9. [附源码]计算机毕业设计基于springboot的4s店车辆管理系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

最新文章

  1. 本构二次开发 c语言,umat二次开发超弹性本构.doc
  2. linux PAM模块
  3. python模块与包的导入
  4. 随堂小测app冲刺(三)
  5. 复合型法matlab,复合形法程序出错求大神改错急急急
  6. hibernate3配置文件hibernate.cfg.xml的详细解释
  7. xml建模包括以下_为什么要进行建模仿真?
  8. 世界备份日,您的数据足够安全吗?
  9. IBM MQ的常用命令
  10. NLP论文中出现的名词解释(不断更新)
  11. python实现一个土豆聊天 potato chat 机器人
  12. wonderware配置-Intouch读取Historian数据 8
  13. 探究CRM未来趋势:纷享销客的连接型CRM到底是什么?
  14. 线程启动、结束,创建线程多法、join,detach
  15. 解决复制大段英文文献到翻译软件出现的换行问题
  16. 使用Fiddler抓取app里面的链接
  17. 拦截导弹 导弹防御系统
  18. android 计算图片大小
  19. 《乱音盒子》之《隐者小调》
  20. html惊喜盒子效果,网页设计之css炫酷3d盒子效果

热门文章

  1. 财富:保罗·艾伦转向新领域
  2. Skywalking 简介
  3. FaceID调用的几个注意点
  4. ERASOR:解决动态环境下的SLAM建图问题,有效过滤动态物体(ICRA2021)
  5. 公交换乘GIS地图应用解决方案
  6. Linux_01_课堂笔记
  7. 本周大新闻|传苹果MR开发样机已送出,比尔盖茨:不太看好Web3和元宇宙
  8. 技巧心得:网络工程师考试大纲
  9. Lind.DDD.Caching分布式数据集缓存介绍
  10. 社会化三方分享集成详细介绍(友盟)