專利名稱:基于線路聚類的gps數(shù)據(jù)壓縮存儲(chǔ)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于線路聚類的GPS數(shù)據(jù)壓縮存儲(chǔ)方法,用于交通運(yùn)輸業(yè)運(yùn)輸線 路GPS數(shù)據(jù)的壓縮存儲(chǔ),屬于數(shù)據(jù)庫技術(shù)領(lǐng)域。
背景技術(shù):
數(shù)據(jù)壓縮分為有損壓縮和無損壓縮兩種,有損壓縮可以損失一部分原始數(shù)據(jù)的信 息;無損壓縮則要求原始數(shù)據(jù)的信息一點(diǎn)都不能損失,壓縮數(shù)據(jù)能夠完整地還原為原始數(shù) 據(jù)。本發(fā)明基于線路聚類的GPS數(shù)據(jù)壓縮存儲(chǔ)方法屬于無損壓縮方法。目前一般的無損壓縮方法都是把原始數(shù)據(jù)文件看作一個(gè)字節(jié)流,通過重新編碼或 者尋找重復(fù)出現(xiàn)的串來進(jìn)行壓縮,例如rar。這種方法有兩個(gè)缺點(diǎn),一是對(duì)于特定類型的數(shù) 據(jù),無法利用到其獨(dú)有的某些性質(zhì)來為壓縮服務(wù);二是不支持實(shí)時(shí)的寫入和讀取。
發(fā)明內(nèi)容
本發(fā)明旨在針對(duì)交通運(yùn)輸線路的GPS數(shù)據(jù)具有大量重復(fù)的特點(diǎn),提出基于線路聚 類的GPS數(shù)據(jù)壓縮存儲(chǔ)方法,可以隨時(shí)壓縮新數(shù)據(jù),同時(shí)支持?jǐn)?shù)據(jù)的實(shí)時(shí)寫入和讀取。本發(fā)明的技術(shù)方案是基于線路聚類的GPS數(shù)據(jù)壓縮存儲(chǔ)方法,用于交通運(yùn)輸線 路數(shù)據(jù)處理,其程序是步驟1 讀取一條新的GPS數(shù)據(jù)X ;步驟2 如果X與聚類數(shù)據(jù)CF中某個(gè)聚類線段L的距離足夠接近,轉(zhuǎn)到步驟8 ;否 則進(jìn)入下一步驟;步驟3 將X以原始的未壓縮的數(shù)據(jù)格式寫入未壓縮的數(shù)據(jù)UD ;步驟4 如果未壓縮的數(shù)據(jù)UD的大小超過了某個(gè)預(yù)定義的數(shù)值,進(jìn)入下一步驟;否 則轉(zhuǎn)到步驟9,程序結(jié)束;步驟5 對(duì)數(shù)據(jù)UD進(jìn)行聚類分析,尋找新的近似擬合線段;步驟6 如果找到新的線段方程,將其以聚類信息文件格式寫入聚類數(shù)據(jù)CF,進(jìn)入 下一步驟;否則轉(zhuǎn)到步驟9,程序結(jié)束。步驟7 把UD中的每一條數(shù)據(jù)作為新的輸入數(shù)據(jù)X,并把UD清空,返回步驟1 ;步驟8 計(jì)算數(shù)據(jù)X的壓縮格式,并將其以壓縮數(shù)據(jù)文件格式寫入壓縮數(shù)據(jù)CD ;步驟9:結(jié)束。所述聚類線段由聚類分析算法獲得,所述聚類分析算法如下步驟21 用基于密度的聚類方法,去除異常點(diǎn);步驟22 利用向量夾角的方法,找出初始的r個(gè)分類好的點(diǎn)集;步驟23 對(duì)每個(gè)點(diǎn)集都進(jìn)行m維線性擬合,得到r條線段;步驟24:對(duì)除了異常點(diǎn)的每個(gè)數(shù)據(jù)點(diǎn),根據(jù)它到r條線段的距離進(jìn)行重新歸類,得 到r個(gè)新的點(diǎn)集;步驟25 利用類似k-means的思路,檢查每個(gè)非異常點(diǎn)的歸類是否改變,如果改變,轉(zhuǎn)到步驟23 ;如果不改變,則進(jìn)入下一步驟;步驟26 將得到的r條線段以聚類信息文件格式寫入聚類數(shù)據(jù)CF。3.如權(quán)利要求1所述的GPS數(shù)據(jù)壓縮存儲(chǔ)方法,其特征在于所述GPS數(shù)據(jù)的存 儲(chǔ)格式分為聚類信息文件、壓縮數(shù)據(jù)文件和未壓縮的數(shù)據(jù)三種;所述聚類信息文件存儲(chǔ)在文件“終端號(hào).line”里,該文件分為兩個(gè)部分第一部 分是概要信息,共8個(gè)字節(jié),前4個(gè)字節(jié)表明這個(gè)聚類文件共計(jì)有多少個(gè)線段r,后4個(gè)字節(jié) 表明每個(gè)線段的維數(shù)m;第二部分是r個(gè)m維線段,每個(gè)線段用16(m+l)個(gè)字節(jié)來表示,前 16m字節(jié),分別表示m個(gè)維度上的直線斜率和截距,最后的16個(gè)字節(jié),是前m個(gè)斜率和截距 值的累加;所述壓縮數(shù)據(jù)文件存儲(chǔ)在文件“終端號(hào).cpr”里,該文件分為索引區(qū)和存儲(chǔ)區(qū),所 述索引區(qū)分為三個(gè)部分前4個(gè)字節(jié)表明日期索引的項(xiàng)數(shù)h ;后面是h個(gè)索引項(xiàng)數(shù)據(jù),每個(gè) 索引項(xiàng)數(shù)據(jù)最前面4個(gè)字節(jié)表示日期,中間8個(gè)字節(jié)長整型數(shù)表示該索引項(xiàng)所代表一天的 數(shù)據(jù)在文件中的起始位置,后4個(gè)字節(jié)整數(shù)表明這個(gè)日期對(duì)應(yīng)的數(shù)據(jù)的大?。凰龃鎯?chǔ)區(qū) 對(duì)應(yīng)于索引項(xiàng)按天存儲(chǔ)壓縮的GPS數(shù)據(jù);所述未壓縮的數(shù)據(jù)存儲(chǔ)在文件“終端號(hào).pos”里,該文件是按時(shí)間順序簡單存儲(chǔ)的 原始數(shù)據(jù)。本發(fā)明基于線路聚類的GPS數(shù)據(jù)壓縮存儲(chǔ)方法具有以下優(yōu)點(diǎn)1、節(jié)約了數(shù)據(jù)的存儲(chǔ)空間。由于壓縮以后的數(shù)據(jù)存儲(chǔ)的主要是與特定模式的差 值,而不是完整的原始數(shù)據(jù),所以存儲(chǔ)空間大大減小,只有原來的50%不到。2、本存儲(chǔ)方法支持?jǐn)?shù)據(jù)的實(shí)時(shí)讀取和存儲(chǔ)。對(duì)于新產(chǎn)生的數(shù)據(jù),這個(gè)算法可以根 據(jù)已有的一些聚類信息,直接把新數(shù)據(jù)變?yōu)閴嚎s格式寫入壓縮文件;而若想訪問某些數(shù)據(jù), 也可以根據(jù)數(shù)據(jù)文件中的索引結(jié)構(gòu)讀取對(duì)應(yīng)的壓縮數(shù)據(jù),并還原為原始的數(shù)據(jù)格式。這一 點(diǎn)是相比于rar等針對(duì)數(shù)據(jù)文件的壓縮算法的主要優(yōu)點(diǎn)。3、為了壓縮數(shù)據(jù)而從原始數(shù)據(jù)集中挖掘出來的數(shù)據(jù)模式,本身也可以作為某種 “概化”的數(shù)據(jù),為高層的數(shù)據(jù)分析服務(wù)。比如,如果想分析一下某輛公交車的運(yùn)行情況,那 么就不用再從原始數(shù)據(jù)重新分析了,這種模式已經(jīng)在壓縮階段就被挖掘出來了。
圖1是本發(fā)明壓縮存儲(chǔ)方法的程序圖;圖2a是本發(fā)明壓縮存儲(chǔ)方法的聚類信息文件存儲(chǔ)格式圖;圖2b是圖2a中線段i的詳細(xì)存儲(chǔ)格式圖;圖3a是本發(fā)明壓縮存儲(chǔ)方法的壓縮數(shù)據(jù)文件存儲(chǔ)格式圖;圖3b是圖3a中每個(gè)存儲(chǔ)區(qū)的壓縮數(shù)據(jù)存儲(chǔ)格式圖。
具體實(shí)施例方式本發(fā)明基于線路聚類的GPS數(shù)據(jù)壓縮存儲(chǔ)方法(如圖1所示)分為兩部分程序,第 一部分為聚類分析程序,是對(duì)未分類數(shù)據(jù)進(jìn)行聚類分析,以識(shí)別出部分交通運(yùn)輸線路。第二 部分為比較擬合程序,是對(duì)采集的新數(shù)據(jù)運(yùn)用第一部分程序已獲得的聚類結(jié)果進(jìn)行分類, 如果能夠被某一段線路較好地近似擬合,那么就以壓縮格式存儲(chǔ);否則就暫時(shí)存儲(chǔ)在未壓縮的數(shù)據(jù)里,有待運(yùn)用第一部分程序進(jìn)行聚類分析。在最初任何線路都沒被識(shí)別出來的時(shí) 候,所有新數(shù)據(jù)都是被存在未壓縮部分的,直到未壓縮數(shù)據(jù)的大小超過了一定限度,觸發(fā)了 第一部分程序運(yùn)行對(duì)其進(jìn)行聚類分析,部分被聚類的數(shù)據(jù)就可以以壓縮格式存儲(chǔ)了。聚類分析程序的算法步驟如下l、m維線性擬合給出n 個(gè) m 維向
我們可以用一組線性參數(shù)方程來擬合這組向量
假設(shè)... , Xn對(duì)應(yīng)的參數(shù)值分別為、,t2,. . .,tn,我們需要確定一
組 使得目標(biāo)函數(shù)
最小化。我們解方程組% 祉可以求得名——乂 j=i , 2、m維點(diǎn)與m維線段的距離對(duì)于一條用參數(shù)表示的m維直線L = (kit+lv k2t+b2, ... , kmt+bm),如果對(duì)t的取 值范圍進(jìn)行限定,令te [tfflin, t_],那么就得到了一條m維空間中的線段。對(duì)于一個(gè)給定 的m維點(diǎn)X = (Xl,x2,...,xffl),如果我們想用線段L上的某一個(gè)點(diǎn)對(duì)其進(jìn)行近似,可以對(duì)目
標(biāo)函數(shù)g⑴二t(V+、-x)2進(jìn)行最小化。當(dāng)不限制t的范圍時(shí),解一次方程—=0,可
以求得當(dāng)
時(shí),g(t)取得最小值g(t。pt)。如果t的范圍受到了限制,
t e [tmin,tmax],那么當(dāng) t。pt g [tmin,tmax]時(shí),g(t)的最小值仍然是 g(t。pt),如果 t。pt > tmax, 那么g(t)的最小值是g(t_),如果t。pt<tmin,那么g(t)的最小值是g(tmin)。對(duì)于給定的 點(diǎn)X和線段L,我們記g(t)的最小值為d(X,L),對(duì)應(yīng)的t值為td。3、通過聚類分析找到公交線路的擬合線段尋找線路的擬合線段分為三步。 第一步用基于密度的聚類方法,去除異常點(diǎn)。任何兩個(gè)點(diǎn)Xi = (xn, x12, ... , xlm),X2 = (x21, x22, ... , x2m),我們可以定義它們之
間的距離為街不,
,其中0 i為各個(gè)維的權(quán)重,引入它是為了使各個(gè)維的
差值分布范圍基本一樣,以免某些維因?yàn)槿≈捣秶^小而失去作用。在初始的時(shí)候,每個(gè)點(diǎn) 自己屬于單獨(dú)的一個(gè)類,如果某兩個(gè)類之中有兩個(gè)點(diǎn)的距離小于某個(gè)我們?cè)O(shè)定的閾值,那 么就把這兩個(gè)類合并為一個(gè)類,不斷進(jìn)行這個(gè)過程,直到類的數(shù)目不再變化為止。最后檢查 所有的類,如果有的類含有的點(diǎn)數(shù)量很少,那么我們就可以認(rèn)為這個(gè)類里的點(diǎn)是異常點(diǎn),予 以去除。
第二步找出初始的聚類中心。這里的關(guān)鍵問題是需要把位置點(diǎn)分為幾個(gè)類,每個(gè)類內(nèi)的點(diǎn)應(yīng)該可以較好地用直 線段來擬合。我們的方法是這樣的首先把位置點(diǎn)信息按照時(shí)間的先后排序,得到的點(diǎn)序列 為XpX,,... ,Xn;從Xi出發(fā),向前走b個(gè)點(diǎn),計(jì)算向量P = Xb-Xi,再向前走b個(gè)點(diǎn),計(jì)算向量 P' =X2b_Xb,如果向量P和P'的夾角小于一定的閾值,那么我們就認(rèn)為X2,...,&是 近似分布在一條直線上的,然后令P = Xm-Xi,繼續(xù)以b個(gè)點(diǎn)為單位向前探索,直到發(fā)現(xiàn)某個(gè) P' = Xib-X(i_1)b與P的夾角大于設(shè)定的閾值,那么肯定從X(i_1)b,. . . ,XiW之中某個(gè)點(diǎn)開始, 線路走向發(fā)生了轉(zhuǎn)折我們對(duì)其中的每個(gè)點(diǎn)X做檢測(cè),計(jì)算向量xib-x與X-Xi的夾角,使得夾 角最大化的那個(gè)點(diǎn)X就是轉(zhuǎn)折點(diǎn)。這樣就識(shí)別出了可以擬合一條線段的點(diǎn),X” X2,. . .,X。 從X的后一個(gè)點(diǎn)重新開始上述過程,最后就可以把所有的點(diǎn)都分到幾條線段上。我們假設(shè) 上述過程可以把初始點(diǎn)集劃分為r個(gè)集合,G” G2,. . .,4。我們對(duì)每個(gè)集合分別進(jìn)行線性 擬合,就得到了 r條直線,我們把每條直線的t值設(shè)定為W,65535],就得到了 r條線段L” L2,...,Lp這個(gè)可以作為初始的聚類中心。在對(duì)&進(jìn)行線性擬合的過程中,還需要指定& 中每個(gè)點(diǎn)對(duì)應(yīng)的t值。假設(shè)&中的點(diǎn)按時(shí)間順序排列為XnX2,...,X。,那么&對(duì)應(yīng)的、設(shè)
60000,. ^ 為2500 + 17Tr(廣 1)。第三步,用類似k-means的方法對(duì)擬合線段進(jìn)行修正。根據(jù)得到的L2,. . .,Lr,對(duì)每一個(gè)點(diǎn)X計(jì)算重新計(jì)算分類,把X加入到其距離最 近的那個(gè)線段所代表的類中去。再根據(jù)新的聚類結(jié)果,計(jì)算出新的‘ L2,. . .,Lp重復(fù)這 個(gè)過程,直到所有點(diǎn)的分類都不再改變?yōu)橹?。比較擬合程序的步驟如下1、對(duì)新數(shù)據(jù)的比較和存儲(chǔ)對(duì)于一條新接收的位置數(shù)據(jù)X,我們查看所有已被發(fā)現(xiàn)的線段L,計(jì)算X與L的距 離,選擇距離最小的那條線段。如果最小距離小于某個(gè)預(yù)定的值,那么我們就把它以“線段 編號(hào)+參數(shù)t+差值”的方式來存儲(chǔ);如果最小距離比預(yù)定的閾值大,那么我們認(rèn)為它還不 是一個(gè)目前可以分類的點(diǎn),暫時(shí)先以完整的格式存儲(chǔ)在未壓縮的數(shù)據(jù)中。對(duì)于以壓縮格式存儲(chǔ)的數(shù)據(jù),它主要由三部分組成,線段編號(hào)1,參數(shù)t和差值。線 段編號(hào)是指預(yù)先通過聚類的方法找到的線段的編號(hào),這個(gè)我們用一個(gè)字節(jié)來存,最多可以 表示256條不同的線段,這個(gè)是夠用的,因?yàn)橐粋€(gè)公交線路實(shí)際分的段數(shù)是要遠(yuǎn)遠(yuǎn)小于這 個(gè)數(shù)字的。參數(shù)t用兩個(gè)字節(jié)來存儲(chǔ),表示0 65535。通過1和t可以確定一個(gè)點(diǎn)X的近 似值X’。在1和t之后,我們只記錄X和X’的差值,因?yàn)橐话銇碚fX和X’已經(jīng)很接近了, 所以它們的差值相對(duì)于原始數(shù)據(jù)來說,存儲(chǔ)代價(jià)會(huì)小很多。而且由于有1和t,根據(jù)差值就 可以把原始數(shù)據(jù)無損地恢復(fù)回來。假設(shè)要存儲(chǔ)的差值數(shù)據(jù)為DX = (dXl,dx2, . . . , dxffl),這個(gè)差值我們用一個(gè)位流bs 來表示,dXl,dx2,. . .,dxm的值存在bs中,bs分為m個(gè)部分,每個(gè)部分前面4位表示這個(gè)差 值需要用多少位來表示,大小為0 15,根據(jù)前面4位的指示,我們讀入后面的相應(yīng)位數(shù)據(jù), 這是用補(bǔ)碼表示的整數(shù),這樣就取得了 dXi的值。每個(gè)差值位流bs占用整數(shù)個(gè)字節(jié),比如 可能實(shí)際用到的位流只需要29位,那么也用完整的4個(gè)字節(jié)來存。這個(gè)是為了使壓縮文件的結(jié)構(gòu)嚴(yán)整,防止因一條記錄發(fā)生錯(cuò)誤而波及到后面的記錄。2、數(shù)據(jù)的存儲(chǔ)格式每個(gè)GPS終端的存儲(chǔ)數(shù)據(jù)分為三部分,分別存在三個(gè)文件里。1)聚類信息文件,存儲(chǔ)在文件“終端號(hào).line”里。該文件分為兩個(gè)部分第一部 分是概要信息,共8個(gè)字節(jié),前4個(gè)字節(jié)表明這個(gè)聚類文件共計(jì)有多少個(gè)線段r,后4個(gè)字 節(jié)表明每個(gè)線段的維數(shù)m;第二部分是r個(gè)m維線段,每個(gè)線段用16(m+l)個(gè)字節(jié)來表示, 前16m字節(jié),分別表示m個(gè)維度上的直線斜率和截距,最后的16個(gè)字節(jié),是前m個(gè)斜率和截 距值的累加。聚類信息文件的結(jié)構(gòu)可參見圖2。圖2a是完整的聚類信息文件結(jié)構(gòu)圖,圖2b 是線段在文件中的詳細(xì)格式,圖2b中的每個(gè)存儲(chǔ)單元都表示一個(gè)8字節(jié)雙精度浮點(diǎn)數(shù)。2)壓縮數(shù)據(jù)文件,存儲(chǔ)在文件“終端號(hào).cpr”里。該文件分為索引區(qū)和存儲(chǔ)區(qū),索 引區(qū)分為三個(gè)部分前4個(gè)字節(jié)表明日期索引的項(xiàng)數(shù)h ;后面緊跟了 h個(gè)索引項(xiàng),每個(gè)索引 項(xiàng)索引某一天數(shù)據(jù)在文件中的位置,4個(gè)字節(jié)分別表示年、月、日、周,中間8個(gè)字節(jié)長整型 數(shù)表示該索引項(xiàng)所代表一天的數(shù)據(jù)在文件中的起始位置,是從文件頭開始算起的字節(jié)數(shù), 后4個(gè)字節(jié)整型數(shù)表明數(shù)據(jù)的大小,單位是記錄數(shù);存儲(chǔ)區(qū)對(duì)應(yīng)于索引項(xiàng)按天存儲(chǔ)的壓縮 格式GPS數(shù)據(jù)。壓縮文件格式見圖3。圖3a是壓縮文件的整體結(jié)構(gòu),圖3b是一條壓縮數(shù)據(jù) 記錄的格式。每個(gè)數(shù)據(jù)存儲(chǔ)區(qū)一般都存儲(chǔ)了多條壓縮格式的記錄。3)暫時(shí)未壓縮的數(shù)據(jù),存儲(chǔ)在文件“終端號(hào).pos”里。是原始數(shù)據(jù)的按時(shí)間順序 的簡單存儲(chǔ)。3、對(duì)壓縮數(shù)據(jù)的訪問 對(duì)于壓縮的數(shù)據(jù),可以根據(jù)給定的日期-時(shí)間間隔,進(jìn)行部分訪問。被壓縮的數(shù)據(jù) 都是按照時(shí)間順序進(jìn)行存儲(chǔ)的,而且在開頭根據(jù)日期做了索引,根據(jù)給定的時(shí)間間隔,我們 可以根據(jù)日期索引把日期在時(shí)間間隔以內(nèi)的數(shù)據(jù)塊讀出來,在去掉第一個(gè)塊中處于起始時(shí) 間以前的數(shù)據(jù)和最后一個(gè)塊中處于終止時(shí)間以后的數(shù)據(jù),就得到了在指定時(shí)間范圍內(nèi)的數(shù) 據(jù)。
權(quán)利要求
基于線路聚類的GPS數(shù)據(jù)壓縮存儲(chǔ)方法,用于交通運(yùn)輸線路數(shù)據(jù)處理,其特征在于包括如下程序,步驟1讀取一條新的GPS數(shù)據(jù)X;步驟2如果X與聚類數(shù)據(jù)CF中某個(gè)聚類線段L的距離足夠接近,轉(zhuǎn)到步驟8;否則進(jìn)入下一步驟;步驟3將X以原始的未壓縮的數(shù)據(jù)格式寫入未壓縮的數(shù)據(jù)UD;步驟4如果未壓縮的數(shù)據(jù)UD的大小超過了某個(gè)預(yù)定義的數(shù)值,進(jìn)入下一步驟;否則轉(zhuǎn)到步驟9,程序結(jié)束;步驟5對(duì)數(shù)據(jù)UD進(jìn)行聚類分析,尋找新的近似擬合線段;步驟6如果找到新的線段方程,將其以聚類信息文件格式寫入聚類數(shù)據(jù)CF,進(jìn)入下一步驟;否則轉(zhuǎn)到步驟9,程序結(jié)束;步驟7把UD中的每一條數(shù)據(jù)作為新的輸入數(shù)據(jù)X,并把UD清空,返回步驟1;步驟8計(jì)算數(shù)據(jù)X的壓縮格式,并將其以壓縮數(shù)據(jù)文件格式寫入壓縮數(shù)據(jù)CD;步驟9結(jié)束。
2.如權(quán)利要求1所述的GPS數(shù)據(jù)壓縮存儲(chǔ)方法,其特征在于所述聚類線段由聚類分 析算法獲得,所述聚類分析算法如下步驟21 用基于密度的聚類方法,去除異常點(diǎn);步驟22 利用向量夾角的方法,找出初始的r個(gè)分類好的點(diǎn)集;步驟23 對(duì)每個(gè)點(diǎn)集都進(jìn)行m維線性擬合,得到r條線段;步驟24 對(duì)除了異常點(diǎn)的每個(gè)數(shù)據(jù)點(diǎn),根據(jù)它到r條線段的距離進(jìn)行重新歸類,得到r 個(gè)新的點(diǎn)集;步驟25 利用類似k-means的思路,檢查每個(gè)非異常點(diǎn)的歸類是否改變,如果改變,轉(zhuǎn) 到步驟23 ;如果不改變,則進(jìn)入下一步驟;步驟26 將得到的r條線段以聚類信息文件格式寫入聚類數(shù)據(jù)CF。
3.如權(quán)利要求1所述的GPS數(shù)據(jù)壓縮存儲(chǔ)方法,其特征在于所述GPS數(shù)據(jù)的存儲(chǔ)格 式分為聚類信息文件、壓縮數(shù)據(jù)文件和未壓縮的數(shù)據(jù)三種;所述聚類信息文件存儲(chǔ)在文件“終端號(hào).line”里,該文件分為兩個(gè)部分第一部分是 概要信息,共8個(gè)字節(jié),前4個(gè)字節(jié)表明這個(gè)聚類文件共計(jì)有多少個(gè)線段r,后4個(gè)字節(jié)表 明每個(gè)線段的維數(shù)m;第二部分是r個(gè)m維線段,每個(gè)線段用16(m+l)個(gè)字節(jié)來表示,前16m 字節(jié),分別表示m個(gè)維度上的直線斜率和截距,最后的16個(gè)字節(jié),是前m個(gè)斜率和截距值的 累加;所述壓縮數(shù)據(jù)文件存儲(chǔ)在文件“終端號(hào).cpr”里,該文件分為索引區(qū)和存儲(chǔ)區(qū),所述索 引區(qū)分為三個(gè)部分前4個(gè)字節(jié)表明日期索引的項(xiàng)數(shù)h ;后面是h個(gè)索引項(xiàng)數(shù)據(jù),每個(gè)索引 項(xiàng)數(shù)據(jù)最前面4個(gè)字節(jié)表示日期,中間8個(gè)字節(jié)長整型數(shù)表示該索引項(xiàng)所代表一天的數(shù)據(jù) 在文件中的起始位置,后4個(gè)字節(jié)整數(shù)表明這個(gè)日期對(duì)應(yīng)的數(shù)據(jù)的大?。凰龃鎯?chǔ)區(qū)對(duì)應(yīng) 于索引項(xiàng)按天存儲(chǔ)壓縮的GPS數(shù)據(jù);所述未壓縮的數(shù)據(jù)存儲(chǔ)在文件“終端號(hào).pos”里,該文件是按時(shí)間順序簡單存儲(chǔ)的原始 數(shù)據(jù)。
全文摘要
本發(fā)明涉及一種基于線路聚類的GPS數(shù)據(jù)壓縮存儲(chǔ)方法,適用于交通運(yùn)輸業(yè)運(yùn)輸線路尤其是公交線路GPS數(shù)據(jù)的壓縮存儲(chǔ),它由歷史數(shù)據(jù)的線路聚類和新數(shù)據(jù)按聚類存儲(chǔ)兩個(gè)程序組成;通過對(duì)部分歷史數(shù)據(jù)進(jìn)行分析,對(duì)于某特定的車輛,找出其每天的行駛線路,用數(shù)條直線段(也就是折線)來擬合,然后轉(zhuǎn)換歷史數(shù)據(jù)和新數(shù)據(jù)的存儲(chǔ)格式,將它們由完整的格式轉(zhuǎn)化為“最接近的路線+與該路線的差值”來表示,從而達(dá)到壓縮存儲(chǔ)空間的目的。與傳統(tǒng)的數(shù)據(jù)壓縮軟件相比,本發(fā)明具有節(jié)約數(shù)據(jù)存儲(chǔ)空間,能支持壓縮數(shù)據(jù)的實(shí)時(shí)寫入與讀取等優(yōu)點(diǎn)。
文檔編號(hào)G01S19/01GK101894135SQ201010205500
公開日2010年11月24日 申請(qǐng)日期2010年6月10日 優(yōu)先權(quán)日2009年6月15日
發(fā)明者張 榮, 方標(biāo)新, 汪衛(wèi), 解春欣 申請(qǐng)人:復(fù)旦大學(xué);上海交通投資信息科技有限公司