一種改善分布式文件系統(tǒng)中地理柵格數(shù)據(jù)文件處理方法
【專利摘要】一種改善分布式文件系統(tǒng)中地理柵格數(shù)據(jù)文件處理方法,本發(fā)明涉及地理柵格數(shù)據(jù)文件存儲【技術領域】。本發(fā)明是解決現(xiàn)有技術對地理文件進行單純的分割會使得各個文件部分之間的聯(lián)系被切斷,需要在不同計算機節(jié)點間大量通訊的問題,本發(fā)明是通過1根據(jù)緩沖距離確定最小窗口值window;2劃分為行數(shù)為rows,列數(shù)為cols的最小窗口的小塊;3利用核心塊的計算方式計算存儲節(jié)點最大存儲的核心塊數(shù)CoreNum;4根據(jù)核心塊數(shù)CoreNum將柵格數(shù)據(jù)文件raster的最小窗口的小塊分成n組核心塊組;5讀取n組核心塊組對應在柵格數(shù)據(jù)raster文件上的位置數(shù)據(jù)等步驟實現(xiàn)的。本發(fā)明應用于地理柵格數(shù)據(jù)文件存儲【技術領域】。
【專利說明】一種改善分布式文件系統(tǒng)中地理柵格數(shù)據(jù)文件處理方法
【技術領域】
[0001]本發(fā)明涉及地理柵格數(shù)據(jù)文件存儲【技術領域】,特別涉及一種改善分布式文件系統(tǒng)中地理柵格數(shù)據(jù)文件處理方法。
【背景技術】
[0002]地理柵格數(shù)據(jù)文件是地理信息系統(tǒng)中存儲遙感影像、空間插值數(shù)據(jù)、空間屬性數(shù)據(jù)的關鍵文件,其中每一個柵格可以記錄地球上一定大小區(qū)域的一系列屬性。隨著高分辨率遙感衛(wèi)星技術的出現(xiàn),柵格數(shù)據(jù)的分辨率越來越高,也使得地理柵格數(shù)據(jù)文件也越來越大,所以有效的處理龐大的柵格數(shù)據(jù)文件十分重要。
[0003]在應對大型文件方面,當前主要以(^00816的即3分布式文件系統(tǒng)和他如。!)的分布式文件系統(tǒng)為主,這兩種文件系統(tǒng)在應對大文件時均將大型文件分割,并有重復將分割下來的部分文件分配到集群的存儲節(jié)點上,該類文件劃分方法在處理普通文件上十分有效。
[0004]但是地理文件不僅僅需要讀取和寫入,還需要執(zhí)行相關的地理算法。由于地理算法通常要考慮“鄰域”、空間相對位置和坐標,所以單純的分割會使得各個文件部分之間的聯(lián)系被切斷,執(zhí)行的算法無法連續(xù)處理數(shù)據(jù),或者需要在不同計算機節(jié)點間大量通訊,引起多機處理的效率下降;所以直接將文件分割對于處理大型柵格數(shù)據(jù)文件不可行。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是為了解決現(xiàn)有技術對地理文件進行單純的分割會使得各個文件部分之間的聯(lián)系被切斷,需要在不同計算機節(jié)點間大量通訊的問題而提出的一種改善分布式文件系統(tǒng)中地理柵格數(shù)據(jù)文件處理方法。
[0006]上述的發(fā)明目的是通過以下技術方案實現(xiàn)的:
[0007]步驟一、確定地理計算使用的緩沖距離,根據(jù)緩沖距離確定最小窗口值#11(10界;其中,為一個整數(shù);
[0008]步驟二、根據(jù)#11(10?將柵格數(shù)據(jù)文件劃分為行數(shù)為列數(shù)為⑶匕的最小窗口的小塊;其中,最小窗口的小塊為核心塊,核心塊為對應地理位置上的數(shù)據(jù);柵格數(shù)據(jù)文件中的核心塊周邊的核心塊為鄰域塊;輸入柵格數(shù)據(jù)文件包括每一個柵格文件或者文件所占的字節(jié)數(shù)1丨61118126、柵格文件的高度1161油1:以及柵格文件的寬度^1(1111 ;柵格數(shù)據(jù)文件是代表柵格數(shù)據(jù)文件或者文件;
[0009]步驟三、運用地理算法計算和處理最小窗口的小塊在分布式文件系統(tǒng)中分割柵格數(shù)據(jù)文件1^061'中的核心塊,利用核心塊的計算方式計算存儲節(jié)點最大存儲的核心塊數(shù)001-6^11111 ;其中,分割到存儲節(jié)點文件最大的核心塊為1^1x3126 ;
[0010]步驟四、根據(jù)核心塊數(shù)001*6^11111將柵格數(shù)據(jù)文件!'的最小窗口的小塊分成II組核心塊組;其中,II組核心塊組由核心塊與鄰域塊組成;
[0011]步驟五、將!1組核心塊組存儲在分布式文件系統(tǒng)中存儲節(jié)點上,并讀取!1組核心塊組對應在柵格數(shù)據(jù)作8仏1~文件上的位置數(shù)據(jù);即完成了一種改善分布式文件系統(tǒng)中地理柵格數(shù)據(jù)文件處理方法。
[0012]發(fā)明效果
[0013]針對現(xiàn)有技術存在的缺陷,本發(fā)明提供一種分布式文件系統(tǒng)中地理柵格數(shù)據(jù)文件處理方法,通過基于“最小窗口 ”塊劃分和冗余邊界存儲的方式,每一個存儲節(jié)點以一組小塊為單位分割存儲文件,保證了在分布式存儲之后某柵格數(shù)據(jù)和其鄰域數(shù)據(jù)都在同一臺計算機上,保證了地理算法可以快速的在該分布式存儲上運行。利用本方法實現(xiàn)了按核心塊將柵格文件劃分成多個部分,每個部分除了核心塊之外還包含邊界塊,既保證了數(shù)據(jù)的分割又保證了地理算法在計算的時候可以在本節(jié)點獲得到必要的鄰域。
【專利附圖】
【附圖說明】
[0014]圖1為【具體實施方式】一提出的一種改善分布式文件系統(tǒng)中地理柵格數(shù)據(jù)文件處理方法流程圖;
[0015]圖2為【具體實施方式】一提出的最小窗口分塊的處理方式示意圖;
[0016]圖3為【具體實施方式】一提出的核心塊與鄰域塊示意圖;
[0017]圖4為【具體實施方式】一提出的為每個存儲節(jié)點分配0^6^11111個核心塊示意圖;
[0018]圖5為【具體實施方式】一提出的分塊讀取之后存儲示意圖;
[0019]圖6為【具體實施方式】一提出的分塊讀取之后存儲過程示意圖。
【具體實施方式】
[0020]【具體實施方式】一:本實施方式的一種改善分布式文件系統(tǒng)中地理柵格數(shù)據(jù)文件處理方法,具體是按照以下步驟制備的:
[0021]步驟一、根據(jù)柵格數(shù)據(jù)文件以8仏1~的分辨率和處理地理數(shù)據(jù)的應用需要,確定地理計算需要的使用的緩沖距離,根據(jù)緩沖距離確定最小窗口值#;其中,#11(10?為一個整數(shù);
[0022]步驟二、根據(jù)#11(10?將輸入的整個柵格數(shù)據(jù)文件劃分為行數(shù)為1X^8,列數(shù)為⑶匕的最小窗口的小塊如圖2 ;其中,最小窗口的小塊為核心塊,核心塊為對應地理位置上的數(shù)據(jù);柵格數(shù)據(jù)文件作8仏1~中的核心塊周邊的核心塊為鄰域塊,鄰域塊用于為需要進行距離緩沖計算的地理算法提供數(shù)據(jù);在一個存儲節(jié)點上的數(shù)據(jù),由核心塊與鄰域塊構成,一組核心塊的周圍應當被鄰域塊包圍,如圖3所示;而鄰域塊組共同占用了柵格數(shù)據(jù)文件或者作8仏1~文件的一段連續(xù)數(shù)據(jù)空間,是為了應對需要考慮鄰域緩沖計算的算法計算柵格數(shù)據(jù)文件1^061'位置上的周邊相關柵格數(shù)據(jù)的過程中必須用到的鄰域信息,鄰域信息為柵格數(shù)據(jù)文件!'狀1:61'位置上的周邊相關柵格數(shù)據(jù),最小窗口的和0018的值一定比鄰域的寬度要大,輸入柵格數(shù)據(jù)文件包括每一個柵格文件或者文件所占的字節(jié)數(shù)!'狀1:61\ 1丨61118126、柵格文件的高度“丨油!:以及柵格文件的寬度!'
^1(11:11 ;柵格數(shù)據(jù)文件是代表柵格數(shù)據(jù)文件或者文件;
[0023]步驟三、運用地理算法計算和處理最小窗口的小塊在分布式文件系統(tǒng)中分割柵格數(shù)據(jù)文件1^061'中的核心塊,利用能夠存儲的核心塊的計算方式計算存儲節(jié)點最大存儲的核心塊數(shù)?:01~6他1111如圖4 ;其中,分割到存儲節(jié)點文件最大的核心塊為1^1x3126 ;
[0024]步驟四、根據(jù)核心塊數(shù)031*6^11111將柵格數(shù)據(jù)文件的最小窗口的小塊分成II組核心塊組;其中,II組核心塊組由核心塊與鄰域塊組成;每組核心塊組有可能是個,但是如果到了文件最末尾,可能不足031~6如111個;
[0025]步驟五、將!1組核心塊組存儲在分布式文件系統(tǒng)中存儲節(jié)點上如圖4 ;并讀取!1組核心塊組對應在柵格數(shù)據(jù)I'狀仏!'文件上的位置數(shù)據(jù)如圖5和圖6所示。即完成了一種改善分布式文件系統(tǒng)中地理柵格數(shù)據(jù)文件處理方法如圖1。
[0026]本實施方式效果:
[0027]針對現(xiàn)有技術存在的缺陷,本實施方式提供一種分布式文件系統(tǒng)中地理柵格數(shù)據(jù)文件處理方法,通過基于“最小窗口 ”塊劃分和冗余邊界存儲的方式,每一個存儲節(jié)點以一組小塊為單位分割存儲文件,保證了在分布式存儲之后某柵格數(shù)據(jù)和其鄰域數(shù)據(jù)都在同一臺計算機上,保證了地理算法可以快速的在該分布式存儲上運行。利用本方法實現(xiàn)了按核心塊將柵格文件劃分成多個部分,每個部分除了核心塊之外還包含邊界塊,既保證了數(shù)據(jù)的分割又保證了地理算法在計算的時候可以在本節(jié)點獲得到必要的鄰域。
[0028]【具體實施方式】二:本實施方式與【具體實施方式】一不同的是:步驟二中根據(jù)#11(10?輸入整個柵格數(shù)據(jù)文件',劃分為行數(shù)為列數(shù)為0018的最小窗口的小塊處理方式如下:
[0029](1)讀取待處理的柵格數(shù)據(jù)文件獲得11:61118126,
1-881:61-.界 1(11:11 的值;其中,I'&1161^11 為柵格 I'&81:61~ 中元素的高度'-
^1(11:11為柵格中元素的寬度;
[0030](2)按照七!1(1冊將數(shù)據(jù)柵格文件進行分塊,劃分個數(shù)為:
[0031]行數(shù)!'0界8為:1~0界8 = 1^01111(11161^11/^111(10^+0.5) (1)
[0032]列數(shù)。018為:。018 = 1^01111(1 (1-881:61-.^1(11:11/^111(10^+0.5) (2)
[0033]其中,%皿(1為進行四舍五入。其它步驟及參數(shù)與【具體實施方式】一相同。
[0034]【具體實施方式】三:本實施方式與【具體實施方式】一或二不同的是:步驟二中根據(jù)輸入整個柵格數(shù)據(jù)文件!'狀1:61',劃分為行數(shù)為!'0”列數(shù)為0018的最小窗口的小塊的行列位置確定過程為:
[0035](1)按照行列將以8仏!'進行分塊編號,編號之后對應一個數(shù)組1^100^8 [1-0^8^0018];其中,數(shù)組1310(^8〔1*0界8*0018]的第1個元素對應的分塊行列值為:
[0036]行位置為:他叩?08= 1/(3018 ; (3)
[0037]列位置116?08 為:116?08 = 1% 0018 ; (4)
[0038](2)對于一個處于汝1118?08和116?08的分塊,其在一個柵格文件中的位置如下:
[0039]柵格行起始位置%81:61~!1冊妨11:為:%81:61~!1冊妨11: = 116^08^111(10?
(5)
[0040]柵格列起始位置1:為= ??!冊8?08抑 1=(10界
(6)。其它步驟及參數(shù)與【具體實施方式】一或二相同。
[0041]【具體實施方式】四:本實施方式與【具體實施方式】一至三之一不同的是:步驟三中運用地理算法計算和處理最小窗口的小塊在分布式文件系統(tǒng)中分割柵格數(shù)據(jù)文件作8仏1~中的核心塊,利用能夠存儲的核心塊的計算方式計算存儲節(jié)點最大存儲的核心塊數(shù)001*6^11111的計算方式如下:
[0042](1)、計算存儲節(jié)點最大存儲的塊數(shù)皿111 = 1^8126/
11:61118126);
[0043](2)、以存儲節(jié)點最大存儲的塊數(shù)為正方形方式,計算正方形的邊長]111111 = (1111:)8^1-1: (1111111) ; (1111:)為取整操作,如(1=1:)2.66取整之后結果為2 ;
[0044](3)、最大能夠存儲的塊數(shù)1111111減去1個塊的領域邊界得到最大核心塊數(shù)001*6他1111,即:001*6他1111 =其它步驟及參數(shù)與【具體實施方式】一至三之一相同。
[0045]【具體實施方式】五:本實施方式與【具體實施方式】一至四之一不同的是:步驟五中將II組核心塊組存儲在分布式文件系統(tǒng)中存儲節(jié)點上如圖4;并讀取!1組核心塊組對應在柵格數(shù)據(jù)I'狀仏!'文件上的位置數(shù)據(jù)具體操作過程為:
[0046](1)、柵格數(shù)據(jù)文件以8仏1~計數(shù)器設為0 ;
[0047](2)、如果柵格數(shù)據(jù)文件1^061'計數(shù)器的值小于步驟二中的列數(shù)為行數(shù)抓舊※列數(shù)⑶18,那么循環(huán)步驟(3)?(8);
[0048](3)、指定一個空的塊列表1310(^1181:記錄待存儲數(shù)據(jù);其中,待存儲數(shù)據(jù)為核心塊在塊列表610(^110中的所有塊對應位置上的數(shù)據(jù);
[0049](4)、將塊數(shù)計數(shù)器設置為0 ;其中,塊數(shù)計數(shù)器計算每組核心塊組所含的核心塊數(shù);
[0050](5)、如果塊數(shù)計數(shù)器小于0)1'洲那么循環(huán)做如下工作循環(huán)步驟(6)?(9);
[0051](6)、塊數(shù)計數(shù)器自增1 ;
[0052](7)、將待存儲數(shù)據(jù)加入到1310(^1181:列表中;
[0053](8)、柵格數(shù)據(jù)文件以8仏1~計數(shù)器自增1 ;
[0054](9)、如果柵格數(shù)據(jù)文件以8仏1'計數(shù)器大于等于行數(shù)X列數(shù),那么退出本層循環(huán);
[0055]中核心塊的鄰域塊組加入中;
[0056](11)、通過公式(3)和(4)計算 13100^1181:中所有塊的和 116?08 ;
[0057](12)、根據(jù)公式(5)和(6)計算所有核心塊(從核心塊的編號轉變?yōu)閴K在柵格數(shù)據(jù)上的絕對位置)的位置,合并核心塊與鄰域塊讀取合并后核心塊與鄰域塊對應在柵格數(shù)據(jù)作^61~文件上的位置數(shù)據(jù);
[0058]其程序如下:
[0059]80^111
[0060]1.1111: 0011111:61- = 0 ;指定計數(shù)器
[0061]2.界 11116⑶ 18)(
[0062]3.13100^1181: = 111111 ;當前分塊對應塊數(shù)
[0063]4.13100^1111111 = 0 ;
[0064]5.^116 ()3100^1111111^001-6^11111)(
[0065]6.)3100^:1111111++ ;
[0066]7.)3100^1181:.^(1(1(0011111:61-);將對應塊加入到列表中
[0067]8.0011111:61-++ ;
[0068]9.1? (0011111:61-) = 1-0^8^0018) ^3X63^ ;
[0069]10.|
[0070]11.找到1310(^1181:中所有塊的8方向鄰域塊加入1310(^1181:中
[0071]12.通過公式(3)和(4)計算中所有塊的!!冊8?08和116?08 ;
[0072]13.根據(jù)公式(5)和(6)計算所有所有塊的位置,合并讀取數(shù)據(jù)
[0073]14.分配集群中的一個存儲節(jié)點將讀取到的數(shù)據(jù)存儲到對應節(jié)點之中
[0074]2^(10其它步驟及參數(shù)與【具體實施方式】一至四之一相同。
【權利要求】
1.一種改善分布式文件系統(tǒng)中地理柵格數(shù)據(jù)文件處理方法,其特征在于:一種改善分布式文件系統(tǒng)中地理柵格數(shù)據(jù)文件處理方法具體是按照以下步驟進行的: 步驟一、確定地理計算使用的緩沖距離,根據(jù)緩沖距離確定最小窗口值#11(10? ;其中,
為一個整數(shù), 步驟二、根據(jù)#11(10?將柵格數(shù)據(jù)文件劃分為行數(shù)為1~0”,列數(shù)為⑶匕的最小窗口的小塊;其中,最小窗口的小塊為核心塊,核心塊為對應地理位置上的數(shù)據(jù);柵格數(shù)據(jù)文件中的核心塊周邊的核心塊為鄰域塊;輸入柵格數(shù)據(jù)文件包括每一個柵格文件或者文件所占的字節(jié)數(shù)1丨61118126、柵格文件的高度1161油1:以及柵格文件的寬度^1(1111 ;柵格數(shù)據(jù)文件是代表柵格數(shù)據(jù)文件或者文件; 步驟三、運用地理算法計算和處理最小窗口的小塊在分布式文件系統(tǒng)中分割柵格數(shù)據(jù)文件中的核心塊,利用核心塊的計算方式計算存儲節(jié)點最大存儲的核心塊數(shù)001-6^11111 ;其中,分割到存儲節(jié)點文件最大的核心塊為1^1x3126 ; 步驟四、根據(jù)核心塊數(shù)001*6他1111將柵格數(shù)據(jù)文件的最小窗口的小塊分成II組核心塊組;其中,II組核心塊組由核心塊與鄰域塊組成; 步驟五、將II組核心塊組存儲在分布式文件系統(tǒng)中存儲節(jié)點上,并讀取II組核心塊組對應在柵格數(shù)據(jù)作^61~文件上的位置數(shù)據(jù);即完成了一種改善分布式文件系統(tǒng)中地理柵格數(shù)據(jù)文件處理方法。
2.根據(jù)權利要求1所述一種改善分布式文件系統(tǒng)中地理柵格數(shù)據(jù)文件處理方法,其特征在于:步驟二中根據(jù)#11(10?輸入整個柵格數(shù)據(jù)文件劃分為行數(shù)為列數(shù)為0018的最小窗口的小塊處理方式如下: (1)讀取待處理的柵格數(shù)據(jù)文件獲得11:61118126,1-881:61-.界 1(11:11 的值;其中,I'&81:61~? 1161^11 為柵格 I'&81:61~ 中元素的高度'-^1(11:11為柵格中元素的寬度; (2)按照#11(1冊將數(shù)據(jù)柵格文件進行分塊,劃分個數(shù)為: 對亍數(shù) 1*0界8 為:1~0^8 =尺01111(11161^11/^111(10^+0.5)(1)
列數(shù)為:。018 = 1^01111(1 (^881:61-.^1(11:11/^111(10^+0.5)(2) 其中,1^01111(1為進行四舍五入。
3.根據(jù)權利要求2所述一種改善分布式文件系統(tǒng)中地理柵格數(shù)據(jù)文件處理方法,其特征在于:步驟二中根據(jù)#11(10?輸入整個柵格數(shù)據(jù)文件劃分為行數(shù)為列數(shù)為0018的最小窗口的小塊的行列位置確定過程為: (1)按照行列將以061~進行分塊編號,編號之后對應一個數(shù)組;其中,數(shù)組的第1個元素對應的分塊行列值為: 行位置為:抱1118?08 = 1/(3018 ;(3) 列位置 116?08 為:116?08 =1% 0018 ;(4) (2)對于一個處于和116?08的分塊,其在一個柵格文件中的位置如下: 柵格行起始位置 %81:61~!1冊妨11:為:%81:61~!1冊妨11: = 116^08^111(10?(5) 柵格列起始位置1:為:%81:61^16311: = 11811^08^111(10? (6)。
4.根據(jù)權利要求1所述一種改善分布式文件系統(tǒng)中地理柵格數(shù)據(jù)文件處理方法,其特征在于:步驟三中運用地理算法計算和處理最小窗口的小塊在分布式文件系統(tǒng)中分割柵格數(shù)據(jù)文件1^061'中的核心塊,利用核心塊的計算方式計算存儲節(jié)點最大存儲的核心塊數(shù)001-6^11111的計算方式如下: (1)、計算存儲節(jié)點最大存儲的塊數(shù)皿111= 1^8126/11:61118126); (2)、以存儲節(jié)點最大存儲的塊數(shù)為正方形方式,計算正方形的邊長皿111= (1111:)8^1-1: (1111111); (3)、最大能夠存儲的塊數(shù)皿III減去1個塊的領域邊界得到最大核心塊數(shù)0)1*6^111,即:001-6^11111 = (1111111-1)=1=0111111-1)0
5.根據(jù)權利要求1所述一種改善分布式文件系統(tǒng)中地理柵格數(shù)據(jù)文件處理方法,其特征在于:步驟五中將II組核心塊組存儲在分布式文件系統(tǒng)中存儲節(jié)點上;并讀取II組核心塊組對應在柵格數(shù)據(jù)I'狀仏!'文件上的位置數(shù)據(jù)具體操作過程為: (1)、柵格數(shù)據(jù)文件以#61~計數(shù)器設為0; (2)、如果柵格數(shù)據(jù)文件計數(shù)器的值小于步驟二中的列數(shù)為行數(shù)I'冊8父列數(shù)0018,那么循環(huán)步驟(3)?(8); (3)、指定一個空的塊列表記錄待存儲數(shù)據(jù);其中,待存儲數(shù)據(jù)為核心塊在塊列表610(^110中的所有塊對應位置上的數(shù)據(jù); (4)、將塊數(shù)計數(shù)器設置為0;其中,塊數(shù)計數(shù)器計算每組核心塊組所含的核心塊數(shù); (5)、如果塊數(shù)計數(shù)器小于0)1'洲I皿那么循環(huán)做如下工作循環(huán)步驟(6)?(9); (6)、塊數(shù)計數(shù)器自增1; (7)、將待存儲數(shù)據(jù)加入到610(^110列表中; (8)、柵格數(shù)據(jù)文件以8仏1~計數(shù)器自增1; (9)、如果柵格數(shù)據(jù)文件以8仏1'計數(shù)器大于等于行數(shù)X列數(shù),那么退出本層循環(huán); (10)、找到13100^1181:中核心塊的鄰域塊組加入中; (11)、通過公式(3)和(4)計算13100^1181:中所有塊的和116?08; (12)、根據(jù)公式(5)和(6)計算所有核心塊的位置,合并核心塊與鄰域塊讀取合并后核心塊與鄰域塊對應在柵格數(shù)據(jù)作^61~文件上的位置數(shù)據(jù)。
【文檔編號】G06F17/30GK104484404SQ201410777596
【公開日】2015年4月1日 申請日期:2014年12月15日 優(yōu)先權日:2014年12月15日
【發(fā)明者】張淑清, 潘欣, 程帥, 姜春雷 申請人:中國科學院東北地理與農(nóng)業(yè)生態(tài)研究所