版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
全球多分辨率地形數(shù)據(jù)庫的設(shè)計與實現(xiàn)
摘要:傳統(tǒng)基于文件系統(tǒng)的地形可視化系統(tǒng),面對海量數(shù)據(jù)具有很大局限性,利用空間數(shù)據(jù)庫實現(xiàn)對海量空間數(shù)據(jù)的管理已經(jīng)成為當(dāng)前的主流技術(shù),本文基于金字塔模型設(shè)計了全球多分辨率地形數(shù)據(jù)庫,對數(shù)據(jù)文件進(jìn)行有效合理的存取和管理,通過基于四叉樹索引技術(shù)從海量地形數(shù)據(jù)中快速獲取目標(biāo)數(shù)據(jù),提高實時渲染速度,最后簡單介紹了客戶端/服務(wù)器模式的數(shù)據(jù)庫訪問方法。
論文關(guān)鍵詞:空間數(shù)據(jù)庫,金字塔模型,多分辨率,數(shù)據(jù)引擎?zhèn)鹘y(tǒng)的地形可視化系統(tǒng)對地形數(shù)據(jù)的管理基本上都是基于文件系統(tǒng),這在數(shù)據(jù)量較小時可以提供較快的數(shù)據(jù)存取。然而,隨著數(shù)字地球(DE:DigitalEarth)和全球信息網(wǎng)格(GIG:GlobalInformationGrid)概念的相繼提出,具有多分辨率、海量數(shù)據(jù)的大規(guī)模虛擬地形場景使得文件系統(tǒng)在數(shù)據(jù)的存取和管理上存在很大的局限性。由于無法預(yù)先將整個場景的數(shù)據(jù)全部裝載至內(nèi)存中,文件系統(tǒng)只能將大型場景分割成若干小場景,導(dǎo)致索引速度大幅降低,相互之間也難以實現(xiàn)查詢等空間操作[1]。另外,文件系統(tǒng)也無法解決數(shù)據(jù)安全、并發(fā)操作、網(wǎng)絡(luò)共享等問題。而空間數(shù)據(jù)庫恰好能彌補(bǔ)這些不足,目前,空間數(shù)據(jù)庫在一些大型三維GIS系統(tǒng)中已經(jīng)開始應(yīng)用,通過利用空間數(shù)據(jù)庫的對象建模、數(shù)據(jù)共享、分布計算以及空間查詢等優(yōu)點,可以實現(xiàn)三維場景數(shù)據(jù)的動態(tài)加載、遠(yuǎn)程存取、高逼真度實時空間漫游等特性,足以替代文件系統(tǒng)在傳統(tǒng)地形可視化系統(tǒng)中的地位。因此,全球虛擬地形場景要求通過空間數(shù)據(jù)庫完成海量地形數(shù)據(jù)的存儲管理,實現(xiàn)地形數(shù)據(jù)的動態(tài)調(diào)度和實時渲染。2全球多分辨率地形數(shù)據(jù)庫的設(shè)計在文獻(xiàn)[2]中提出了一種基于海量數(shù)據(jù)庫的DEM動態(tài)可視化方法,通過Oracle8i數(shù)據(jù)庫完成海量DEM數(shù)據(jù)的存儲、管理和實時調(diào)度?;舅悸肥窍壤玫乳g隔劃分方法對海量DEM數(shù)據(jù)進(jìn)行空間劃分,形成一個金字塔結(jié)構(gòu),然后將金字塔結(jié)構(gòu)中一層DEM數(shù)據(jù)以一個數(shù)據(jù)表存儲到Oracle數(shù)據(jù)庫中,并以二進(jìn)制大對象(BLOB:BinaryLargeObject)作為DEM數(shù)據(jù)存儲的數(shù)據(jù)類型。BLOB是一種非結(jié)構(gòu)性的數(shù)據(jù),它可以進(jìn)行任意的裁減與添加等操作,在存儲空間方面,可以在一條記錄中處理高達(dá)4GB的數(shù)據(jù)。當(dāng)原始DEM數(shù)據(jù)在數(shù)據(jù)庫中存儲時,它首先被分解為塊,組織成二進(jìn)制的數(shù)據(jù)流,然后根據(jù)數(shù)據(jù)庫原點和塊的大小創(chuàng)建其索引。DEM數(shù)據(jù)表包括層數(shù)據(jù)管理表與層數(shù)據(jù)表兩種,層數(shù)據(jù)管理表包含對數(shù)據(jù)庫中DEM數(shù)據(jù)的總體描述信息,而層數(shù)據(jù)表存儲DEM實體數(shù)據(jù)。實時調(diào)度時,采用多線程技術(shù)實現(xiàn)前后臺兩個數(shù)據(jù)頁緩沖區(qū)之間的交換,其中Oracle數(shù)據(jù)庫負(fù)責(zé)為后臺緩沖區(qū)提供實時數(shù)據(jù)。該方法充分利用了Oracle數(shù)據(jù)庫的優(yōu)勢和普通個人計算機(jī)的硬件渲染能力,實現(xiàn)了海量DEM數(shù)據(jù)的存儲、管理、動態(tài)裝載和漸進(jìn)描繪。這種方法實際上代表了目前基于海量數(shù)據(jù)的地形可視化與空間數(shù)據(jù)庫的典型結(jié)合模式,也是今后海量數(shù)據(jù)存儲管理的主要發(fā)展方向。2.1需求分析地形數(shù)據(jù)的存儲單元,主要包括兩類:文件型和數(shù)據(jù)庫型。文件系統(tǒng)存儲方式,一般適用于小型應(yīng)用系統(tǒng)。與文件型存儲單元相比,數(shù)據(jù)庫在檢索速度、管理、并發(fā)控制能力方面有著明顯的優(yōu)勢,特別是現(xiàn)代數(shù)據(jù)庫采用了緩存、聚類等技術(shù),使索引速度提高了幾十倍,在多用戶并發(fā)訪問環(huán)境下,數(shù)據(jù)庫的優(yōu)勢會更加明顯。全球多分辨率地形數(shù)據(jù)庫需要實現(xiàn)的功能包括:全球多分辨率地形數(shù)據(jù)的存儲與管理、全球多分辨率地形可視化數(shù)據(jù)的快速調(diào)度以及基于網(wǎng)絡(luò)環(huán)境的客戶端/服務(wù)器模式的數(shù)據(jù)庫訪問。2.2語義描述地形數(shù)據(jù)的調(diào)度是按照一定的順序規(guī)則進(jìn)行查詢,因而地形數(shù)據(jù)信息的存儲是有規(guī)則的。本文中,先將地形數(shù)據(jù)按照金字塔模型存儲在文件中,然后由文件導(dǎo)入數(shù)據(jù)庫。金字塔是一種多分辨率層次(mufti-resolutionhierarchy)模型,即采用倍率方法構(gòu)建,形成多個分辨率層次。數(shù)據(jù)庫的結(jié)構(gòu)與金字塔模型是相對應(yīng)的,每一層對應(yīng)于數(shù)據(jù)庫的一個表,每一條記錄對應(yīng)于每一個數(shù)據(jù)塊,數(shù)據(jù)塊存儲的位置與所在層的位置相對應(yīng)。這種結(jié)構(gòu)使文件和數(shù)據(jù)庫保持一致,包括層的編排、塊的編排、塊的索引等,使存儲與管理更加靈活。2.3邏輯結(jié)構(gòu)設(shè)計(E-R關(guān)系圖)根據(jù)E-R圖,將概念模型轉(zhuǎn)換為邏輯關(guān)系數(shù)據(jù)模型。本文在金字塔模型上建立的數(shù)據(jù)庫,每個LOD級別為一層一個表,每一層由相應(yīng)的數(shù)據(jù)塊構(gòu)建,不足的行或列由原行或原列塊數(shù)計算。表的命名即可以LOD層命名,如“LOD0”,也可以附加上行和列的塊數(shù),如“LOD_X_Y”。每個地形數(shù)據(jù)塊為表中的一條記錄,包括行號、列號和數(shù)據(jù)三個字段組成。字段名數(shù)據(jù)類型行號列號數(shù)據(jù)IntegerintegerBLOB例如:00二進(jìn)制數(shù)據(jù)采用數(shù)據(jù)庫存儲數(shù)據(jù),本文通過大二進(jìn)制存儲類型(Oracle9i中是BLOB類型,Sqlserver中是image類型)存儲地形數(shù)據(jù),包括DEM數(shù)據(jù)和紋理數(shù)據(jù)。Oracle9i中以BLOB字段類型存儲二進(jìn)制大對象,包括三種形式:聲像數(shù)據(jù)、二進(jìn)制數(shù)據(jù)和大文本數(shù)據(jù)。最常見的應(yīng)用是存儲圖形、聲音等對象,此外大型的二進(jìn)制對象、OLE對象也可以通過BLOB類型存入數(shù)據(jù)庫,如果文本對象過大,超出了文本類型的規(guī)定長度,則必須用BLOB字段進(jìn)行存儲(本文的地形塊數(shù)據(jù)就屬于此類)。在Sqlserver中,它提供了兩種特殊數(shù)據(jù)類型text和image用于定義BLOB數(shù)據(jù)。SQLServer的基本存儲單元是頁,每頁2KB。一條記錄必須存放在一頁內(nèi),不能跨頁存儲,因此SQLServer中的每條記錄的最大尺寸為1962個字節(jié)。對于一般數(shù)據(jù)類型的字段,其值直接存儲在分配的數(shù)據(jù)頁中,而對于text和image類型數(shù)據(jù),值是存放在另分配的數(shù)據(jù)頁中的,內(nèi)容通過數(shù)據(jù)鏈串在一起。數(shù)據(jù)庫記錄的text和image類型數(shù)據(jù)字段內(nèi)放的是數(shù)據(jù)鏈地址指針,這種存儲機(jī)制使text和image類型數(shù)據(jù)可達(dá)2GB。因此,在經(jīng)常使用的編程環(huán)境中如不能直接支持BLOB字段,需要調(diào)用相應(yīng)的函數(shù)完成BLOB的使用。3全球多分辨率地形數(shù)據(jù)入庫模式的設(shè)計基于數(shù)據(jù)庫的多分辨率地形數(shù)據(jù)的調(diào)度,首先是要在數(shù)據(jù)庫中存儲數(shù)據(jù)。本文按照金字塔模型生成的數(shù)據(jù)文件,包括DEM數(shù)據(jù)文件和紋理數(shù)據(jù)文件,通過數(shù)據(jù)庫接口將數(shù)據(jù)文件中的每個數(shù)據(jù)塊依次導(dǎo)入到數(shù)據(jù)庫中相對應(yīng)的字段,并生成相應(yīng)的記錄。以SQLServer為例,采用ADO接口訪問并操作數(shù)據(jù)庫。ADO(ActiveXDateObject)是Microsoft數(shù)據(jù)庫應(yīng)用程序開發(fā)接口,是建立在OLEDB之上的高層數(shù)據(jù)庫訪問技術(shù)。ADO技術(shù)基于COM(ComponentObjectModal),具有COM組建的諸多優(yōu)點,可以用來構(gòu)造可服用應(yīng)用框架,被多種語言支持,能夠訪問關(guān)系數(shù)據(jù)庫、非關(guān)系數(shù)據(jù)庫及所有的文件系統(tǒng)。另外,ADO還支持各種客戶/服務(wù)器模塊與基于Web的應(yīng)用程序,具有遠(yuǎn)程數(shù)據(jù)服務(wù)RDS(RemoteDataService)的特性,是遠(yuǎn)程數(shù)據(jù)存取的發(fā)展方向。?ADO的結(jié)構(gòu)如下:
使用ADO訪問數(shù)據(jù)庫的主要步驟包括[3]:1)初始化COM,創(chuàng)建ADO連接AfxOleInit();m_pConnection.CreateInstance(__uuidof(Connection));2)利用Connection的對象的Open函數(shù)連接數(shù)據(jù)庫m_pConnection->Open(m_ServerName,m_DBname,m_User,m_PassWord,longlOptions);3)使用Recordset對象打開記錄集m_pRecordset->Open(LPCTSRstrSQL,longlOption,CursorTypeEnumCursorType,LockTypeEnumLockType);4)用Field對象的AppendChunk存儲二進(jìn)制大對象,用GetChunk訪問二進(jìn)制大對象m_pRecordset->AppendChunk(FieldPtrpField,LPVOIDlpData,UINTnBytes);m_pRecordset->GetChunk(FieldPtrpField,LPVOIDlpData);入庫模式設(shè)計流程圖如下:數(shù)據(jù)文件準(zhǔn)備文件形式登錄連接、訪問創(chuàng)建服務(wù)器數(shù)據(jù)庫4基于數(shù)據(jù)庫的全球多分辨率地形數(shù)據(jù)的調(diào)度由于全球地形實時漫游方式體現(xiàn)了虛擬現(xiàn)實的特征,可以給用戶提供直觀的視覺效果以及更加靈活的操作能力,同時全球三維地形可視化要求空間信息表達(dá)詳細(xì)準(zhǔn)確,并且對用戶交互操作能夠達(dá)到實時響應(yīng),因而地形數(shù)據(jù)的實時快速調(diào)度是實現(xiàn)全球多分辨率地形仿真技術(shù)的重要內(nèi)容。4.1基于四叉樹索引數(shù)據(jù)引擎的設(shè)計數(shù)據(jù)引擎主要解決金字塔模型中各層各塊的索引問題,即解決如何快速查詢數(shù)據(jù),如何快速從海量的空間數(shù)據(jù)中提取用戶需要的目標(biāo)數(shù)據(jù),以確保地形數(shù)據(jù)的實時顯示等需要。四叉樹是樹型結(jié)構(gòu)的一種,指的是一種每個非葉子節(jié)點最多只有四個分支(或稱孩子)的樹型結(jié)構(gòu)。如圖所示,圓形代表非葉子節(jié)點,矩形代表葉子節(jié)點。四叉樹顯然是一種層次數(shù)據(jù)結(jié)構(gòu),其公共特性是空間遞歸分解[4]。第0層第1層第2層第3層4.2基于四叉樹索引地形數(shù)據(jù)的快速調(diào)度本文中引用的金字塔模型與四叉樹都屬于分層分塊性質(zhì),且層之間都使用2倍率關(guān)系,因而可以采用四叉樹技術(shù)來建立數(shù)據(jù)引擎,實現(xiàn)地形數(shù)據(jù)塊的快速索引。根據(jù)四叉樹的特點,其中N鄰域、S鄰域、W鄰域和E鄰域四個鄰域?qū)?yīng)金字塔模型中同級的N鄰塊、S鄰塊、W鄰塊和E鄰塊,也就是上鄰塊,下鄰塊,左鄰塊和右鄰塊[5]。對于金字塔模型中的一個地形塊,用這個地形塊的LOD級別l,列號x,行號y,(l,x,y)來表示一個塊的全球唯一編號,由此可得:塊的編號塊的位置LOD級別l,列號x,行號y已知塊(l,x,y)左鄰塊(l,x-1,y)x≠0(l,2l+1-1,y)x=0右鄰塊(l,x+1,y)x≠2l+1-1(l,0,y)x=2l+1-1下鄰塊(l,x,y-1)y≠0(l,x,0)y=0上鄰塊(l,x,y+1)y≠2l-1(l,x,2l-1)y=2l-1高級塊(l+1,[x/2],[y/2])([]表示取整)低級塊(l≥1)(l-1,2x,2y)(l-1,2x+1,2y)(l-1,2x,2y+1)(l-1,2x+1,2y+1)通過上述公式計算出來的編號,是一種全球唯一編號,記錄了數(shù)據(jù)塊的位置,在數(shù)據(jù)庫表中可定義為主鍵,以此來建立索引。采用了基于四叉樹的索引結(jié)構(gòu),可以避免在可視化處理過程中將全部的空間數(shù)據(jù)索引信息讀入到內(nèi)存中,而只是將場景金字塔信息常駐內(nèi)存,根據(jù)當(dāng)前視點參數(shù)確定與視景體投影區(qū)域發(fā)生相交關(guān)系的一個或多個單元地形塊,此時再將相關(guān)的地形塊四叉樹索引信息讀入到內(nèi)存中,并且當(dāng)視點移動,某個子場景變?yōu)椴豢梢姇r,則可以釋放該索引占用的內(nèi)存空間,這樣能夠有效地提高機(jī)器內(nèi)存的利用效率,為三維場景空間數(shù)據(jù)提供更多的計算資源,從而提高系統(tǒng)的運行效率。從上述公式可以看出,計算鄰塊編號時只涉及一些簡單的加減法運算,占用CPU時鐘周期較少,因而采用四叉樹結(jié)構(gòu)索引是一種快捷有效的數(shù)據(jù)引擎方式。5客戶端/服務(wù)器模式(C/S)下的地形數(shù)據(jù)庫的訪問通常情況下,存儲有海量數(shù)據(jù)的全球多分辨率地形數(shù)據(jù)庫,僅僅依靠單一的數(shù)據(jù)庫組織方式是不夠的,需要建立分布式空間數(shù)據(jù)庫,完成海量數(shù)據(jù)的存儲、管理和索引,實現(xiàn)多用戶遠(yuǎn)程并發(fā)訪問。分布式數(shù)據(jù)庫系統(tǒng)是計算機(jī)網(wǎng)絡(luò)技術(shù)與數(shù)據(jù)庫技術(shù)互相滲透和有機(jī)結(jié)合的產(chǎn)物,是由分布于計算機(jī)網(wǎng)絡(luò)上的多個邏輯相關(guān)的數(shù)據(jù)庫組成的集合,網(wǎng)絡(luò)中的每個結(jié)點具有獨立處理的能力,可執(zhí)行局部應(yīng)用,同時,每個結(jié)點通過網(wǎng)絡(luò)通訊系統(tǒng)也能執(zhí)行全局應(yīng)用。分布式數(shù)據(jù)庫相比集中式數(shù)據(jù)庫具有均衡負(fù)載、可靠性高、可擴(kuò)充性好等的優(yōu)勢,解決組織機(jī)構(gòu)分散而數(shù)據(jù)需要相互聯(lián)系的問題。本文采用客戶端/服務(wù)器模式(C/S)完成主從機(jī)數(shù)據(jù)庫訪問功能??蛻舳颂峤环?wù)器(從機(jī))(主機(jī))6總結(jié)本文根據(jù)金字塔模型設(shè)計了數(shù)據(jù)庫表的結(jié)構(gòu),有效的存儲了地形數(shù)據(jù),同時建立了基于四叉樹的索引方式,為快速調(diào)用地形數(shù)據(jù)提供了基礎(chǔ)。全球多分辨率地形數(shù)據(jù)庫的建立為全球多分辨率地形環(huán)境仿真技術(shù)的實現(xiàn)提供了新平臺,數(shù)據(jù)庫的動態(tài)更新和地形信息的實時刷新效率更高,滿足了用戶實時需求
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學(xué)運動會工作參考計劃范文5篇
- 怎么做銷售咨詢課程設(shè)計
- 房屋建筑課程設(shè)計辦公樓
- 企業(yè)文化與員工綜合素質(zhì)提升
- 2024太陽能熱利用系統(tǒng)年度維護(hù)與升級服務(wù)合同3篇
- 2024年版含擔(dān)保者借款合同規(guī)范文本版B版
- 幼兒早教課程設(shè)計制作
- 2024年度內(nèi)部節(jié)能改造承包合同范本3篇
- 幼兒陶藝課程設(shè)計理念
- 幼兒園美食南瓜課程設(shè)計
- 大學(xué)《宏觀經(jīng)濟(jì)學(xué)》期末考試試題及參考答案
- 20以內(nèi)加減法練習(xí)題100題附參考答案(滿分必刷)
- 新中國史智慧樹知到期末考試答案章節(jié)答案2024年中國農(nóng)業(yè)大學(xué)
- Academic English智慧樹知到答案2024年杭州醫(yī)學(xué)院
- 國標(biāo)《電力儲能用鋰離子電池監(jiān)造導(dǎo)則》
- TSGD7004-2010壓力管道定期檢驗規(guī)則-公用管道
- 上海教育版高中數(shù)學(xué)一年級上冊全冊教案
- MOOC 健身健美-北京林業(yè)大學(xué) 中國大學(xué)慕課答案
- 人生悟理-透過物理看人生智慧樹知到期末考試答案2024年
- 2024年發(fā)供電分公司安全規(guī)程考試多選題庫及答案(共200題)
- 2024年青海省檢察機(jī)關(guān)聘用制書記員招聘筆試參考題庫附帶答案詳解
評論
0/150
提交評論