【摘要】針對海量基于菱形塊的全球離散格網數據的組織管理問題,提出了一種基于文件數據庫的瓦片金字塔數據模型,詳細介紹了其分層分塊的結構以及數據塊的編碼方式和數據索引方法,為基于菱形塊的全球離散格網的數據集成提出了新的解決方案。
【關鍵詞】菱形格網瓦片金子塔模型數據塊編碼數據索引
隨著需求的不斷擴大,大范圍遙感數據和其他空間信息的需求越來越迫切。怎樣有效地組織、管理和利用全球海量空間數據已成為國內外關注的科學研究領域。經緯網因兩極變形大不適合全球尺度分析,因此我們尋求這樣一種格網:更適合處理全尺度的問題;有利于數據統一建模、按需重組;在結構上支持多尺度數據表達。全球離散格網模型能夠滿足空間數據表達和管理的需求,彌補當前空間數據共享和應用中的不足。
一、菱形格網
現如今全球離散格網主要有三角形格網,菱形格網,六邊形格網等。菱形網格具有幾何結構簡單、方向一致、空間對稱易搜索的優點,它類似于正方形網格,具備嵌套的特性,支持有限元和有限差分,支持大規模全球尺度的模擬。格網是采用每個單元的地址編碼代替地理坐標在球面上進行各種操作。對于菱形單元位置信息的存儲,采用Morton碼,使用Morton碼便于快速定位到菱形塊的位置。先將地球等經度線分成四份,用0、1、2、3分別代表四個區域,對于每個子區域,左下上右分別取0、1、2、3進行編碼,每個菱形單元的Morton碼就是以這幾個數字排列組成的字符串。
二、海量菱形格網數據的組織
采用文件系統管理數據庫能將整個數據庫的內容保存在單個索引文件中,便于數據的查詢和定位。棱形格網數據并不需要用到關系數據庫的并發操作等功能,并且對于海量的數據,文件數據庫的搜索和更新速度比其他數據庫要快。
2.1瓦片金子塔數據模型
海量菱形格網數據的組織,參考Google Earth所用的影像金字塔塔模型,它是將參考橢球面按一定原則遞歸剖分成多層次、多分辨率的格網單元,同時采用每個單元對應的地址碼代替地理坐標在球面上進行各種操作,這和菱形格網對Morton碼的操作所實現的功能是一樣的。
Google Earth中所有的影像數據都是256X256像素的瓦片數據,并且它按照了四叉樹的方式對每一層的每一個瓦片的索引字段信息進行了編碼。菱形格網雖然不是正方形格網,但它是類似于正方形的格網,菱形格網具有可嵌套性,因此可以套用正方形格網的存儲和索引方法。瓦片金子塔模型是一種多分辨率層次模型。把原始的數據放在金字塔的最底層,在這一層進行分塊處理,每次分塊都是分成上下左右四塊菱形塊,組成一個傾斜的似正方形矩陣,以一分為四的原則劃分到最細最為金字塔的最底層。在此基礎上,倒數第二層按照最底層劃分出來的基菱形進行合并的操作,也就是將相鄰的上下左右四個菱形合并成一個基菱形作為最小的存儲單元。以此類推,根據數據精度的需求劃分若干層,相鄰兩層的數據塊是4的倍數。
2.2瓦片數據的大小和索引
瓦片數據塊的大小和數據庫的訪問次數和檢索次數是密切相關的。如果數據分塊太小,數據庫的訪問次數就多,相反則每次數據庫的寫入和輸出的數據量就很大,因此要權衡數據塊大小的利弊。鄧雪清對數據塊大小的選取做了相關的實驗,實驗主要是針對數據塊大小對磁盤讀性能、網格傳輸性能及對磁盤讀和網格傳輸綜合性能的影像做了分析。最終結果是:數據塊大小最優值大概是在32KB左右,對應的數據量大小的菱形格網的數量為256X256或者是128X128,由于現階段菱形格網所包含的屬性數據比較少,采用256X256作為一個瓦片單元。金字塔模型會增加大約1/3的數據存儲空間,但是對于海量數據量,數據的讀取效率會有顯著的提高。
數據塊的索引按照數據在文件數據庫中的存儲路徑來命名,金子塔數據模型中每一層的數據分別存儲在一個文件夾中。對于該層數據的子塊再進行分類存儲,分類的方法是:將所有菱形塊按相鄰關系分成16個相等的塊,然后對這16等塊按相同的方法繼續劃分,由于文件的分塊方法也是按照類似于Morton編碼的方式進行的,因此通過其中任意一個子文件夾的文件名可以得到父文件夾的文件名,他們的關系是:該父文件的文件名是其中任意一個子文件夾文件名的上2級的Morton碼。由于菱形網格剖分的最大層次是26,因此文件路徑的深度最多是8,通過路徑名稱很快就能找到需要的數據塊。
三、結論與展望
就基于菱形塊的全球離散格網的數據組織管理策略進行了初步的探索,概述了菱形格網的結構特點,借鑒Google Earth的瓦片技術,提出了適于處理海量菱形格網的瓦片金子塔模型,根據數據塊的編碼,探討了數據的索引方法。海量數據的壓縮能很大程度上提高數據操作的效率,因此對菱形格網編碼的壓縮也將是未來研究的方向。