摘 要:本文在介紹了Oracle的Spatial組件的基礎上,探討了基于Oracle數據庫實現海量空間影像數據的管理技術。通過采用數據分塊結合索引檢索的方式實現了快速管理管理海量空間影像數據。
關鍵詞:空間影像數據 分塊技術 索引 Spatial組件 元數據
中圖分類號:P23文獻標識碼:A文章編號:1674-098X(2012)04(a)-0210-01
1 前言
隨著衛星遙感觀測、地理信息系統、航空攝影等技術的快速發展,采集高分辨率的空間影像數據不是什么難事。但是影像數據的分辨率越高意味著數據量越大,比如采集相同地段的遙感影像數據時,分辨率越高,需要存儲、管理的影象數據量相應越大,它們之間是非線性增長的量化關系。
任何空間影像數據管理系統都將涉及到影像數據的存儲、訪問、顯示、管理等等問題,尤其對于顯示模塊來說,由于影像數據量巨大,加之計算機系統有限的內存等諸多瓶頸,使得計算機面臨著內存供需和影像數據量增長之間的矛盾。因此為了能夠實現海量影像數據高效管理,必須在考慮現有計算機軟硬件配置的基礎上,研發可行的影像數據處理解決方案。一種常規的做法是在軟件算法層面探索可行的處理方法,比如中間圖像處理技術就是其中的一種。這種中間圖像實質是通過和原始圖像和最終圖像進行交換實現提升計算機圖像顯示速度的方式來實現的。
事實上,分塊技術類似于中間圖像技術,分片處理可以將海量的影像數據拆分成很多個數據量相對較小的數據塊,通過對這些數據塊編號并建立索引的方式,通過檢索編號、索引的方式快速檢索到各個數據塊從而提高訪問和管理海量空間影像數據的效率。本文正是在這個基礎上探討了基于Oracle提供的Spatial組件技術實現管理海量空間影像數據的管理。
2 影像數據管理
2.1 Spatial 組件
Oracle公司推出了一種空間數據庫組Spatial,是一種用來實現存儲、管理空間數據的組件技術。自Oracle9i后,Oracle開始對三維空間影像數據的處理提供了強有力的支持接口。Spatial組件內部包含了元數據表、空間數據字段(簡稱:SDO_GEOMETRY)和空間索引,為實現空間影像數據和Oracle數據庫表的映射奠定基礎,Oracle Spatial組件還開放了一系列空間影像數據查詢、分析的API接口,這些接口使得用戶具備開發三維影像管理系統的能力,比如GIS地理信息系統。Spatial組件的空間數據字段SD_GEOMETRY可以用來存儲空間數據,而元數據表則管理包含SDO_GEOMETRY字段的空間數據表;如果有必要,Oracle完全可以采用索引技術(R樹索引,四叉樹索引)來提高檢索速度。Oracle Spatial組件主要可以解決兩類問題:一類是滿足需要提高Oracle數據庫數據檢索查詢速度的客戶;另一種需求是為了提供高效地存儲、訪問、管理海量空間影像數據庫數據的用戶。
2.2 空間影像數據庫建模
在Oracle數據庫中,數據以記錄(records)的方式的存儲,一條記錄對應一個對象實例,比如一幅影像。記錄包括基本元素影像數據,當然還有其它的元素:坐標標尺、寬、高。假設我們直接如果將影像數據文件全部存到插數據庫表中,這個操作是很簡單的,可是傳輸效率很低,同時很難發揮Oracle提供的多線程并發訪問能力。考慮到這些因素,本文采用按照一定的規則對影像進行分塊,同時話可以建立數據快的索引,從而為實現并發訪問、管理海量影像數據奠定了基礎。
2.2.1 數據分塊
計算機系統讀取圖象數據是順序行的讀取。一般情況下,計算機會在順序讀取圖像數據并與所需檢索的數據進行比較,如果找到所需的數據就停止或到了文件末尾沒有找到。可以考慮另外的方法,比如我們編寫程序算法,將影像數據文件按照一定的拆分比例分塊,程序讀取一定長度的數據并存儲到緩沖區,以下我們簡稱中間圖像,這時中間圖像直接送入處理系統,處理系統將處理完成的信息送到顯示系統顯示。然后程序繼續讀取數據,當再一次到達設定長度的一段數據時,再存放到剛才的文件里,這樣中間圖像里面包含很多數據塊,如此反復,就可以按照預定的比例將圖象分塊了。后面,我們將為這些數據庫編號,方便檢索。
2.2.2 數據分塊
通常分塊是有原則的,考慮到計算機的性能問題,比如磁盤讀寫速度和網絡傳輸延遲,分塊過小或過大都會增加數據管理操作(磁盤讀寫、內存拷貝、網絡傳輸)的時間。其次是對于多分辨率的層次模型, 不規范的分塊方式不利于建立影像數據金字塔和索引,一般建議塊尺寸取128*128或256*256像素。
2.2.3 影像空間數據文件索引的建立與檢索
空間影像數據的數據量日益增長,為了提高空間影像管理系統的性能和速度,通常將整幅圖像劃分為較小的數據塊,每個塊在整個圖像中有位置標示,將每個小塊的數據和位置標識存儲起來,這樣就建立了數據塊的空間索引數據庫了,方便快速定位圖像數據。
2.3 數據庫建模
2.3.1 影像數據建模
為了能使用Oracle數據庫存儲和管理空間影像數據,需要
用到Spatial組件內部的元數據表,主要用來實現空間影像數據到數據庫表的映射。空間影像數據包括圖象屬性信息描述信息(圖象的大小、色彩值)以及圖元灰度值(圖象數據)。通過對空間影像數據進行數據庫建模分析,了解到影像數據主要包括以下元素:影像標識,通常是唯一的,主要用來標識引用影像數據對象;影像類型標識,包含IMG、DEM兩種;影像編碼,標識影像數據信息;影像數據包括某分辨率下的像素的行數和列數。
2.3.2 數據分塊建模
通過分析我們知道影像數據塊主要包括以下元素:影像塊的數量,表示所分塊的數目;影像塊標記,用來區分影像塊;影像塊所在影像的行號;影像塊所在影像的列號;影像塊的數據。Spatial組件提供了將空間影像數據映射到幾何圖形元的能力,我們稱之為元數據,這種與影像數據相關的幾何圖形元包括維數、邊界等。
2.4 影像空間數據的訪問和管理
一方面,通過使用數據分塊的策略并結合Oracle數據庫Spatial組件現有的內置的元數據庫表對影像空間數據和影像空間數據塊進行數據庫建模,這樣可以在Oracle數據庫中存儲空間影像數據;另一方面,通過使用對影像空間數據塊建立索引的方式大大提高Oracle數據庫管理影像空間數據的效率。
3 結語
通過上文的論述,證明了分塊技術和索引技術可以提高Oracle數據庫存儲、管理影像空間數據的效率,同時也進一步發掘了Oracle對于海量空間影像數據管理的能力。
參考文獻
[1] 錢慎一,張素智.Oracle 11g從入門到精通.中國水利水電出版社.
[2] 劉南,劉仁義.地理信息系統.高等教育出版社.
[3] 湯國安.ARCGIS地理信息系統空間分析實驗教程.科學出版社.
[4] 鄔倫,劉瑜,張晶,等.地理信息系統-原理、方法和應用[M].北京:科學出版社,2001.