PYTHON 交通流 車輛到達(dá)分布 速度流量密度 高峰小時(shí)

image.png
image.png
image.png

交通流實(shí)驗(yàn)如上

車輛到達(dá)分布

1027 17 2.33207715978 符合負(fù)二項(xiàng)分布 .png

散點(diǎn)圖

1031 10 11[6, 42, 1297.8333333333333, 367.0, 0.88408265213442316].png

解析出的數(shù)據(jù)

image.png
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('darkgrid')
#計(jì)算高峰小時(shí)
global end,start,vds
A=[]
B=[]
C=[]
D=[]
M=[]
S=[]
def init(start,end,vds):#初始化 數(shù)據(jù)錄入部分
    df = {}
    didi = []
    for i in range(0, end - start):
        df[i] = pd.read_excel(
            'C:\\Users\Administrator\Desktop\Whitemud Drive地感線圈數(shù)據(jù)(2015年8月)\\' + str(vds) + '-08-' + str(
                start + i) + '.xls', sheetname='Sheet3')
        didi.append(len(df[i]))
    length = int(min(didi) / 100) * 100
    for i in range(0, end - start):
        df[i] = df[i][0:length]
        df[i] = df[i].fillna(0)
    global K,Q,V
    K = np.zeros((length, end - start))
    Q = np.zeros((length, end - start))
    V = np.zeros((length, end - start))
    for i in range(0, end - start):
        for j in range(0, length):
            if df[i]['K 2'][j] != 0 and df[i]['K 3'][j] != 0 and df[i]['K 1'][j] != 0:
                K[j, i] = (df[i]['K 1'][j] + df[i]['K 2'][j] + df[i]['K 3'][j]) / 3
                Q[j, i] = (df[i]['V 1'][j] + df[i]['V 2'][j] + df[i]['V 3'][j]) / 3
                V[j, i] = (df[i]['S 1'][j] + df[i]['S 2'][j] + df[i]['S 3'][j]) / 3
            if (df[i]['K 2'][j] != 0 and df[i]['K 3'][j] == 0 and df[i]['K 1'][j] == 0) or (
                        df[i]['K 2'][j] == 0 and df[i]['K 3'][j] != 0 and df[i]['K 1'][j] == 0) or (
                        df[i]['K 2'][j] == 0 and df[i]['K 3'][j] == 0 and df[i]['K 1'][j] != 0):
                K[j, i] = ((df[i]['K 1'][j] + df[i]['K 2'][j] + df[i]['K 3'][j]))
                Q[j, i] = ((df[i]['V 1'][j] + df[i]['V 2'][j] + df[i]['V 3'][j]))
                V[j, i] = ((df[i]['S 1'][j] + df[i]['S 2'][j] + df[i]['S 3'][j]))
            if (df[i]['K 2'][j] != 0 and df[i]['K 3'][j] != 0 and df[i]['K 1'][j] == 0) or (
                        df[i]['K 2'][j] == 0 and df[i]['K 3'][j] != 0 and df[i]['K 1'][j] != 0) or (
                        df[i]['K 2'][j] != 0 and df[i]['K 3'][j] == 0 and df[i]['K 1'][j] != 0):
                K[j, i] = (df[i]['K 1'][j] + df[i]['K 2'][j] + df[i]['K 3'][j]) / 2
                Q[j, i] = (df[i]['V 1'][j] + df[i]['V 2'][j] + df[i]['V 3'][j]) / 2
                V[j, i] = (df[i]['S 1'][j] + df[i]['S 2'][j] + df[i]['S 3'][j]) / 2
    K[K > 80] = 80



def PHT():#計(jì)算高峰小時(shí)
    Q1=Q[:,0]/180
    for i in range(len(Q1),0,-1):
        if i%3==0 and i%6==0 and i%15==0:
            break
    Q1=Q1[0:i]
    Z=np.array(Q1).reshape((int(i/3),3))
    sum=Z.sum(axis=1)

    if sum.sum()<=10:
        return 0
    maxhour=0
    max15=0
    for i in range(0,len(Z)-60):
        emm=Z[i:i + 60].sum()
        if emm>maxhour:
            maxhour=emm
            starttime=i
    for i in range(0,len(Z)-15):
        emm=Z[i:i + 15].sum()
        if emm>max15:
            max15=emm

    # print(starttime,maxhour,max15)
    # print(maxhour/(4*max15))
    # print(int(starttime/60),(starttime%60))

    # temp=[int(starttime/60),starttime%60,maxhour,max15,maxhour/(max15*4)]
    # time=str(int(starttime/60))+':'+str(starttime%60)
    # C.append(time)
    # A.append(vds)
    # B.append(start)
    # return temp

    return starttime




