一種基于滑動窗口的軌跡壓縮方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于滑動窗口的軌跡壓縮方法,屬于地理信息系統(tǒng)(GIS)應(yīng)用領(lǐng)域。
【背景技術(shù)】
[0002]近年來,隨著民用GPS等定位設(shè)備在移動終端上的廣泛使用以及基于位置服務(wù)(Locat1n-Based Service,LBS)和移動社交網(wǎng)絡(luò)(Mobile Social Network)的發(fā)展和普及,用戶可以方便地獲取個人位置信息,研宄人員也能方便地通過位置感知設(shè)備獲取軌跡路徑。因此越來越多的移動對象的軌跡數(shù)據(jù)被收集并存儲在移動對象數(shù)據(jù)庫中,軌跡數(shù)據(jù)作為移動對象的歷史活動數(shù)據(jù),在某種程度能夠體現(xiàn)移動對象的屬性、狀態(tài)、行為等內(nèi)外部特征。但是這些龐大的數(shù)據(jù)量為數(shù)據(jù)的存儲查詢分析及傳送造成很大的困難,所以對GPS數(shù)據(jù)的壓縮方法的研宄成為目前的一個熱點問題。
[0003]GPS軌跡數(shù)據(jù)壓縮的目的是在保留數(shù)據(jù)所包含的信息的前提下,盡可能的減少數(shù)據(jù)量,縮小數(shù)據(jù)所占用的存儲空間。即在保證軌跡準(zhǔn)確性的前提下,去除冗余定位點,從而減少數(shù)據(jù)量。但在簡化數(shù)據(jù)點的同時,必然會丟失一定量的信息,所以目前出現(xiàn)的軌跡數(shù)據(jù)壓縮方法,是在數(shù)據(jù)信息的準(zhǔn)確性和數(shù)據(jù)存儲空間兩者之間進行權(quán)衡。
[0004]軌跡數(shù)據(jù)壓縮方法一般分為兩大類:一種是將移動軌跡進行分段線性化,由于其算法形式簡單,計算復(fù)雜度低,是最常用的方法;另一種是非線性的軌跡擬合,非線性擬合更接近真實軌跡,但是其方法復(fù)雜,計算量大。移動物體的移動軌跡受到實際交通路網(wǎng)的限制,所以線性化的表示方法能夠很好的描述現(xiàn)實中移動物體的運動狀態(tài)。因此,線性化方法更適合于軌跡數(shù)據(jù)的壓縮。
[0005]道格拉斯-普克算法由D.Douglas和T.Peueker于1973年提出,簡稱D — P算法,是目前公認(rèn)的線狀要素化簡經(jīng)典算法。該算法描述如下:將一條軌跡的初始軌跡點和終止軌跡點虛連一條直線,求出其余各軌跡點到該直線的垂直距離,選擇其最大者與預(yù)先規(guī)定的閾值相比較,若小于等于閾值,則將直線兩端間各軌跡點全部刪去,若大于閾值,則將離該直線垂直距離最大的軌跡點保留,并以此為界,把軌跡分成兩部分,對這兩部分重新使用上述方法,直至最終無法做進一步的壓縮為止。很多學(xué)者認(rèn)為該算法是最準(zhǔn)確的但是其處理時間過于昂貴。
[0006]滑動窗口算法是軌跡數(shù)據(jù)壓縮方法的另一種方法,該算法描述如下:首先,存儲該軌跡的第一個點,選擇軌跡的第一個點作為滑動窗口起始軌跡點,第三個點作為滑動窗口終止軌跡點,計算滑動窗口中所有位于起始軌跡點和終止軌跡點之間的軌跡點到起始軌跡點與終止軌跡點的直線的垂直距離,如果所有距離都小于預(yù)先規(guī)定的閾值,那么滑動窗口沿軌跡序列方向向后滑動一個軌跡點,否則,若出現(xiàn)偏移距離大于該閾值的點,則將滑動窗口的終止軌跡點前的那個軌跡點添加到壓縮后的軌跡集中,新的滑動窗口從這個軌跡點開始,繼續(xù)使用上述處理方法,直到處理完成。
[0007]后來Meratnia和de基于道格拉斯-普克算法和滑動窗口算法的基礎(chǔ)上提出一種新的算法:Normal Opening Window,該算法與滑動窗口算法不同的是將偏移距離最大的那個軌跡點作為新的滑動窗口起始軌跡點。
[0008]但是滑動窗口算法和Normal Opening Window的終止軌跡點變化時都需要計算位于滑動窗口的起始軌跡點和終止軌跡點之間的所有軌跡點到起始軌跡點與終止軌跡點的直線的垂直距離,很多學(xué)者認(rèn)為這樣會影響算法的運算效率,處理時間較長。
【發(fā)明內(nèi)容】
[0009]本發(fā)明所要解決的技術(shù)問題是針對【背景技術(shù)】的不足,提供一種基于滑動窗口的軌跡壓縮方法。
[0010]本發(fā)明為解決上述技術(shù)問題采用以下技術(shù)方案:
[0011]本發(fā)明提供一種基于滑動窗口的軌跡壓縮方法,該方法包括以下具體步驟:
[0012]步驟I,初始化滑動窗口,并設(shè)置一個最大偏移距離參考軌跡點;
[0013]步驟2,分別計算滑動窗口中當(dāng)前待壓縮的軌跡點和最大偏移距離參考軌跡點到其起始軌跡點和終止軌跡點的直線的垂直距離;
[0014]步驟3,將這兩個垂直距離與軌跡壓縮的距離閾值進行比較,若這兩個垂直距離中的任意一個大于軌跡壓縮的距離閾值,則將當(dāng)前待壓縮的軌跡點添加到壓縮后的軌跡集中,并將當(dāng)前待壓縮的軌跡點作為滑動窗口的起始軌跡點設(shè)置新的滑動窗口 ;否則,執(zhí)行步驟4;
[0015]步驟4,根據(jù)這兩個垂直距離的大小,更新最大偏移距離參考軌跡點,并且將滑動窗口的當(dāng)前待壓縮軌跡點和終止軌跡點同時往后移一個位置;
[0016]步驟5,重復(fù)進行步驟2至4,直至完成軌跡壓縮。
[0017]作為本發(fā)明的進一步優(yōu)化方案,該基于滑動窗口的軌跡壓縮方法具體包括以下步驟:
[0018]步驟I,假設(shè)待壓縮的GPS軌跡集為P= {PJ,其中,Pi為第i個軌跡點,i e [I, N],N為待壓縮軌跡點的總數(shù);令滑動窗口為{Pstart,Ptemp, Pend, P1J,其中,Pstart* P ^分別為滑動窗口的起始軌跡點和終止軌跡點,start和end分別表示滑動窗口的起始軌跡點和終止軌跡點的位置,Ptraip為滑動窗口中當(dāng)前待壓縮軌跡點,temp表示滑動窗口中當(dāng)前待壓縮軌跡點的位置;令Pni為滑動窗口中最大偏移距離參考軌跡點,軌跡壓縮的距離閾值為L ;
[0019]步驟2,初始化滑動窗口,令 start = I, temp = start+1, end = start+2,Pm= 0 ;同時,令壓縮后的軌跡集Q= {PJ ;
[0020]步驟3,分別計算點P一和P m到直線P start_Pmd的垂直距離d ,和d “若P 0,則令 4= O ;
[0021]步驟4,若步驟3中得到的屯或dm大于L,則將P 一添加到壓縮后的軌跡集Q中,并且將Ptemp作為P start設(shè)置新的滑動窗口,即令start = temp,temp = start+1,end =start+2,Pm= 0,進入步驟6 ;否則進入步驟5 ;
[0022]步驟5,若步驟3中得到的dt大于d m,則更新Pm,即令Pm= P _;將P t?p和P ^同時往后移一個位置,即令temp = end,end = end+1,進入步驟6 ;
[0023]步驟6,若end大于N,則將Ptemp添加到壓縮后的軌跡集Q中,此時軌跡壓縮完成;否則,返回步驟3。
[0024]作為本發(fā)明的進一步優(yōu)化方案,軌跡壓縮的距離閾值L = 4。
[0025]作為本發(fā)明的進一步優(yōu)化方案,待壓縮軌跡點的總數(shù)N = 5。
[0026]作為本發(fā)明的進一步優(yōu)化方案,軌跡壓縮的距離閾值L = 5。
[0027]本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:
[0028]本發(fā)明在滑動窗口軌跡壓縮方法中,設(shè)置一個最大偏移距離參考軌跡點,用于當(dāng)前待壓縮的軌跡點能否被壓縮的判斷中。本發(fā)明的方法不需要計算滑動窗口中的所有軌跡點到滑動窗口的起始軌跡點和終止軌跡點的直線的垂直距離,從而減少了算法的計算量,提高運算效率,降低了算法的復(fù)雜度。
【附圖說明】
[0029]圖1是本發(fā)明的方法流程圖。
【具體實施方式】
[0030]下面結(jié)合附圖對本發(fā)明的技術(shù)方案做進一步的詳細(xì)說明:
[0