時間: 分類:推薦論文 次數:
摘要:本文在對海量空間數據進行了一定的分析基礎上,探討了當前針對海量數據組織管理的金字塔結構存儲方法和線性四叉樹的空間索引結構。并通過示例程序開發驗證其有效性。
關鍵詞:高級工程師評職稱,空間數據庫,海量數據,四叉樹,金字塔
1 引言
自90年代以來,高空間分辨率遙感衛星開始向大眾敞開大門,作為GIS的重要數據來源——遙感數據量快速增長。衛星遙感影像是一種以柵格數據模型存儲的數據,其最明顯的特點是數據量大、數據結構單一。同時遙感數據是一種大面積的、動態的、近實時的數據源,是GIS數據更新的重要手段。遙感數據可用于提取線劃數據和生成數字正射影像數據、DEM數據[1]。我國的領土面積為960.1216萬平方公里,如果全國的遙感影像用QuickBird 0.61m分辨率的影像來記錄據估算需要72092.15GB[2]。為了使這些海量空間數據得到更好的應用,必須考慮采用更為有效的組織管理手段對海量空間數據進行組織管理。
解決此問題,在GIS中對大范圍空間數據的統一有效的組織管理有很大幫助。早在90年代,美國ESRI公司推出空間數據引擎(SDE)對該問題提供了一種解決方案,依托于關系數據庫環境,采用高效空間目標模型(Efficient Spatial Object Model)對空間實體進行完整組織。此舉一方面避免了大數據量傳統拓撲模型組織數據時需要的大量的硬盤訪問操作;另一方面,空間信息作為關系庫中的成員,屬性信息與圖形信息形成一體化,避免了通過標識碼連接屬性,大大提高了信息檢索的效率[3]。同時,在ArcGIS9.0以上版本的ArcCatalog中又新增了柵格目錄(Raster Catalog)的數據組織方式,很好的滿足了目前流行的以圖幅為單位進行空間數據采集并更新的需求。
從當前空間數據的生產及數字化過程看,以圖幅為單位進行管理的局面一時難以改變[4]。故本文將討論以圖幅為基本存儲單位,在此基礎上對其用多金字塔結構進行空間數據組織并利用四叉樹作為海量柵格數據的空間索引的海量數據組織存儲方法。
2 海量數據分析
在研究海量數據的組織管理方法前,首先要研究如下問題:由于我國的國土面積較大,正射影像產品空間參考大都是以高斯投影后的平面坐標為基礎,對于一個省級或國家級的大型影像數據庫而言,由于投影分帶的原因,正射影像產品的空間參考的起算原點并不相同[5]。尤其內蒙古自治區這類跨地域很長的省份按照高斯投影后的坐標不會是一個3°高斯投影帶,每個帶的坐標都是以本帶的坐標原點為參考點,空間基準不統一,而且相鄰兩帶帶邊的圖幅變形很大。這樣,在多個坐標原點和帶邊數據存在幾何變形的情況下,給省級或國家級這樣的大型影像數據庫的無縫數據組織帶來了問題。所以首先要解決的是大型遙感影像數據庫的空間無縫瀏覽的技術,相關的技術已經在其他文獻中多次被提到,本文就不再贅述。
3 海量數據組織管理方法
為了提供高速數據查詢、顯示、刷新以及網絡傳輸等,在組織和管理海量數據時應使用高效的存儲形式和快速高效的索引機制。
3.1海量數據存儲技術
當前GIS柵格數據庫模型分為傳統的關系數據庫系統(RDBMS)、對象數據庫系統(ODBMS)和對象關系數據庫系統(ORDBMS)。
下面簡要介紹一下GIS柵格數據在Oracle中的存儲方式。柵格數據在存入數據庫時,需將實體對象之間的關系轉換為支持的數據結構模型,根據對象類別在數據庫中對應建表,空間對象屬性映射為關系數據庫中的列或字段,每個空間數據對象對應一條數據記錄。柵格數據包含的三類數據中,與記錄空間數據對象幾何屬性的圖像數據相對應的字段是一種復雜的數據類型,因此對于空間數據庫來說,關鍵問題是如何利用獨立于關系數據庫系統的統一數據模型處理反映空間數據對象的幾何屬性。一般利用Oracle9i存儲柵格數據幾何信息的方式為ORDSYS.ORDImage和BLOB。其中ORDSYS.ORDImage是一種用于存儲如BMP、PCX、TIFF、GIF等多種格式的二位靜態柵格數據對象關系數據類型,它還支持JPEG、LZW等壓縮格式。BLOB屬于LOB(Large Object)的一種,它是數據庫為解決存儲不規則結構數據而創建的。在早期的數據庫中,被存儲在數據庫外部的操作系統文件中。存儲在表中的是列名和該列中每個指向相關的外部文件的指針。在這種情況下,表被規范化了,因為指針具有相同的數據類型[7]。
柵格圖像由像素點組成,每個像素點都用二進制表示,雖然數據結構較之矢量簡單,但通常數據量較大,如存入數據庫前不作任何處理,將因磁盤讀取和網絡傳輸效率,而難以滿足實時調度、快速瀏覽和檢索的要求,故需先將柵格圖像數據分塊和建立影像金字塔分級,后存入數據庫。
3.2海量數據分塊技術
柵格數據分塊是把整幅圖像按照一定的大小分成若干個大小相等而互不重疊的塊,而任意尺寸分塊不利于建立影像金字塔和索引,因此比較理想的塊尺寸是2的整數冪,如512*512作為一個子塊。具體分塊操作時還應考慮圖像局部的相關程度、壓縮算法、網絡的傳輸單元等情況。如可將整個圖像分為30(5*6)塊,每一塊都有一個序號,每一個塊作為單獨的一幅圖像,數據存入表中,并為序號列建立索引,一個序號對應一個數據塊。當前臺程序對數據庫中圖像作漫游時,根據視點、焦點以及方位角之間的關系計算出哪些塊在可見區內,通過索引記錄塊的指針,索引到指針,直接指向并調用視圖中可見的部分對應的數據塊,而不是每次從數據庫中把全部的數據都取出,這樣處理可以縮減顯示的數據量,從而提高顯示速度。
3.3海量數據的金字塔技術
為了提高圖像的實時縮放顯示速度,快速獲取不同分辨率的圖像信息,需要對原始的圖像生成圖像金字塔,根據不同的顯示要求調用不同分辨率的圖像,達到快速顯示漫游的目的。圖像金字塔就是由原始圖像開始,建立一系列圖像,各幅圖像反映不同的詳盡程度。利用圖像文件金字塔結構的不同層具有不同分辨率的特點,在對圖像數據瀏覽時,就可以根據當前顯示的分辨率取相應金字塔層的數據,以實現圖像數據的快速瀏覽。
金字塔影像的生成方法如下:
1、首先把原始圖像數據作為金字塔的底層,即第0層,并對其進行分塊,形成第0層數據塊矩陣。
2、在第0層的基礎上,按每個數據塊合成為一個數據塊的方法生成第1層,并對其進行分塊,形成第1層數據塊矩陣。
3、再在第1層的基礎上采用同樣的方法生成第2層數據塊矩陣,
如此下去,構成整個數據塊金字塔,如圖1所示顯示出了分塊后的圖像金字塔,每層金字塔圖像的分塊都采用相同大小。假設按128*128個像素大小對原始數據進行分塊,則當第i層的像素矩陣大小小于或等于128*128時,金字塔構建完畢。
圖 1分塊后的金字塔圖像
3.4海量數據的索引機制
為了提高檢索可見區域內數據塊的速度,需要創建數據塊索引,四叉樹索引則是一個不錯的選擇。四叉樹是一種每個非葉子節點最多只有四個分支的樹型結構,也是一種層次數據結構,其特性是能夠實現空間遞歸分解[6]。
構建四叉樹索引結構是在分塊后的金字塔影像數據基礎之上的。構建索引需要分三步:邏輯分塊、節點編碼和物理分塊[7]。
1、邏輯分塊
與構建瓦片金字塔對應,規定塊劃分從地形數據左下角開始,從左至右,從下到上依次進行。同時規定四叉樹的層編碼與金字塔的層編碼保持一致,即四叉樹的底層對應金字塔的底層。
2、節點編碼
假定用一維數組來存儲瓦片索引,瓦片排序從底層開始,按從左至右,從下到上的順序依次進行,瓦片在數組中的偏移量即為節點編碼。
3、物理分塊
在邏輯分塊的基礎上對地形數據進行物理分塊,生成地形數據子塊。對上邊界和右邊界瓦片中的多余部分用無效像素值填充。物理分塊完畢,按分塊編號順序存儲。
至此,配合有效的海量數據可視化技術就可以對海量數據較為充分的利用起來。
4 應用實例
本文中介紹的研究成果已成功應用于多個地區的海量地形數據實時可視化。以某地區地形三維可視化信息管理系統為例,該地區所采用的規則格網數字高程模型共有23872個點,利用ArcCatalog工具制成Terrain地形數據,并對其構建5層的金字塔結構和相關索引文件。彩色紋理影像單塊大小為9845X9328,一共7塊,分辨率為2.5米。數字高程模型數據為840M,紋理影像數據為3002.59MB。對紋理影像數據構建5層金字塔結構并構建索引文件,瓦片的大小在ArcGlobe中設置為128X128。最終形成3.44G的紋理影像金字塔數據。數據被用在利用ArcGIS Engine 9.3+VS2005+Windows Vista Ultimate開發環境下部署在Intel Core2 Duo T6600 2.20GHz,2G內存,GeForce G 105M 512M 64位顯卡計算機中,計算機的操作系統同樣為Vista Ultimate SP2,圖形標準為directX。顯示效果如圖2,圖形瀏覽操作流暢。
圖 2系統截圖
5 結論
經過程序驗證,本文中所談到的金字塔模型和現行四叉樹索引的的數據組織管理模式,能夠滿足海量數據的可視化的需要,實現了海量數據的快速瀏覽查詢。
參考文獻
[1] 李建松.地理信息系統原理[M].武漢:武漢大學出版社,2006.
[2] 王恩泉.中國版Google Earth的空間數據組織與管理研究[D].中國測繪科學研究院碩士學位論文,2007.
[3] Spatial Database Engine (SDE). An ESRI White Paper.
[4] 劉紀平.海量空間數據組織與管理初探[J].中國圖象圖形學報,1998,3(6):500~503.
[5] 王密,龔健雅,李德仁.大型遙感影像數據庫的空間無縫數據組織[J].武漢大學學報(信息科學版).2001,26(5):419~424
[6] 戴晨光,張永生,鄧雪清.一種用于實時可視化的海量地形數據組織與管理方法[J].系統仿真學報 .2005,17(2):406~413
[7] 黃河等.Oracle 9i 數據庫系統培訓教程[M].清華大學出版社.2002
[8] 肖禾斌等.線性四叉樹和線性八叉樹領域尋找的一種新算法[J].測繪學報.1998.03
級別:北大核心,JST,CSCD,CSSCI,WJCI
ISSN:1002-2104
刊期:進入查看
格式:咨詢顧問
級別:北大核心,CSSCI,AMI核心
ISSN:1001-4233
刊期:進入查看
格式:咨詢顧問
級別:北大核心,CSSCI,AMI核心,社科基金資助期刊,
ISSN:1671-7465
刊期:進入查看
格式:咨詢顧問
級別:北大核心,CSSCI,AMI核心,社科基金資助期刊,
ISSN:1005-9245
刊期:進入查看
格式:咨詢顧問
數據庫:SCI
ISSN:2045-2322
刊期:進入查看
格式:咨詢顧問
數據庫:SCI
ISSN:0284-1851
刊期:進入查看
格式:咨詢顧問
數據庫:SCI
ISSN:2352-4928
刊期:進入查看
格式:咨詢顧問
數據庫:SCI
ISSN:0169-4332
刊期:進入查看
格式:咨詢顧問
數據庫:SCI
ISSN:0960-7412
刊期:進入查看
格式:咨詢顧問
數據庫:SCI
ISSN:0048-9697
刊期:進入查看
格式:咨詢顧問
數據庫:SCI
ISSN:0191-2917
刊期:進入查看
格式:咨詢顧問
數據庫:SCI
ISSN:1741-7007
刊期:進入查看
格式:咨詢顧問
數據庫:SCI
ISSN:2214-7144
刊期:進入查看
格式:咨詢顧問
數據庫:SCI
ISSN:2238-7854
刊期:進入查看
格式:咨詢顧問