劉家瑋 劉 波,2,3 龔夢星 黃天天
(1.湖南農(nóng)業(yè)大學(xué)信息科學(xué)技術(shù)學(xué)院 長沙 410128)
(2.邵陽學(xué)院湘西南農(nóng)村信息化服務(wù)湖南省重點(diǎn)實(shí)驗(yàn)室 邵陽 422000)
(3.湖南省農(nóng)村農(nóng)業(yè)信息化工程技術(shù)研究中心 長沙 410128)
我國山地面積占全國土地總面積的2/3以上,而近幾年人類的生產(chǎn)活動(dòng)對環(huán)境產(chǎn)生了較大的影響,導(dǎo)致山洪災(zāi)害頻繁發(fā)生。為了避免或減輕山洪災(zāi)害對人民生命財(cái)產(chǎn)的損失,需要進(jìn)行災(zāi)情演進(jìn)的可視化展示和危險(xiǎn)性預(yù)測研究。
在山洪災(zāi)情演進(jìn)可視化方面,通過構(gòu)建一維或二維演進(jìn)模型來實(shí)現(xiàn)災(zāi)情演進(jìn)的動(dòng)態(tài)展示是一類較為成熟的方法,但該類方法所構(gòu)建的模型對災(zāi)害演進(jìn)的動(dòng)態(tài)過程刻畫較差,可視性方面存在著較大的缺陷。對比之下,三維建模技術(shù)更能夠提高河流、山地場景的可視化程度,因此在災(zāi)情演進(jìn)動(dòng)態(tài)展示方面得到了廣泛的應(yīng)用。黃健采用三維GIS平臺(tái)技術(shù)中的OpenGL技術(shù)建立地形三維模型,快速逼真地獲取了監(jiān)控區(qū)的三維實(shí)景圖,使系統(tǒng)能夠及時(shí)反映災(zāi)害體的動(dòng)態(tài)變形情況,提高了地質(zhì)災(zāi)害的預(yù)警精度[1];魏一行等采用CSG法建立大壩周邊場景模型,結(jié)合GUI技術(shù)、粒子系統(tǒng)動(dòng)力學(xué)解算等技術(shù)進(jìn)行洪水演進(jìn)三維動(dòng)態(tài)情景仿真研究,提高了防汛部門預(yù)警及決策的效率[2];姜仁貴等采用瓦片金字塔模型和矩形格網(wǎng)絡(luò)模型分別實(shí)現(xiàn)了研究地區(qū)三維地形的構(gòu)建和洪水淹沒分析,實(shí)現(xiàn)了洪水淹沒動(dòng)態(tài)三維仿真[3];譚德寶等采用Vega Prime+OpenGL聯(lián)合開發(fā)模式,實(shí)現(xiàn)了對超大流量天然河道洪水演進(jìn)的三維可視化展示[4];Singh H等討論了Web 3D開源技術(shù)在洪水模擬和查詢方面的應(yīng)用[5];Liu X J等在建立的三維場景中采用紋理映射技術(shù)和光滑粒子流體動(dòng)力學(xué)方法實(shí)現(xiàn)了洪水演進(jìn)的動(dòng)態(tài)可視化,從而能更直觀、真實(shí)地反映水文信息[6]。在山洪災(zāi)害防治領(lǐng)域,需根據(jù)災(zāi)情的演進(jìn)情況進(jìn)行危險(xiǎn)性預(yù)測,分析出相應(yīng)的危險(xiǎn)性等級,并根據(jù)不同的危險(xiǎn)性等級做出不同的預(yù)警提示。由于決策樹分類算法具有分類效率高、便于理解等特點(diǎn),因此在地質(zhì)災(zāi)害的危險(xiǎn)性預(yù)測方面已有廣泛的應(yīng)用。毛伊敏等提出了基于不確定決策樹算法在滑坡危險(xiǎn)性預(yù)測的方法,取得了不錯(cuò)的預(yù)測效果[7];趙建華等通過決策樹算法建立了一種滑坡災(zāi)害危險(xiǎn)性評價(jià)方法,實(shí)現(xiàn)了滑坡災(zāi)害區(qū)域評價(jià)與預(yù)測[8];周仲禮等將模糊綜合評判法和決策樹算法結(jié)合起來,建立了泥石流危險(xiǎn)性評價(jià)模型,實(shí)現(xiàn)對危險(xiǎn)性級別的準(zhǔn)確判斷[9];Joevivek V等提出了一種利用最優(yōu)監(jiān)督學(xué)習(xí)方法和決策樹算法進(jìn)行洪水危險(xiǎn)性預(yù)測的研究工作[10]。
本文介紹了Unity 3D利用超聲波測深儀測出的河道地形及DEM數(shù)據(jù)構(gòu)建三維河流地形及河流橫截面,實(shí)現(xiàn)山洪災(zāi)情演進(jìn)可視化,根據(jù)災(zāi)情的演進(jìn)情況使用決策樹算法構(gòu)建的危險(xiǎn)性分析模塊對危險(xiǎn)性級別進(jìn)行預(yù)測。通過與傳統(tǒng)的山洪災(zāi)害防治系統(tǒng)相比,本文提出的系統(tǒng)模型具有如下優(yōu)勢:系統(tǒng)通過Unity 3D和DEM數(shù)據(jù)結(jié)合建立三維模型,可以充分發(fā)揮Unity 3D能夠大量構(gòu)建地形而幾乎不受計(jì)算資源限制的優(yōu)勢,以比較高的速率構(gòu)建三維模型[11];系統(tǒng)在用Unity 3D構(gòu)建模型時(shí)嵌入了編寫有馬斯京根算法的洪水演進(jìn)模型腳本,并將洪水的演進(jìn)反映到河流橫截面中提高了系統(tǒng)的可視化程度;系統(tǒng)利用決策樹算法構(gòu)建數(shù)學(xué)模型來進(jìn)行危險(xiǎn)性預(yù)測,提高了預(yù)警的實(shí)時(shí)性及準(zhǔn)確性;系統(tǒng)通過網(wǎng)頁端來展示實(shí)際及預(yù)測的數(shù)據(jù),并通過一個(gè)二維地圖實(shí)現(xiàn)了網(wǎng)頁端與三維模型的交互,具有不錯(cuò)的交互性。為了更好地對系統(tǒng)的性能進(jìn)行介紹,本文主要是針對山洪災(zāi)害中的河流洪水來進(jìn)行研究,研究區(qū)域?yàn)殚L沙縣郎梨地區(qū)附近的河段。
本文所構(gòu)建系統(tǒng)的核心是洪水三維動(dòng)態(tài)演進(jìn)模型,該模型由洪水演進(jìn)模塊、危險(xiǎn)性預(yù)測模塊和預(yù)警響應(yīng)模塊組成,其中洪水演進(jìn)模塊又可以分為水文預(yù)測模塊、三維河流地形模塊。在該模型中由馬斯京根法構(gòu)建的水文預(yù)測模塊將預(yù)測的水位、流量數(shù)據(jù)通過腳本程序輸入到三維河流地形模塊中,并在三維河流地形模塊中將預(yù)測的水位以河流水位的升降及河流覆蓋面積的變化的形式,分別在構(gòu)建的三維河流橫截面及河流地形上動(dòng)態(tài)演進(jìn)出來。洪水演進(jìn)模塊中的水位、流量會(huì)傳輸?shù)接蓻Q策樹算法構(gòu)建的危險(xiǎn)性預(yù)測模塊中,通過該模塊可以分析出危險(xiǎn)性等級。該模型根據(jù)危險(xiǎn)性等級的不同會(huì)向不同的用戶發(fā)送相關(guān)的預(yù)警短信,這樣用戶不僅能夠?qū)崟r(shí)了解山洪災(zāi)害的受災(zāi)情況,還能通過構(gòu)建的三維河流場景中河流流水位及覆蓋面積的變化直觀地觀察到災(zāi)情的演進(jìn)情況。圖1展示了洪水三維動(dòng)態(tài)預(yù)測演進(jìn)模型的結(jié)構(gòu)。
下面分別從該模型建立的關(guān)鍵技術(shù)、模型中各個(gè)模塊的構(gòu)建過程來詳細(xì)地介紹該模型是如何關(guān)聯(lián)的。
2.1.1 決策樹C4.5算法原理及預(yù)測過程
決策樹C4.5算法是對ID3算法的改進(jìn),C4.5算法以ID3算法為基礎(chǔ),使用信息增益率代替信息增益來選擇分類屬性。C4.5算法既支持對離散屬性的處理,又支持對連續(xù)屬性的處理,它選擇信息增益率最大的屬性作為分類屬性,遞歸的構(gòu)造決策樹。以下為決策樹算法中用到的相關(guān)計(jì)算公式。
圖1 洪水三維動(dòng)態(tài)預(yù)測演進(jìn)模型的結(jié)構(gòu)圖
在以上公式中D代表已知類屬性樣本的一個(gè)訓(xùn)練集。設(shè)Ci(i=1,2,…,n)為類標(biāo)記屬性具有n個(gè)不同的值,Pi代表D中任意一個(gè)樣本屬于類Ci的不等于零的概率;A代表訓(xùn)練集中的一個(gè)屬性,則式(1)用來計(jì)算訓(xùn)練集D中樣本的類標(biāo)號所需的平均信息熵;式(2)用來計(jì)算屬性A中的v個(gè)不同的值對訓(xùn)練集D的劃分所對應(yīng)的信息熵;式(3)用來計(jì)算屬性A所對應(yīng)的信息增益;式(4)用來計(jì)算使信息增益規(guī)范化的分裂信息的大??;式(5)用來計(jì)算屬性A所對應(yīng)的信息增益率的大小。
決策樹算法的輸入為訓(xùn)練集,輸出為由訓(xùn)練集訓(xùn)練得到的一顆決策樹,下面為決策樹算法的具體執(zhí)行過程[12]:
1)對訓(xùn)練集進(jìn)行數(shù)據(jù)預(yù)處理。
2)創(chuàng)建節(jié)點(diǎn),選取訓(xùn)練集中的候選屬性集。
3)對候選屬性集中的數(shù)據(jù)進(jìn)行離散化處理后,計(jì)算每個(gè)屬性所對應(yīng)的信息增益率。
4)在候選集中找出信息增益率最大的屬性作為分裂屬性。
5)對分裂屬性的每個(gè)可能值分支,將分支節(jié)點(diǎn)插入隊(duì)列中。
6)從候選屬性集中減去當(dāng)前使用屬性。
7)從隊(duì)列中取出一個(gè)節(jié)點(diǎn),遞歸執(zhí)行步驟3)~6),直到候選屬性減為空。
8)為各個(gè)葉子節(jié)點(diǎn)分配類標(biāo)號,算法結(jié)束運(yùn)行。
在決策樹預(yù)測未知數(shù)據(jù)的過程中,首先要進(jìn)行數(shù)據(jù)預(yù)處理,數(shù)據(jù)預(yù)處理首先需要對原始數(shù)據(jù)進(jìn)行篩選,需要將一些有空白項(xiàng)或者錯(cuò)誤屬性的記錄清理掉[7],在進(jìn)行數(shù)據(jù)預(yù)處理后選取一部分?jǐn)?shù)據(jù)作為訓(xùn)練集用來建立分類模型,該模型隨后將運(yùn)用于屬性集,用來對屬性集中的未知類標(biāo)號進(jìn)行預(yù)測[13],訓(xùn)練集和屬性集都是作為決策樹算法的輸入用來建立決策樹的,決策樹建立后需要對決策樹進(jìn)行相應(yīng)地剪枝從而達(dá)到優(yōu)化的效果,最后就會(huì)得到所需預(yù)測的結(jié)果。
2.1.2 馬斯京根法
馬斯京根法是一種廣泛用于水文預(yù)報(bào)中建立預(yù)報(bào)模型的方法,通過這種方法建立數(shù)學(xué)模型主要包括收集研究河段的水文數(shù)據(jù)、確定相關(guān)參數(shù)K、x和Δt、利用演算方程進(jìn)行計(jì)算、對演算結(jié)果進(jìn)行檢查等步驟。
通過馬斯京根法構(gòu)建水文信息預(yù)報(bào)模型需要使用如下方程:
式(6)即為馬斯京根流量演算方程。當(dāng)確定參數(shù) K,x和時(shí)段 Δt后,就根據(jù)式(7)~(10)可求得C0、C1和C2。上述公式中 Q上,1,Q上,2分別代表時(shí)段始、末上斷面入流量;Q下,1,Q下,2分別代表時(shí)段始、末下斷面出流量。Δt代表計(jì)算時(shí)段,K和x分別代表穩(wěn)定流時(shí)的河段傳播時(shí)間和流量比重因素[14]。
山洪災(zāi)害三維動(dòng)態(tài)演進(jìn)的整體思路如圖2所示。首先是利用Unity 3D可以構(gòu)建海量三維地形的優(yōu)勢,結(jié)合DEM數(shù)據(jù)和通過超聲波測深儀探測到的河道水下地形數(shù)據(jù)分別構(gòu)建河流水平面以上地形和河流橫截面。這樣可以讓用戶從多角度觀察到當(dāng)前河道的情況;其次是利用馬斯京根法并結(jié)合傳感器檢測到的水位、流量等相關(guān)的水文信息來構(gòu)建一個(gè)水文預(yù)測模塊,將該模塊預(yù)測到的流量信息通過水位-流量對應(yīng)關(guān)系映射出水位信息;最后將這些預(yù)測的流量、水位信息編寫到一個(gè)可以在Unity 3D中運(yùn)行的水位升降腳本中,通過該腳本并結(jié)合Unity 3D中對應(yīng)的動(dòng)態(tài)水插件將河流的升降動(dòng)態(tài)地反映到河流水平面和河流橫截面中。
圖2 山洪災(zāi)害三維動(dòng)態(tài)演進(jìn)的整體思路
1)水文預(yù)報(bào)模塊
本文采用馬斯京根法根據(jù)采集到的流量、水位等信息構(gòu)建了水文預(yù)報(bào)模塊,為了提高建模的效率以及方便將預(yù)報(bào)模型移植到網(wǎng)頁端及Unity 3D河流三維模型中,筆者在理解馬斯京根法的基礎(chǔ)上編寫了相關(guān)程序?qū)崿F(xiàn)了試算法確定相關(guān)參數(shù)、求出預(yù)測流量等操作。首先從湖南省水文信息查詢系統(tǒng)(http://61.187.56.156/wap/index_sq.asp)中獲取了2016年7月2日至7月6日長沙縣郎梨地區(qū)附近河段的相關(guān)水文數(shù)據(jù)。通過在所編寫的程序中步長從0.01開始遍歷參數(shù)x至0.5,結(jié)合已獲取的相關(guān)水文信息,利用試算法建立W-Q′關(guān)系曲線。經(jīng)過遍歷發(fā)現(xiàn)當(dāng)x在0.4左右時(shí)W-Q′關(guān)系曲線的斜率K在一定極小的誤差范圍內(nèi)為一定值,所以通過試算法確定x為0.4,K為12,Δt為12。以下是試算法程序的算法流程。
(1)定義一個(gè)變量x,設(shè)定x的初值為0.01。
(2)若x的值小于0.5,則根據(jù)給出的流量數(shù)據(jù)按照方程 Q′=x(Q上-Q下)+Q下(Q′為儲(chǔ)流量、Q上為上斷面流量、Q下為下斷面流量)求出一組Q′值并保存在數(shù)組中。
(4)將所求得的一組槽蓄變量累加起來得到各時(shí)段末的W(t)。
(5)求出各個(gè)時(shí)段ΔW/ΔQ′的值,并將這些值兩兩相減取絕對值。
(6)如果上述絕對值組中有超過百分之九十以上的數(shù)趨近于0則打印出x及k=ΔW/ΔQ′的值并終止程序,否則將x加0.01后從步驟(2)開始繼續(xù)執(zhí)行此函數(shù)。
基于前面的信息結(jié)合式(7)~(10)可以算出C0=0.09,C1=0.82,C2=0.09,根據(jù)式(6)可以算出對應(yīng)的實(shí)測流量。為了更直觀地對預(yù)測流量的精度進(jìn)行展示,筆者繪制了一個(gè)折線圖將實(shí)際流量和預(yù)測流量進(jìn)行一個(gè)對比。
圖3 實(shí)際與預(yù)測流量對比圖
從圖3中可以看出通過該預(yù)報(bào)模型預(yù)測的流量具有不錯(cuò)的精度。
為了在預(yù)測流量的同時(shí)將水位的預(yù)測信息直觀地顯示出來,可以將郎梨站歷年汛期時(shí)所采集的大量流量和水位數(shù)據(jù),以流量為自變量,水位為因變量采用一元回歸分析法建立流量與水位之間的映射關(guān)系如圖4所示。
圖4 水位流量關(guān)系圖
2)三維河流地形模塊
三維虛擬環(huán)境建模方式的選取是地形、河流三維場景等流域三維仿真模擬的關(guān)鍵[15]。傳統(tǒng)的地理三維建模大多采用WebGIS,但這是建立在大量的航拍遙感圖像的基礎(chǔ)上的,這種需要大量數(shù)據(jù)建模的做法受到了計(jì)算資源有限的限制。本文中采用的Unity 3D幾乎可以無限制地構(gòu)建三維地理模型。為了使構(gòu)建的三維地理模型更加真實(shí),本文中采用了將DEM(數(shù)字高程模型)導(dǎo)入到Unity 3D來構(gòu)建河流水平面以上的地形,將超聲波測深儀采集到的河流水下地形數(shù)據(jù)寫入到一個(gè)可構(gòu)造河流水下地形的腳本中實(shí)現(xiàn)對河流橫截面的構(gòu)建。具體的地形及河流三維模型的構(gòu)造步驟如下。
(1)利用ArcGIS生成DEM地形數(shù)據(jù)。
(2)將DEM數(shù)據(jù)導(dǎo)入U(xiǎn)nity 3D中生成相應(yīng)的三維地形模型。
(3)在Unity 3D中構(gòu)建另一個(gè)場景,并將河流水下地形構(gòu)建腳本映射到該場景中生成河流橫截面效果圖,如圖5所示。
(4)利用Unity 3D中提供的水體建模插件來為場景中的河道添加水體。
(5)在已構(gòu)建的地形場景中設(shè)置GUI控件But?ton和Text用來實(shí)現(xiàn)場景交互及相關(guān)信息的顯示,如圖6所示。
圖5 河流橫截面
圖6 三維水上地形
上述將DEM數(shù)據(jù)和Unity 3D結(jié)合起來構(gòu)建河流地形模型具有如下優(yōu)點(diǎn):1)Unity 3D軟件幾乎可以不受限制地構(gòu)造地形,這克服了其他借助大量航拍圖像來構(gòu)造三維模型對計(jì)算機(jī)資源需求量大的缺點(diǎn)。2)克服了Unity 3D中采用涂刷工具繪制地形效率低、工作量大、不能生成真實(shí)地形等缺點(diǎn)。3)直接利用DEM數(shù)據(jù)地形建模,使得建模速度大大提高,還可以對地形進(jìn)行多次編輯,提高真實(shí)感及動(dòng)態(tài)交互效果。4)利用超聲波測深儀核實(shí)所構(gòu)數(shù)據(jù)的準(zhǔn)確性。
構(gòu)建危險(xiǎn)性預(yù)測模塊的核心思想是把洪水演進(jìn)模塊中預(yù)測的水位、流量輸入到由決策樹算法訓(xùn)練得到的數(shù)學(xué)模型中進(jìn)行訓(xùn)練從而得出相應(yīng)的危險(xiǎn)性等級,這就完成了危險(xiǎn)性等級的預(yù)測,不同危險(xiǎn)性等級會(huì)觸發(fā)預(yù)警響應(yīng)模塊中的短語發(fā)送接口向不同用戶發(fā)送預(yù)警短信。下面是該模塊具體的實(shí)現(xiàn)過程。
1)數(shù)據(jù)預(yù)處理
在該系統(tǒng)中從傳感器采集來的大量原始數(shù)據(jù)中包含一些臟數(shù)據(jù),例如噪音數(shù)據(jù)、不完整數(shù)據(jù)、不一致數(shù)據(jù)等。這些臟數(shù)據(jù)將給數(shù)據(jù)挖掘過程帶來干擾。結(jié)合山洪災(zāi)害數(shù)據(jù)中數(shù)據(jù)重復(fù)率較高、數(shù)據(jù)孤立點(diǎn)多的特點(diǎn),在此系統(tǒng)中采用數(shù)據(jù)預(yù)處理中的數(shù)據(jù)清理技術(shù)來對數(shù)據(jù)進(jìn)行預(yù)處理。其處理過程可以分成如下幾步:(1)屬性刪除:將大量的重復(fù)數(shù)據(jù)刪除。(2)屬性值概化:把一些可以用量詞來表述的屬性進(jìn)行概化處理。例如可以把山洪災(zāi)害中的受災(zāi)程度概化為{受災(zāi)大,受災(zāi)小,受災(zāi)無}。
2)訓(xùn)練集的建立
結(jié)合山洪災(zāi)害中河流洪水的危險(xiǎn)性等級的影響因素,選天氣、主要河段水位(m)、主要河段流量(m3.s-1)作為屬性集合,選危險(xiǎn)性等級作為類標(biāo)號。數(shù)據(jù)來源是湖南省水文信息查詢系統(tǒng)(http://61.187.56.156/wap/index_sq.asp),選取了長沙縣郎梨地區(qū)2015年、2016年汛期(4月~7月)的天氣、主要河段水位、流量等5559條記錄作為訓(xùn)練集。在此訓(xùn)練集中天氣為離散屬性,天氣的取值集合為{多云,陰,晴,雷雨,陣雨,小雨,中雨,大雨,暴雨}。主要河段水位、主要河段流量為連續(xù)屬性。危險(xiǎn)性等級作為類標(biāo)號,其取值集合為{a,b,c,d},a代表安全級別,b代表輕度預(yù)警,c代表中度預(yù)警,d代表重度預(yù)警。根據(jù)屬性集合和類標(biāo)號,建立了如表1所示的訓(xùn)練集。
表1 訓(xùn)練樣本
3)離散屬性和連續(xù)屬性的處理
C4.5算法主要通過對每個(gè)節(jié)點(diǎn)的信息增益率的計(jì)算來得出分裂規(guī)則,下面是上述訓(xùn)練集中各個(gè)屬性的信息增益率的計(jì)算。首先根據(jù)式(1)計(jì)算類標(biāo)號危險(xiǎn)性等級所對應(yīng)的信息熵:
上述訓(xùn)練集中天氣為離散屬性,利用式(2)可以得到信息熵,利用式(3)可以得到信息增益,最后利用式(4)、(5)計(jì)算得到天氣的信息增益率為
上述訓(xùn)練集中的水位、流量為連續(xù)屬性。在C4.5算法中,在面對屬性為連續(xù)型的樣例集合時(shí),首先要將其離散化,轉(zhuǎn)化為離散的訓(xùn)練樣例集。在訓(xùn)練樣本中主要河段水位和主要河段流量為連續(xù)屬性,對連續(xù)屬性的劃分應(yīng)選擇最佳分裂點(diǎn)。首先將連續(xù)屬性進(jìn)行預(yù)先的排序,再從各個(gè)相鄰的兩個(gè)排過序的屬性值中選擇兩個(gè)屬性值的中點(diǎn)作為候選分裂點(diǎn),這樣就完成了對連續(xù)屬性的離散化操作。通過對各個(gè)候選分裂點(diǎn)的信息增益進(jìn)行計(jì)算,選擇信息增益最大的點(diǎn)作為最佳分裂點(diǎn)。最后利用式(4)、(5)可以計(jì)算得到最佳分裂點(diǎn)處的信息增益率。經(jīng)過計(jì)算水位和流量的信息增益率如下:
4)決策樹的生成
采用自頂向下的遞歸算法來生成決策樹,對于離散屬性每次選取分類屬性的原則是選擇信息增益率最大,而且所獲取的信息增益又不低于所有屬性信息增益的平均值的屬性作為分支節(jié)點(diǎn)[16]。對于連續(xù)屬性選擇分類標(biāo)準(zhǔn)的原則是先對連續(xù)屬性進(jìn)行相應(yīng)地離散化處理后,再計(jì)算各候選分裂點(diǎn)中信息增益最大的點(diǎn)作為最終的分裂點(diǎn)。生成決策樹后還應(yīng)該對決策樹進(jìn)行修剪,圖7為經(jīng)過修剪后的決策樹。
5)危險(xiǎn)性預(yù)測模塊評估
將該模塊所做的危險(xiǎn)性等級預(yù)測與長沙縣郎梨地區(qū)在2015年和2016年汛期的預(yù)警情況進(jìn)行對比,發(fā)現(xiàn)該模型預(yù)測的結(jié)果是較為準(zhǔn)確的,但通過模型預(yù)測結(jié)果與實(shí)際情況的對比,也發(fā)現(xiàn)了該系統(tǒng)在長沙縣的不同地區(qū)的預(yù)測精度存在一定的差異,這種差異在經(jīng)過評估后分析發(fā)現(xiàn)是由于數(shù)據(jù)預(yù)處理不夠造成的,為了解決這一問題在后期的開發(fā)過程中應(yīng)該對數(shù)據(jù)預(yù)處理過程進(jìn)行改進(jìn)。
圖7 生成的決策樹
圖8為系統(tǒng)體系結(jié)構(gòu)圖。該系統(tǒng)利用超聲波測深儀及GPS定位儀采集河道水下的地形數(shù)據(jù),通過物聯(lián)網(wǎng)技術(shù)中的無線傳感器技術(shù)來實(shí)現(xiàn)對水位、流量等數(shù)據(jù)的采集,并將采集到的相關(guān)數(shù)據(jù)傳送到數(shù)據(jù)采集器通過GPRS網(wǎng)絡(luò)傳輸?shù)綌?shù)據(jù)庫服務(wù)器存儲(chǔ)起來。
圖8 系統(tǒng)體系結(jié)構(gòu)
Unity 3D接收相應(yīng)的DEM數(shù)據(jù)映射成河流水平面以上地形,數(shù)據(jù)庫服務(wù)器中存儲(chǔ)的河道水下地形數(shù)據(jù)傳送到Unity 3D結(jié)合相關(guān)算法映射成河流橫截面,河道中的動(dòng)態(tài)河流效果是通過Unity 3D中的動(dòng)態(tài)水流插件設(shè)計(jì)而成的,在Unity 3D中還通過編寫腳本結(jié)合馬斯京根算法構(gòu)建了一個(gè)洪水演進(jìn)模塊,通過該模塊可以將水位的升降變化映射到河流橫截面的水位升降及河流水平面以上的河流覆蓋面積的變化上,為了更好地查看預(yù)測水位、流量,還利用了Unity 3D自帶的GUI Text以文本框的形式對相關(guān)預(yù)測信息進(jìn)行展示。
數(shù)據(jù)庫服務(wù)器中存儲(chǔ)的歷史水位、流量以及互聯(lián)網(wǎng)天氣接口中的歷史天氣數(shù)據(jù)會(huì)傳送到?jīng)Q策樹算法建立的訓(xùn)練模型中進(jìn)行訓(xùn)練,最終得到一個(gè)能夠判定危險(xiǎn)性級別的預(yù)測模塊。Unity 3D構(gòu)建的洪水演進(jìn)模塊所預(yù)測的相關(guān)水位、流量會(huì)輸入到該危險(xiǎn)性預(yù)測模塊中進(jìn)行測試從而得到相關(guān)的危險(xiǎn)性等級,不同的危險(xiǎn)性等級可以觸發(fā)系統(tǒng)發(fā)送預(yù)警短信給不同的用戶。
網(wǎng)頁前端能夠讀取數(shù)據(jù)庫中的相關(guān)數(shù)據(jù)并以折線圖、柱狀圖的方式展示當(dāng)前的實(shí)際水位、流量以及預(yù)測的水位流量,在網(wǎng)頁端,用戶可以在收到相應(yīng)的預(yù)警短信后通過網(wǎng)頁前端調(diào)用短信發(fā)送接口向各個(gè)監(jiān)控點(diǎn)發(fā)送決策短信。在此系統(tǒng)中網(wǎng)頁前端與Unity 3D構(gòu)造的三維動(dòng)態(tài)演進(jìn)模型是通過網(wǎng)頁端中的二維河段地圖聯(lián)系起來的,在二維河段地圖中會(huì)根據(jù)各個(gè)河段不同的預(yù)警情況做出不同顏色的標(biāo)注,顏色越深代表情況越緊急,用戶點(diǎn)擊不同顏色的標(biāo)注就可以進(jìn)入到所對應(yīng)的三維場景中了。這樣就可以在很大程度上提高防洪預(yù)警的效率,極大地保護(hù)了人們的生命財(cái)產(chǎn)安全。
本系統(tǒng)對2017年長沙縣郎梨地區(qū)的汛期進(jìn)行了相關(guān)測試并取得不錯(cuò)的效果,圖9為系統(tǒng)測試時(shí)網(wǎng)頁前端水位預(yù)測圖,其中深色的柱狀代表預(yù)測水位,淺色的柱狀代表實(shí)際水位。圖10為系統(tǒng)所構(gòu)建的三維動(dòng)態(tài)演進(jìn)效果圖。
圖9 網(wǎng)頁前端預(yù)測圖
圖10 三維動(dòng)態(tài)演進(jìn)效果圖
本文主要研究了山洪災(zāi)害演進(jìn)的可視化展示和危險(xiǎn)性預(yù)測,針對傳統(tǒng)的山洪災(zāi)害預(yù)測精度不高、災(zāi)害場景可視化較差等不足,將決策樹算法、馬斯京根法、Unity 3D建模、DEM和水文信息探測技術(shù)相結(jié)合構(gòu)造了洪水三維動(dòng)態(tài)預(yù)測演進(jìn)模型,有效地解決了山洪災(zāi)情演進(jìn)的動(dòng)態(tài)展示及災(zāi)情危險(xiǎn)性預(yù)測等問題,能夠讓用戶從多個(gè)角度對災(zāi)情演進(jìn)進(jìn)行觀測,并根據(jù)不同的危險(xiǎn)性級別向不同用戶發(fā)送預(yù)警短信。