□王 丹 □胡德祥 □田 偉 □馬志杰(黃河勘測規劃設計有限公司)
柵格數據是地理空間信息最直接的表現形式,柵格數據具有信息豐富、快速獲取、數據結構簡單等優點。隨著應用的不斷深入,柵格數據在整個GIS領域的應用越來越廣泛,很多GIS項目都要求實現對柵格數據安全、快速、多用戶訪問,因此,研究柵格數據管理技術很有必要。在張劍波、劉丹等的《GIS中柵格數據存儲管理的研究與實現》[1]和申勝利、李華等的《基于ArcSDE的柵格數據存儲與處理》[2]兩篇文章中已經探討了Raster Dataset和Raster Catalog兩種柵格數據管理方式,并對這兩種柵格數據管理方式的應用進行了簡單的分析和介紹,本文將討論一種新的柵格數據管理方式Mosaic Dataset。
本文探討了以ArcGISEngine、ArcSDE和Oracle11g數據庫管理系統平臺為支撐,采用一種最新的、先進的柵格數據模型-MosaicDataset對各種類型、各種比例尺的柵格數據實施集中、統一、高效管理技術的實現,并應用于南水北調工程建設與管理基礎信息建設與應用(一期)項目。
ArcGISEngine是美國ESRI公司開發研制的一組可嵌入的GIS組件,它并非面向最終用戶,而是一個面向開發者的產品,開發者可以用來開發定制自己的應用程序。對于繁冗的GIS開發工作而言,理想的解決方案是一個基于組件的實用的開發框架,且該框架允許解決方案提供商或機構內部開發人員快速構建行業專用GIS應用軟件,ArcGISEngine正是這樣一個產品。ArcGISEngine由兩個產品組成:一個軟件開發包和一個可分發的運行庫。ArcGISEngine提供的功能完全能夠滿足各種層次的開發需要,并且保持了開放性和擴展性[3]。
在ArcGISEngine10發布以前,絕大多數GIS項目都是采用柵格目錄來管理柵格數據。ArcGISEngine10的出現,給柵格數據管理提供了一種新的解決方案,即采用鑲嵌數據集來管理柵格數據,所有類型的地理數據庫(個人、文件和ArcSDE)均支持鑲嵌數據集。
ArcSDE是ArcGIS與關系數據庫之間的GIS通道[4]。它允許用戶在多種數據管理系統中管理地理信息,并使所有的ArcGIS應用程序都能夠使用這些數據。在ArcSDE中,柵格數據存儲為一系列業務表和元數據表,在存儲柵格數據的數據庫表中,每一行都對應著一個完整的柵格數據。ArcSDE10通過柵格數據集(RasterDataset)、柵格目錄(RasterCatalog)和鑲嵌數據集(Mosaic-Dataset)3種方式來存儲和管理柵格數據,表1列出了這3種柵格數據模型各自的特點、優缺點以及用途等[5]。
從表1可以看出,鑲嵌數據集兼具了柵格數據集和柵格目錄兩種存儲方式的優點,是用于存儲和管理數據的理想數據模型。由于鑲嵌數據集并不實際的存儲影像,這使得在將柵格數據導入鑲嵌數據集中時,大大提高了入庫效率,同時也不會丟失像素數據或元數據,當訪問鑲嵌數據集時,將動態地執行鑲嵌,重疊數據也不會丟失。此外,使用鑲嵌數據集管理柵格數據,可以對單幅影像數據分別進行預覽和下載,很具靈活性。鑒于鑲嵌數據集的上述特點,并結合項目的實際需求,在南水北調工程建設與管理基礎信息建設與應用(一期)項目中使用鑲嵌數據集來管理柵格數據,取得了良好效果。

表1 3種柵格數據模型對比表
南水北調工程建設與管理基礎信息建設與應用(一期)項目中的數據管理與維護系統主要實現空間數據和屬性數據的管理和維護功能。其中,柵格數據管理部分采用的是ArcSDEGeodatabase中的MosaicDataset柵格數據模型,主要包括對DEM、DOM、遙感衛星影像三類數據的管理。系統基于ArcGISEngine10、ArcSDE和Oracle11g數據庫管理系統平臺,采用Visual-Studio2010開發實現。系統實現采用典型的三層實現方式,分別由數據訪問層、業務邏輯層和數據表示層組成,其框架組成如圖1所示。

