專利名稱:一種無(wú)冗余的大規(guī)模地形數(shù)據(jù)組織方法和讀取方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)的組織和讀取方法,屬于信息數(shù)據(jù)存儲(chǔ)領(lǐng)域,具體涉及一種 針對(duì)大規(guī)模地形數(shù)據(jù)無(wú)冗余的組織方法和讀取方法。
背景技術(shù):
隨著“數(shù)字地球”概念的提出,以及航拍技術(shù)的發(fā)展,地形可視化領(lǐng)域可獲得的原 始地形數(shù)據(jù)規(guī)模逐漸增大,待處理的地形數(shù)據(jù)規(guī)模已達(dá)到TB級(jí)別。如此巨大的數(shù)據(jù)不可能 全部載入內(nèi)存,因此必須存儲(chǔ)在外存上,待需要時(shí)再載入部分?jǐn)?shù)據(jù)進(jìn)入內(nèi)存參與繪制。這就 是常用的out-of-core技術(shù)。Out-of-core技術(shù)中最重要的就是將原始地形數(shù)據(jù)合理的劃分并存儲(chǔ)在外存上。 目前國(guó)內(nèi)外主流的大規(guī)模地形數(shù)據(jù)組織方法分為兩步1、先將原始地形劃分成若干規(guī)模較小的地形子塊;2、再對(duì)地形子塊進(jìn)行多分辨率組織,將組織好的多分辨率地形數(shù)據(jù)存儲(chǔ)在外存 上。第一、原始地形劃分方法主要是使用均勻分塊方法,即將原始地形劃分成大小相 同的子塊。例如趙友兵等人將4097X2049的地形按矩形網(wǎng)格平均分為128X64個(gè)小塊,每 塊大小為33X33(趙友兵、石教英、周驥等,一種大規(guī)模地形的快速漫游算法.計(jì)算機(jī)輔助 設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2002,14(7) :624-628.)。這種方法簡(jiǎn)單有效的將大地形劃分成大小相 同的子塊,子塊作為數(shù)據(jù)調(diào)度的基本單位。然而一般的地形塊劃分方法,不可避免的會(huì)在地形塊邊緣處產(chǎn)生頂點(diǎn)冗余,如圖1 所示。第二、對(duì)子塊進(jìn)行多分辨率組織則主要使用金字塔模型,即按一定的方法將地形 剖分成不同的分辨率層次,地形數(shù)據(jù)按層次進(jìn)行存儲(chǔ),最常用的剖分層次的方法是使用四 叉樹剖分。例如戴晨光等人就使用了瓦片金字塔來(lái)組織地形多分辨率數(shù)據(jù)(戴晨光,張永 生,鄧雪清.一種用于實(shí)時(shí)可視化的海量地形數(shù)據(jù)組織與管理方法.系統(tǒng)仿真學(xué)報(bào),2005, 17(2) :406-409.)。雖然使用金字塔模型能夠很好的將地形子塊剖分成不同分辨率的層次 數(shù)據(jù),但是這種方法普遍存在數(shù)據(jù)冗余過(guò)大,以犧牲外存存儲(chǔ)空間來(lái)?yè)Q取處理時(shí)間的弊端。其中專利號(hào)200710051621. 2,專利名稱“一種基于對(duì)象存儲(chǔ)的地形數(shù)據(jù)存儲(chǔ)方法” 的中國(guó)專利,是將地形數(shù)據(jù)及其屬性數(shù)據(jù)組織成地形存儲(chǔ)對(duì)象存儲(chǔ)在基于對(duì)象存儲(chǔ)系統(tǒng) 中,相鄰或相近地形數(shù)據(jù)瓦片的地形存儲(chǔ)對(duì)象分布于基于對(duì)象存儲(chǔ)系統(tǒng)內(nèi)的不同基于對(duì)象 存儲(chǔ)設(shè)備。由于該方案是按金字塔分層方式存儲(chǔ)的,層間仍然會(huì)產(chǎn)生冗余。因此冗余成為了一種技術(shù)缺陷,尤其是在存儲(chǔ)大規(guī)模數(shù)據(jù)時(shí)更為突出,屬于影響 數(shù)據(jù)存儲(chǔ)的一種弊端,故需要解決這種的缺陷。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種無(wú)冗余的大規(guī)模地形數(shù)據(jù)組織方法以及讀取方法,該方法對(duì)地形子塊產(chǎn)生冗余的區(qū)域進(jìn)行單獨(dú)存儲(chǔ),不同地形子塊共享冗余區(qū)域, 針對(duì)現(xiàn)有技術(shù)中數(shù)據(jù)存儲(chǔ)時(shí)出現(xiàn)冗余的缺陷,解決存儲(chǔ)空間浪費(fèi)過(guò)大的問(wèn)題。本發(fā)明所提出的技術(shù)問(wèn)題是這樣解決的構(gòu)造一種無(wú)冗余的大規(guī)模地形數(shù)據(jù)組織 方法,其特征在于(1)、先對(duì)原始地形數(shù)據(jù)進(jìn)行均勻分塊;(2)、構(gòu)建文件RowFile、文件ColFile來(lái)存儲(chǔ)地形子塊公共邊的頂點(diǎn);(3)、對(duì)每個(gè)地形子塊的內(nèi)部頂點(diǎn)數(shù)據(jù)構(gòu)建文件單獨(dú)存儲(chǔ)。根據(jù)本發(fā)明所述的一種無(wú)冗余的大規(guī)模地形數(shù)據(jù)組織方法,其特征在于文件 RowFile是按行來(lái)存儲(chǔ)公共邊的頂點(diǎn)。根據(jù)本發(fā)明所述的一種無(wú)冗余的大規(guī)模地形數(shù)據(jù)組織方法,其特征在于文件 ColFile是按列來(lái)存儲(chǔ)公共邊的頂點(diǎn)。根據(jù)本發(fā)明所述的一種無(wú)冗余的大規(guī)模地形數(shù)據(jù)組織方法,其特征在于按照如 下方式分塊其中原始大地形的分辨率為M*N,其中M*N滿足(2m+l)*(2n+l);平均分塊的 地形子塊的分辨率為K*K,即(2讓+1)*(21^+1),其中1<1^<1^11(111,11);分塊數(shù)目為P*Q塊, 其中 P*Q 滿足為((M-I) / (K-I)) * ((N-I) / (K-I))。根據(jù)以上所述的一種無(wú)冗余的大規(guī)模地形數(shù)據(jù)組織方法,其特征在于對(duì)于M*N 的原始大地形,平均分塊大小為K*K,分塊數(shù)目為P*Q塊,其中文件RowFlie —共存放了 Q+1行邊界數(shù)據(jù);它的頂點(diǎn)編號(hào)規(guī)則為頂點(diǎn)編號(hào) 從序號(hào)ο開始;從第O到M-I的頂點(diǎn)是第O行邊界,而從M到2M-1的頂點(diǎn)為第1行邊界,以 此類推,故第η行的邊界是從n*M到(n+l)*M-l的頂點(diǎn)(O彡η彡Q)。在行邊界文件中,從 它存放的某個(gè)地形子塊的第一個(gè)行邊界點(diǎn)開始的K個(gè)連續(xù)的頂點(diǎn)組成該地形子塊的行邊界。其中文件ColFile—共存放了 Ρ+1列邊界數(shù)據(jù),它的頂點(diǎn)編號(hào)規(guī)則為頂點(diǎn)編號(hào)從 序號(hào)O開始;從第O到Q*(K-2)-l的頂點(diǎn)為地形第O列邊界,而從Q*(K-2)到2Q*(K_2)_1 的頂點(diǎn)為第1列邊界,以此類推,故第η列邊界是從n*Q*K*(K-2)到(n+1) *Q*K* (K_2)-1的 頂點(diǎn)(0<η<Ρ)。在列邊界文件中,從它存放的某個(gè)地形子塊的第一個(gè)列邊界點(diǎn)開始的 K-2個(gè)連續(xù)的頂點(diǎn)組成該地形子塊的列邊界。本發(fā)明還包括一種無(wú)冗余的大規(guī)模地形數(shù)據(jù)的讀取方法,其特征在于始大地形 的分辨率為M*N,其中M*N滿足(2m+l)*(2n+l);平均分塊的地形子塊的分辨率為K*K,即 (2k+l)*(2k+l),其中 1 < k^min(m, η);分塊數(shù)目為 P*Q 塊,其中 P*Q 滿足為((M-I)/ (K-I)) * ((N-I) / (K-I));對(duì)于第X塊,它處在第X/P行,第P列,其中X/P為向下取整除 法,X% P為取余操作;它的上邊界起始頂點(diǎn)在RowFile中的編號(hào)為(X/P)*M+(X% P)*(K-I);下邊界起 始頂點(diǎn)在RowFile中的編號(hào)為(X/P+1)*M+(X% P)*(K-I);左邊界起始頂點(diǎn)在ColFile中 的編號(hào)為(X% P)*Q*(K-2) + (X/P)*(K-2);右邊界起始頂點(diǎn)在ColFile中的編號(hào)為(X% P+l)*Q*(K-2) + (Χ/Ρ)* (K-2)。本發(fā)明的有益效果為本專利將地形子塊的公共邊頂點(diǎn)單獨(dú)存儲(chǔ),通過(guò)將地形子 塊與公共邊頂點(diǎn)組合的形式還原地形子塊數(shù)據(jù)。地形子塊與公共邊之間的關(guān)系由地形子塊 的編號(hào)和公共邊文件中的頂點(diǎn)編號(hào)對(duì)應(yīng)起來(lái),查找非常方便。該方法存儲(chǔ)數(shù)據(jù)基于頂點(diǎn),因此完全沒(méi)有數(shù)據(jù)冗余,克服了現(xiàn)有技術(shù)中的關(guān)于冗余的缺陷。當(dāng)繪制多分辨地形塊數(shù)據(jù)時(shí), 可以在內(nèi)存中構(gòu)建一個(gè)索引結(jié)構(gòu),記錄每個(gè)分辨率層次所包含的頂點(diǎn),按照索引結(jié)構(gòu)將相 應(yīng)分辨率的頂點(diǎn)載入內(nèi)存即可完成多分辨率地形繪制。所以使用本專利的方法不僅消除了 外存存儲(chǔ)數(shù)據(jù)上的冗余,而且仍然可以實(shí)現(xiàn)多分辨率繪制的要求,因此本專利成功給出了 一種較理想的大規(guī)模地形數(shù)據(jù)組織和讀取方法。
圖1是現(xiàn)有技術(shù)中數(shù)據(jù)冗余存儲(chǔ)的結(jié)構(gòu)示意2是對(duì)原始全分辨率地形的分塊的示意3是本發(fā)明無(wú)冗余的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的示意4是一種關(guān)于5*5的地形數(shù)據(jù)的采樣點(diǎn)示意4a是數(shù)據(jù)使用三角形扇方式時(shí)的第0層存儲(chǔ)的數(shù)據(jù)的示意4b是數(shù)據(jù)使用三角形扇方式時(shí)的第1層存儲(chǔ)的數(shù)據(jù)的示意5a是數(shù)據(jù)使用三角形方式時(shí)的第0層存儲(chǔ)的數(shù)據(jù)的示意5b是數(shù)據(jù)使用三角形扇方式時(shí)的第1層存儲(chǔ)的數(shù)據(jù)的示意圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的說(shuō)明。圖1是一種現(xiàn)有技術(shù)的數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)示意圖,其中相鄰地形子塊邊緣處表示的 是會(huì)產(chǎn)生冗余的頂點(diǎn)。如圖2所示,是對(duì)原始全分辨率為17*17的地形分塊的示意圖。在本方法中首先 對(duì)地形進(jìn)行均勻分塊,原始地形分辨率為M*N(M = N = 24+1),分塊大小為K*K(K = 22+1), l<K<min(m,n);分塊數(shù)目為 P*Q(P= (M-I) / (K-I), Q = (N-I) / (K-I)) 其中對(duì)每個(gè)地形子塊分別用文件來(lái)存儲(chǔ),由于每?jī)蓚€(gè)地形子塊公共邊上包含相同 的頂點(diǎn),為了避免冗余存儲(chǔ),在地形子塊文件中不存儲(chǔ)公共邊上的頂點(diǎn),而構(gòu)建專門的文件 來(lái)存儲(chǔ)這些公共頂點(diǎn)。在此構(gòu)建兩個(gè)文件,文件RowFile是按行來(lái)存儲(chǔ)公共邊的頂點(diǎn),文件 ColFile是按列來(lái)存儲(chǔ)公共邊的頂點(diǎn)。如圖3所示為無(wú)冗余的數(shù)據(jù)存儲(chǔ)方式示意圖,行邊界存儲(chǔ)在文件RowFile里,列邊 界存儲(chǔ)在文件ColFile里。行列邊界的公共頂點(diǎn)只在RowFile中存儲(chǔ)一次,列邊界中不再重 復(fù)存儲(chǔ);而存儲(chǔ)每個(gè)地形子塊的文件只存儲(chǔ)該塊內(nèi)部頂點(diǎn)即可,本圖3中的內(nèi)部頂點(diǎn)為3*3 個(gè)頂點(diǎn)。因此這塊地形一共由18個(gè)文件存儲(chǔ),包括16個(gè)地形子塊文件和兩個(gè)地形邊界文 件。只要知道當(dāng)前子塊的編號(hào),就可以通過(guò)合并地形子塊文件和地形邊界文件還原當(dāng)前子 塊的數(shù)據(jù),因此使用這種存儲(chǔ)方法可以在外存上實(shí)現(xiàn)完全無(wú)數(shù)據(jù)冗余。下面對(duì)數(shù)據(jù)讀取方法進(jìn)行闡述假設(shè)原始大地形的分辨率為M*N,其中M*N滿足(2m+l) * (2n+l);平均分塊的地形 子塊的分辨率為Κ*κ,即(2k+l)*(2k+l),其中1 <k<min(m,n);分塊數(shù)目為P*Q塊,其中 P*Q 滿足為((M-1)/(K-1))*((N-1)/(K-1));其中文件RowFlie中存放的O到M_1的頂點(diǎn)是第O行邊界,而從M到2M-1的頂點(diǎn)為第1行邊界,以此類推。第0行邊界是地形子塊第0塊到第P-I塊的上邊界;第1行邊 界為第O塊到第P-I塊的下邊界,以及第P塊到第2P-1塊的上邊界。如果知道地形子塊編 號(hào),以及它處在幾行幾列,就可以計(jì)算出它的上邊界和下邊界分別在RowFile中的位置,因 此可以取出數(shù)據(jù)。同理,文件ColFile中存放的O到Q*(K_2)_1的頂點(diǎn)為地形第O列邊界,而從 Q*(K-2)到2Q*(K-2)-l的頂點(diǎn)為第1列邊界,以此類推。只要知道地形子塊編號(hào),以及它處 在幾行幾列,就可以計(jì)算出它的左邊界和右邊界分別在ColFile中的位置,因此可以取出 數(shù)據(jù)。給定通用邊界數(shù)據(jù)讀取公式對(duì)于原始分辨率為M*N的大地形,其中M*N滿 足(2m+l)*(2n+l);平均分塊的地形子塊的分辨率為K*K,即(2k+l) * (2k+l),其中Kk <min(m,n);分塊數(shù)目為 P*Q 塊,P*Q 滿足為((Μ-Ι) / (K-1)) * ((Ν-Ι) / (K-1));對(duì)于第 X 塊, 它處在第X/P行,第P列,其中X/P為向下取整除法,X% P為取余操作。因此,它的上 邊界起始頂點(diǎn)在RowFile中的編號(hào)為(X/P)*M+(X% Ρ)*(Κ_1);下邊界起始頂點(diǎn)在RowFile 中的編號(hào)為(Χ/Ρ+1)*Μ+(Χ% Ρ)*(Κ-1);左邊界起始頂點(diǎn)在ColFile中的編號(hào)為(X % P) *Q* (K-2) + (X/P) * (K-2);右邊界起始頂點(diǎn)在 ColFile 中的編號(hào)為(X% P+l) (K_2) + (X/ P) *(K-2)。舉例說(shuō)明如圖3所示的17*17的地形數(shù)據(jù),M = N=17,K = 5,P = Q = 4;如果需要地形第6塊的數(shù)據(jù),由于分塊數(shù)是4*4,則第6塊位于第一行第二列。因此,它的上邊界起始頂點(diǎn)在RowFile中的編號(hào)為(6/4)*17+(6% 4)* (5-1)= 25 ;它的下邊界起始頂點(diǎn)在RowFile中的編號(hào)為(6/4+1) *17+(6% 4)* (5-1) = 42 ;它的左邊界起始頂點(diǎn)在ColFile中的編號(hào)為(6% 4)*4*(5-2) + (6/4)*(5-2)= 27 ;它的右邊界起始頂點(diǎn)在ColFile中的編號(hào)為(6% 4+1) (5-2) + (6/4) * (5-2)= 39。所以在載入某一塊地形數(shù)據(jù)時(shí),就從RowFile和ColFile中按頂點(diǎn)編號(hào)來(lái)取四個(gè) 邊界,然后從當(dāng)前塊的存儲(chǔ)文件中取內(nèi)部數(shù)據(jù)。下面將本發(fā)明的數(shù)據(jù)組織方法與專利號(hào)200710051621. 2,專利名稱“一種基于對(duì) 象存儲(chǔ)的地形數(shù)據(jù)存儲(chǔ)方法”的中國(guó)專利作一比較專利號(hào)200710051621. 2的方案是按金字塔分層方式存儲(chǔ)的,層次間會(huì)產(chǎn)生冗余。冗余的具體原因?yàn)?,如圖4所示5*5的采樣點(diǎn)構(gòu)成地形數(shù)據(jù)。當(dāng)使用專利號(hào)200710051621. 2的方案①、使用三角形扇方式渲染,存儲(chǔ)形式如圖4a和圖4b所示,圖4a是數(shù)據(jù)使用三角 形扇方式時(shí)的第O層存儲(chǔ)的數(shù)據(jù)的示意圖;由此可見(jiàn)第O層存儲(chǔ)的數(shù)據(jù)為0,4,12,20,24圖4b是數(shù)據(jù)使用三角形扇方式時(shí)的第1層存儲(chǔ)的數(shù)據(jù)的示意圖;由此可見(jiàn)第1 層存儲(chǔ)的數(shù)據(jù)為=0,2,3,6,8,10,12,13,16,18, 20, 22, 24兩個(gè)層次冗余的數(shù)據(jù);0,4,12,20,24②、使用三角形方式渲染,存儲(chǔ)形式如圖5a和圖5b所示,
圖5a是數(shù)據(jù)使用三角形方式時(shí)的第0層存儲(chǔ)的數(shù)據(jù)的示意圖;由此可見(jiàn)第0層存儲(chǔ)的數(shù)據(jù)為0,4,20,24圖5b是數(shù)據(jù)使用三角形方式時(shí)的第1層存儲(chǔ)的數(shù)據(jù)的示意圖;由此可見(jiàn)第1層存儲(chǔ)的數(shù)據(jù)為:0,2,3,10,12,14,20,22,24兩個(gè)層次冗余的數(shù)據(jù)0,4,20,24 ;使用本發(fā)明的方法組織地形的存儲(chǔ)方式如下RowFile存儲(chǔ)的數(shù)據(jù)0,1,2,3,4,20,21,22,23,24ColFile存儲(chǔ)的數(shù)據(jù)5,10,15,9,14,19地形塊文件存儲(chǔ)的數(shù)據(jù)6,7,8,11,12,13,16,17,18當(dāng)使用三角形扇方式渲染表示第0層分辨率的數(shù)據(jù)時(shí)從RowFile 中取采樣點(diǎn) 0,4,20,24 ;從地形塊文件中取采樣點(diǎn)12 ;表示第1層分辨率的數(shù)據(jù)時(shí)從RowFile 中取采樣點(diǎn) 0,2,4,20,22,24 ;從ColFile 中取采樣點(diǎn) 10,14 ;從地形塊文件中取采樣點(diǎn)6,8,12,16,18;當(dāng)使用三角形方式渲染表示第0層分辨率的數(shù)據(jù)時(shí)從RowFile 中取采樣點(diǎn) 0,4,20,24 ;表示第1層分辨率的數(shù)據(jù)時(shí)從RowFile 中取采樣點(diǎn) 0,2,4,20,22,24 ;從ColFile 中取采樣點(diǎn) 10,14 ;從地形塊文件中取采樣點(diǎn)12 ;因此,使用本發(fā)明的方法在數(shù)據(jù)存儲(chǔ)上是完全無(wú)數(shù)據(jù)冗余的。因此解決了冗余的 問(wèn)題。若使用本專利的存儲(chǔ)模型,在構(gòu)建多分辨率層次時(shí),可以構(gòu)建一個(gè)常駐內(nèi)存的索引結(jié) 構(gòu),該索引結(jié)構(gòu)指示每個(gè)分辨率層次需要哪些頂點(diǎn)構(gòu)成,因此可以很方便的構(gòu)建出多分辨 率層次。另外該索引結(jié)構(gòu)只包含頂點(diǎn)的索引號(hào),內(nèi)存開銷很小,數(shù)據(jù)讀取也很方便。
權(quán)利要求
1.一種無(wú)冗余的大規(guī)模地形數(shù)據(jù)組織方法,其特征在于,按照下列方式進(jìn)行(1)、先對(duì)原始地形數(shù)據(jù)進(jìn)行均勻分塊;(2)、構(gòu)建文件RowFile、文件ColFile存儲(chǔ)地形子塊公共邊的頂點(diǎn);(3)、對(duì)每個(gè)地形子塊的內(nèi)部頂點(diǎn)數(shù)據(jù)構(gòu)建文件單獨(dú)存儲(chǔ)。
2.根據(jù)權(quán)利要求1所說(shuō)的一種無(wú)冗余的大規(guī)模地形數(shù)據(jù)組織方法,其特征在于所構(gòu) 建的文件RowFile用于存儲(chǔ)行的頂點(diǎn),即按行來(lái)存儲(chǔ)公共邊的頂點(diǎn)。
3.根據(jù)權(quán)利要求1所說(shuō)的一種無(wú)冗余的大規(guī)模地形數(shù)據(jù)組織方法,其特征在于所構(gòu) 建的文件ColFile用于存儲(chǔ)列的頂點(diǎn),即按列來(lái)存儲(chǔ)公共邊的頂點(diǎn)。
4.根據(jù)權(quán)利要求1所說(shuō)的一種無(wú)冗余的大規(guī)模地形數(shù)據(jù)組織方法,其特征在于,所述 的分塊方式為其中原始大地形的分辨率為M*N,其中M*N滿足(2m+l)*(2n+l);平均分塊 的地形子塊的分辨率為K*K,即(2k+l)*(2k+l),其中1 < k^min(m, η);分塊數(shù)目為P*Q 塊,其中 P*Q 滿足為((M-I) / (K-I)) * ((N-I) / (K-I))。
5.根據(jù)權(quán)利要求1所說(shuō)的一種無(wú)冗余的大規(guī)模地形數(shù)據(jù)組織方法,其特征在于原 始大地形的分辨率為M*N,其中M*N滿足(2m+l)*(2n+l);平均分塊的地形子塊的分辨率 為K*K,即(2讓+1)*(21^+1),其中1<1^彡1^11(111,η);分塊數(shù)目為P*Q塊,其中P*Q滿足為 ((M-I)/(K-I) M (N-I)/(K-I));其中文件RowFlie —共存放了 Q+1行邊界數(shù)據(jù);其中文件ColFile —共存放了 P+1列邊界數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所說(shuō)的一種無(wú)冗余的大規(guī)模地形數(shù)據(jù)組織方法,其特征在于原始 大地形的分辨率為M*N,其中M*N滿足(2m+l)*(2n+l);平均分塊的地形子塊的分辨率為 K*K,即(2k+l)*(2k+l),其中k彡min(m,η);分塊數(shù)目為P*Q塊,其中P*Q滿足為((M-I)/ (K-I) M (N-I)/(K-I));其中文件RowFlie的頂點(diǎn)編號(hào)為頂點(diǎn)編號(hào)從序號(hào)O開始;從第O到M-I的頂點(diǎn)是 第O行邊界,而從M到2M-1的頂點(diǎn)為第1行邊界,以此類推,故第η行的邊界是從η*Μ到 (η+1)*Μ-1的頂點(diǎn)(O彡η彡Q)。在行邊界文件中,從它存放的某個(gè)地形子塊的行邊界第一 個(gè)頂點(diǎn)開始,接著K個(gè)連續(xù)的頂點(diǎn)組成該地形子塊的行邊界。其中文件ColFile的頂點(diǎn)編號(hào)為頂點(diǎn)編號(hào)從序號(hào)O開始;從第O到Q*(K-2)-l的頂 點(diǎn)為地形第O列邊界,而從Q*(K-2)到2Q*(K-2)-l的頂點(diǎn)為第1列邊界,以此類推,故第η 列邊界是從n*Q*K*(K-2)到(n+l)*Q*K*(K-2)-l的頂點(diǎn)(O彡η彡P(guān))。在列邊界文件中,從 它存放的某個(gè)地形子塊的列邊界第一個(gè)頂點(diǎn)開始,接著Κ-2個(gè)連續(xù)的頂點(diǎn)組成該地形子塊 的列邊界。
7.一種無(wú)冗余的大規(guī)模地形數(shù)據(jù)的讀取方法,其特征在于原始大地形的分辨 率為Μ*Ν,其中Μ*Ν滿足(2m+l) * (2n+l);平均分塊的地形子塊的分辨率為K*K,即 (2k+l)*(2k+l),其中 1 < k ^ min(m, η);分塊數(shù)目為 P*Q 塊,其中 P*Q 滿足為((M-I)/ (K-I)) * ((N-I) / (K-I));對(duì)于第X塊,它處在第X/P行,第P列,其中X/P為向下取整除 法,X% P為取余操作;它的上邊界起始頂點(diǎn)在RowFile中的編號(hào)為(X/P)*M+(X% P)*(K-1);下邊界起始頂點(diǎn)在RowFile中的編號(hào)為(Χ/Ρ+1)*Μ+(Χ% Ρ)*(Κ-1);左邊界起始頂點(diǎn)在ColFile中的編號(hào)為(X% P)*Q*(K-2) + (X/P)*(K-2);右邊界起始頂點(diǎn)在ColFile中的編號(hào)為 (X% P+l)*Q*(K-2) + (X/P)*(K-2)。
全文摘要
本發(fā)明涉及一種大規(guī)模地形數(shù)據(jù)無(wú)冗余的組織方法以及讀取方法,其特征在于先對(duì)原始地形數(shù)據(jù)進(jìn)行均勻分塊,并構(gòu)建文件RowFile、文件ColFile來(lái)存儲(chǔ)地形分塊間公共邊的頂點(diǎn),最后構(gòu)建地形子塊文件存儲(chǔ)該塊的內(nèi)部頂點(diǎn)。本發(fā)明對(duì)地形子塊產(chǎn)生冗余的區(qū)域進(jìn)行單獨(dú)的存儲(chǔ),不同地形子塊共享冗余區(qū)域,該方法消除了數(shù)據(jù)冗余,很好地解決了存儲(chǔ)空間浪費(fèi)過(guò)大的問(wèn)題,是一種適合大規(guī)模地形數(shù)據(jù)組織存儲(chǔ)的方法。
文檔編號(hào)G06F17/30GK102004750SQ20101024229
公開日2011年4月6日 申請(qǐng)日期2010年8月2日 優(yōu)先權(quán)日2010年8月2日
發(fā)明者何明耘, 曹躍, 李德政, 蔡洪斌, 趙慶, 邱航, 陳雷霆 申請(qǐng)人:電子科技大學(xué)