P聚類成3類,得到集合 TravelTPl、TravelTP2和TravelTP3,nl、n2和n3分別為集合TravelTPl、TravelTP2和 TravelTP3 中元素的個數(shù),mTl、mT2 和 mT3 分別為集合 TravelTPl、TravelTP2 和 TravelTP3 中 元素的均值,nT = nl+n2+n3=M_2,nl 2 I,n2 2 I,n3 > 1。
[0140] 進(jìn)一步,如上所述的一種基于浮動車衛(wèi)星定位數(shù)據(jù)的城市道路擁堵計(jì)算系統(tǒng),擁 堵等級確定單元包括:
[0141 ]擁堵等級劃分子單元,用于劃分路段的擁堵等級,劃分方式為:根據(jù)路段的等級, 確定不同等級的路段的各擁堵等級的平均旅行速度閾值范圍;
[0142] 擁堵等級確定子單元,用于根據(jù)計(jì)算出的每條路段的平均旅行速度和該路段的等 級確定出各路段的擁堵等級。
[0143] 本發(fā)明的有益效果在于:本發(fā)明所提供的城市道路擁堵計(jì)算方法及系統(tǒng),基于浮 動車的衛(wèi)星定位數(shù)據(jù)能夠?qū)④囕v的運(yùn)行軌跡匹配到相應(yīng)的路段上,并實(shí)現(xiàn)對各路段的的擁 堵狀況的評估,為城市道路擁堵收費(fèi)提供全面的定位技術(shù)支持。
【附圖說明】
[0144] 圖1為本發(fā)明【具體實(shí)施方式】中提供的一種基于浮動車衛(wèi)星定位數(shù)據(jù)的城市道路擁 堵計(jì)算方法的流程圖;
[0145] 圖2為本發(fā)明【具體實(shí)施方式】中提供的一種基于浮動車衛(wèi)星定位數(shù)據(jù)的城市道路擁 堵計(jì)算系統(tǒng)的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0146] 下面結(jié)合說明書附圖與【具體實(shí)施方式】對本發(fā)明做進(jìn)一步的詳細(xì)說明。
[0147] 圖1示出了本發(fā)明【具體實(shí)施方式】中提供的一種基于浮動車衛(wèi)星定位數(shù)據(jù)的城市道 路擁堵計(jì)算方法的流程圖,由圖中可以看出,該方法主要包括以下步驟:
[0148] 步驟一、采集浮動車的衛(wèi)星定位數(shù)據(jù)并上傳至擁堵分析計(jì)算機(jī)中心;
[0149] 浮動車按照預(yù)設(shè)的定位數(shù)據(jù)采集周期向擁堵分析計(jì)算機(jī)中心上傳一次其車輛的 衛(wèi)星定位數(shù)據(jù),所述衛(wèi)星定位數(shù)據(jù)包括浮動車每個定位點(diǎn)的車輛速度、經(jīng)煒度和航向角等 信息。
[0150] 所述定位數(shù)據(jù)采集周期可以根據(jù)實(shí)際需要進(jìn)行設(shè)置,周期越短后續(xù)擁堵分析結(jié)果 越精確,本實(shí)施方式中,該定位數(shù)據(jù)采集周期可以設(shè)置為50S,即浮動車的衛(wèi)星定位系統(tǒng)每 隔50秒對車輛進(jìn)行一次定位,并將該定位點(diǎn)的衛(wèi)星定位數(shù)據(jù)上傳至后臺進(jìn)行擁堵分析的擁 堵分析計(jì)算機(jī)中心,擁堵分析計(jì)算機(jī)依據(jù)浮動車上傳的衛(wèi)星定位數(shù)據(jù)進(jìn)行道路的擁堵分 析。
[0151] 步驟二、計(jì)算機(jī)中心每隔預(yù)設(shè)的定位數(shù)據(jù)分析周期,根據(jù)該定位數(shù)據(jù)分析周期內(nèi) 接收到的所有車輛的衛(wèi)星定位數(shù)據(jù)進(jìn)行道路擁堵分析。
[0152] 所述定位數(shù)據(jù)分析周期是指擁堵分析計(jì)算機(jī)中心進(jìn)行一次擁堵分析的周期,計(jì)算 機(jī)中心基于該定位數(shù)據(jù)分析周期內(nèi)接收到的浮動車上傳的衛(wèi)星定位數(shù)據(jù)進(jìn)行道路的擁堵 狀況分析。定位數(shù)據(jù)分析周期可以根據(jù)實(shí)際進(jìn)行設(shè)定,但定位數(shù)據(jù)分析周期不小于定位數(shù) 據(jù)采集周期,分析周期越短,分析結(jié)果越精確。本實(shí)施方式中,該定位數(shù)據(jù)分析周期可以設(shè) 置為5分鐘,即計(jì)算機(jī)中心每個5分鐘進(jìn)行一次定位點(diǎn)所在路段的匹配和路段的交通擁堵分 析。
[0153] 本實(shí)施方式中,計(jì)算機(jī)中心進(jìn)行道路擁堵分析的方式包括以下幾個步驟:
[0154]步驟Sl:對接收到的衛(wèi)星定位數(shù)據(jù)進(jìn)行預(yù)處理;
[0155] 首先,根據(jù)浮動車上傳的衛(wèi)星定位數(shù)據(jù)進(jìn)行預(yù)處理,刪除異常的定位數(shù)據(jù),預(yù)處理 的方式為:對于每個車輛,根據(jù)其上傳的衛(wèi)星定位數(shù)據(jù),根據(jù)當(dāng)前定位點(diǎn)與其前一定位點(diǎn)的 經(jīng)煒度計(jì)算出當(dāng)前定位點(diǎn)和其前一定位點(diǎn)的距離,以該距離除以兩個定位點(diǎn)衛(wèi)星定位數(shù)據(jù) 采集時間的時間差,計(jì)算出兩個定位點(diǎn)之間的車輛平均速度Sp_Avg,若車輛平均速度Sp_ Avg大于設(shè)定速度,則舍棄當(dāng)前定位點(diǎn)的衛(wèi)星定位數(shù)據(jù)。所述設(shè)定速度可以根據(jù)需要進(jìn)行設(shè) 置,本實(shí)施方式中,所述設(shè)定速度為120km/h。
[0156] 完成預(yù)處理后,以預(yù)處理后的衛(wèi)星定位數(shù)據(jù)進(jìn)行后續(xù)的道路擁堵分析。
[0157] 步驟S2:根據(jù)每個車輛的衛(wèi)星定位數(shù)據(jù)匹配出每個車輛在定位數(shù)據(jù)分析周期內(nèi)所 經(jīng)過的路段;
[0158] 本實(shí)施方式中,根據(jù)每個車輛的衛(wèi)星定位數(shù)據(jù)匹配出每個車輛在定位數(shù)據(jù)分析周 期內(nèi)所經(jīng)過的路段的具體方式為:
[0159] 1)根據(jù)預(yù)設(shè)的經(jīng)度間隔和煒度間隔將地圖進(jìn)行網(wǎng)格劃分;
[0160] 為了提高匹配精度,首先對地圖進(jìn)行網(wǎng)格化處理,根據(jù)預(yù)設(shè)的經(jīng)度間隔和煒度間 隔將地圖劃分為網(wǎng)格。經(jīng)度間隔和煒度間隔可以根據(jù)需要設(shè)定,本實(shí)施方式中,所述經(jīng)度間 隔和煒度間隔可以均設(shè)置為100米。
[0161] 2)匹配出所述定位數(shù)據(jù)分析周期內(nèi)車輛的每個定位點(diǎn)所在的路段,匹配方式為:
[0162] ①對于每個定位點(diǎn),根據(jù)定位點(diǎn)的經(jīng)煒度確定出定位點(diǎn)所在的網(wǎng)格,以定位點(diǎn)所 在網(wǎng)格內(nèi)的路段作為候選路段并添加到候選路段集合RoadSel中;
[0163] ②根據(jù)候選路段集合RoadSel中的路段,篩選出路段集合indOnRoadl,路段集合 indOnRoad 1中的路段為定位點(diǎn)與該路段的起始點(diǎn)的連線與道路的夾角和定位點(diǎn)與該路段 的終止點(diǎn)的連線與道路的夾角均為銳角的路段;
[0164] ③在路段集合indOnRoadl中篩選出定位點(diǎn)與路段的距離小于距離誤差閾值dErr_ Dist的路段的路段集合ind0nRoad2;
[0165] ④在路段集合ind0nRoad2中篩選出定位點(diǎn)的航向角與路段的道路方向的差值的 絕對值小于航向誤差閾值dErr_Azm的路段的路段集合ind0nRoad3;
[0166] ⑤以路段集合ind0nRoad3為新的候選路段集合,將路段集合ind0nRoad3中路段權(quán) 值最大的路段確定為定位點(diǎn)所在的路段RoadSelIND;路段取值的計(jì)算方式為:
[0167] a、設(shè)disti為定位點(diǎn)與某一路段i的距離,則距離權(quán)值wd的取值為:若disti〈5m,則 wd = l;若5m < disti < 100m,則wd = l_disti/100;若disti>100m,則wd = -l;
[0168] b、根據(jù)定位點(diǎn)的航向角與路段的道路方向的差值的絕對值確定出路段的航向權(quán) 值;確定方式為:
[0169] 設(shè)detValAi為定位點(diǎn)的航向角與某一路段i的道路方向的差值的絕對值,則航向 權(quán)值'^ = 3*。08((161:\^1八;〇;
[0170] c、所述某一路段的路段權(quán)值wt=wa+wd〇
[0171] 3)根據(jù)相鄰兩個定位點(diǎn)所在的路段和這兩個路段之間的道路拓?fù)潢P(guān)系,確定出車 輛在相鄰兩個定位點(diǎn)之間所經(jīng)過的路段。
[0172] 采用上述方式,即可匹配出浮動車的每個定位點(diǎn)所在路段,在匹配出每個定位點(diǎn) 所在路段后,再結(jié)合浮動車在定位數(shù)據(jù)分析周期內(nèi)的相鄰定位點(diǎn)之間的道路的拓?fù)潢P(guān)系, 便可以得出車輛在該周期內(nèi)的行駛軌跡,確定出車輛所經(jīng)過的所有路段。
[0173] 其中,在確定出相鄰兩個定位點(diǎn)所在的路段后,再結(jié)合兩個路段之間的道路拓?fù)?關(guān)系確定出車輛在這兩個定位點(diǎn)之間的路徑,得到車輛在這兩個定位點(diǎn)之間所經(jīng)過的所有 路段的方式可以采用現(xiàn)有的定位點(diǎn)之間路徑的確認(rèn)方式。本實(shí)施方式中,還提供了一種確 定出車輛在相鄰兩個定位點(diǎn)之間所經(jīng)過的路段的方式,該方法具體包括以下步驟:
[0174] I、建立用于確定車輛在相鄰兩個定位點(diǎn)之間所經(jīng)過的路段的道路結(jié)點(diǎn)集合 nlndNodes;建立結(jié)點(diǎn)集合nlndNodes的方式包括:
[0175] 記相鄰兩個定位點(diǎn)中前一個定位點(diǎn)所在的路段為第一路段,后一個定位點(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;
[0176]其中,結(jié)點(diǎn)集合nlndNodes的長度記為nLen;鄰接矩陣ADJ中的第p行第q列的元素 為第P個道路結(jié)點(diǎn)與第q個道路結(jié)點(diǎn)間的路徑長度,不互為鄰接點(diǎn)的兩個道路結(jié)點(diǎn)之間的路 徑長度設(shè)置為預(yù)設(shè)值Mval;
[0177]所述預(yù)設(shè)的路徑搜索長度可以根據(jù)浮動車時速和浮動車的定位時間間隔確定,路 徑搜索長度=浮動車時速X定位時間間隔;一般的,浮動車前后兩個定位點(diǎn)之間的距離一 般不超過2km,因此,預(yù)設(shè)的路徑搜索長度nPathLenLmt可以設(shè)置為2km。
[0178] II、根據(jù)所述結(jié)點(diǎn)集合nlndNodes和其鄰接矩陣ADJ進(jìn)行起始點(diǎn)s和終止點(diǎn)e之間的 路徑搜索,搜索出的路徑中所包括的路段確定為車輛在相鄰兩個定位點(diǎn)之間所經(jīng)過的路 段;
[0179]本實(shí)施方式中,提供了另種進(jìn)行路徑搜索的方式,進(jìn)行路徑搜索的一種方式包括: [0180] i、設(shè)置結(jié)點(diǎn)集合nIndNodeS中每個道路結(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);
[0181]設(shè)置清零標(biāo)記集合pb,清零標(biāo)記集合pb中的元素與結(jié)點(diǎn)集合nlndNodes中的元素 --對應(yīng),當(dāng)結(jié)點(diǎn)集合nlndNodes中某一道路結(jié)點(diǎn)為起始點(diǎn)時,清零標(biāo)記集合pb對應(yīng)的元素 置為1,否則置為〇,初始化時Pb (s) = 1;
[0182]設(shè)置標(biāo)號結(jié)點(diǎn)順序集合index,標(biāo)號結(jié)點(diǎn)順序集合index中的元素為按順序存放的 起始點(diǎn);初始化時index[ I ] = S;
[0183] ii、設(shè)置一臨時變量temp,令初始化的temp = s;
[0184];[;[;[、判斷是否滿足丨611^1矣6且811111化13)〈111^11,若是,則進(jìn)入步驟;^,若否,則進(jìn)入步 驟X; sum (pb)為集合pb中所有元素的和;
[0185] iv、將清零標(biāo)記集合pb中為零的元素所對應(yīng)的道路結(jié)點(diǎn)組成集合tb,根據(jù)所述鄰 接矩陣獲取結(jié)點(diǎn)temp的鄰接點(diǎn)并組成集合Col IInNode,取集合tb與Col IInNode的交集記為 IA;
[0186] V、判斷IA是否為空集,若是,則進(jìn)入步驟vi i,若否,則進(jìn)入步驟vi ;
[0187] Vi、選取IA中的道路結(jié)點(diǎn)j作為新的起始點(diǎn),并進(jìn)入步驟Vi i i ;選取方式為:
[0188] 遍歷IA中的所有道路結(jié)點(diǎn),對于每個道路結(jié)點(diǎn)j計(jì)算min [ dj,dtemp+1 temp j ],選取最 小的min[dj,dtemP+ltemPj]所對應(yīng)的道路結(jié)點(diǎn)j為新的起始點(diǎn);
[0189] 其中,dtemp為起始點(diǎn)S到道路結(jié)點(diǎn)temp的最短路徑長度,Itempj是道路結(jié)點(diǎn)temp到道 路結(jié)點(diǎn)j的直線距離;
[0190] vii、選取集合tb中dtbT最小的道路結(jié)點(diǎn)j作為新的起始點(diǎn);其中,dtbT = dtbi+dtb2, dtbl、dtb2分別表示集合tb中的道路結(jié)點(diǎn)與起始點(diǎn)s的最短路徑長度以及與終止點(diǎn)e的直線距 離;
[0191 ] vi ii、判斷是否滿足dj矣Mval,若是,進(jìn)入步驟ix,若否,進(jìn)入步驟X;
[0192] 1叉、記錄;[11(16叉=[8,」],口13(」)=1,令七611^1 =」,并返回步驟;[;[;[;
[0193] X、判斷是否滿足temp = e,若是,確定起始點(diǎn)s與終止點(diǎn)e之間的最優(yōu)路徑為集合 index中的道路結(jié)點(diǎn)依次連接成的路徑,若否,則起始點(diǎn)s與終止點(diǎn)e之間最優(yōu)路徑搜索失 ?。?br>[0194] 進(jìn)行路徑搜索的另一種方式為:
[0195] A、設(shè)置路徑結(jié)點(diǎn)集合partialPath,并記錄路徑結(jié)點(diǎn)集合partialPath的長度 pathLength,集合中的元素為按搜索順序存放的每次路徑搜索時的搜索起始結(jié)點(diǎn); pathLength是指路徑結(jié)點(diǎn)集合partialPath中元素的個數(shù),初始化時,partialPath[ I ] = s, pathLength = 1 ;
[0196] 設(shè)置每次搜索時的搜索起始結(jié)點(diǎn)為Iastnode,lastnode = partialPath[last], partialPath [last]表示路徑結(jié)點(diǎn)集合partialPath的最后一個元素;初始化時,Iastnode =s;
[0197] B、根據(jù)鄰接矩陣ADJ獲取搜索起始結(jié)點(diǎn)lastnode的鄰接點(diǎn),將得到的鄰接點(diǎn)記錄 在鄰接點(diǎn)集合nextNodes中;
[0198] C、判斷鄰接點(diǎn)集合nextNodes是否為空,若是,則進(jìn)入步驟D,若否,則進(jìn)入步驟F;
[0199] D、判斷路徑結(jié)點(diǎn)集合partialPath中的元素是否只有起始點(diǎn)s,若是,則路徑搜索 搜索回到起始點(diǎn),路徑搜索完畢;若否,則進(jìn)入步驟E;
[0200] E、刪除路徑結(jié)點(diǎn)集合partialPath中partialPath[ last],更新路徑結(jié)點(diǎn)集合 part ialPath和搜索起始結(jié)點(diǎn)lastnode,并返回步驟B;
[0201] F、從鄰接點(diǎn)集合nextNodes中選取下一個搜索起始道路結(jié)點(diǎn),選取方式為:
[0202] Fl )遍歷鄰接點(diǎn)集合nextNodes中的道路結(jié)點(diǎn)nextNodesi,判斷道路結(jié)點(diǎn) nextNodesi是否為終止點(diǎn)e,若是,則將nextNodesi從結(jié)點(diǎn)集合nextNodes中刪除,將鄰接矩 陣中搜索起始結(jié)點(diǎn)last