圖1 數據管理與維護系統框架圖
系統實現了對遙感衛星影像、數字高程模型(DEM)、數字正射影像圖(DOM)三大類柵格數據的管理。主要包括柵格數據的入庫、更新、預覽以及數據格式的轉換等功能。支持TIFF、Grid、PersonalGeodatabase和 FileGeodatabase等格式。
3.2.1 柵格數據入庫
系統采用Arc GIS Engine技術結合空間ETL模型來實現批量入庫功能,采用MosaicDataset柵格數據模型來管理和存儲柵格數據。系統實現了在導入柵格數據的同時,顯示進度信息,同時提示數據入庫的進度以及狀態信息等。通常一幅柵格圖像大小在幾十兆甚至幾百兆左右,若采用Raster Catalog來管理,在導入ArcSDE時,通常一幅柵格圖像需要花費1-10 min左右的時間來完成數據入庫(具體時間跟機器性能和數據大小有關),將DOM數據批量導入Raster Catalog運行結果如圖2所示,而采用Mosaic Dataset來管理柵格數據,則在數據入庫時大大縮減了等待時間,完成一幅柵格數據入庫僅僅需要幾秒鐘,速度提高了近十倍,將DOM數據批量導入Mosaic Dataset運行結果如圖3所示。

圖2 批量導入D O M到柵格目錄圖

圖3 批量導入D O M到鑲嵌數據集圖
從上面兩幅圖可以看出,柵格數據批量入庫時,采用MosaicDataset來管理柵格數據比采用RasterCatalog來管理柵格數據的入庫效率要高很多,當入庫的數據量越大時,優勢越明顯。具體見表2所示。

表2 柵格數據入庫效率比較表
3.2.2 柵格數據預覽
Mosaic Dataset數據表中的一條記錄對應著一幅柵格圖像,在ArcGISEngine開發中,可以靈活的控制鑲嵌數據集的顯示方式,既可以實現整個鑲嵌數據集的預覽,也可以分別預覽單個柵格數據集。若要實現對單幅柵格數據集的預覽,或者對單幅柵格數據集進行分析,則首先需要調用IMosaic Workspace Extension接口[6]打開Mosaic Dataset,獲取它的柵格目錄表,然后根據需要預覽的柵格數據集在目錄表中的編號來創建相應的柵格數據集對象,最后將其加入Mapcontrol進行預覽和分析。
大多數的GIS項目一般都會涉及到柵格數據管理的問題,采用哪一種柵格數據模型關系到整個GIS系統的安全性、訪問效率以及數據使用的靈活性等方面。本文介紹的3種柵格數據模型各有長短,可結合實際需要采用合適的柵格數據模型,但是就訪問效率和操作靈活性來講,ArcGIS10新推出的Mosaic-Dataset柵格數據模型更為突出,它更適合管理大批量的柵格數據,在柵格數據入庫和訪問方面的優勢尤為明顯,并為海量柵格數據管理提供了一種新的解決方案,具有很好的發展前景。
[1]張劍波,劉丹,吳信才.G IS中柵格數據存儲管理的研究與實現[J].桂林工學院學報,2006(1):54-58.
[2]申勝利,李華,劉聚海.基于A rcSD E的柵格數據存儲與處理[J].測繪通報,2007(9):47-49.
[3]楊平,駱俊.基于A rcG ISEngi ne的地理信息數據庫管理系統設計與實現[J].信息技術-國土資源化,2006(5):23-26.
[4]閆俊霞,張軍海.基于A rcSD E城市基礎地理信息系統研究[J].河北農業科學,2009,13(12):138-139.
[5]ESRI公司.A rcG IS D eskt op H el p-A rcG IS D eskt op10 H el p.
[6]ESRI公司.D evel operH el p-A rcO bj ect s H el p For.N ET(V S2010).