def modal(min):#檢驗(yàn)分布函數(shù)
    various=min.var()/min.mean()
    if various>1.2:
        print('符合負(fù)二項(xiàng)分布')
        return 1,various
    if various<1.2 and various>1 :
        print('符合泊松分布')
        return 2,various
    if  various < 1:
        print('二項(xiàng)分布')
        return 3,various




def arrival():#車輛到達(dá)分布
    #計(jì)算最大公約數(shù)

    Q1 = Q[:, 0] / 180
    for i in range(len(Q1),0,-1):
        if i%3==0 and i%6==0 and i%15==0:
            break
    Q1=Q1[0:i]
    #計(jì)算頻次
    min1=np.array(Q1[:,0]).reshape((int(i/3),3))
    min2 = np.array(Q1[:,0]).reshape((int(i/6), 6))
    min5 = np.array(Q1[:,0]).reshape((int(i/15) , 15))
    min1=min1.sum(axis=1)
    min2 = min2.sum(axis=1)
    min5 = min5.sum(axis=1)



    if min5.sum()<10:
        return 0

    M.append(min1.mean())
    S.append(min1.var())
    min1=min1[min1>5]
    min2 = min2[min2 >5]
    min5 = min5[min5 >5]
    #驗(yàn)證分布
    temp,various=modal(min1)
    modal(min2)
    modal(min5)
    #畫圖并保存
    plt.subplot(311)
    sns.distplot(min1, color='#ff8000')
    plt.subplot(312)
    sns.distplot(min2, color='#ff8000')
    plt.subplot(313)
    sns.distplot(min5, color='#ff8000')

    #
    # if temp==1:
    #     plt.savefig('E:\\arrival\負(fù)二項(xiàng)分布\\'+str(vds)+' '+str(start)+'  '+str(various)+' 符合負(fù)二項(xiàng)分布'+'  '+'.png')
    # if temp==2:
    #     plt.savefig('E:\\arrival\泊松分布\\'+str(vds)+' '+str(start)+'  '+str(various)+' 符合泊松分布'+'  '+'.png')
    # if temp==3:
    #     plt.savefig('E:\\arrival\二項(xiàng)分布\\'+str(vds)+' '+str(start)+'  '+str(various)+' 二項(xiàng)分布'+'  '+'.png')
    #plt.close()

    D.append(temp)




def hourarrival():#高峰小時(shí)車輛到達(dá)分布
    starttime=PHT()
    #print(starttime*3)
    endtime=starttime*3+180
    Q1=Q[starttime*3:endtime]/180
    #print(Q1[:,0])
    min1 = np.array(Q1[:, 0]).reshape((int(len(Q1)/ 3), 3))
    min2 = np.array(Q1[:, 0]).reshape((int(len(Q1)/ 6), 6))
    min5 = np.array(Q1[:, 0]).reshape((int(len(Q1)/ 15), 15))
    min1 = min1.sum(axis=1)
    min2 = min2.sum(axis=1)
    min5 = min5.sum(axis=1)

    if min5.sum() < 10:
        return 0

    M.append(min1.mean())
    S.append(min1.var())
    min1 = min1[min1 > 1]
    min2 = min2[min2 > 1]
    min5 = min5[min5 > 1]
    # 驗(yàn)證分布
    #temp, various = modal(min1)
    #modal(min2)
    temp,various=modal(min5)
    # 畫圖并保存
    # plt.subplot(311)
    # sns.distplot(min1, color='#ff8000')
    # plt.subplot(312)
    # sns.distplot(min2, color='#ff8000')
    # plt.subplot(313)
    # sns.distplot(min5, color='#ff8000')
    # #plt.show()
    # if temp==1:
    #     plt.savefig('E:\\arrival\hour負(fù)二項(xiàng)分布\\'+str(vds)+' '+str(start)+'  '+' 符合負(fù)二項(xiàng)分布'+'  '+'.png')
    # if temp==2:
    #     plt.savefig('E:\\arrival\hour泊松分布\\'+str(vds)+' '+str(start)+'  '+' 符合泊松分布'+'  '+'.png')
    # if temp==3:
    #     plt.savefig('E:\\arrival\hour二項(xiàng)分布\\'+str(vds)+' '+str(start)+'  '+' 二項(xiàng)分布'+'  '+'.png')
    C.append(temp)
    A.append(vds)
    B.append(start)
    plt.close()




