本發(fā)明涉及大數(shù)據(jù)存儲技術領域,尤其涉及一種衛(wèi)星遙感影像數(shù)據(jù)的存儲方法。
背景技術:
隨著遙感技術的快速發(fā)展,多傳感器、多時相、高空間分辨率、高光譜分辨率的遙感數(shù)據(jù)體量變的十分龐大,僅某一地區(qū)一個時段的一景l(fā)andsat8衛(wèi)星影像就可達700mb以上,若對某一地區(qū)多個時期不同類型遙感數(shù)據(jù)綜合分析、融合處理,其數(shù)據(jù)量將成幾何倍數(shù)增長。此外,定量遙感研究中常使用的遙感數(shù)據(jù)包含高光譜反射率數(shù)據(jù)、衛(wèi)星影像數(shù)據(jù)、研究區(qū)屬性數(shù)據(jù),類型復雜。
傳統(tǒng)單機存儲大數(shù)據(jù)量遙感影像數(shù)據(jù)時,文件讀寫處理速度受限于單臺計算機性能,單機數(shù)據(jù)存儲與處理方式效率低下,已無法滿足快速處理海量數(shù)據(jù)的需求。而且,傳統(tǒng)的關系型數(shù)據(jù)庫(如:oracle、mysql、sqlserver等)主要以表的形式存儲結構化數(shù)據(jù)。而遙感數(shù)據(jù)主要形式是非結構化的光譜反射率數(shù)據(jù)、衛(wèi)星影像數(shù)據(jù)等,這類數(shù)據(jù)很難通過傳統(tǒng)關系型數(shù)據(jù)庫進行存儲。
技術實現(xiàn)要素:
有鑒于此,本發(fā)明實施例提供了一種衛(wèi)星遙感影像數(shù)據(jù)的存儲方法,主要目的是解決遙感影像數(shù)據(jù)量大難以單機存儲的技術問題。
為達到上述目的,本發(fā)明主要提供了如下技術方案:
一方面,本發(fā)明實施例提供了一種衛(wèi)星遙感影像數(shù)據(jù)的存儲方法,該方法包括如下步驟:
將多個計算機組成計算機集群,將所述計算機集群中的一臺計算機作為管理服務器,所述計算機集群的其余計算機作為存儲磁盤,所述存儲磁盤具有用于存儲數(shù)據(jù)的多個存儲塊;所述管理服務器用于分配所述存儲塊在所述存儲磁盤中的位置和存儲空間大小以及記錄需要存儲的數(shù)據(jù)與所述存儲塊的對應存儲關系;
將一整副衛(wèi)星遙感影像按其波段分層,得到多個層文件;
按照所述管理服務器預設的所述存儲塊的存儲空間大小,將每一個層文件分成多個影像塊,對每一層的每個影像塊進行編碼,得到多個編碼影像塊;
按照所述管理服務器預設的編碼影像塊與所述存儲塊的對應存儲關系,將多個編碼影像塊對應的存儲于多個存儲塊中以完成所述一整副衛(wèi)星遙感影像數(shù)據(jù)在所述計算機集群的整體存儲。
作為優(yōu)選,所述將每一個層文件分成多個影像塊是指將每個層文件以影像中心為原點平均分為四份得到四個影像塊。
作為優(yōu)選,當所述四個影像塊中的任意一個影像塊所需存儲空間大于所述任意一個影像塊在所述管理服務器中的預設存儲空間,則將所述任意一個影像塊以影像中心為原點平均分為四份得到四個二級影像塊,形成影像存儲金字塔結構。
作為優(yōu)選,所述地理坐標是衛(wèi)星遙感影像的經(jīng)緯度。
與現(xiàn)有技術相比,本發(fā)明的有益效果是:
本發(fā)明實施例針對遙感影像數(shù)據(jù)量大難以單機存儲的技術問題,采用了多機分布式存儲,將一整副海量遙感影像數(shù)據(jù)按波段分層,再將得到的層文件按地理坐標分成多個影像塊,最后將多個影像塊分散存儲于多個計算機中,形成分層遞歸式存儲,形成遙感數(shù)據(jù)文件樹,完成了一景多波段、大分辨率、大數(shù)據(jù)的遙感影像的分布式存儲;調用了整個計算機集群的資源完成存儲操作,相當于多臺計算機同時并行讀寫原來一臺計算機需要讀寫的數(shù)據(jù),提高了存儲效率。
附圖說明
圖1是本發(fā)明一個實施例的衛(wèi)星遙感影像數(shù)據(jù)存儲結構示意圖;
圖2是本發(fā)明另一個實施例的衛(wèi)星遙感影像數(shù)據(jù)存儲結構示意圖。
具體實施方式
為更進一步闡述本發(fā)明為達成預定發(fā)明目的所采取的技術手段及功效,以下以較佳實施例,對依據(jù)本發(fā)明申請的具體實施方式、技術方案、特征及其功效,詳細說明如后。下述說明中的多個實施例中的特定特征、結構、或特點可由任何合適形式組合。
實施例
一種衛(wèi)星遙感影像數(shù)據(jù)的存儲方法,包括如下步驟:將多個計算機組成計算機集群,將計算機集群中的一臺計算機作為管理服務器,計算機集群的其余計算機作為存儲磁盤,存儲磁盤具有用于存儲數(shù)據(jù)的多個存儲塊;管理服務器用于分配存儲塊在存儲磁盤中的位置和存儲空間大小以及記錄需要存儲的數(shù)據(jù)與存儲塊的對應存儲關系;將一整副衛(wèi)星遙感影像按其波段分層,得到多個層文件;按照管理服務器預設的存儲塊的存儲空間大小,將每一個層文件分成多個影像塊,對每一層的每個影像塊進行編碼,得到多個編碼影像塊;按照管理服務器預設的編碼影像塊與存儲塊的對應存儲關系,將多個編碼影像塊對應的存儲于多個存儲塊中以完成一整副衛(wèi)星遙感影像數(shù)據(jù)在計算機集群的整體存儲。
作為上述實施例的優(yōu)選,將每一個層文件分成多個影像塊是指將每個層文件以影像中心為原點平均分為四份得到四個影像塊。如圖1所示。
作為上述實施例的優(yōu)選,當四個影像塊中的任意一個影像塊所需存儲空間大于任意一個影像塊在管理服務器中的預設存儲空間,則將任意一個影像塊以影像中心為原點平均分為四份得到四個二級影像塊,形成影像存儲金字塔結構。如圖2所示。
作為上述實施例的優(yōu)選,上述的地理坐標是指衛(wèi)星遙感影像的經(jīng)度和維度,即可以將衛(wèi)星遙感的影像按照影像的經(jīng)度分塊,也可以按照影像的維度分塊。
作為上述實施例的優(yōu)選,上述將多個計算機組成計算機集群,將計算機集群中的一臺計算機作為管理服務器,計算機集群的其余計算機作為存儲磁盤,存儲磁盤具有用于存儲數(shù)據(jù)的多個存儲塊;管理服務器用于分配存儲塊在存儲磁盤中的位置和存儲空間大小以及記錄需要存儲的數(shù)據(jù)與存儲塊的對應存儲關系;上述存儲方式可利用hadoop軟件平臺對上述遙感影像數(shù)據(jù)進行分布式存儲,其核心是hdfs和mapreduce,其中hdfs提供了海量數(shù)據(jù)的分布式存儲的方式。
hdfs是一種以流式數(shù)據(jù)訪問模式來存儲海量數(shù)據(jù),安全高效地運行在計算機集群上的分布式文件存儲系統(tǒng)。其最大的特點是可以屏蔽底層集群中計算機硬件的差異,對外將整個集群以一個整體的形式呈現(xiàn)出來,以類似于linux操作系統(tǒng)的形式進行數(shù)據(jù)操作,在數(shù)據(jù)存儲的同時,可以自動完成數(shù)據(jù)冗余備份,操作簡單、效率高、安全可靠。類似于硬盤中數(shù)據(jù)讀寫最小的單位——塊,hdfs中也有塊(block)的概念,但是比硬盤中的塊大的多。hdfs中的塊是hadoop分布式文件系統(tǒng)中進行數(shù)據(jù)讀寫的最小單位。其大小默認為64mb。通過設計數(shù)據(jù)塊,可以將大文件以塊為單位拆分成若干個小文件,將這些小文件拆分存儲到hdfs的塊中,以實現(xiàn)數(shù)據(jù)的分布式存儲。
namenode和datanode是hdfs系統(tǒng)中的兩類節(jié)點。其中namenode為整個系統(tǒng)的管理者,負責分配數(shù)據(jù)塊位置,同時記錄數(shù)據(jù)與所在塊的映射;datanode為系統(tǒng)的執(zhí)行者,hdfs的數(shù)據(jù)塊實際存儲到datanode所在計算機主機的物理磁盤中。通過系統(tǒng)配置,利用hadoop將整個計算機集群中的所有節(jié)點進行整合,對外屏蔽掉節(jié)點間的硬件差異,以一個整體的形式呈現(xiàn)。指定一臺服務器為hdfs的namenode,剩余節(jié)點datanode,同時指定數(shù)據(jù)塊大小。集群中每一個datanode節(jié)點根據(jù)系統(tǒng)需求,將自己硬盤的一部分劃分出專用空間用來存儲塊數(shù)據(jù),所有datanode節(jié)點的硬盤專用空間之和為整個hdfs的存儲空間,并由namenode統(tǒng)一管理。當用戶存儲數(shù)據(jù)時,namenode根據(jù)預設的塊的大小拆分數(shù)據(jù),然后將拆分的數(shù)據(jù)分別存儲到datanode的塊中,同時進行冗余備份,之后namenode將建立數(shù)據(jù)與塊的映射表,即記錄被拆分的數(shù)據(jù)塊具體被存放于整個hdfs中的哪個塊中。當用戶讀取數(shù)據(jù)時,首先向namenode發(fā)起請求,namenode查詢映射表確定數(shù)據(jù)塊在datanode中的位置,然后從datanode中讀取出所有數(shù)據(jù)塊,并按照映射表重新組裝數(shù)據(jù)。
通常一幅衛(wèi)星遙感影像的數(shù)據(jù)量為幾百mb,甚至幾個gb。若進行數(shù)據(jù)融合或波段運算等操作,數(shù)據(jù)量將更大。以單個影像文件的形式存儲效率低下。根據(jù)hdfs分塊分布式存儲的原理,結合影像金字塔技術,將一整幅衛(wèi)星遙感影像按其波段分層,按地理坐標劃分成若干小的影像塊,對每層的每個影像塊進行有序編碼,然后將每個影像塊存儲到hdfs的數(shù)據(jù)塊中。用戶訪問數(shù)據(jù)時,系統(tǒng)按照編碼將影像塊重新拼接成原始遙感影像。文件存儲結構如圖1所示。
對每個波段的影像文件,以圖像中心為原點四等分。圖像的左上、右上、左下、右下四個方位的圖像塊分別命名為a、b、c、d。在每個波段對應的文件夾下分別創(chuàng)建名為a、b、c、d的四個子文件夾,將各波段的四個圖像塊以名稱對應的方式存儲到各自文件夾中,例如:文件夾xxx/band1/a中存儲xxx影像的第一波段的a影像塊。若單個影像塊數(shù)據(jù)量依然很大則按照該方法對每個影像塊繼續(xù)四等分。如圖2所示。
hadoop平臺屏蔽了集群中所用節(jié)點之間的硬件差異,對外以一個整體的hdfs呈現(xiàn)出來。作為數(shù)據(jù)用戶,我們看到的是整個hadoop集群中所有datanode節(jié)點的硬盤共同組成的hdfs,其空間大小為每個datanode劃分出來的hdfs專用空間大小之和。用戶不需要關心每個數(shù)據(jù)塊具體存放于哪一臺pc主機的硬盤上,只需要通過命令行或者瀏覽器訪問hdfs即可獲得完整的遙感數(shù)據(jù)文件樹,并根據(jù)需求下載數(shù)據(jù)到本地計算機。當數(shù)據(jù)量不斷增加時,只需要單獨購置硬盤添加至虛擬機中或增加datanode計算節(jié)點即可實現(xiàn)hdfs的擴容,而無需改變原h(huán)dfs結構或重新部署hadoop系統(tǒng)。
本發(fā)明實施例針對遙感影像數(shù)據(jù)量大難以單機存儲的技術問題,采用了多機分布式存儲,將一整副數(shù)據(jù)海量遙感影像數(shù)據(jù)按波段分層,再將得到的層文件按地理坐標分成多個影像塊,最后將多個影像塊分散存儲于多個計算機中,形成分層遞歸式存儲,形成遙感數(shù)據(jù)文件樹,完成了一景多波段、大分辨率、大數(shù)據(jù)的遙感影像的分布式存儲;調用了整個計算機集群的資源完成存儲操作,相當于多臺計算機同時并行讀寫原來一臺計算機需要讀寫的數(shù)據(jù),提高了存儲效率。
以上公開的僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應以上述權利要求的保護范圍為準。