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

换道

#!/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.values
        vc=b.v_Vel.values
        for 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=100
            pre_v=40
        if y!=[]:
            fol_y=np.max(y)
            vy_index=y.index(fol_y)
            fol_v=v_fol[vy_index]
        else:
            fol_y=-100
            fol_v=5
        Pre2.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.values
        vc=b.v_Vel.values
        for 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=100
            pre_v=40
        if y!=[]:
            fol_y=np.max(y)
            vy_index=y.index(fol_y)
            fol_v=v_fol[vy_index]
        else:
            fol_y=-100
            fol_v=5
        Pre2.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[ ]:





  • 5
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
1、断电导致数据库文件损坏。 2、企业管理器误删除数据表记录,账套管理器删除。 3、并闩锁错误 格式化 误删除后导致软件不能使用的情况。 4、普通数据恢复软件恢复出来的数据库不能使用的情况,我们会会从碎片提取修复。 5、系统表损坏、索引错误、误删除数据库表、删除记录的数据找回。 6、、系统崩溃只剩下Sqlserver数据文件的情况下的恢复,即无日志文件或者日志文件损坏情况下的恢复。 7、SqlServer数据文件内部存在坏页情况下的恢复。 8、在Sql Server运行在简单日志模式、完全日志模式或者大容量日志记录模式下数据被误(drop、delete、truncate)删除表恢复,updata后的数据恢复等。 9、Sql Serve文件无法附加情况下的数据恢复。 10、Sql Server数据库被标记为可疑,不可用等情况。 11、Sql Server数据库SysObjects等系统表损坏无法正常应用情况下的恢复。 12、Sql Server数据库只有数据文件 没有任何日志的情况下的恢复。 13、Sql Server2000、Sql Server2005、SQL2008数据库master数据库损坏而无法正常运行情况下的恢复。 14、Sql server还原时报一致性错误,错误823等情况下的数据恢复,各种错误提示的数据库文件修复。 15、可恢复因硬盘坏道造成的数据库损坏。 16、可修复日志收缩或突然断电后的数据库。 17、可从SQL数据库备份文件BAK中恢复完整数据库。 18、磁盘阵列上的SQL SERVER数据库被误格式化等情况下的数据库恢复。 19、数据库无法安装、帮助重新安装数据库。 20、无法读取并闩锁页修复。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值