上官博屹,樂 鵬
(武漢大學(xué) 遙感信息工程學(xué)院,湖北 武漢 430079)
地理模型實(shí)時(shí)感知是指在地理模型中通過接入實(shí)時(shí)或者近實(shí)時(shí)觀測(cè)數(shù)據(jù),實(shí)現(xiàn)對(duì)現(xiàn)實(shí)世界的實(shí)時(shí)動(dòng)態(tài)過程模擬.城市內(nèi)澇災(zāi)害實(shí)時(shí)感知對(duì)于智慧城市、應(yīng)急響應(yīng)等有著重要的意義.通過融合傳感網(wǎng)技術(shù)、流計(jì)算技術(shù)、以及城市內(nèi)澇計(jì)算模型,有助于城市內(nèi)澇模型實(shí)時(shí)感知,為政府部門提供及時(shí)的信息決策支持.
傳感網(wǎng)(Sensor Web)技術(shù)將具有感知、計(jì)算以及通信能力的傳感器或是它們組成的傳感器網(wǎng)絡(luò)(Sensor Network)與Web技術(shù)結(jié)合,向外提供一系列標(biāo)準(zhǔn)訪問接口實(shí)現(xiàn)了傳感器資源的共享與互操作.傳感網(wǎng)的概念最早由NASA的噴氣推進(jìn)實(shí)驗(yàn)室在1999年提出,用以定義一種特殊的無限傳感器網(wǎng)絡(luò)架構(gòu)[1].2006年,開放地理信息聯(lián)盟(Open Geospatial Consortium, OGC)針對(duì)傳感網(wǎng)缺失統(tǒng)一標(biāo)準(zhǔn)的推廣應(yīng)用障礙,將其與面向服務(wù)的體系架構(gòu)(Service Oriented Architecture, SOA)相結(jié)合,通過制定一系列的傳感網(wǎng)服務(wù)規(guī)范和信息模型,推出了傳感網(wǎng)實(shí)現(xiàn)架構(gòu)(Sensor Web Enablement,SWE),為其資源共享和互操作提供了技術(shù)支撐[2-3].傳感網(wǎng)技術(shù)的發(fā)展使傳統(tǒng)的地理數(shù)據(jù)發(fā)現(xiàn)、獲取和處理發(fā)生了巨大變革,為實(shí)現(xiàn)地理模型實(shí)時(shí)感知奠定了基礎(chǔ).流計(jì)算(Stream Computing)技術(shù),即運(yùn)用一定手段實(shí)時(shí)或近實(shí)時(shí)地對(duì)流式數(shù)據(jù)進(jìn)行處理和分析,目前已經(jīng)成為了一種新的計(jì)算機(jī)數(shù)據(jù)處理范式[4].2008年,IBM在推出其開發(fā)的高性能流數(shù)據(jù)處理平臺(tái)"System S"時(shí)首次將流計(jì)算技術(shù)命名為"Stream Computing"而使其廣為人知[5].但在這之前許多關(guān)于"Stream Processing"的研究已經(jīng)在國(guó)內(nèi)外展開,如MIT等三所大學(xué)在2003年開始合作研究并推出了Aurora系統(tǒng),用于解決監(jiān)測(cè)應(yīng)用如環(huán)境監(jiān)測(cè)系統(tǒng)、監(jiān)視系統(tǒng)和跟蹤系統(tǒng)中數(shù)據(jù)流的實(shí)時(shí)處理問題[6].近年來,隨著流計(jì)算技術(shù)的發(fā)展,一系列開源的流計(jì)算系統(tǒng)被廣泛推廣和使用,如Yahoo于2010年開源了S4流計(jì)算系統(tǒng)[7],Twitter于2011年開源了Storm流計(jì)算系統(tǒng)[8],基于內(nèi)存的分布式處理平臺(tái)Apache Spark也于2013年推出了流計(jì)算模塊Spark Streaming[9].同時(shí)在地理信息領(lǐng)域,研究人員則更加強(qiáng)調(diào)了運(yùn)用流計(jì)算的方式對(duì)帶有地理空間信息的數(shù)據(jù)流進(jìn)行實(shí)時(shí)或近實(shí)時(shí)的處理和分析[10].由于傳感器觀測(cè)地理對(duì)象獲得的數(shù)據(jù)天生可以視作流式的,將傳感網(wǎng)與流計(jì)算系統(tǒng)進(jìn)行耦合,將傳感網(wǎng)觀測(cè)數(shù)據(jù)流引入地理流計(jì)算模型中進(jìn)行實(shí)時(shí)處理,可以有效地實(shí)現(xiàn)對(duì)現(xiàn)實(shí)地理事件的動(dòng)態(tài)過程模擬和實(shí)時(shí)感知.而要實(shí)現(xiàn)針對(duì)城市內(nèi)澇災(zāi)害的實(shí)時(shí)感知?jiǎng)t需要建立有效的城市內(nèi)澇災(zāi)害模型.現(xiàn)有的城市內(nèi)澇災(zāi)害模型一般基于經(jīng)驗(yàn)水文模型、數(shù)值模擬模型等.其中,經(jīng)驗(yàn)水文模型發(fā)展較早,它基于人類對(duì)水文的多年觀測(cè)經(jīng)驗(yàn),綜合考慮了各種有關(guān)因素.美國(guó)水土保持局開發(fā)的水土保持局曲線數(shù)值模型(Soil Conservation Service-Curve Number, SCSCN)就是一個(gè)典型的經(jīng)驗(yàn)水文模型,它雖然結(jié)構(gòu)簡(jiǎn)單但是能充分考慮下墊面特征,只需降雨量和地表參數(shù)即可較精確地計(jì)算出降雨產(chǎn)流量[11].而數(shù)值模擬模型相比于經(jīng)驗(yàn)水文模型能夠更好地表現(xiàn)內(nèi)澇的時(shí)空分布和動(dòng)態(tài)變化.劉小生等基于GIS空間分析法和水力學(xué)數(shù)值模擬法提出了GIS"體積法"模型,該模型根據(jù)水從高處往低處流的物理特性及降雨滯留量和淹沒水量體積相等的原理,利用數(shù)值高程模型(Digital Elevation Model,DEM)對(duì)洪澇淹沒范圍進(jìn)行計(jì)算[12].結(jié)合SCS-CN模型和GIS"體積法"模型可以有效地在流計(jì)算環(huán)境下基于傳感網(wǎng)降水量觀測(cè)數(shù)據(jù)和城市地表數(shù)據(jù)對(duì)城市內(nèi)澇災(zāi)害過程進(jìn)行動(dòng)態(tài)模擬.
本論文從實(shí)時(shí)數(shù)據(jù)計(jì)算與地理過程模型集成的角度出發(fā),針對(duì)流計(jì)算模型、系統(tǒng)耦合架構(gòu)等難點(diǎn),提出了基于開放標(biāo)準(zhǔn)的傳感網(wǎng)與流計(jì)算耦合架構(gòu)、實(shí)時(shí)內(nèi)澇信息流計(jì)算模型等方法,設(shè)計(jì)并實(shí)現(xiàn)了一種基于流計(jì)算的城市內(nèi)澇位置感知原型系統(tǒng).該系統(tǒng)以基于OGC SWE標(biāo)準(zhǔn)建立的傳感網(wǎng)作為數(shù)據(jù)獲取層、以O(shè)GC傳感器觀測(cè)服務(wù)(Sensor Observation Service, SOS)作為數(shù)據(jù)管理層、以Apache Kafka分布式消息發(fā)布/訂閱系統(tǒng)和流數(shù)據(jù)發(fā)布程序作為數(shù)據(jù)轉(zhuǎn)化層、以運(yùn)行在Apache Spark分布式處理集群上的城市內(nèi)澇流計(jì)算程序和相關(guān)數(shù)據(jù)庫作為數(shù)據(jù)處理層,具有良好的互操作性、實(shí)時(shí)性和容錯(cuò)性.
同時(shí),本論文通過實(shí)際搭建系統(tǒng)選擇實(shí)驗(yàn)區(qū)域進(jìn)行了相關(guān)實(shí)驗(yàn)和性能測(cè)試.該實(shí)驗(yàn)?zāi)M實(shí)驗(yàn)區(qū)域遭遇約為1 mm/min的大暴雨,對(duì)可能產(chǎn)生的內(nèi)澇災(zāi)害進(jìn)行了近實(shí)時(shí)的模擬監(jiān)測(cè).實(shí)驗(yàn)證明了該系統(tǒng)具有優(yōu)秀的可用性,同時(shí)性能測(cè)試表明該系統(tǒng)可以通過擴(kuò)展集群資源不斷提高計(jì)算性能,從而充分滿足城市內(nèi)澇災(zāi)害監(jiān)測(cè)這一應(yīng)用場(chǎng)景的處理需求.
構(gòu)建傳感網(wǎng)與流計(jì)算耦合架構(gòu),使傳感網(wǎng)實(shí)時(shí)觀測(cè)數(shù)據(jù)流能夠被流計(jì)算系統(tǒng)發(fā)現(xiàn)、獲取和處理,是實(shí)現(xiàn)地理過程動(dòng)態(tài)模擬的關(guān)鍵.如圖1所示,本文以基于OGC SWE框架搭建的傳感網(wǎng)、基于Spark Streaming搭建的流計(jì)算系統(tǒng)為例,提出了傳感網(wǎng)與流計(jì)算耦合架構(gòu)并應(yīng)用于城市內(nèi)澇模型實(shí)時(shí)感知,是本文提出的城市內(nèi)澇模型實(shí)時(shí)感知原型系統(tǒng)的主要組成部分.
圖1 傳感網(wǎng)與流計(jì)算耦合架構(gòu)Fig.1 Sensor Web and stream computing coupled architecture
該架構(gòu)在邏輯上可以簡(jiǎn)單地分為四層:數(shù)據(jù)獲取層、數(shù)據(jù)管理層、數(shù)據(jù)轉(zhuǎn)化層以及數(shù)據(jù)處理層.其中,數(shù)據(jù)獲取層和數(shù)據(jù)管理層組成基于開放標(biāo)準(zhǔn)的傳感網(wǎng)架構(gòu),數(shù)據(jù)處理層為流計(jì)算架構(gòu).由于基于開放標(biāo)準(zhǔn)的傳感網(wǎng)架構(gòu)為確保數(shù)據(jù)的互操作性而通過Web服務(wù)以標(biāo)準(zhǔn)格式進(jìn)行數(shù)據(jù)共享,這些數(shù)據(jù)一般為離散的XML格式文檔,不能滿足流計(jì)算系統(tǒng)對(duì)于流式數(shù)據(jù)的格式要求.因此,為解決傳感網(wǎng)與流計(jì)算架構(gòu)難以耦合的難點(diǎn),本系統(tǒng)在兩者之間加入了一個(gè)數(shù)據(jù)轉(zhuǎn)化層,將從傳感網(wǎng)中獲取的數(shù)據(jù)轉(zhuǎn)化成流式數(shù)據(jù),從而可以傳輸?shù)搅饔?jì)算系統(tǒng)中進(jìn)行處理.
數(shù)據(jù)獲取層負(fù)責(zé)降雨量數(shù)據(jù)的實(shí)時(shí)獲取,由基于OGC SWE標(biāo)準(zhǔn)建立的氣象傳感網(wǎng)組成.傳感網(wǎng)中的氣象傳感器通過網(wǎng)絡(luò)進(jìn)行連接并可利用Web技術(shù)進(jìn)行遠(yuǎn)程管理.每個(gè)氣象傳感器對(duì)其負(fù)責(zé)的城市區(qū)域的降雨量進(jìn)行實(shí)時(shí)觀測(cè),并通過數(shù)據(jù)管理層提供的接口對(duì)實(shí)時(shí)降雨量數(shù)據(jù)進(jìn)行更新.
數(shù)據(jù)管理層負(fù)責(zé)以互操作的方式對(duì)氣象傳感器元數(shù)據(jù)和其觀測(cè)的降雨量數(shù)據(jù)進(jìn)行存儲(chǔ)和管理.它使用數(shù)據(jù)存儲(chǔ)系統(tǒng)來管理各個(gè)氣象傳感器的位置數(shù)據(jù)、屬性數(shù)據(jù)和觀測(cè)的每條降雨量數(shù)據(jù),同時(shí)還基于OGC SOS標(biāo)準(zhǔn)搭建傳感器觀測(cè)服務(wù),通過發(fā)布一系列Web服務(wù)來提供傳感器數(shù)據(jù)和降雨量觀測(cè)數(shù)據(jù)的更新和獲取接口.
數(shù)據(jù)轉(zhuǎn)化層負(fù)責(zé)從數(shù)據(jù)管理層獲取降雨量實(shí)時(shí)觀測(cè)數(shù)據(jù)并將其發(fā)布成適合流計(jì)算系統(tǒng)格式要求的流式數(shù)據(jù)進(jìn)行傳輸.在這里,本架構(gòu)基于分布式消息訂閱/發(fā)布系統(tǒng)Apache Kafka[13]來進(jìn)行實(shí)時(shí)降雨量觀測(cè)數(shù)據(jù)的流式發(fā)布和傳輸,它允許用戶發(fā)布和訂閱流式數(shù)據(jù)并以高容錯(cuò)的方法保存每條流式數(shù)據(jù).降雨量數(shù)據(jù)獲取與發(fā)布程序通過調(diào)用數(shù)據(jù)管理層SOS提供的GetObservation接口不斷獲取當(dāng)前所有傳感器觀測(cè)的最新降雨量數(shù)據(jù),并通過Kafka集群不斷地轉(zhuǎn)化和發(fā)布為流式數(shù)據(jù),最后傳輸給數(shù)據(jù)處理層中的流計(jì)算系統(tǒng)進(jìn)行處理.
數(shù)據(jù)處理層負(fù)責(zé)對(duì)實(shí)時(shí)降雨量數(shù)據(jù)流進(jìn)行接入,并基于城市內(nèi)澇災(zāi)害模型進(jìn)行近實(shí)時(shí)計(jì)算,從而及時(shí)獲取內(nèi)澇過程模擬結(jié)果.本系統(tǒng)使用Spark Streaming作為流計(jì)算引擎,通過搭建的Apache Spark高性能計(jì)算集群對(duì)實(shí)時(shí)觀測(cè)數(shù)據(jù)流進(jìn)行分布式處理和計(jì)算.基于Spark Streaming的城市內(nèi)澇流計(jì)算程序以Kafka集群發(fā)布的實(shí)時(shí)觀測(cè)數(shù)據(jù)流作為數(shù)據(jù)源,基于建立的實(shí)時(shí)內(nèi)澇信息流計(jì)算模型,近實(shí)時(shí)地計(jì)算、分析出當(dāng)前的城市內(nèi)澇災(zāi)害情況.
將該架構(gòu)運(yùn)用到實(shí)際的城市內(nèi)澇案例中,與實(shí)時(shí)內(nèi)澇信息流計(jì)算模型組成城市內(nèi)澇模型實(shí)時(shí)感知原型系統(tǒng),其運(yùn)行流程可以簡(jiǎn)單描述為:①數(shù)據(jù)獲取層的氣象傳感網(wǎng)觀測(cè)系統(tǒng)獲取實(shí)時(shí)降雨量數(shù)據(jù)并將其不斷通過SOS InsertObservation接口插入到數(shù)據(jù)管理層的數(shù)據(jù)存儲(chǔ)系統(tǒng)中;②數(shù)據(jù)轉(zhuǎn)化層的觀測(cè)數(shù)據(jù)獲取與發(fā)布程序不斷通過SOS GetObservation接口獲取實(shí)時(shí)降雨量數(shù)據(jù)并基于Apache Kafka集群發(fā)布成可被流計(jì)算系統(tǒng)接入的流式數(shù)據(jù);③數(shù)據(jù)處理層的Spark Streaming城市內(nèi)澇流計(jì)算程序訂閱Apache Kafka發(fā)布的降雨量數(shù)據(jù)流并按批次進(jìn)行分割,基于實(shí)時(shí)內(nèi)澇信息流計(jì)算模型轉(zhuǎn)化為分布式處理任務(wù)并在Apache Spark集群中進(jìn)行快速的計(jì)算和分析,從而得到動(dòng)態(tài)的城市內(nèi)澇過程模擬結(jié)果.
內(nèi)澇信息流計(jì)算模型是城市內(nèi)澇模型實(shí)時(shí)感知原型系統(tǒng)的核心,它負(fù)責(zé)接入實(shí)時(shí)降雨量觀測(cè)數(shù)據(jù)流并基于流計(jì)算引擎以流計(jì)算的方式將實(shí)時(shí)降雨量觀測(cè)數(shù)據(jù)和其他相關(guān)數(shù)據(jù)代入傳統(tǒng)的城市內(nèi)澇災(zāi)害模型中進(jìn)行快速的處理、計(jì)算和分析,最終獲得近實(shí)時(shí)的城市內(nèi)澇災(zāi)害信息.
本文使用的傳統(tǒng)城市內(nèi)澇災(zāi)害模型主要基于SCS-CN模型和GIS"體積法"模型.SCS-CN模型一般用于降雨產(chǎn)流量計(jì)算,其模型可以表示為[11]:
公式(1)中計(jì)算結(jié)果Q為降雨徑流深度,單位為mm;參數(shù)P為計(jì)算時(shí)的當(dāng)前降雨總量,單位為mm;參數(shù)S為降雨區(qū)域內(nèi)當(dāng)時(shí)雨水的最大可能滯留量,單位為mm;Ia是由植被攔截、土壤下滲等導(dǎo)致的降雨初損,單位為mm.由于S與下墊面的多種因素有關(guān),變化范圍非常大,不利于計(jì)算獲取.因此模型引入了公式(3)中的無因次經(jīng)驗(yàn)參數(shù)CN,可以通過查詢當(dāng)?shù)氐腃N表得到,以求盡量準(zhǔn)確地得到S的值.
而GIS"體積法"模型在已知降雨滯留量(產(chǎn)流量減排水量)后可用于洪澇淹沒范圍的計(jì)算,可以表示為[12]:
公式(4)中,N代表城市內(nèi)澇積水區(qū)域DEM總柵格數(shù);Δ σ代表DEM每一個(gè)柵格的實(shí)地面積;E(i)代表DEM第i小柵格的地形高程,其取值范圍為1-N.因此,在已知降雨產(chǎn)生的城市內(nèi)澇總積水量W和城市DEM數(shù)據(jù)后,就可以使用二分法計(jì)算獲得區(qū)域中內(nèi)澇水面高程Ewater,而城市區(qū)域中所有低于Ewater的區(qū)域就可視為被淹沒區(qū).
由于在城市內(nèi)澇模型實(shí)時(shí)感知這個(gè)應(yīng)用場(chǎng)景下,城市內(nèi)澇信息在較短時(shí)間內(nèi)并不會(huì)產(chǎn)生太大的變化.因此,流計(jì)算系統(tǒng)對(duì)流數(shù)據(jù)的計(jì)算延遲只需要控制在秒級(jí)甚至分鐘級(jí).而Spark Streaming作為優(yōu)秀的流計(jì)算引擎足以滿足秒級(jí)或分級(jí)的計(jì)算延遲需求并能夠提供更強(qiáng)大的數(shù)據(jù)吞吐量和容錯(cuò)支持.因此,在本文提出的原型系統(tǒng)中搭建了一個(gè)Apache Spark集群作為基礎(chǔ)流計(jì)算框架和整個(gè)內(nèi)澇信息流計(jì)算模型的核心.
本文建立的實(shí)時(shí)內(nèi)澇信息流計(jì)算模型如圖2所示,該模型的輸入數(shù)據(jù)為流式數(shù)據(jù)格式的實(shí)時(shí)降雨量數(shù)據(jù)流,根據(jù)實(shí)際應(yīng)用的需求將數(shù)據(jù)流按照一定的時(shí)間間隔分割成離散的數(shù)據(jù)批次.由于流式數(shù)據(jù)具有無限性,因此將流式數(shù)據(jù)分割成的數(shù)據(jù)批次也是無限的.每當(dāng)?shù)竭_(dá)一個(gè)時(shí)間點(diǎn)生成一個(gè)數(shù)據(jù)批次時(shí),就需要對(duì)這個(gè)數(shù)據(jù)批次進(jìn)行及時(shí)的處理和分析.
圖2 實(shí)時(shí)內(nèi)澇信息流計(jì)算模型Fig.2 Stream computing model of real-time waterlogging information
每個(gè)數(shù)據(jù)批次即是該時(shí)間段內(nèi)計(jì)算模型接收到的降雨量數(shù)據(jù),包含城市內(nèi)各個(gè)區(qū)域中的傳感器在這個(gè)時(shí)間段內(nèi)觀測(cè)到的降雨量數(shù)據(jù).該模型將這些數(shù)據(jù)按照所屬的區(qū)域分割成獨(dú)立的數(shù)據(jù)塊(分割區(qū)域時(shí)需要保證其互相影響的可能性較小),并分別傳輸?shù)椒植际接?jì)算集群的各個(gè)計(jì)算節(jié)點(diǎn)上進(jìn)行并行計(jì)算.
在集群的各個(gè)計(jì)算節(jié)點(diǎn)上,該模型利用傳統(tǒng)的城市內(nèi)澇災(zāi)害模型對(duì)每個(gè)區(qū)域的內(nèi)澇信息進(jìn)行獨(dú)立計(jì)算:①對(duì)該時(shí)間段內(nèi)各個(gè)傳感器觀測(cè)到的降雨量數(shù)據(jù)求均值并累加之前時(shí)間段的降雨量可以求得區(qū)域當(dāng)前降雨量的累計(jì)值;②基于SCS-CN模型,代入?yún)^(qū)域當(dāng)前降雨量累加值以及根據(jù)區(qū)域下墊面特征查表獲得的CN值,即可求區(qū)域當(dāng)前降雨產(chǎn)流量;③將降雨產(chǎn)流量乘以區(qū)域面積并減去區(qū)域當(dāng)前累計(jì)排水量就能獲得當(dāng)前區(qū)域內(nèi)的總積水量;④通過GIS"體積法"模型,利用區(qū)域總積水量數(shù)據(jù)和數(shù)據(jù)庫中存儲(chǔ)的該區(qū)域DEM數(shù)據(jù)求解方程就可以計(jì)算得到區(qū)域內(nèi)積水水平面的高程,而DEM中高程小于水面高程的區(qū)域即為內(nèi)澇淹沒區(qū)域;⑤該模型將這些內(nèi)澇信息計(jì)算結(jié)果輸出到數(shù)據(jù)庫中進(jìn)行保存,并可以通過GIS可視化軟件利用DEM數(shù)據(jù)對(duì)城市內(nèi)澇災(zāi)害過程進(jìn)行動(dòng)態(tài)可視化模擬.
為證明本文提出的方法的可行性,本文對(duì)城市內(nèi)澇模型實(shí)時(shí)感知原型系統(tǒng)進(jìn)行了環(huán)境搭建,并進(jìn)行了相關(guān)實(shí)驗(yàn).其中,證明系統(tǒng)可用性和方法可行性的預(yù)期效果是該系統(tǒng)對(duì)每批次降雨量觀測(cè)數(shù)據(jù)的處理時(shí)間能夠小于下一批次數(shù)據(jù)的產(chǎn)生時(shí)間.
本實(shí)驗(yàn)環(huán)境基于兩臺(tái)高性能計(jì)算服務(wù)器A和B.每臺(tái)服務(wù)器具有93.4G運(yùn)行內(nèi)存、24個(gè)物理核以及200 GB存儲(chǔ)硬盤,并且安裝了Ubuntu 14.04.5操作系統(tǒng)和Java 8運(yùn)行環(huán)境.原型系統(tǒng)在服務(wù)器B上安裝了傳感網(wǎng)管理平臺(tái)Open Sensor Hub 1.1.0作為傳感網(wǎng)實(shí)現(xiàn)[14],帶有PostGIS插件的PostgreSQL 9.3作為數(shù)據(jù)庫.并以A、B為兩個(gè)節(jié)點(diǎn)搭建了Apache Spark 2.1.0測(cè)試集群和Apache Kafka 2.11測(cè)試集群.
本文選擇了湖北省武漢市某區(qū)域作為實(shí)驗(yàn)區(qū)域,該區(qū)域面積約為51.4X104m2.為了充分利用分布式計(jì)算架構(gòu)提高處理效率,本文根據(jù)該區(qū)域的地形特征將其分成70個(gè)子區(qū)域.該DEM數(shù)據(jù)總共具有3 473X4 983個(gè)柵格,將其根據(jù)劃分的70個(gè)子區(qū)域分為70個(gè)子DEM數(shù)據(jù),每個(gè)約有494X495個(gè)柵格.同時(shí),通過查詢相關(guān)數(shù)據(jù),獲得了每個(gè)子區(qū)域擁有的排水口數(shù)量以及它們的下墊面特征,并對(duì)照SCS-CN模型提供的CN值表獲取了各個(gè)子區(qū)域的CN值.這些數(shù)據(jù)都被存儲(chǔ)在PostgreSQL數(shù)據(jù)庫中進(jìn)行管理.
為了驗(yàn)證本文提出的城市內(nèi)澇模型實(shí)時(shí)感知方法和原型系統(tǒng)的有效性,本文仿真該實(shí)驗(yàn)區(qū)域遭遇一場(chǎng)每min降雨量約為1mm且持續(xù)1 h的特大暴雨(傳感網(wǎng)降雨量觀測(cè)數(shù)據(jù)由Open Sensor Hub接入的虛擬氣象傳感器實(shí)時(shí)動(dòng)態(tài)生成),利用搭建的實(shí)驗(yàn)環(huán)境對(duì)該區(qū)域內(nèi)發(fā)生的城市內(nèi)澇災(zāi)害進(jìn)行實(shí)時(shí)感知.
在整個(gè)實(shí)驗(yàn)流程中,城市內(nèi)澇信息流計(jì)算程序每分鐘計(jì)算得到的各個(gè)區(qū)域的內(nèi)澇信息都存儲(chǔ)在數(shù)據(jù)庫的內(nèi)澇信息表中.如區(qū)域編號(hào)為9的子區(qū)域,它計(jì)算得到的每分鐘近實(shí)時(shí)內(nèi)澇信息在數(shù)據(jù)庫中如圖3所示.可以發(fā)現(xiàn)子區(qū)域9從10:13分開始就開始產(chǎn)生了內(nèi)澇積水(volume列)并逐漸增多,積水水平面(elevation列)也不斷增高(當(dāng)無積水時(shí)積水平面高度為當(dāng)前區(qū)域最低地表高程).
圖3 子區(qū)域9內(nèi)澇實(shí)時(shí)內(nèi)澇信息Fig.3 Real-time waterlogging information of sub-region 9
在系統(tǒng)運(yùn)行的同時(shí),基于GIS可視化軟件對(duì)實(shí)驗(yàn)區(qū)域的DEM數(shù)據(jù)進(jìn)行三維可視化并疊加計(jì)算得到的實(shí)時(shí)城市內(nèi)澇信息,如下圖4所示.系統(tǒng)分別在降雨開始10 min后、20min后、30min后和60 min后對(duì)原型系統(tǒng)感知的當(dāng)前城市內(nèi)澇災(zāi)害狀態(tài)進(jìn)行了可視化.圖中藍(lán)色表示內(nèi)澇產(chǎn)生的積水,棕色表示該區(qū)域的地形,顏色越深代表高程越高.觀察可以發(fā)現(xiàn),隨著降雨時(shí)間的推移,研究區(qū)域中的低洼處首先出現(xiàn)內(nèi)澇積水,接著逐漸向高處蔓延,最后幾乎覆蓋整個(gè)區(qū)域1/2的區(qū)域.
圖4 實(shí)時(shí)城市內(nèi)澇信息三維可視化Fig.4 3d visualization of real-time urban waterlogging information
實(shí)驗(yàn)對(duì)原型系統(tǒng)的整體計(jì)算性能進(jìn)行了測(cè)試,通過對(duì)降雨量數(shù)據(jù)流分區(qū)數(shù)和集群資源的控制,對(duì)比系統(tǒng)每批次計(jì)算任務(wù)的處理性能.結(jié)果如圖5所示,隨著集群中核數(shù)的增加和內(nèi)存數(shù)的增加,內(nèi)澇流計(jì)算系統(tǒng)每批次任務(wù)的處理時(shí)間先快速減小后趨于平穩(wěn).而且當(dāng)數(shù)據(jù)分區(qū)數(shù)為4時(shí)每批次任務(wù)處理最短時(shí)間穩(wěn)定在16s左右,當(dāng)數(shù)據(jù)分區(qū)數(shù)為70時(shí)最短時(shí)間穩(wěn)定在4s左右.原因是Apache Spark集群數(shù)據(jù)處理效率與集群核數(shù)有關(guān),一般一個(gè)核上只能處理一個(gè)任務(wù),而隨著集群核數(shù)的增加,數(shù)據(jù)能夠在多個(gè)核中進(jìn)行并行化計(jì)算從而提高了計(jì)算效率縮短了處理時(shí)間.同時(shí),數(shù)據(jù)的分區(qū)數(shù)決定了計(jì)算時(shí)產(chǎn)生的任務(wù)數(shù)量,即4個(gè)分區(qū)產(chǎn)生4個(gè)計(jì)算任務(wù),70個(gè)分區(qū)產(chǎn)生70個(gè)計(jì)算任務(wù).因此當(dāng)集群核數(shù)為4時(shí)數(shù)據(jù)分區(qū)為4的數(shù)據(jù)流已經(jīng)能夠完全并行化計(jì)算,于是再增加集群資源其處理時(shí)間也不發(fā)生太大變化.而數(shù)據(jù)分區(qū)為70的數(shù)據(jù)流則當(dāng)集群核數(shù)超過24個(gè)后才趨于穩(wěn)定.綜上可以得出結(jié)論,該原型系統(tǒng)能夠通過控制集群資源和數(shù)據(jù)流分區(qū)數(shù)對(duì)處理時(shí)間進(jìn)行不斷的優(yōu)化從而使數(shù)據(jù)處理延時(shí)不斷減小從而趨于實(shí)時(shí)化,具有良好的可擴(kuò)展性.同時(shí),對(duì)于該實(shí)驗(yàn)案例,每批次的降雨量數(shù)據(jù)的處理時(shí)間至少能控制在4s左右,遠(yuǎn)小于數(shù)據(jù)批次產(chǎn)生的時(shí)間1 min,因此該原型系統(tǒng)也具有良好的可用性,能夠近實(shí)時(shí)地計(jì)算并模擬出城市遭遇暴雨發(fā)生內(nèi)澇災(zāi)害的動(dòng)態(tài)過程.
圖5 每批次計(jì)算耗時(shí)與集群資源關(guān)系Fig.5 The relationship between computation time of each batch and resources of computer cluster
實(shí)時(shí)數(shù)據(jù)計(jì)算與地理過程模型集成是地理模型實(shí)時(shí)感知的基礎(chǔ),也是現(xiàn)代地理信息系統(tǒng)的主流發(fā)展方向.本論文為解決地理模型實(shí)時(shí)感知中的系統(tǒng)耦合架構(gòu)、地理實(shí)時(shí)計(jì)算模型等難點(diǎn),提出了基于開放標(biāo)準(zhǔn)的傳感網(wǎng)與流計(jì)算系統(tǒng)耦合架構(gòu),并將其應(yīng)用到城市內(nèi)澇災(zāi)害的動(dòng)態(tài)感知場(chǎng)景下,結(jié)合建立的實(shí)時(shí)內(nèi)澇信息流計(jì)算模型,設(shè)計(jì)并實(shí)現(xiàn)了一種基于流計(jì)算的城市內(nèi)澇模型實(shí)時(shí)感知原型系統(tǒng).
原型系統(tǒng)的數(shù)據(jù)獲取層基于OGC SWE標(biāo)準(zhǔn)建立氣象傳感網(wǎng)對(duì)氣象數(shù)據(jù)進(jìn)行實(shí)時(shí)觀測(cè)、數(shù)據(jù)管理層基于OGC SOS標(biāo)準(zhǔn)進(jìn)行傳感網(wǎng)數(shù)據(jù)的管理和發(fā)布、數(shù)據(jù)轉(zhuǎn)化層基于Apache Kafka分布式消息發(fā)布/訂閱系統(tǒng)轉(zhuǎn)化并發(fā)布傳感網(wǎng)觀測(cè)數(shù)據(jù)流、數(shù)據(jù)處理層基于Spark Streaming流計(jì)算引擎建立實(shí)時(shí)內(nèi)澇信息流計(jì)算模型進(jìn)行實(shí)時(shí)觀測(cè)數(shù)據(jù)流的處理和分析.本論文通過選取具體的實(shí)驗(yàn)區(qū)域?qū)υ拖到y(tǒng)進(jìn)行了案例測(cè)試,實(shí)驗(yàn)結(jié)果表明整個(gè)原型系統(tǒng)具有良好的可用性和擴(kuò)展性,驗(yàn)證了本文提出的城市內(nèi)澇模型實(shí)時(shí)感知方法具有可行性.
在之后的研究中,本文提出的方法和原型系統(tǒng)需要進(jìn)一步地應(yīng)用到真實(shí)的城市內(nèi)澇災(zāi)害場(chǎng)景中進(jìn)行測(cè)試和分析,以改進(jìn)計(jì)算模型提高其精度和性能,從而使本研究能真正地落到實(shí)處,為政府相關(guān)部門提供有效的信息決策.