袁 帥,鄭逢斌
(河南大學(xué)計(jì)算機(jī)與信息工程學(xué)院,河南 開(kāi)封 475004)
地球表面溫度LST(Land surface temperature)是指,全球的陸地表層系統(tǒng)和水體表層系統(tǒng)與大氣之間相互作用,能量交換的臨界層的溫度。地球表面溫度是當(dāng)前人類(lèi)生活圈中一項(xiàng)非常重要的指標(biāo)參數(shù)。該參數(shù)在研究全球氣候變化(如溫室效應(yīng)),全球植被的生長(zhǎng)(如NDVI,PVI的分析),自然資源的生成和消亡(如非洲動(dòng)物的大遷徙),人類(lèi)的生活、生產(chǎn)和生存(如農(nóng)田溫度對(duì)水汽蒸發(fā)的影響)條件時(shí),具有很高的意義和價(jià)值[1]。
研究表明,通過(guò)常規(guī)的地表觀測(cè)或多地點(diǎn)的定點(diǎn)采樣等一系列方法,都不能很好地適用于地表溫度復(fù)雜多變的模型中去,進(jìn)而發(fā)現(xiàn)只有通過(guò)衛(wèi)星遙感技術(shù),才是目前惟一的解決方式[2]。遙感反演本身既是計(jì)算密集型,同時(shí)又是數(shù)據(jù)密集型的科學(xué)應(yīng)用[3],隨著我國(guó)空間技術(shù)的發(fā)展,遙感信息的數(shù)據(jù)量也呈現(xiàn)出爆炸式增長(zhǎng),海量的遙感數(shù)據(jù)也對(duì)計(jì)算能力和存儲(chǔ)環(huán)境提出了新的要求?;谖覈?guó)自主衛(wèi)星的條件和優(yōu)勢(shì),在海量的遙感數(shù)據(jù)中更高效地處理和提取出地表溫度值,就成了需要面臨的問(wèn)題。
針對(duì)上面的問(wèn)題,本系統(tǒng)使用了并行計(jì)算和HDFS技術(shù)來(lái)對(duì)大量基于五層十五級(jí)理論的數(shù)據(jù)進(jìn)行處理和存儲(chǔ),應(yīng)用Hadoop提供的分布式集群框架來(lái)形成一個(gè)大數(shù)據(jù)開(kāi)發(fā)計(jì)算平臺(tái)。其可以提供在特定時(shí)間內(nèi)特定區(qū)域的地表溫度值的遙感數(shù)據(jù)分布情況的查看統(tǒng)計(jì)等功能。
該系統(tǒng)的總體架構(gòu)以大數(shù)據(jù)的云計(jì)算框架作為思路,根據(jù)生產(chǎn)流程,相應(yīng)的劃分為客戶(hù)端,信息傳遞層,平臺(tái)層,數(shù)據(jù)存儲(chǔ)層。系統(tǒng)的總體設(shè)計(jì)思路如圖1所示。
圖1 系統(tǒng)總體設(shè)計(jì)圖
⑴ 用戶(hù)交互層
用于可視化和處理用戶(hù)需求,也使得用戶(hù)對(duì)系統(tǒng)流程和本身進(jìn)度有一個(gè)清晰的認(rèn)識(shí),可根據(jù)用戶(hù)自身需求來(lái)進(jìn)行相應(yīng)設(shè)計(jì)和調(diào)整。
⑵ 信息傳遞層
把用戶(hù)的需求做成訂單,傳遞給平臺(tái)層,并傳遞平臺(tái)層的運(yùn)行進(jìn)度情況和最終的遙感處理數(shù)據(jù),以便于用戶(hù)進(jìn)行可視化操作,所有的信息都會(huì)用生成簡(jiǎn)報(bào)訂單的方式在交互層和平臺(tái)層之間傳遞。
⑶ 平臺(tái)層
這一層級(jí)是整個(gè)系統(tǒng)的核心,提供對(duì)遙感數(shù)據(jù)處理的核心服務(wù)與管理,衛(wèi)星原始輸入的數(shù)據(jù)放入磁盤(pán)陣列之后,通過(guò)相應(yīng)流程得到溫度反演產(chǎn)品。此流程進(jìn)行MapReduce并行化處理,用來(lái)縮短需要處理海量數(shù)據(jù)的時(shí)間,從而獲得更高的效率。Map階段根據(jù)實(shí)際需求,用并行的方式對(duì)磁盤(pán)陣列中的遙感原始數(shù)據(jù)進(jìn)行采樣,得到發(fā)射率文件并生產(chǎn)星上亮溫產(chǎn)品和大氣水汽產(chǎn)品,最終得到溫度反演產(chǎn)品。Reduce階段則是對(duì)Map階段的產(chǎn)品碎片進(jìn)行拼接處理和規(guī)約統(tǒng)計(jì),使用戶(hù)可以方便的查看地表溫度數(shù)值在特定區(qū)域的分布情況。
⑷ 數(shù)據(jù)存儲(chǔ)層
這一層級(jí)是存儲(chǔ)數(shù)據(jù)的硬件層,其有兩個(gè)功能:數(shù)據(jù)信息的存儲(chǔ)和查詢(xún)。
鑒于遙感數(shù)據(jù)是非常寶貴的資源,為了防止硬件故障或存儲(chǔ)環(huán)境問(wèn)題,導(dǎo)致遙感數(shù)據(jù)的丟失,本系統(tǒng)采用了HDFS數(shù)據(jù)塊多副本存儲(chǔ)設(shè)計(jì),由于每個(gè)數(shù)據(jù)塊都進(jìn)行了多副本存儲(chǔ),最大程度的保證遙感數(shù)據(jù)的完整性。①文件分塊來(lái)進(jìn)行讀寫(xiě)提高了文件隨機(jī)讀取的效率。②保存切分的數(shù)據(jù)塊副本不但分?jǐn)偭藬?shù)據(jù)存儲(chǔ)的風(fēng)險(xiǎn),而且由于可以并發(fā)讀取提高了效率。③遙感數(shù)據(jù)進(jìn)行切分后,不但契合于MapReduce并發(fā)技術(shù),而且契合了HDFS的策略思想,可以很好的實(shí)現(xiàn)高性能和高可靠性的珍貴遙感數(shù)據(jù)存儲(chǔ)數(shù)據(jù)。本層的PC機(jī)硬件集群中都會(huì)采用HDFS多副本存放策略,數(shù)據(jù)分塊會(huì)采用HDFS策略的默認(rèn)大小,讀寫(xiě)數(shù)據(jù)塊都通過(guò)其本身的NameNode節(jié)點(diǎn)進(jìn)行遙感數(shù)據(jù)的管理。
本系統(tǒng)采用的地表溫度反演產(chǎn)品生產(chǎn)的總體算法結(jié)構(gòu)如圖2所示。
圖2 反演過(guò)程圖
本系統(tǒng)中,星上溫度計(jì)算運(yùn)用了普朗克公式:
其中,Mλ(T)的單位為W·m-2·μm-1;Bλ(T)的單位為W·m-2·μm-1·Sr-1。
傳感器收到的輻射亮度可以由以下公式作為表達(dá):
其中,Tb是衛(wèi)星上的亮度溫度(K);Ts是地表溫度(K);I↓和I↑分別表示大氣下行和上行輻射;T和ε分別為大氣透過(guò)率和地表發(fā)射率
由公式⑵可進(jìn)行繼續(xù)推導(dǎo),從而得到單窗算法方程:
其中,Ta是大氣平均作用溫度(K),Tb、Ts意義同上;a、b為常數(shù);C=ε*T;D=(1-T)[1+(1-ε)T]。
當(dāng)我們假定地表為朗伯體時(shí),可求表觀反射率ρ,如下:
其中,θ代表了太陽(yáng)入射天頂角;而波段內(nèi)的平均輻射照度用ESλ來(lái)表示;d為太陽(yáng)和地球之間的平均距離;Lλ則代表了衛(wèi)星傳感器的接受亮度。
本系統(tǒng)的算法是把大氣的影響因子放入方程中進(jìn)行演算,需要大體流程中需要三個(gè)參數(shù),可參考函數(shù)總體結(jié)構(gòu)圖大氣透過(guò)率,大氣水汽含量就對(duì)反演的精度影響較大,地表反演誤差一般為1.2K。而大氣水汽含量又由相對(duì)濕度和飽和水汽壓兩部分組成,其關(guān)系如圖3所示。
圖3 大氣柱含水量流程圖
在初始的遙感數(shù)據(jù)輸入階段中,根據(jù)原始數(shù)據(jù)量的大小,將按五層十五級(jí)標(biāo)準(zhǔn)切出來(lái)的瓦塊數(shù)據(jù)作為原始的衛(wèi)星遙感數(shù)據(jù)放入磁盤(pán)陣列做原始參數(shù)。由于瓦塊數(shù)據(jù)為衛(wèi)星遙感產(chǎn)品的.tif格式文件,為了更加方便進(jìn)行Hadoop操作,在輸入數(shù)據(jù)時(shí)先把圖像瓦塊數(shù)據(jù)轉(zhuǎn)換成txt格式,其文本信息按行、列進(jìn)行存儲(chǔ),每一行為一個(gè)記錄單位,其中劃分為{經(jīng)緯度、日期、溫度反演值內(nèi)容}字段信息,為了使鍵值信息中的Key-value的對(duì)應(yīng)關(guān)系更加準(zhǔn)確,在字段信息的外部把該記錄單位的起始位置與相對(duì)應(yīng)文件的起始位置的偏移進(jìn)行量化和記錄。然后使用MapReduce模型中的TextInputFormat并行程序類(lèi)把瓦塊數(shù)據(jù)集中的信息進(jìn)行文本文檔形式的輸入。
在Map階段,需要把初始輸入的單位原始衛(wèi)星數(shù)據(jù)計(jì)算轉(zhuǎn)化為地表溫度反演產(chǎn)品。這一過(guò)程主要包括從中提取出需要的反射率文件,通過(guò)近紅外比值法獲得大氣水汽數(shù)據(jù),再使用普朗克公式得到相應(yīng)的星上亮溫?cái)?shù)據(jù),最后通過(guò)單窗算法獲得地表溫度反演產(chǎn)品。如圖4所示(右側(cè)為Map階段中的流程)。
圖4 基于MapReduce的溫度反演產(chǎn)品生產(chǎn)流程圖
Map階段作為映射階段(如圖5),在初始單位數(shù)據(jù)進(jìn)入map階段后,根據(jù)應(yīng)用中的相應(yīng)需求,對(duì)map()函數(shù)進(jìn)行設(shè)計(jì),本系統(tǒng)的map()函數(shù)中的鍵值對(duì)信息分別包含為(地表溫度反演值,<經(jīng)度,緯度,日期>),并且對(duì)地表溫度反演所求的null值和0值進(jìn)行篩選過(guò)濾。其中間過(guò)程值如:反射率文件,星上亮溫?cái)?shù)據(jù)和大氣水汽數(shù)據(jù)所求的數(shù)值,也會(huì)按照對(duì)應(yīng)日期和標(biāo)準(zhǔn)寫(xiě)入環(huán)形內(nèi)存緩沖區(qū)(即磁盤(pán)陣列)中,以便后續(xù)在有需要的情況下進(jìn)行二次查詢(xún)。而所求得的地表溫度反演值則通過(guò)Partitioner類(lèi)中的get/set方法進(jìn)行分區(qū)的實(shí)現(xiàn),在不同的分區(qū)中每一個(gè)鍵值對(duì)應(yīng)一個(gè)結(jié)果值進(jìn)行排列(如:Key-LST值)。為了提升傳輸效率,本系統(tǒng)會(huì)在此階段增加組合器,即意味在這個(gè)階段就進(jìn)行簡(jiǎn)單的Reducer,利用combiner中的方法對(duì)需要的數(shù)據(jù)進(jìn)行規(guī)約,理想狀態(tài)下數(shù)據(jù)應(yīng)合并為以鍵值為依據(jù)用空格隔開(kāi)的形態(tài)(如:LST值,{<1經(jīng)度,1緯度,日期>,<2經(jīng)度,2緯度,日期>,<3經(jīng)度,3緯度,日期>,…})。其combiner狀態(tài)使用心跳周期的TaskTracker通過(guò)RPC協(xié)議匯報(bào)給JobTracker,再經(jīng)過(guò)調(diào)配,給相應(yīng)的計(jì)算節(jié)點(diǎn)分配不同的Task進(jìn)行Reducer階段運(yùn)算。
圖5 Map階段流程圖
Merge階段為Map階段得出的內(nèi)容,經(jīng)過(guò)經(jīng)緯度等有規(guī)則的排序合并,從而得出相應(yīng)遙感數(shù)據(jù)的過(guò)程。經(jīng)過(guò)排序合并后的數(shù)據(jù)則輸入到Reduce階段中進(jìn)行規(guī)約合并,而每個(gè)Reducer任務(wù)會(huì)根據(jù)Map階段中按鍵值進(jìn)行簡(jiǎn)單合并后的結(jié)果,利用哈希函數(shù)進(jìn)行按天數(shù)時(shí)間對(duì)應(yīng)關(guān)系的規(guī)約合并,這樣便可實(shí)現(xiàn)對(duì)特定需求時(shí)間內(nèi)的特定區(qū)域的LST值進(jìn)行統(tǒng)計(jì)和查詢(xún)。
HDFS階段則是Reducer中的每一個(gè)Reduce都是一個(gè)相應(yīng)的輸出文件。每一個(gè)Reduce任務(wù)規(guī)約合并完成,得到需要的產(chǎn)品后,隨即利用HDFS存儲(chǔ)策略存入數(shù)據(jù)存儲(chǔ)層的PC硬件中,如圖2所示。
最后,為了使用戶(hù)可以清晰而便捷的可視化到特定時(shí)間、一定區(qū)域反演的地表溫度產(chǎn)品,需要對(duì)生成的溫度反演產(chǎn)品的具體數(shù)值進(jìn)行統(tǒng)計(jì),根據(jù)統(tǒng)計(jì)出的數(shù)值利用普朗克公式的反函數(shù),根據(jù)輻射亮度求得地表真實(shí)溫度。按照反演流程規(guī)約的鍵值對(duì)應(yīng),即可查到用戶(hù)需求的特定時(shí)間和地點(diǎn)的地表溫度空間分布圖,其與高分衛(wèi)星的可見(jiàn)光波段進(jìn)行合成,就能得到更直觀的彩色衛(wèi)星圖。
本系統(tǒng)的實(shí)驗(yàn)數(shù)據(jù)使用“高分一號(hào)”衛(wèi)星京津冀地區(qū)2017年7~10月份原始數(shù)據(jù)約250GB。實(shí)驗(yàn)環(huán)境為Dell PowerEdgeM6348刀片服務(wù)器(八個(gè)刀片及外圍設(shè)備,中央處理器雙核、intelXeon E5),以及戴爾Precision T7810工作站,磁盤(pán)陣列200T。具體數(shù)據(jù)如表1所示。
表1 實(shí)驗(yàn)硬件數(shù)據(jù)表
八個(gè)刀片機(jī)設(shè)備之間的物理聯(lián)系圖和邏輯連接圖如圖6所示。
圖6 刀片機(jī)間的物理邏輯與連接圖
安裝JDK、Hadoop等必須的軟件環(huán)境,使用VMware虛擬機(jī),使用虛擬機(jī)將每臺(tái)刀片機(jī)虛擬為多臺(tái)機(jī)器,可以根據(jù)實(shí)驗(yàn)需要自由組成1、2、4、8、16、32節(jié)點(diǎn)的hadoop集群等,用以驗(yàn)證本系統(tǒng)的并行運(yùn)算是否具有高效性,其實(shí)驗(yàn)的時(shí)間結(jié)果如圖7所示。
圖7 不同節(jié)點(diǎn)數(shù)的產(chǎn)品生產(chǎn)時(shí)間對(duì)比
可以直觀的看出,用單一的生產(chǎn)節(jié)點(diǎn)運(yùn)算,需要時(shí)長(zhǎng)約76分鐘左右,而隨著集群節(jié)點(diǎn)數(shù)增長(zhǎng),對(duì)產(chǎn)品生產(chǎn)流程做并行處理后,生產(chǎn)時(shí)間非常顯著的降到了10分鐘左右。對(duì)比單機(jī)生產(chǎn)模式,本系統(tǒng)策略縮短了生產(chǎn)時(shí)間,在生產(chǎn)效率方面做出了大幅度的提升。
嘗試性的對(duì)海量遙感數(shù)據(jù)進(jìn)行地表溫度反演的生產(chǎn)處理,基于Hadoop平臺(tái)自身服務(wù)對(duì)節(jié)點(diǎn)數(shù)目沒(méi)有明顯限制的特性,可以方便的用不同節(jié)點(diǎn)數(shù)的集群來(lái)進(jìn)行測(cè)試,并使用HDFS副本存儲(chǔ)策略,進(jìn)行安全且高效的讀取存儲(chǔ),實(shí)現(xiàn)了對(duì)海量遙感數(shù)據(jù)進(jìn)行更高效的處理和存儲(chǔ)。
系統(tǒng)也有一定缺陷,如當(dāng)遙感數(shù)據(jù)量過(guò)小,本系統(tǒng)的并行處理因?yàn)樾枰嗷ラg信息的傳遞,反而沒(méi)有單機(jī)運(yùn)算的效率高;由于算法原因,遙感數(shù)據(jù)圖像中多云或氣溶膠影響較大時(shí),對(duì)地表溫度反演產(chǎn)品的精度有一定影響。
未來(lái)將進(jìn)一步規(guī)劃、研究和完善算法及流程,并將其擴(kuò)展到更多的遙感反演算法中去,實(shí)現(xiàn)遙感產(chǎn)品生產(chǎn)整體的高效化與應(yīng)用化。
參考文獻(xiàn)(References):
[1]朱貞榕,程朋根,桂新,騰月,童成卓.地表溫度反演的算法綜述[J].測(cè)繪與空間地理信息,2016.5.25.
[2]萬(wàn)偉,基于網(wǎng)格的高性能氣溶膠遙感定量反演研究[D].中國(guó)科學(xué)院遙感應(yīng)用研究所,2008.
[3]孟鵬,胡勇,鞏彩蘭,李志乾,栗琳.熱紅外遙感地表溫度反演研究現(xiàn)狀與發(fā)展趨勢(shì)[J].遙感信息,2012.
[4]潘巍,李戰(zhàn)懷.大數(shù)據(jù)環(huán)境下并行計(jì)算模型的研究進(jìn)展[J].華東師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2014.5:43-54