云環(huán)境下基于預(yù)分片的遙感影像數(shù)據(jù)并行重采樣方法【專利摘要】本發(fā)明公開了一種云環(huán)境下基于預(yù)分片的遙感影像數(shù)據(jù)并行重采樣方法。步驟如下:1)將目標(biāo)影像數(shù)據(jù)上傳至云平臺(tái)HDFS分布式文件系統(tǒng)上;2)對(duì)影像數(shù)據(jù)進(jìn)行預(yù)分片處理,使之按照規(guī)則格網(wǎng)進(jìn)行劃分;3)將每一個(gè)預(yù)分片后的影像塊作為一個(gè)單獨(dú)的影像分片;4)每個(gè)影像分片啟用一個(gè)map并行任務(wù),在不同集群節(jié)點(diǎn)上進(jìn)行并行處理,對(duì)原始影像分片逐層重采樣;5)按照影像層級(jí)進(jìn)行歸并,對(duì)每一個(gè)層級(jí)的影像分片集合,進(jìn)行拼接歸并;6)將歸并后的各分辨率層級(jí)影像數(shù)據(jù)輸出到HDFS上。本發(fā)明不僅適用于影像數(shù)據(jù)的重采樣,也適用于其他數(shù)據(jù)可劃分的影像數(shù)據(jù)并行處理領(lǐng)域,是遙感數(shù)據(jù)云計(jì)算服務(wù)的關(guān)鍵?!緦@f明】云環(huán)境下基于預(yù)分片的遙感影像數(shù)據(jù)并行重采樣方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及云計(jì)算、地理信息系統(tǒng)和遙感影像數(shù)據(jù)處理領(lǐng)域,尤其涉及一種云環(huán)境下基于預(yù)分片的遙感影像數(shù)據(jù)并行重采樣方法。【
背景技術(shù):
】[0002]為了對(duì)大型高分辨率遙感影像數(shù)據(jù)進(jìn)行分層分塊組織,建立具有多分辨率層級(jí)的影像金字塔,使客戶端能夠直接請(qǐng)求目標(biāo)分辨率層級(jí)、目標(biāo)區(qū)域的影像數(shù)據(jù)塊,原始影像數(shù)據(jù)須經(jīng)過重采樣,從而獲得低一級(jí)分辨率的影像數(shù)據(jù)。[0003]在影像數(shù)據(jù)處理過程中,盡管許多操作最終是對(duì)某個(gè)像素進(jìn)行處理,但處理過程中通常需要考慮影像鄰接的像素點(diǎn)。然而在云計(jì)算環(huán)境下,MapReduce并行計(jì)算框架使用流式數(shù)據(jù)讀取方式,在默認(rèn)情況下,對(duì)數(shù)據(jù)進(jìn)行分片讀取的方式如圖2所示,這種方式忽略了像素之間原有的空間關(guān)系,難以用以需要考慮緊鄰像素的遙感影像處理領(lǐng)域?!?br/>發(fā)明內(nèi)容】[0004]本發(fā)明的目的是克服現(xiàn)有技術(shù)的不足,提供一種云環(huán)境下基于預(yù)分片的遙感影像數(shù)據(jù)并行重采樣方法。[0005]云環(huán)境下基于預(yù)分片的遙感影像數(shù)據(jù)并行重采樣方法包括如下步驟:(1)目標(biāo)影像數(shù)據(jù)上傳在并行重采樣之前,客戶端通過調(diào)用Hadoop的JavaAPI,將待處理的遙感影像數(shù)據(jù)寫入云存儲(chǔ)的分布式文件系統(tǒng)HDFS集群上,以便通過MapReduce并行計(jì)算框架進(jìn)行處理;(2)影像數(shù)據(jù)預(yù)分片為提供適合影像數(shù)據(jù)并行計(jì)算的數(shù)據(jù)輸入策略,使影像數(shù)據(jù)在分片時(shí)能夠保持像素間原有空間位置關(guān)系,將步驟(1)中上傳至HDFS集群上的目標(biāo)影像數(shù)據(jù)按照規(guī)則格網(wǎng)方式進(jìn)行分塊,并將這些分塊寫回HDFS集群上;(3)影像數(shù)據(jù)輸入通過MapReduce框架讀取步驟(2)中生成的預(yù)分片影像塊,將各影像塊作為一個(gè)獨(dú)立的分片ImageSplit進(jìn)行輸入,記錄影像塊的層級(jí)號(hào)和行列位置,其中原始影像的層級(jí)號(hào)為O,同時(shí),禁止MapReduce框架進(jìn)一步對(duì)其進(jìn)行再次分塊和分記錄,從而使每個(gè)影像塊作為一個(gè)單獨(dú)的影像分片進(jìn)行處理;(4)并行重采樣通過MapReduce框架為步驟(3)中的每一個(gè)影像分片ImageSplite創(chuàng)建單獨(dú)的重采樣map任務(wù),這些map任務(wù)并行運(yùn)行在集群各節(jié)點(diǎn)上,分別對(duì)相應(yīng)的影像分片進(jìn)行重采樣處理,生成了不同層級(jí)的影像分片,并以層級(jí)號(hào)和行列號(hào)進(jìn)行唯一標(biāo)識(shí);(5)影像數(shù)據(jù)歸并通過MapReduce框架為每一個(gè)層級(jí)的影像數(shù)據(jù)創(chuàng)建一個(gè)單獨(dú)的reduce任務(wù),這些reduce任務(wù)并行運(yùn)行在集群各節(jié)點(diǎn)上,將擁有相同層級(jí)號(hào)的影像分片分配到對(duì)應(yīng)層級(jí)號(hào)的reduce任務(wù)進(jìn)行歸并處理,歸并后的各層影像分片通過層級(jí)號(hào)進(jìn)行標(biāo)識(shí);(6)影像數(shù)據(jù)輸出階段根據(jù)不同分辨率層級(jí)號(hào),對(duì)步驟(5)中歸并后的影像數(shù)據(jù)根據(jù)目標(biāo)格式進(jìn)行逐層輸出,并寫入分布式文件系統(tǒng)HDFS上,從而完成影像數(shù)據(jù)并行重采樣的結(jié)果輸出;所述的步驟(3)包括設(shè)計(jì)ImageFileInputFormat類和ImageRecordReader類;ImageFileInputFormat類繼承于FileInputFormat類,通過該類控制已經(jīng)過預(yù)分片的影像塊不再繼續(xù)分片,每個(gè)影像塊作為一個(gè)單獨(dú)的影像分片進(jìn)行輸入;ImageRecordReader類,繼承于RecordReader類,通過該類實(shí)現(xiàn)每個(gè)影像分片作為一個(gè)單獨(dú)的記錄進(jìn)行處理;設(shè)計(jì)ImageBlockffritable類實(shí)現(xiàn)對(duì)影像分片的封裝,包含了影像塊二進(jìn)制流、行列位置和層級(jí)號(hào),便以通過MapReduce程序進(jìn)行處理。[0006]所述的步驟(4)包括為重采樣任務(wù)定義了ResaMapper類,繼承于Mapper類,在mapO方法中,加載原始影像分片,即第O級(jí)影像分片,并進(jìn)行循環(huán)重采樣,生成各層級(jí)影像數(shù)據(jù)分片;在進(jìn)行每一層級(jí)重采樣之后,對(duì)影像分片按照〈IntWritable,ImageBlockffritable)鍵值對(duì)方式進(jìn)行輸出,供下一步繼續(xù)處理,其中IntWritable為層級(jí)號(hào),ImageBlockffritable為可序列化影像數(shù)據(jù)塊。[0007]所述的步驟(5)包括為影像分片的歸并設(shè)計(jì)ResaReducer類,繼承于Reducer類,用于實(shí)現(xiàn)影像數(shù)據(jù)歸并reduce任務(wù);在進(jìn)行歸并處理時(shí),相同層級(jí)的影像分片根據(jù)層級(jí)號(hào)被分配到同一個(gè)ResaReducer進(jìn)行出,通過reduceO方法完成所在分辨率層級(jí)所有影像分片的拼接;不同分辨率層級(jí)的影像歸并reduce任務(wù)被分配到不同節(jié)點(diǎn)上執(zhí)行,從而并行生成各層級(jí)拼接后的影像數(shù)據(jù),并通過層級(jí)號(hào)進(jìn)行標(biāo)識(shí)。[0008]所述的步驟(6)包括為實(shí)現(xiàn)影像數(shù)據(jù)的輸出設(shè)計(jì)ImageOutputFormat類和ImageRecordWriter類,ImageOutputFormat類繼承于FileOutputFormat類,用于控制數(shù)據(jù)輸出格式,ImageRecordWriter類繼承于RecordWriter類,通過writeO方法實(shí)現(xiàn)各層影像〈IntWritable,Bytesffritable>鍵值對(duì)的文件文件輸出,其中IntWritable為層級(jí)號(hào),Bytesffritable為該層級(jí)拼接后的影像數(shù)據(jù)二進(jìn)制流。[0009]本發(fā)明與現(xiàn)有技術(shù)相比具有的有益效果:(1)實(shí)現(xiàn)了云計(jì)算環(huán)境下遙感影像數(shù)據(jù)的并行重采樣,與傳統(tǒng)重采樣方法相比,大大提高了重采樣的效率;(2)能夠?qū)⒃朴?jì)算的高性能計(jì)算能力用于遙感影像數(shù)據(jù)的并行處理,促進(jìn)了云計(jì)算技術(shù)與遙感影像數(shù)據(jù)存儲(chǔ)和處理技術(shù)的結(jié)合,為遙感數(shù)據(jù)云服務(wù)提供技術(shù)基礎(chǔ)?!緦@綀D】【附圖說明】[0010]圖1是本發(fā)明的MapReduce中影像預(yù)分片方式;圖2是本發(fā)明的MapReduce中影像默認(rèn)分片方式;圖3是本發(fā)明的影像塊可序列化類(ImageBlockWritable)定義?!揪唧w實(shí)施方式】[0011]云環(huán)境下基于預(yù)分片的遙感影像數(shù)據(jù)并行重采樣方法包括如下步驟:(I)目標(biāo)影像數(shù)據(jù)上傳在并行重采樣之前,客戶端通過調(diào)用Hadoop的JavaAPI,將待處理的遙感影像數(shù)據(jù)寫入云存儲(chǔ)的分布式文件系統(tǒng)HDFS集群上,以便通過MapReduce并行計(jì)算框架進(jìn)行處理;(2)影像數(shù)據(jù)預(yù)分片為提供適合影像數(shù)據(jù)并行計(jì)算的數(shù)據(jù)輸入策略,使影像數(shù)據(jù)在分片時(shí)能夠保持像素間原有空間位置關(guān)系,將步驟(I)中上傳至HDFS集群上的目標(biāo)影像數(shù)據(jù)按照規(guī)則格網(wǎng)方式進(jìn)行分塊,并將這些分塊寫回HDFS集群上;(3)影像數(shù)據(jù)輸入通過MapReduce框架讀取步驟(2)中生成的預(yù)分片影像塊,將各影像塊作為一個(gè)獨(dú)立的分片ImageSplit進(jìn)行輸入,記錄影像塊的層級(jí)號(hào)和行列位置,其中原始影像的層級(jí)號(hào)為O,同時(shí),禁止MapReduce框架進(jìn)一步對(duì)其進(jìn)行再次分塊和分記錄,從而使每個(gè)影像塊作為一個(gè)單獨(dú)的影像分片進(jìn)行處理;(4)并行重采樣通過MapReduce框架為步驟(3)中的每一個(gè)影像分片ImageSplite創(chuàng)建單獨(dú)的重采樣map任務(wù),這些map任務(wù)并行運(yùn)行在集群各節(jié)點(diǎn)上,分別對(duì)相應(yīng)的影像分片進(jìn)行重采樣處理,生成了不同層級(jí)的影像分片,并以層級(jí)號(hào)和行列號(hào)進(jìn)行唯一標(biāo)識(shí);(5)影像數(shù)據(jù)歸并通過MapReduce框架為每一個(gè)層級(jí)的影像數(shù)據(jù)創(chuàng)建一個(gè)單獨(dú)的reduce任務(wù),這些reduce任務(wù)并行運(yùn)行在集群各節(jié)點(diǎn)上,將擁有相同層級(jí)號(hào)的影像分片分配到對(duì)應(yīng)層級(jí)號(hào)的reduce任務(wù)進(jìn)行歸并處理,歸并后的各層影像分片通過層級(jí)號(hào)進(jìn)行標(biāo)識(shí);(6)影像數(shù)據(jù)輸出階段根據(jù)不同分辨率層級(jí)號(hào),對(duì)步驟(5)中歸并后的影像數(shù)據(jù)根據(jù)目標(biāo)格式進(jìn)行逐層輸出,并寫入分布式文件系統(tǒng)HDFS上,從而完成影像數(shù)據(jù)并行重采樣的結(jié)果輸出;所述的步驟(3)包括設(shè)計(jì)ImageFileInputFormat類和ImageRecordReader類;ImageFileInputFormat類繼承于FileInputFormat類,通過該類控制已經(jīng)過預(yù)分片的影像塊不再繼續(xù)分片,每個(gè)影像塊作為一個(gè)單獨(dú)的影像分片進(jìn)行輸入;ImageRecordReader類,繼承于RecordReader類,通過該類實(shí)現(xiàn)每個(gè)影像分片作為一個(gè)單獨(dú)的記錄進(jìn)行處理;設(shè)計(jì)ImageBlockffritable類實(shí)現(xiàn)對(duì)影像分片的封裝,包含了影像塊二進(jìn)制流、行列位置和層級(jí)號(hào),便以通過MapReduce程序進(jìn)行處理。[0012]所述的步驟(4)包括為重采樣任務(wù)定義了ResaMapper類,繼承于Mapper類,在mapO方法中,加載原始影像分片,即第O級(jí)影像分片,并進(jìn)行循環(huán)重采樣,生成各層級(jí)影像數(shù)據(jù)分片;在進(jìn)行每一層級(jí)重采樣之后,對(duì)影像分片按照〈IntWritable,ImageBlockffritable)鍵值對(duì)方式進(jìn)行輸出,供下一步繼續(xù)處理,其中IntWritable為層級(jí)號(hào),ImageBlockffritable為可序列化影像數(shù)據(jù)塊。[0013]所述的步驟(5)包括為影像分片的歸并設(shè)計(jì)ResaReducer類,繼承于Reducer類,用于實(shí)現(xiàn)影像數(shù)據(jù)歸并reduce任務(wù);在進(jìn)行歸并處理時(shí),相同層級(jí)的影像分片根據(jù)層級(jí)號(hào)被分配到同一個(gè)ResaReducer進(jìn)行出,通過reduceO方法完成所在分辨率層級(jí)所有影像分片的拼接;不同分辨率層級(jí)的影像歸并reduce任務(wù)被分配到不同節(jié)點(diǎn)上執(zhí)行,從而并行生成各層級(jí)拼接后的影像數(shù)據(jù),并通過層級(jí)號(hào)進(jìn)行標(biāo)識(shí)。[0014]所述的步驟(6)包括為實(shí)現(xiàn)影像數(shù)據(jù)的輸出設(shè)計(jì)ImageOutputFormat類和ImageRecordWriter類,ImageOutputFormat類繼承于FileOutputFormat類,用于控制數(shù)據(jù)輸出格式,ImageRecordWriter類繼承于RecordWriter類,通過writeO方法實(shí)現(xiàn)各層影像〈IntWritable,BytesWritable〉鍵值對(duì)的文件文件輸出,其中IntWritable為層級(jí)號(hào),Bytesffritable為該層級(jí)拼接后的影像數(shù)據(jù)二進(jìn)制流。[0015]實(shí)施例:本實(shí)施例在開源云計(jì)算基礎(chǔ)架構(gòu)Hadoop上進(jìn)行實(shí)現(xiàn),其實(shí)施步驟如下:(O目標(biāo)影像數(shù)據(jù)上傳云環(huán)境下的遙感影像數(shù)據(jù)并行重采樣是在集群環(huán)境下,應(yīng)用MapReduce并行計(jì)算框架對(duì)影像數(shù)據(jù)進(jìn)行并行處理,因此在重采樣之前,用戶需要將目標(biāo)影像數(shù)據(jù)上傳至云平臺(tái)的HDFS集群上以進(jìn)一步處理。[0016](2)影像數(shù)據(jù)預(yù)分片本步驟是為了提供一種適合影像數(shù)據(jù)并行計(jì)算的數(shù)據(jù)輸入策略,使影像數(shù)據(jù)在分片時(shí)能夠保持其原有空間位置關(guān)系。如圖1所示,將HDFS集群上的目標(biāo)影像數(shù)據(jù)按照規(guī)則格網(wǎng)進(jìn)行適當(dāng)?shù)胤謮K,并寫回HDFS上,供MapReduce并行計(jì)算程序進(jìn)一步處理。[0017](3)影像數(shù)據(jù)輸入在本步驟中,MapReduce框架讀取上一步驟中生成的預(yù)分片影像塊,并將各影像塊作為一個(gè)獨(dú)立的分片(ImageSplit)進(jìn)行輸入,同時(shí)禁止MapReduce框架進(jìn)一步對(duì)其進(jìn)行再次分塊和分記錄。從而,每個(gè)影像塊作為一個(gè)單獨(dú)的影像分片進(jìn)行處理。[0018]由于影像的處理通常是需要考慮近鄰像素,該步驟避免了MapReduce默認(rèn)影像數(shù)據(jù)分塊方式(如圖2所示)導(dǎo)致的影像像素之間位置關(guān)系的破壞。[0019]為支持影像塊的輸入,設(shè)計(jì)ImageFileInputFormat類(繼承于FileInputFormat類)和ImageRecordReader類(繼承于RecordReader類)。其中,ImageFileInputFormat類用于控制影像的分片,通過該類控制已經(jīng)過預(yù)分片的影像塊不再繼續(xù)分片。在影像塊的讀取時(shí),影像塊的文件名格式應(yīng)采用行列位置自述形式,即每個(gè)文件名本身可以表明該影像塊的位置,如“row-column”形式,讀取之后由ImageRecordReader進(jìn)行解析,并寫入ImageBlockWritable。其中ImageBlockWritable類是本專利設(shè)計(jì)的可序列化的影像數(shù)據(jù)塊類,其定義如圖3所示。[0020](4)并行重采樣階段在本步驟中,MapReduce框架為每個(gè)影像分片ImageSplite各創(chuàng)建一個(gè)對(duì)應(yīng)的map任務(wù),這些map任務(wù)并行運(yùn)行在集群各節(jié)點(diǎn)上,分別對(duì)相應(yīng)的影像分片進(jìn)行重采樣處理,同時(shí)對(duì)本存儲(chǔ)節(jié)點(diǎn)數(shù)據(jù)進(jìn)行優(yōu)先處理,從而實(shí)現(xiàn)以移動(dòng)計(jì)算來代替移動(dòng)數(shù)據(jù)。[0021]為實(shí)現(xiàn)上述功能,需要為重采樣任務(wù)定義ResaMapper類(繼承于Mapper類),在ResaMapper類的mapO方法中,加載了原始影像數(shù)據(jù)塊(第O級(jí)),對(duì)各層級(jí)進(jìn)行循環(huán)重采樣。在每一層級(jí)重米樣之后,對(duì)影像塊按照〈IntWritable,ImageBlockWritable>鍵值對(duì)方式進(jìn)行輸出。其中IntWritable為層級(jí)號(hào),ImageBlockWritable為可序列化影像數(shù)據(jù)塊。[0022](5)影像數(shù)據(jù)歸并階段在影像數(shù)據(jù)的歸并階段中,MapReduce框架通過reduceO方法合并同一層級(jí)的影像數(shù)據(jù)塊。本專利設(shè)計(jì)ResaReducer類(繼承于Reducer類)對(duì)影像塊ImageBlockWritable進(jìn)行歸并(實(shí)現(xiàn)影像塊的拼接處理)。[0023]在本步驟中,將相同層級(jí)的影像塊根據(jù)層級(jí)號(hào)被分配到同一個(gè)ResaReducer進(jìn)行合并。由于多個(gè)ResaReducer在集群上不同節(jié)點(diǎn)并行執(zhí)行,因此在該階段根據(jù)需要也可以實(shí)現(xiàn)影像數(shù)據(jù)的并行入庫。[0024](6)影像數(shù)據(jù)輸出階段該階段控制輸出格式,并對(duì)各層歸并后的影像〈IntWritable,BytesWritable〉鍵值對(duì)進(jìn)行輸出,其中IntWritable為層級(jí)號(hào),BytesWritable為該層重新拼接后的影像數(shù)據(jù)二進(jìn)制流。本專利設(shè)計(jì)ImageOutputFormat類(繼承于FileOutputFormat類)和ImageRecordffriter類(繼承于RecordWriter類)來實(shí)現(xiàn)影像數(shù)據(jù)的輸出。[0025]通過以上步驟可實(shí)現(xiàn)基于MapReduce的遙感影像高效并行重采樣。同時(shí),該處理流程不僅適用于影像數(shù)據(jù)的重采樣,也適用于其他數(shù)據(jù)可劃分的影像數(shù)據(jù)并行處理領(lǐng)域,是遙感數(shù)據(jù)云計(jì)算服務(wù)的技術(shù)基礎(chǔ)?!緳?quán)利要求】1.云環(huán)境下基于預(yù)分片的遙感影像數(shù)據(jù)并行重采樣方法,其特征在于包括如下步驟:(1)目標(biāo)影像數(shù)據(jù)上傳在并行重采樣之前,客戶端通過調(diào)用Hadoop的JavaAPI,將待處理的遙感影像數(shù)據(jù)寫入云存儲(chǔ)的分布式文件系統(tǒng)HDFS集群上,以便通過MapReduce并行計(jì)算框架進(jìn)行處理;(2)影像數(shù)據(jù)預(yù)分片為提供適合影像數(shù)據(jù)并行計(jì)算的數(shù)據(jù)輸入策略,使影像數(shù)據(jù)在分片時(shí)能夠保持像素間原有空間位置關(guān)系,將步驟(1)中上傳至HDFS集群上的目標(biāo)影像數(shù)據(jù)按照規(guī)則格網(wǎng)方式進(jìn)行分塊,并將這些分塊寫回HDFS集群上;(3)影像數(shù)據(jù)輸入通過MapReduce框架讀取步驟(2)中生成的預(yù)分片影像塊,將各影像塊作為一個(gè)獨(dú)立的分片ImageSplit進(jìn)行輸入,記錄影像塊的層級(jí)號(hào)和行列位置,其中原始影像的層級(jí)號(hào)為O,同時(shí),禁止MapReduce框架進(jìn)一步對(duì)其進(jìn)行再次分塊和分記錄,從而使每個(gè)影像塊作為一個(gè)單獨(dú)的影像分片進(jìn)行處理;(4)并行重采樣通過MapReduce框架為步驟(3)中的每一個(gè)影像分片ImageSplite創(chuàng)建單獨(dú)的重采樣map任務(wù),這些map任務(wù)并行運(yùn)行在集群各節(jié)點(diǎn)上,分別對(duì)相應(yīng)的影像分片進(jìn)行重采樣處理,生成了不同層級(jí)的影像分片,并以層級(jí)號(hào)和行列號(hào)進(jìn)行唯一標(biāo)識(shí);(5)影像數(shù)據(jù)歸并通過MapReduce框架為每一個(gè)層級(jí)的影像數(shù)據(jù)創(chuàng)建一個(gè)單獨(dú)的reduce任務(wù),這些reduce任務(wù)并行運(yùn)行在集群各節(jié)點(diǎn)上,將擁有相同層級(jí)號(hào)的影像分片分配到對(duì)應(yīng)層級(jí)號(hào)的reduce任務(wù)進(jìn)行歸并處理,歸并后的各層影像分片通過層級(jí)號(hào)進(jìn)行標(biāo)識(shí);(6)影像數(shù)據(jù)輸出階段根據(jù)不同分辨率層級(jí)號(hào),對(duì)步驟(5)中歸并后的影像數(shù)據(jù)根據(jù)目標(biāo)格式進(jìn)行逐層輸出,并寫入分布式文件系統(tǒng)HDFS上,從而完成影像數(shù)據(jù)并行重采樣的結(jié)果輸出。2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述的步驟(3)包括設(shè)計(jì)ImageFileInputFormat類和ImageRecordReader類;ImageFiIeInputFormat類繼7承于FileInputFormat類,通過該類控制已經(jīng)過預(yù)分片的影像塊不再繼續(xù)分片,每個(gè)影像塊作為一個(gè)單獨(dú)的影像分片進(jìn)行輸入;ImageRecordReader類,繼承于RecordReader類,通過該類實(shí)現(xiàn)每個(gè)影像分片作為一個(gè)單獨(dú)的記錄進(jìn)行處理;設(shè)計(jì)ImageBlockWritable類實(shí)現(xiàn)對(duì)影像分片的封裝,包含了影像塊二進(jìn)制流、行列位置和層級(jí)號(hào),便以通過MapReduce程序進(jìn)行處理。3.根據(jù)權(quán)利要求1所述的方法,其特征在于所述的步驟(4)包括為重采樣任務(wù)定義了ResaMapper類,繼承于Mapper類,在mapO方法中,加載原始影像分片,即第O級(jí)影像分片,并進(jìn)行循環(huán)重采樣,生成各層級(jí)影像數(shù)據(jù)分片;在進(jìn)行每一層級(jí)重采樣之后,對(duì)影像分片按照〈IntWritable,ImageBlockffritable)鍵值對(duì)方式進(jìn)行輸出,供下一步繼續(xù)處理,其中Intffritable為層級(jí)號(hào),ImageBlockffritable為可序列化影像數(shù)據(jù)塊。4.根據(jù)權(quán)利要求1所述的方法,其特征在于所述的步驟(5)包括為影像分片的歸并設(shè)計(jì)ResaReducer類,繼承于Reducer類,用于實(shí)現(xiàn)影像數(shù)據(jù)歸并reduce任務(wù);在進(jìn)行歸并處理時(shí),相同層級(jí)的影像分片根據(jù)層級(jí)號(hào)被分配到同一個(gè)ResaReducer進(jìn)行出,通SreduceO方法完成所在分辨率層級(jí)所有影像分片的拼接;不同分辨率層級(jí)的影像歸并reduce任務(wù)被分配到不同節(jié)點(diǎn)上執(zhí)行,從而并行生成各層級(jí)拼接后的影像數(shù)據(jù),并通過層級(jí)號(hào)進(jìn)行標(biāo)識(shí)。5.根據(jù)權(quán)利要求1所述的方法,其特征在于所述的步驟(6)包括為實(shí)現(xiàn)影像數(shù)據(jù)的輸出設(shè)計(jì)ImageOutputFormat類和ImageRecordWriter類,ImageOutputFormat類繼承于FileOutputFormat類,用于控制數(shù)據(jù)輸出格式,ImageRecordWriter類繼承于RecordWriter類,通過writeO方法實(shí)現(xiàn)各層影像〈IntWritable,BytesWritable>鍵值對(duì)的文件文件輸出,其中IntWritable為層級(jí)號(hào),BytesWritable為該層級(jí)拼接后的影像數(shù)據(jù)二進(jìn)制流。【文檔編號(hào)】G06F9/44GK103809969SQ201410017598【公開日】2014年5月21日申請(qǐng)日期:2014年1月15日優(yōu)先權(quán)日:2014年1月15日【發(fā)明者】王國(guó)鋒,李建成,池子文,杜震洪,張豐,劉仁義申請(qǐng)人:中國(guó)公路工程咨詢集團(tuán)有限公司,浙江大學(xué)