日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

利用卡口数据绘制路段基本图(出入量法)——Python交通数据分析

發布時間:2024/3/24 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用卡口数据绘制路段基本图(出入量法)——Python交通数据分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 一、卡口數據簡介
  • 二、路段基本圖

一、卡口數據簡介

數據名稱含義
DEVICEID設備ID
TRAVELID車輛ID,可分辨車輛
hpzl車輛類型,1表示大型車,2表示小汽車
SJ時間
LANEID車道編號,較長編號表示該位置處于上下游車道過渡區域,無劃線;-1表示由于技術原因導致的無效計數,可忽略該檢測值
LANNUM車道數
SPEED瞬時車速
TURN車道方向信息,LSR分別表示左直右及其組合,LU和RU分別表示左掉頭和右掉頭,LC表示上下游車道連接過渡段,表明此斷面包含車道變化區域
FTNODE起始節點
卡口布設簡圖

二、路段基本圖

繪出東進口道(下游檢測器編號504,上游檢測器編號508)的路段基本圖,與斷面基本圖對比。

交通流特性(流速密)在斷面、路段上的區別
利用卡口數據繪制斷面基本圖——Python交通數據分析

import numpy as np import pandas as pd from pandas import DataFrame from numpy import * import scipy from scipy import stats import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties import matplotlib.dates as mdate import timekk_data = pd.read_csv('data/kk_data/kk.csv') kk_data['SJ'] = pd.to_datetime(kk_data['SJ']) kk_data['TRAVELID'] = kk_data['TRAVELID'].astype(str) # 轉化為字符串kk_data_504 = kk_data[kk_data['DEVICEID'] == 504].copy() kk_data_504 = kk_data_504.sort_values(by = 'SJ') kk_data_504.rename(columns={'SJ':'OUT_SJ'},inplace=True) # 重命名kk_data_508 = kk_data[kk_data['DEVICEID']==508].copy() kk_data_508 = kk_data_508.sort_values(by = 'SJ') kk_data_508.rename(columns={'SJ':'IN_SJ'},inplace=True)data_merge = pd.merge(kk_data_508,kk_data_504,on='TRAVELID',how='inner') data_merge['time'] = data_merge['OUT_SJ'] - data_merge['IN_SJ']#清洗數據,有的時間過短,有的時間過長,還有的進口道時間晚于出口道時間 wrong_data = data_merge[(data_merge['time'] < pd.Timedelta(seconds=5)) | (data_merge['time'] >= pd.Timedelta(minutes=3))] wrong_data_TRAVELID = wrong_data['TRAVELID'].tolist() for i in wrong_data_TRAVELID:kk_data_508 = kk_data_508[kk_data_508['TRAVELID']!=i]kk_data_504 = kk_data_504[kk_data_504['TRAVELID']!=i] data_merge = data_merge[(data_merge['time'] > pd.Timedelta(seconds=5)) & (data_merge['time'] <= pd.Timedelta(minutes=3))]kk_data_508 = kk_data_508.reset_index() # 清洗了時間異常的數據之后,索引會出現問題,需要重新設定索引 kk_data_504 = kk_data_504.reset_index() data_merge = data_merge.reset_index()# 進口道下游數據遠多于進口道上游數據,不合理,需要對上下游的數據進行再次清洗 data_merge_TRAVELID = data_merge['TRAVELID'].tolist()labels_list = [] # 避免清洗在路段上的原始車輛,從第六輛車開始遍歷 for i in range(5,len(kk_data_504)):ID = kk_data_504['TRAVELID'].iloc[i]if ID not in data_merge_TRAVELID:labels_list.append(i) kk_data_504.drop(labels=labels_list,axis=0,inplace=True) kk_data_504 = kk_data_504.reset_index()# 避免刪除在最后時刻進入路段的車輛,最后十輛車不遍歷 labels_list = [] for i in range(0, (len(kk_data_508) - 10)):ID = kk_data_508['TRAVELID'].iloc[i]if ID not in data_merge_TRAVELID:labels_list.append(i) kk_data_508.drop(labels=labels_list,axis=0,inplace=True) kk_data_508 = kk_data_508.reset_index()# 計算每輛車的速度 time = data_merge['time'] sec = [] V = [] for i in range(0,len(time),1):sec.append(time[i].seconds)V.append((300/time[i].seconds)*3.6) data_merge['sec'] = sec data_merge['V'] = V# 路段基本圖 # 出入量法,統計每一分鐘路段上的車輛數 # 結合處理過后的數據與原始進出口數據,原始車輛數E=2 E = 2 K = [] Q = [] time = pd.datetime(2019,7,9,6,0) while(time < pd.datetime(2019,7,9,10,0)):data_IN = kk_data_508[(kk_data_508['IN_SJ']>=time) & (kk_data_508['IN_SJ']<(time+pd.Timedelta(minutes=1)))].copy()data_OUT = kk_data_504[(kk_data_504['OUT_SJ']>=time) & (kk_data_504['OUT_SJ']<(time+pd.Timedelta(minutes=1)))].copy()data_V = data_merge[(data_merge['OUT_SJ']>(time+pd.Timedelta(minutes=1))) & (data_merge['IN_SJ']<=(time+pd.Timedelta(minutes=1)))].copy()count = len(data_IN) - len(data_OUT)E = E + countV_mean = data_V['V'].mean()K.append(E / (2 * 0.3)) # 輛/(千米*車道)Q.append(V_mean * (E / (2 * 0.3))) # Q=K*Vtime = time + pd.Timedelta(minutes=1)# 斷面基本圖 def kk(kk_data):kk_data['1/SPEED'] = 1 / kk_data['SPEED']kk_data_group = kk_data.groupby(['DEVICEID',pd.Grouper(key='IN_SJ',freq='5min')])kk_data_flow = kk_data_group['DEVICEID'].count()kk_data_flow = kk_data_flow * 12 # 在交通測量平臺的顯示中,東進口上游的車道數為1,但在數據中,車道數為2,此處設定為1kk_data_speed = 1 / (kk_data_group['1/SPEED'].mean())return kk_data_flow,kk_data_speed kk_flow,kk_speed = kk(kk_data_508) kk_density = kk_flow / kk_speedplt.xlabel('K: veh/km/lane') plt.ylabel('Q: veh/h/lane', rotation=360, horizontalalignment='right', verticalalignment='center') plt.scatter(K,Q) plt.scatter(kk_density,kk_flow) plt.legend(['Road','Section']) # Road路段,Section斷面 plt.show()


