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