日韩性视频-久久久蜜桃-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交通数据分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 四级黄色片 | 18岁毛片| 欧美日韩国产一区二区在线观看 | 人人人草| 卡通动漫av| 色秀av| 深夜视频在线观看免费 | 91免费版视频| 丝袜在线视频 | 人人爽在线 | 日本最新中文字幕 | 国精品人妻无码一区二区三区喝尿 | 中文在线免费 | 国产熟妇乱xxxxx大屁股网 | 亚洲精品乱码久久久久久9色 | 91www在线观看| 亚洲小说春色综合另类 | 国产成人av一区二区三区在线观看 | 天天想你在线观看完整版电影免费 | 自拍偷拍电影 | 国产传媒第一页 | 天堂av官网 | 99久久网站| 精品一区二区三区久久 | 欧美日韩亚洲一区二区 | 中文字幕电影一区二区 | 在线看毛片网站 | 男男做性免费视频网 | 欧美h在线观看 | 东京av在线 | 一级福利视频 | 美女扒开腿让人桶爽 | 国产一区精品在线观看 | 久久久久久亚洲 | 黑人一级黄色片 | 欧美一级全黄 | 久久精热 | 色悠悠av| 懂色中文一区二区在线播放 | 91超碰免费在线 | 激情综合视频 | 日韩成人免费在线视频 | 久久性生活| 亚洲精品免费电影 | 曰本黄色大片 | 国产乱妇4p交换乱免费视频 | 老司机av网站 | 伊人蕉| 69精品无码成人久久久久久 | 日本精品在线一区 | 久久夜精 | 精品日韩在线观看 | 国产综合网站 | 三级无遮挡 | www.com污| www国产www | 久久久免费在线观看 | 黄色片aaa| 色噜噜一区二区三区 | 亚欧日韩 | 无码一区二区三区在线观看 | 亚洲好视频| 日韩婷婷| 卡通动漫亚洲综合 | 精品国产自在精品国产精小说 | 欧美videossex另类 | 中文字幕高清在线免费播放 | av一区二区在线观看 | 一级黄视频 | 欧美国产一级 | 午夜中文字幕 | 国产又粗又猛又爽免费视频 | 无码丰满熟妇 | 日韩三级视频在线观看 | 女人和拘做爰正片视频 | 黄色片免费视频 | 都市激情 自拍偷拍 | 公侵犯人妻一区二区 | 日韩大片av| 日本在线观看网站 | 久热精品在线视频 | 天天天天躁天天爱天天碰2018 | 国产精品96 | 91ts人妖另类精品系列 | 成人羞羞在线观看网站 | 国产精品久久久久久久久免费看 | 亚洲国产欧美在线人成 | 51嘿嘿嘿国产精品伦理 | 成人性生交大片免费看96 | 国产精品综合久久久 | 男人的天堂av片 | 中文字幕在线视频一区二区 | 91资源站 | 日本无遮挡边做边爱边摸 | 亚洲国产一区二区三区在线观看 | 黄频在线 | 美女被捅个不停 | 91精品国产一区 | 国产黄色片在线观看 |