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