基于浮動車衛(wèi)星定位數(shù)據(jù)的城市道路擁堵計算方法及系統(tǒng)的制作方法
【技術領域】
[0001] 本發(fā)明涉及智能交通車載定位技術領域,具體涉及一種基于浮動車衛(wèi)星定位數(shù)據(jù) 的城市道路擁堵計算方法及系統(tǒng)。
【背景技術】
[0002] 基于浮動車衛(wèi)星定位數(shù)據(jù)的城市道路交通擁堵分析技術被認為是實現(xiàn)先進的交 通誘導的重要途徑,基于浮動車衛(wèi)星定位數(shù)據(jù)交通參數(shù)檢測技術作為一種新的檢測方式, 如何提高其檢測性能是目前的核心問題。城市道路擁堵分析主要包括浮動車衛(wèi)星定位數(shù)據(jù) 獲取、地圖匹配、路徑搜索、路段交通狀態(tài)及路網(wǎng)擁堵計算、交通決策等內(nèi)容。
[0003] 衛(wèi)星定位系統(tǒng)包括美國的GPS全球定位系統(tǒng)、中國的北斗衛(wèi)星定位系統(tǒng),俄羅斯的 格洛納斯全球衛(wèi)星導航系統(tǒng)(GLOBAL NAVIGATION SATELLITE SYSTEM,簡稱:GLONASS)和歐 洲的伽利略衛(wèi)星定位系統(tǒng)。衛(wèi)星定位系統(tǒng)能夠提供實時、全天候和全球性的導航服務,可以 提供車輛定位、行駛路線監(jiān)控等功能,具有的全天候、高精度和自動測量的特點,已經(jīng)融入 了國民經(jīng)濟建設、國防建設和社會發(fā)展的各個應用領域。隨著城市車輛保有量的急劇增加, 城市道路擁擠不堪,交通事故頻頻發(fā)生,把衛(wèi)星定位系統(tǒng)用于城市道路擁堵收費,將顯著提 高城市道路運營的效率和增加行車的安全性。
[0004] 浮動車數(shù)據(jù)采集是以交通信息獲取為目的,不同于車載端每秒采集一次GPS數(shù)據(jù), 由于考慮經(jīng)濟因素,以及后臺計算機數(shù)據(jù)處理的實時性的考慮,浮動車的GPS數(shù)據(jù)采集的周 期一般都在20-60S,導致周期內(nèi)車輛行駛距離較長,GPS定位點之間相差好幾個路段,從而 需要搜索GPS定位點所在道路之間可能存在的路徑,而如何使用盡可能少的數(shù)據(jù)將浮動車 春的運行軌跡皮哦誒到相應的道路上并進行擁堵分析,是道路交通擁堵分析的一個重要課 題,本發(fā)明正是針對該問題而提出了一種基于浮動車衛(wèi)星定位數(shù)據(jù)的城市道路擁堵計算方 法及系統(tǒng)。
【發(fā)明內(nèi)容】
[0005] 針對現(xiàn)有技術中存在的缺陷,本發(fā)明的目的在于提供一種基于浮動車衛(wèi)星定位數(shù) 據(jù)的城市道路擁堵計算方法及系統(tǒng),通過該方法及系統(tǒng),能夠進行路段擁堵狀況的準確、快 速分析。
[0006] 為實現(xiàn)上述目的,本發(fā)明采用的技術方案為:一種基于浮動車衛(wèi)星定位數(shù)據(jù)的城 市道路擁堵計算方法,包括以下步驟:
[0007] 步驟一、浮動車按照預設的定位數(shù)據(jù)采集周期向擁堵分析計算機中心上傳其車輛 的衛(wèi)星定位數(shù)據(jù);所述衛(wèi)星定位數(shù)據(jù)包括浮動車每個定位點的定位時間和定位點的車輛速 度、經(jīng)煒度和航向角;
[0008] 步驟二、計算機中心每隔預設的定位數(shù)據(jù)分析周期,根據(jù)該定位數(shù)據(jù)分析周期內(nèi) 接收到的所有車輛的衛(wèi)星定位數(shù)據(jù)進行道路擁堵分析。
[0009] 進一步,如上所述的一種基于浮動車衛(wèi)星定位數(shù)據(jù)的城市道路擁堵計算方法,步 驟二中,計算機中心進行道路擁堵分析的方式為:
[0010] (1)根據(jù)每個車輛的衛(wèi)星定位數(shù)據(jù)匹配出每個車輛在定位數(shù)據(jù)分析周期內(nèi)所經(jīng)過 的路段;
[0011] (2)計算所述定位數(shù)據(jù)分析周期內(nèi)每個車輛在每條路段上的行駛時間;計算方式 為:
[0012] 記車輛在相鄰的兩個定位點之間所經(jīng)過的路段為η條,η 2 1;車輛在η條路段中的 每條路段的行駛時間的計算方式為:
[0013] 沿車輛的行駛方向,記車輛在η條路段的第1條和第η條路段上行駛的距離分別為 di stl和di stn,在第1條路段和第η條路段的行駛時間分別為TravelTl和TravelTn,第i條路 段的路段長度為RoadLeni,在第i條路段上的行駛時間為TravelTi,第2條至第n-1條路段的 路段長度總和為sum(RoadLen j),2 < i < η-I;
[0014] TravelTl=deltT*distl/(distl+sum(RoadLeni)+distn);
[0015] TravelTn = deltT*distn/(distl+sum(RoadLeni)+distn);
[0016] TravelTi = deItT^RoadLeni/(distl+sum(RoadLeni)+distn);
[0017] 其中,deltT表示相鄰兩個定位點之間的定位時間差,deltT等于所述定位數(shù)據(jù)采 集周期;
[0018] (3)記錄在所述定位數(shù)據(jù)分析周期內(nèi)有車輛行駛的路段的個數(shù),根據(jù)每個車輛在 每條路段的行駛時間,計算每條路段的平均旅行時間;某一路段的平均旅行時間是指在所 述定位數(shù)據(jù)分析周期內(nèi)在該路段上行駛的所有車輛在該路段上的行駛時間的均值;
[0019] (4)根據(jù)每條路段的平均旅行時間和該路段的長度,計算路段的平均旅行速度,計 算方式為:
[0020]所述路段?的平均旅行速度\^:) = 111^111?〇&(1?/111';[11161>&¥61?,111^111?0&(1?為路段?的 長度,nTimeTravelP為路段P的平均旅行時間;
[0021] (5)根據(jù)每條路段的平均旅行速度和預設的平均旅行速度閾值范圍確定各路段的 擁堵等級。
[0022] 進一步,如上所述的一種基于浮動車衛(wèi)星定位數(shù)據(jù)的城市道路擁堵計算方法,步 驟二中,計算機中心在根據(jù)衛(wèi)星定位數(shù)據(jù)進行道路擁堵分析之前,還包括:對接收到的每個 定位點的衛(wèi)星定位數(shù)據(jù)進行預處理,預處理方式為:
[0023] 對于每個車輛,根據(jù)車輛的前后定位點的車輛經(jīng)煒度和時間差,計算前后兩個定 位點之間的車輛平均速度Sp_Avg,若車輛平均速度Sp_Avg大于設定速度,則舍棄該車輛平 均速度所對應的定位點的衛(wèi)星定位速度。
[0024] 進一步,如上所述的一種基于浮動車衛(wèi)星定位數(shù)據(jù)的城市道路擁堵計算方法,步 驟(1)中,根據(jù)每個車輛的衛(wèi)星定位數(shù)據(jù)匹配出每個車輛在定位數(shù)據(jù)分析周期內(nèi)所經(jīng)過路 段,包括:
[0025] 1)根據(jù)預設的經(jīng)度間隔和煒度間隔將地圖進行網(wǎng)格劃分;
[0026] 2)匹配出所述定位數(shù)據(jù)分析周期內(nèi)車輛的每個定位點所在的路段,匹配方式為:
[0027] ①對于每個定位點,根據(jù)定位點的經(jīng)煒度確定出定位點所在的網(wǎng)格,以定位點所 在網(wǎng)格內(nèi)的路段作為候選路段并添加到候選路段集合RoadSel中;
[0028]②根據(jù)候選路段集合RoadSel中的路段,篩選出路段集合indOnRoadl,路段集合 indOnRoad 1中的路段為定位點與該路段的起始點的連線與道路的夾角和定位點與該路段 的終止點的連線與道路的夾角均為銳角的路段;
[0029]③在路段集合indOnRoadl中篩選出定位點與路段的距離小于距離誤差閾值dErr_ Dist的路段的路段集合ind0nRoad2;
[0030] ④在路段集合ind0nRoad2中篩選出定位點的航向角與路段的道路方向的差值的 絕對值小于航向誤差閾值dErr_Azm的路段的路段集合ind0nRoad3;
[0031] ⑤以路段集合ind0nRoad3為新的候選路段集合,將路段集合ind0nRoad3中路段權(quán) 值最大的路段確定為定位點所在的路段RoadSelIND;路段權(quán)值的計算方式為:
[0032] a、設disti為定位點與某一路段i的距離,則距離權(quán)值wd的取值為:若disti〈5m,則 wd = l;若5m < disti < 100m,則wd = l_disti/100;若disti>100m,則wd = -l;
[0033 ] b、根據(jù)定位點的航向角與路段的道路方向的差值的絕對值確定出路段的航向權(quán) 值;確定方式為:
[0034]設detValAi為定位點的航向角與某一路段i的道路方向的差值的絕對值,則航向 權(quán)值'^ = 3*。08((161:\^1八;〇;
[0035] c、所述某一路段的路段權(quán)值wt=wa+wd;
[0036] 3)根據(jù)相鄰兩個定位點所在的路段和這兩個路段之間的道路拓撲關系,確定出車 輛在相鄰兩個定位點之間所經(jīng)過的路段。
[0037] 進一步,如上所述的一種基于浮動車衛(wèi)星定位數(shù)據(jù)的城市道路擁堵計算方法,步 驟3)中,根據(jù)相鄰兩個定位點所在的路段和這兩個路段之間的道路拓撲關系,確定出車輛 在相鄰兩個定位點之間所經(jīng)過的路段的方式為:
[0038] I、建立用于確定車輛在相鄰兩個定位點之間所經(jīng)過的路段的道路結(jié)點集合 nlndNodes;建立結(jié)點集合nlndNodes的方式包括:
[0039] 記相鄰兩個定位點中前一個定位點所在的路段為第一路段,后一個定位點所在的 路段為第二路段,獲取第一路段和第二路段的道路結(jié)點信息,選取第一路段的任一道路結(jié) 點為起始點s,選取第二路段的任一道路結(jié)點為終止點e,將與起始點s的最短路徑長度和與 終止點e的最短路徑長度均小于預設的路徑搜索長度的道路結(jié)點添加到結(jié)點集合 nlndNodes中,并建立結(jié)點集合nlndNodes的鄰接矩陣ADJ;
[0040] 其中,結(jié)點集合nlndNodes的長度記為nLen;鄰接矩陣ADJ中的第P行第q列的元素 為第P個道路結(jié)點與第q個道路結(jié)點間的路徑長度,不互為鄰接點的兩個道路結(jié)點之間的路 徑長度設置為預設值Mval;
[0041] II、根據(jù)所述結(jié)點集合nlndNodes和其鄰接矩陣ADJ進行起始點s和終止點e之間的 路徑搜索,搜索出的路徑中所包括的路段確定為車輛在相鄰兩個定位點之間所經(jīng)過的路 段;
[0042]進行路徑搜索的一種方式包括:
[0043] i、設置結(jié)點集合nIndNodeS中每個道路結(jié)點的結(jié)點標識,結(jié)點m的結(jié)點標識記為 (dm,Pm ),dm為起始點S到結(jié)點m的最短路徑長度,Pm為結(jié)點m的緊前結(jié)點;所述緊前結(jié)點是指 起始點s到結(jié)點m的最短路徑中結(jié)點m的前一結(jié)點;
[0044]設置清零標記集合pb,清零標記集合pb中的元素與結(jié)點集合nlndNodes中的元素 --對應,當結(jié)點集合nlndNodes中某一道路結(jié)點為起始點時,清零標記集合pb對應的元素 置為I,否則置為ο,初始化時Pb (S) = I;
[0045]設置標號結(jié)點順序集合index,標號結(jié)點順序集合index中的元素為按順序存放的 起始點;初始化時index[ I ] = S;
[0046] ii、設置一臨時變量temp,令初始化的temp = s;
[0047] ;[;[;[、判斷是否滿足七611^1矣6且811111(口13)〈111^11,若是,貝1|進入步驟;^,若否,貝1|進入步 驟X; sum (pb)為集合pb中所有元素的和;
[0048] iv、將清零標記集合pb中為零的元素所對應的道路結(jié)點組成集合tb,根據(jù)所述鄰 接矩陣獲取結(jié)點temp的鄰接點并組成集合Col IInNode,取集合tb與Col IInNode的交集記為 IA;
[0049] V、判斷IA是否為空集,若是,則進入步驟vii,若否,則進入步驟vi ;
[0050] Vi、選取IA中的道路結(jié)點j作為新的起始點,并進入步驟Vi i i ;選取方式為:
[0051 ]遍歷IA中的所有道路結(jié)點,對于每個道路結(jié)點j計算min [ dj,dtemp+1 temp j ],選取最 小的min[dj,dtemP+ltemPj]所對應的道路結(jié)點j為新的起始點;
[0052] 其中,dtemp為起始點s到道路結(jié)點temp的最短路徑長度,Itempj是道路結(jié)點temp到道 路結(jié)點j的直線距離;
[0053] vii、選取集合tb中dtbT最小的道路結(jié)點j作為新的起始點;其中,dtbT = dtbi+dtb2, dtbl、dtb2分別表示集合tb中的道路結(jié)點與起始點s的最短路徑長度以及與終止點e的直線距 離;
[0054] vi ii、判斷是否滿足dj矣Mval,若是,進入步驟ix,若否,進入步驟X;
[0055] 1叉、記錄;[11(16叉=[8,」],口13(」)=1,令七611^1 =」,并返回步驟;[;[;[;
[0056] X、判斷是否滿足temp = e,若是,確定起始點s與終止點e之間的最優(yōu)路徑為集合 index中的道路結(jié)點依次連接成的路徑,若否,則起始點s與終止點e之間最優(yōu)路徑搜索失 ??;
[0057]進行路徑搜索的另一種方式為:
[0058] A、設置路徑結(jié)點集合partialPath,并記錄路徑結(jié)點集合partialPath的長度 pathLength,集合中的元素為按搜索順序存放的每次路徑搜索時的搜索起始結(jié)點; pathLength是指路徑結(jié)點集合partialPath中元素的個數(shù),初始化時,partialPath[ 1 ] = s, pathLength = 1 ;
[0059] 設置每次搜索時的搜索起始結(jié)點為Iastnode,lastnode = partialPath[last], partialPath [last]表示路徑結(jié)點集合partialPath的最后一個元素;初始化時,Iastnode =s;
[0000] B、根據(jù)鄰接矩陣ADJ獲取搜索起始結(jié)點lastnode的鄰接點,將得到的鄰接點記錄 在鄰接點集合nextNodes中;
[0061 ] C、判斷鄰接點集合nextNodes是否為空,若是,則進入步驟D,若否,則進入步驟F; [0062 ] D、判斷路徑結(jié)點集合par t i al Path中的元素是否只有起始點s,若是,則路徑搜索 搜索回到起始點,路徑搜索完畢;若否,則進入步驟