def huatu():#畫散點(diǎn)圖函數(shù)

    temp=PHT()
    plt.subplot(311)
    plt.scatter(K,V)
    plt.title(str(vds)+' K-V '+str(start))
    plt.subplot(312)
    plt.scatter(K,Q)
    plt.title(str(vds)+' K-Q '+str(start))
    plt.subplot(313)
    plt.title(str(vds)+' Q-V '+str(start))
    plt.scatter(Q,V)

    if temp == 0:
        plt.savefig('E:\\traffic\\'+str(vds)+' '+str(start)+' '+str(end)+'.png')
    else:
        plt.savefig('E:\\traffic\\' + str(vds) + '  ' + str(start) + ' ' + str(end) + str(temp) + '.png')
    plt.close()

vdss1=[1018,1026,1028,1030,1032,1035,1036,1016,1007]#向西方向
vdss2=[1019,1027,1029,1031,1033,1034,1037,1017,1008]#向東方向

# vdss1=[1008]
# for vds in vdss1:
#     for start in range(10,22):
#         init(start,start+1,vds)
#         hourarrival()
#


for vds in vdss1:
    for start in range(10,22):
        init(start,start+1,vds)
        hourarrival()
        #PHT()

for vds in vdss2:
    for start in range(10,22):
        init(start,start+1,vds)
        hourarrival()
        #PHT()


# arr=pd.DataFrame({"vds":A,'day':B,'M':M,'D':S,'kind':D,'time':C})
arr=pd.DataFrame({"vds":A,'day':B,'符合分布':C})
arr.to_excel('output1.xls')
# print(C)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市狱掂,隨后出現(xiàn)的幾起案子憨募,更是在濱河造成了極大的恐慌间驮,老刑警劉巖蛛芥,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異翻擒,居然都是意外死亡矛双,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門雪标,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)零院,“玉大人,你說(shuō)我怎么就攤上這事村刨「娉” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵嵌牺,是天一觀的道長(zhǎng)打洼。 經(jīng)常有香客問(wèn)我龄糊,道長(zhǎng),這世上最難降的妖魔是什么拟蜻? 我笑而不...
    開(kāi)封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任绎签,我火速辦了婚禮,結(jié)果婚禮上酝锅,老公的妹妹穿的比我還像新娘诡必。我一直安慰自己,他們只是感情好搔扁,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布爸舒。 她就那樣靜靜地躺著,像睡著了一般稿蹲。 火紅的嫁衣襯著肌膚如雪扭勉。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天苛聘,我揣著相機(jī)與錄音涂炎,去河邊找鬼。 笑死设哗,一個(gè)胖子當(dāng)著我的面吹牛唱捣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播网梢,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼震缭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了战虏?” 一聲冷哼從身側(cè)響起拣宰,我...
    開(kāi)封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎烦感,沒(méi)想到半個(gè)月后巡社,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡手趣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年晌该,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片回懦。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡气笙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出怯晕,到底是詐尸還是另有隱情潜圃,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布舟茶,位于F島的核電站谭期,受9級(jí)特大地震影響堵第,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜隧出,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一踏志、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧胀瞪,春花似錦针余、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至帆谍,卻和暖如春伪朽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背汛蝙。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工烈涮, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人窖剑。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓坚洽,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親苛吱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子酪术,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • 我從小最反感的事情就是被一幫傻X制定的所謂一幫傻X規(guī)則所束縛器瘪,我寧愿反抗到底也不會(huì)接受所謂這樣的選擇翠储。也許這就是我...
    喬治肖閱讀 177評(píng)論 0 0
  • 現(xiàn)在那些貓都不見(jiàn)了,十有八九是死了橡疼。 學(xué)校里的貓貓狗狗挺多的援所,但絕大多數(shù)都處于流浪的狀態(tài),四處漂泊欣除,揀一些人們吃剩...
    Peter的沙洲閱讀 311評(píng)論 0 1
  • 今天走在路上的時(shí)候住拭,無(wú)意間看到這個(gè)叔叔推著阿姨,阿姨腿上坐著可能是孫子或者外孫历帚。我也想起了自己的外公外婆滔岳。外婆從我...
    時(shí)光記憶師閱讀 262評(píng)論 4 2