• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      MongoDB的遙感影像分布式存儲策略研究

      2014-08-15 01:39:44李朝奎殷智慧
      測繪通報(bào) 2014年5期
      關(guān)鍵詞:分塊海量金字塔

      李朝奎,楊 武,殷智慧,張 強(qiáng)

      (1. 湖南科技大學(xué) 地理空間信息湖南省工程實(shí)驗(yàn)室,湖南 湘潭 411201; 2. 湖南科技大學(xué) 地球空間信息科學(xué)研究中心,湖南 湘潭 411201)

      一、引 言

      遙感影像數(shù)據(jù)作為一種信息豐富、覆蓋面廣、經(jīng)濟(jì)、便捷的空間數(shù)據(jù)載體,已經(jīng)朝著多平臺、多分辨率、多時(shí)相、多層面、多種傳感器、多角度、多光譜的方向發(fā)展[1],其應(yīng)用領(lǐng)域擴(kuò)展到了國土資源、氣象、環(huán)境、水利、礦產(chǎn)、電力等各個(gè)行業(yè)中,已經(jīng)成為智慧城市等眾多研究領(lǐng)域的重要數(shù)據(jù)來源[2];隨著獲取的影像數(shù)據(jù)呈幾何級數(shù)增長,已經(jīng)進(jìn)入大數(shù)據(jù)[3]時(shí)代。面對這些海量的遙感影像,如何高效的存儲管理,以滿足用戶的高并發(fā)共享服務(wù)成為當(dāng)前的研究熱點(diǎn)與難點(diǎn)[4]。

      目前的影像存儲系統(tǒng)主要有:①以SQL Server 2000為技術(shù)基礎(chǔ)的面向全球城市地區(qū)的地理信息網(wǎng)站 TerraServer, 它是世界上最大的在線數(shù)據(jù)庫之一,向公眾提供了數(shù)量巨大的地圖與航空影像;②微軟公司推出的MSN Virtual Earth, 將 MSN 搜索、MapPoint 地圖和TerraServer 集成為一個(gè)應(yīng)用系統(tǒng),實(shí)現(xiàn)了覆蓋全球范圍的空間數(shù)據(jù)統(tǒng)一管理;③Lockheed Martin 公司的 Intelligent Library System (ILS)是一套軟硬件集成解決方案,通過算法預(yù)測數(shù)據(jù)需求并預(yù)先調(diào)入在線緩存;④美國的 Esri 公司也推出了免費(fèi)的ArcGIS Explorer系統(tǒng),提供了一種便利方式以訪問在線 GIS 資源;⑤武漢大學(xué)研制的大型無縫影像數(shù)據(jù)庫管理系統(tǒng)GeoImageDB[5],實(shí)現(xiàn)了多比例尺、多源異構(gòu)數(shù)據(jù)影像數(shù)據(jù)管理;⑥解放軍信息工程大學(xué)地理空間信息學(xué)院研制的 Image Map Library (IML)[6]的三層架構(gòu)可以滿足基于數(shù)字地球框架的遙感圖像信息系統(tǒng)的基本要求。這些系統(tǒng)都是基于傳統(tǒng)關(guān)系數(shù)據(jù)庫設(shè)計(jì)研發(fā)的,對數(shù)據(jù)存儲和管理提供了高效率的平臺,但是由于自身的限制,關(guān)系數(shù)據(jù)庫在數(shù)據(jù)庫的高并發(fā)讀寫、海量數(shù)據(jù)的存儲與訪問和數(shù)據(jù)庫可擴(kuò)展性等方面已經(jīng)很難實(shí)現(xiàn)[7]。

      本文通過分析遙感數(shù)據(jù)的特點(diǎn),結(jié)合LOD和金字塔模型,改進(jìn)碎片式劃分算法對遙感影像進(jìn)行分層分塊,并提出了基于MongoDB的遙感影像分布式文件存儲策略,實(shí)現(xiàn)對影像的高效存儲與多并發(fā)訪問,并通過對比基于SQL Server數(shù)據(jù)庫的遙感影像存儲方法,證明本文方法的可行性。

      二、存儲策略關(guān)鍵技術(shù)

      隨著云計(jì)算技術(shù)的發(fā)展,數(shù)據(jù)的高度共享對數(shù)據(jù)庫的讀寫能力和多并發(fā)訪問性能提出了挑戰(zhàn),傳統(tǒng)的關(guān)系型數(shù)據(jù)庫很難滿足新的需求,而NOSQL數(shù)據(jù)庫的出現(xiàn)則打破了這一瓶頸。

      1. NOSQL

      NOSQL即是非關(guān)系型數(shù)據(jù)庫,因?yàn)槠渲饕獢?shù)據(jù)模型不是關(guān)系模型,沒有SQL接口,所以被稱為NOSQL。NOSQL的理論基礎(chǔ)是CAP理論,BASE思想和最終一致性,不像關(guān)系型數(shù)據(jù)庫那樣有嚴(yán)密的數(shù)據(jù)結(jié)構(gòu),它的存儲方式比較自由,一般是以Key-values的形式存儲數(shù)據(jù),一個(gè)鍵名對應(yīng)一個(gè)鍵值,數(shù)據(jù)結(jié)構(gòu)比簡單,但是查詢速度遠(yuǎn)高于關(guān)系型數(shù)據(jù)庫,它可以部署在廉價(jià)的硬件之上,能夠方便地?cái)U(kuò)展存儲節(jié)點(diǎn),可以滿足海量數(shù)據(jù)的存儲與高并發(fā)訪問。Sourav Mazumder 提出了NOSQL的4層架構(gòu)[8],如圖1所示。

      圖1 NOSQL系統(tǒng)架構(gòu)

      目前主要的NOSQL數(shù)據(jù)庫有:Riak、Redis、Tokyo Cabinet、SimpleDB、MongoDB、CouchDB和BigTable等,本文主要介紹MongoDB數(shù)據(jù)庫。

      2. MongoDB

      MongoDB是10gen公司2009年研發(fā)的一個(gè)開源的基于分布式文件存儲的NOSQL數(shù)據(jù)庫系統(tǒng),它具有Key-value存儲方式的高性能和高擴(kuò)展性,同時(shí)它支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),具有強(qiáng)大的查詢功能,可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫中單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引,因此MongoDB非常適合解決海量數(shù)據(jù)的存儲和訪問效率問題。

      MongoDB使用數(shù)據(jù)結(jié)構(gòu)松散的BinaryJSON格式,利用自動分片實(shí)現(xiàn)海量數(shù)據(jù)的存儲,具有關(guān)系數(shù)據(jù)庫眾多查詢功能,支持地理空間索引,具有很好的高并發(fā)訪問效率。MongoDB主要特點(diǎn)如下[9]:

      1) 存儲方便。面向集合存儲,適合存儲各種類型的對象數(shù)據(jù),具有自由模式。

      2) 功能豐富。支持動態(tài)查詢、完全索引。

      3) 可擴(kuò)展性強(qiáng)。使用自動分片機(jī)制擴(kuò)展數(shù)據(jù)庫節(jié)點(diǎn),可自動實(shí)現(xiàn)集群的負(fù)載均衡。

      4) 可靠性強(qiáng)。服務(wù)器自動配置,采用主/從和復(fù)制集兩種方式復(fù)制冗余。

      3. 遙感影像處理

      遙感影像具有其特殊的特征:多源數(shù)據(jù)的異構(gòu)性、多傳感器的多尺度、遙感數(shù)據(jù)實(shí)時(shí)獲取的動態(tài)性和獲取方式、數(shù)據(jù)精度以及衛(wèi)星數(shù)量增多造成的數(shù)據(jù)海量性。要存儲和共享這些數(shù)據(jù),就必須對數(shù)據(jù)做特殊處理,使其滿足存儲要求。

      (1) 影像標(biāo)準(zhǔn)化處理

      為了方便數(shù)據(jù)存儲,提高共享查詢處理效率,必須對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)處理:

      1) 數(shù)據(jù)完整性:必須具備定位元數(shù)據(jù)文件用于影像定位;工程元數(shù)據(jù)文件確定影像的橢球、坐標(biāo)系和投影方式。元數(shù)據(jù)文件必須具有精確的分辨率和坐標(biāo)系。

      2) 為滿足多源、多分辨率影像的無縫集合,必須建立統(tǒng)一的空間坐標(biāo)系[10]:本文采用1985國家高程基準(zhǔn),坐標(biāo)系采用WGS-84,采用經(jīng)緯度投影,平面單位采用度。

      (2) 影像劃分方法

      對海量影像數(shù)據(jù)進(jìn)行存儲與管理,關(guān)鍵是建立高效的存儲結(jié)構(gòu)。而LOD技術(shù)可以實(shí)現(xiàn)GB甚至TB級別的海量影像數(shù)據(jù)的多層次細(xì)節(jié)快速訪問;金字塔模型則能實(shí)現(xiàn)對多分辨率影像的高效存儲管理。

      LOD即細(xì)節(jié)層次模型,它是根據(jù)人眼的視覺特性,距離遠(yuǎn)近的物體采用不同精度模型,將整個(gè)物體分解為精度不同的塊,從而具有不同精度的細(xì)節(jié)層次,滿足人眼對影像不同視距的觀察效果。而金字塔模型[11-12]則是一種存儲多分辨率影像的結(jié)構(gòu),它是將影像按照分辨率從高到低,將分辨率最高的影像放在金字塔的最底層,隨著金字塔層次的升高,影像分辨率逐步降低,直至達(dá)到所設(shè)定的精度閾值[13],金字塔結(jié)構(gòu)示意圖如圖2所示。

      圖2 金字塔結(jié)構(gòu)示意圖

      本文采用倒金字塔模型存儲,采用四叉樹分割的方法對影像進(jìn)行劃分(如圖3所示),根據(jù)陳田慶等對影像進(jìn)行18級分散化存儲和管理[2],第一層以36°分級從影像左下角以從左至右、從下至上劃分,存儲在金字塔的第0層。金字塔模型層數(shù)以L表示,L+1層圖幅數(shù)為L層的2×2倍,如第2層圖幅數(shù)為第1層的4倍。

      三、影像存儲策略

      1. 影像命名

      對已知分辨率和經(jīng)緯度的遙感圖像進(jìn)行分塊,可以用式(1)和式(2)計(jì)算分級數(shù),進(jìn)而對影像按照上文所提方法進(jìn)行分級分塊。

      式中,m、n表示級數(shù);SB、SL表示每秒經(jīng)緯度對應(yīng)的米數(shù),根據(jù)具體近似值設(shè)定;dx、dy表示橫向高斯精度和縱向高斯精度。

      圖3 影像四叉樹分級

      影像的命名采用行號加列號的方法,采用9字節(jié)存儲,前4個(gè)字節(jié)為行號,后4個(gè)字節(jié)為列號,中間“_”占用一個(gè)字節(jié)。如:從西經(jīng)0°,南緯0°起,第一幅命名為:0000_0000,經(jīng)緯度坐標(biāo)值與分級分塊后行列號之間的關(guān)系為

      式中,Row、Col表示行列號;B、L表示經(jīng)緯度坐標(biāo)值;dB、dL表示經(jīng)度差和緯度差。

      2. MongoDB存儲方案

      MongoDB采用 Key-Values鍵值對儲存數(shù)據(jù),每一個(gè)影像分塊,以〈NameID,Data〉格式存儲,NameID為分塊影像的名字,Data為分塊影像的二進(jìn)制數(shù)據(jù)[14]。

      目前操作系統(tǒng)對文件大小有一定限制,32位操作系統(tǒng)最大支持2 GB數(shù)據(jù)量,但是64位操作系統(tǒng)則沒有這一限制。為了避免每塊單獨(dú)存儲產(chǎn)生壓縮對系統(tǒng)造成負(fù)擔(dān),將同一類數(shù)據(jù)集的所有分塊存成一個(gè)文件,把每級所有分塊存在各自文件夾里,每行的影像分塊儲存在各級文件夾對應(yīng)的子文件夾里,同屬需要另外定義和維護(hù)分塊的索引鍵名。

      客戶端發(fā)出數(shù)據(jù)請求,首先會查詢內(nèi)存并獲取數(shù)據(jù),如果沒有就向Memcached Server檢索并獲取數(shù)據(jù),只有上述兩者都沒有時(shí)才向數(shù)據(jù)庫發(fā)出請求,使用頻率高的數(shù)據(jù)記錄在內(nèi)存和Memcached Server中保留,這種緩存方法能有效提高數(shù)據(jù)訪問效率。

      在存儲中,數(shù)據(jù)庫的鏈接、數(shù)據(jù)的入庫和數(shù)據(jù)查詢等功能最為重要。數(shù)據(jù)庫連接的java代碼如下:

      Mongo m=new Mongo("DBserver",27017);

      DB db=m.getDB("dbname");

      在數(shù)據(jù)庫中根據(jù)輸入條件檢索,涉及的類有BasicDBObject、DB、HashMap等,java代碼如下:

      BasicDBObject query=new BasicObject();

      query.putAll(map);

      List list=new ArrayList();

      list=getGridFS().find(query);

      3. SQL Server存儲方案

      現(xiàn)在的大型數(shù)據(jù)庫如Oracle和SQL Server等都已提供了對影像數(shù)據(jù)存儲與管理的支持[15],本文試驗(yàn)使用SQL Server 2000,同一級的影像分塊存儲為一張表,每一塊影像單獨(dú)建立索引,使用java連接代碼如下[16]:

      String conUrl="jdbc:microsoft:SQLServer:∥localhost:1433;DatabaseName=dbname" ∥連接字符串;

      C1ass.forName("com.microsoft. sqlserver.jdbc. SQLServerDriver"); ∥登錄用戶名;

      Connection con==DriverManager. getConnection(conUrl); ∥生成連接;

      四、試驗(yàn)驗(yàn)證

      MongoDB存儲架構(gòu)(如圖4所示)包括:影像數(shù)據(jù)處理、金字塔模型建立、數(shù)據(jù)入庫和訪問試驗(yàn)幾個(gè)部分。MongoDB數(shù)據(jù)庫中每個(gè)數(shù)據(jù)集都是同一類遙感影像的所有分塊,數(shù)據(jù)節(jié)點(diǎn)部署在普通臺式機(jī)上面,數(shù)據(jù)訪問先查詢緩存區(qū)[17],有則直接調(diào)用;緩存區(qū)沒有時(shí)才從數(shù)據(jù)庫調(diào)取。

      圖4 MongoDB存儲架構(gòu)

      試驗(yàn)環(huán)境搭建如下:一臺Intel(R)Core(TM)i5-2410 CPU 2.3 GHz,內(nèi)存2 GB,硬盤500 GB,操作系統(tǒng)為Windows7 64位系統(tǒng)筆記本;8臺聯(lián)想AMD Trinity APU A8-5500 CPU 3.2 GHZ,內(nèi)存8 GB,操作系統(tǒng)為Windows XP32位系統(tǒng)臺式機(jī),通過100 Mbps局域網(wǎng)連接,MongoDB版本采用MongoDB 2.4.3。

      試驗(yàn)數(shù)據(jù)采用長沙地區(qū)東經(jīng)112°—113°,北緯27.5°—28.5°,分辨率1 m的遙感影像,通過式(1)和式(2)計(jì)算出m=n=13,即劃分為13級影像分塊。分別測試了兩種數(shù)據(jù)庫數(shù)據(jù)入庫時(shí)間和并發(fā)訪問效率。數(shù)據(jù)入庫時(shí)間如表1所示,并發(fā)訪問效率結(jié)果如圖5所示。

      表1 數(shù)據(jù)入庫時(shí)間對比

      從表1中可以看出,相同數(shù)據(jù)量入庫時(shí)間MongoDB優(yōu)于SQL Server 2005,且隨著數(shù)據(jù)量的遞增優(yōu)勢愈加明顯。

      圖5 兩種數(shù)據(jù)庫并發(fā)訪問時(shí)間效率對比

      從圖5中可以看出,MongoDB數(shù)據(jù)庫隨著并發(fā)訪問數(shù)的增加,平均訪問時(shí)間并未有明顯改變,而SQL Server 2005則急劇升高,說明MongoDB數(shù)據(jù)庫具有高效的并發(fā)訪問特性。

      五、結(jié)論和展望

      針對關(guān)系數(shù)據(jù)庫對海量影像數(shù)據(jù)存儲管理和多并發(fā)訪問的瓶頸,本文嘗試用NOSQL數(shù)據(jù)庫產(chǎn)品MongoDB來解決這一問題,設(shè)計(jì)了基于MongoDB的影像數(shù)據(jù)存儲架構(gòu),并通過對比SQL Server數(shù)據(jù)庫數(shù)據(jù)入庫時(shí)間和并發(fā)訪問效率,得出以下結(jié)論:

      1) 綜合LOD思想和金字塔模型的遙感影像分級分塊方法適用于遙感影像分塊處理。

      2) 基于MongoDB數(shù)據(jù)庫分布式存儲遙感影像數(shù)據(jù)的策略是可行的。

      3) 基于MongoDB的影像存儲在數(shù)據(jù)入庫和應(yīng)對并發(fā)訪問都具有更高的時(shí)間效率。

      但是NOSQL數(shù)據(jù)庫還處于起步階段,開源代碼為用戶提供了方便,但是同時(shí)故障維護(hù)也只能自己解決,缺乏關(guān)系數(shù)據(jù)庫的穩(wěn)定性和強(qiáng)大的商業(yè)支持,雖然在處理海量存儲,高并發(fā)訪問上有高效性,也出現(xiàn)了大量優(yōu)秀的NOSQL產(chǎn)品,但是距離全面普及尚遠(yuǎn)。

      參考文獻(xiàn):

      [1] 程啟敏.基于內(nèi)容的遙感影像檢索技術(shù)研究[D].北京:中國科學(xué)院遙感應(yīng)用研究所, 2004.

      [2] 陳田慶. 分布式環(huán)境下的遙感影像組織與調(diào)度[J].計(jì)算機(jī)工程,2010(10):9-12.

      [3] 喬朝飛. 大數(shù)據(jù)及其對測繪地理信息工作的啟示[J].測繪通報(bào),2013(1):107-109.

      [4] 李成名,劉曉麗,印潔,等. 數(shù)字城市到智慧城市的思考與探索[J].測繪通報(bào),2013(3):1-3.

      [5] 方濤,李德仁. GeoImageDB 多分辨率無縫影像數(shù)據(jù)庫系統(tǒng)的開發(fā)與實(shí)現(xiàn)[J]. 武漢測繪科技大學(xué)學(xué)報(bào), 1999, 24(3):189-193,281.

      [6] 羅睿,張永生,李穎,等. 一個(gè)基于數(shù)字地球框架的遙感圖象信息系統(tǒng)[J].信息工程大學(xué)學(xué)報(bào), 2001, 2(1): 1-4.

      [7] 劉一夢.基于MongoDB的云數(shù)據(jù)管理技術(shù)的研究與應(yīng)用[D].北京:北京交通大學(xué),2012.

      [8] 沈妹. NOSQL數(shù)據(jù)庫技術(shù)及其應(yīng)用研究[D].南京:南京信息工程大學(xué),2012.

      [9] CHODOROW K, DIROLF M. MongoDB: The Definitive Guide[M]. [S.l.]: O'Reilly Media, 2010.

      [10] 王恩泉,李英成,薛艷麗,等.網(wǎng)絡(luò)三維影像地圖的柵格數(shù)據(jù)組織方法研究[J].測繪科學(xué),2008(6):26-29.

      [11] 王昀昀,朱勤東.基于ARCSDE的影像數(shù)據(jù)入庫研究[J].測繪通報(bào),2013(1):84-86.

      [12] 胡文元.T級影像數(shù)據(jù)庫建庫方案研究[J].測繪通報(bào),2009(12):46-48.

      [13] 余粉香,工光霞,萬剛.大數(shù)據(jù)量遙感影像的快速調(diào)度與顯示[J].海洋測繪,2006(2):27-30.

      [14] 盧益陽.NOSQL數(shù)據(jù)管理系統(tǒng)綜述[J].企業(yè)科技與發(fā)展,2011(11):31-33.

      [15] 沈占峰,駱劍承,盛昊,等. 基于Web Service的分布式遙感影像數(shù)據(jù)庫設(shè)計(jì)與實(shí)現(xiàn)[J].測繪通報(bào),2006(2):14-17.

      [16] 陳超,王亮,閆浩文,等. 一種基于NOSQL的地圖瓦片數(shù)據(jù)存儲技術(shù)[J].測繪科學(xué),2013(1):1-5.

      [17] MIKIO A, KUNIHIKO T, KIDEKI O.Distributed Cache System for Large-Scale Networks[C]∥International Multi-conference on Computing in Global Information Technology(ICCGI'06).[S.l.]:IEEE Computer Society,2006.

      猜你喜歡
      分塊海量金字塔
      “金字塔”
      一種傅里葉域海量數(shù)據(jù)高速譜聚類方法
      A Study of the Pit-Aided Construction of Egyptian Pyramids
      分塊矩陣在線性代數(shù)中的應(yīng)用
      海量快遞垃圾正在“圍城”——“綠色快遞”勢在必行
      海上有座“金字塔”
      神秘金字塔
      童話世界(2017年11期)2017-05-17 05:28:25
      一個(gè)圖形所蘊(yùn)含的“海量”巧題
      反三角分塊矩陣Drazin逆新的表示
      基于自適應(yīng)中值濾波的分塊壓縮感知人臉識別
      佛坪县| 青冈县| 贞丰县| 金坛市| 麻城市| 桃园市| 垦利县| 西宁市| 佛教| 荥经县| 山东省| 从化市| 乌拉特中旗| 建昌县| 海门市| 巴林右旗| 孙吴县| 盐源县| 五台县| 扎赉特旗| 望城县| 长葛市| 南澳县| 镇宁| 大新县| 龙州县| 鄂州市| 仁化县| 郁南县| 南安市| 孝感市| 海安县| 邵武市| 吴忠市| 任丘市| 左权县| 洛阳市| 东海县| 鹿邑县| 峨眉山市| 潞西市|