注意,東進口道可能并不是一條封閉的路段,才需要清洗這么多數據
水平有限,僅供參考,有錯誤請指出

總結

以上是生活随笔為你收集整理的利用卡口数据绘制路段基本图(出入量法)——Python交通数据分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一区二区亚洲 | 中文字幕少妇在线三级hd | 九九热国产在线 | 国产精品2区 | 7x7x7x人成影视 | 日本中文字幕久久 | 国产香蕉在线视频 | 影院色原网站 | 又色又爽又黄gif动态图 | 久久99这里只有精品 | 久久久一本 | 超碰在线网站 | 色久阁| 国产精品人人做人人爽人人添 | 污视频网站免费 | xxxxⅹxxxhd日本8hd | 国产区视频 | 伦理黄色片 | 欧美在线高清 | 欧日韩视频 | 成人av综合网 | 国产69精品久久久 | 亚洲国产精彩中文乱码av | 青青草国产精品视频 | 丝袜理论片在线观看 | 日韩在线不卡 | 激情综合网五月天 | 天天想你在线观看完整版高清 | 乳色吐息免费看 | wwww黄色片| 日韩伦理一区二区三区 | 亚洲国产精品成人综合 | 日韩精品手机在线 | 网友自拍一区 | 九九九九九精品 | 清纯唯美亚洲综合 | 国产一区二区三区视频网站 | 91精品国产综合久久久久久 | 国产肉体xxxx裸体784大胆 | 色热热| 99热成人 | 日韩精品视频在线观看免费 | 日本一本二本三区免费 | 青青在线免费观看 | 你懂的国产在线 | av毛片在线播放 | 国产精品中文字幕在线观看 | 999精彩视频| 欧美国产日韩一区二区 | 久久99影院| 国产精品桃色 | 男女三级视频 | 尤物视频官网 | 日本日韩欧美 | 黄色大片视频 | 成年人免费视频网站 | 国产高清精品一区二区三区 | 狠狠操影视 | 久久久高清视频 | 成人污在线观看 | 国产日韩专区 | 一道本久在线中文字幕 | 丁香花在线影院观看在线播放 | 在线观看一级片 | 黄色中文字幕在线观看 | y11111少妇| 亚洲AV成人无码久久精品巨臀 | 秋霞国产午夜精品免费视频 | 国产日韩精品在线观看 | 色噜噜在线 | 在线高清观看免费 | 手机在线永久免费观看av片 | 国产精品免费久久久久 | 玖玖爱在线观看 | 欧美性色a | 久久久免费电影 | 国产自偷自拍视频 | 日本三级吃奶头添泬无码苍井空 | 亚洲综合在线一区二区 | 免费污污视频在线观看 | 黄色片免费视频 | 免费无毒av | 欧美网站免费 | 风间由美在线视频 | 色屁屁一区二区三区视频 | 少妇性l交大片免费观看 | 亲子乱aⅴ一区二区三区 | 一级看片免费视频 | 日本黄色美女视频 | 国产视频手机在线 | 免费在线播放毛片 | 老妇裸体性激交老太视频 | 亚洲成人aa | 天天想你在线观看完整版电影高清 | 国模视频一区 | 亚洲精品乱码久久久久久蜜桃不卡 | 日日爱av | 亚洲天天影视 | 亚洲欧洲成人精品久久一码二码 |