周振雄 宮浩鵬
摘 要:本文運用基于分布式文件存儲的數據庫MongoDB,設計了存儲遙感元數據的數據庫,并建立合適的索引,方便管理者快速查詢到需要的遙感影像元數據。同時,結合使用MongoDB的GridFS分布式文件系統,將遙感影像數據分割成塊存儲在MongoFiles中,利用遙感元數據中的位置信息,查詢到遙感影像數據文件的具體存儲狀態。研究成果是對是非關系數據庫在遙感影像存儲方面的一個嘗試,對遙感數據存儲管理有一定的參考價值。
關鍵詞:MongoDB;遙感影像
1 引言
近年來,隨著計算機技術的高速發展,帶動了各行各業向信息化進步的步伐。其中,遙感相關產業在這輪新的信息技術革命中也發生巨大的改變,尤其體現在遙感平臺的多方面應用上以及傳感器的種類和數量爆炸式的增長。這使得傳統的遙感影像越來越趨于高分辨率以及多光譜上發展,且由于搭載平臺的多樣化和普及化,遙感圖片的數量和質量正在飛速的增長。一方面,高質量、多樣化的遙感圖像給用戶帶來了更加廣泛的運用和深入的研究,便于遙感方向及各行各業相關從業人員使用;另一方面,為了最求高質量的遙感影像能夠高速、清晰的加載顯示,目前大多都采用金字塔影像技術。但是與此同時,也帶來了許多的挑戰與問題。首先是隨著海量遙感影像數據井噴式涌現,如何去存儲這些影像,才能使得整個存儲系統簡單而高效,方面管理人員進行即時的管理與監控,從而進行統一組織下的存儲與共享;其次是伴隨著用戶對遙感影像數據的精確度越來越高,怎么才能在雜亂無章的海量遙感數據中尋找出用戶所需求的影像,并且保證搜索的精度與控制搜索過程的時間;最后,金字塔遙感影像雖能給用戶提供高分辨的遙感影像顯示,卻使得原本數據量就很大的遙感數據更加增大,這將給存儲帶來巨大的壓力。
2 文檔數據庫MongoDB
MongoDB是當下最流行的一種NoSQL文檔數據庫,也是形式上最接近傳統的關系型數據庫的一種NoSQL數據庫。MongoDB的系統架構分為自動分片和復制集,其數據模式是文檔性數據,在一致性方面可通過次級讀操作實現最終一致性讀取,不能支持事務,可擴展性方面較為突出可以進行分片和增加讀取從節點,并且可支持二進制文件以及GridFS大文件進行存儲。
對比存在的四種不同類型的數據庫,MongoDB數據庫在數據查詢方面方法多樣化,數據庫接口應用層次更為豐富簡單,支持自動分片策略和復制集備份且備份恢復容易。其中,MongoDB中的BSON格式文檔,可以支持二進制對象存儲,與此同時MongoDB支持GridFS對大文件進行存儲。這兩個特點滿足海量的遙感影像數據文件的存儲需求,所以在進行遙感圖像的數據存儲設計時,選擇Mongo DB數據庫最符合設計預期。綜合來說,MongoDB是一個開源的、分布式的、面向文檔的非關系型數據庫。
3 檢索技術流程
確定準備數據的類型以及用于數據庫建立的遙感影像數據的采集;然后,確定開發的環境,確定本次使用的非關系型數據庫MongoDB的版本號;搭建MongoDB數據庫確定遙感影像的元數據,這個數據庫可以存儲不同類型的、不同格式的元數據,對其進行分類,建立索引,存儲進MongoDB數據庫中;采用MongoDB自帶GridFS功能進行遙感影像文件的分塊儲存,確定分塊的大小對遙感影像文件存儲速度與檢索速度的影像,確定好存儲塊大小;研究搜索影像的算法,將遙感影像的元數據與遙感影像文件數據關聯,通過元數據的搜索進而搜索到所查詢的遙感影像文件。
4 基于MongoDB的遙感數據存儲關鍵技術
采用MongoDB軟件,搭建出一個用于存儲遙感影像的非關系型數據庫,可以用來存儲不同類型的遙感影像數據,建立存儲遙感影像數據相應的元數據的數據庫。同時在該數據庫下,創建索引,探尋查詢方法,能夠快速有效的查詢到自己所需的遙感影像。
現階段存儲的遙感影像在文件系統中大多是分開存儲,分開為單純的圖像數據以及圖像的元數據信息。其中,圖像數據是指遙感影像的具體文件數據,元數據則是包含這些遙感影像的數據的信息。元數據包括圖像的類型,拍攝的日期,拍攝的儀器,具體拍攝的位置經緯度等信息。
以常見的美國衛星LANDSAT系列的圖片為例,在遙感影像下載的壓縮文件夾中,除了有不同波段的以TIFF格式存儲的遙感影像圖片,還有一個遙感影像圖片信息介紹的文檔即遙感影像的元數據。
MongoDB中的數據庫都以BSON格式保存二進制文件對象,但是BSON格式文件大小限制在16M以內,因此在存儲大文件時需要分割存儲。在分割存儲文件數據時,不同大小的文件、分割成不同大小的塊文件在存儲時的速度與效率也不盡相同。設計基于Mongo DB集群和分布式文件系統相結合的遙感瓦片數據存儲管理策略,其中Mongo DB集群用來存儲瓦片數據的元數據,分布式文件系統用來存儲瓦片數據的文件數據。通過分析遙感瓦片數據的屬性信息,在分布式文件系統中,通過構建虛擬目錄以及絕對路徑構造實現了瓦片文件數據的直接尋址。
要建立查詢索引,首先要對遙感影像元數據庫進行搭建,之后對關鍵元數據進行索引數據的確定。要建立存儲遙感影像元數據的數據庫,就要針對不同數據源的遙感影像提取不同的元數據。其中,每一個遙感影像必須提取的元數據包括文件名,文件路徑,傳感器型號等。
5 小結
本文通過研究分析了國內外現在已有的遙感影像存儲方式,針對現階段存儲系統的優缺點,尤其是我們目前在面臨大數據時的現狀,研發設計了關于基于非關系型數據庫MongoDB的遙感影像元數據存儲的數據庫。非關系型數據庫MongoDB具有水平擴展性極強的特點,并且可以存儲任意格式的遙感影像數據具有極強的靈活性,便于操作與管理。
在設計存儲遙感影像文件的數據庫時,利用了MongoDB自身的GridFS分布式文件系統將大數據進行分割存儲,進行分片大小的探索,優化了存儲的效率。同時,通過元數據檢索與遙感影像文件的檢索進行關聯管理,提高了遙感影像數據文件的檢索效率。