王海沛 李中志
摘要:為解決當前山洪防災預警信息化建設中數(shù)據(jù)處理效率低、資源共享能力弱、軟件通用化程度不高、功能不全等問題,采用基于云計算的技術(shù)理念設計開發(fā)了具有擴展性好,數(shù)據(jù)存儲與處理強,預警更加及時有效的山洪監(jiān)測預警系統(tǒng)。系統(tǒng)實現(xiàn)了實時、動態(tài)反映信息,并且能夠以曲線,圖,視頻等直觀形式展現(xiàn)山洪信息與預警發(fā)布功能,為政府部門防洪防災決策提供科學、統(tǒng)一、可靠的信息平臺。應用結(jié)果表明系統(tǒng)利用云技術(shù)實現(xiàn)了SAAS的模式,實現(xiàn)了多用戶的按需定制,增強了系統(tǒng)的可擴展,可維護性。同時也驗證了預警算法準確有效,數(shù)據(jù)存儲與處理模式合理高效。
關(guān)鍵詞:云計算;山洪災害;監(jiān)測預警系統(tǒng);應用服務
中圖分類號:TP393 文獻標識碼:B DOI:10.3969/j.issn.1003-6970.2015.05.021
0 引言
我國水利信息化工作從上個世紀90年代起步,最先僅僅是計算機技術(shù)的推廣與應用,隨后才逐步引入數(shù)據(jù)采集、數(shù)據(jù)庫技術(shù)、物聯(lián)網(wǎng)技術(shù)、3s系統(tǒng)(全球定位系統(tǒng)GPS、地理信息系統(tǒng)GIS和遙感RS)12]技術(shù)等現(xiàn)代信息技術(shù)。而各地區(qū)山洪監(jiān)測預警系統(tǒng)作為水利信息化系統(tǒng)的主要代表為各地區(qū)的減災防洪等發(fā)揮著巨大的作用。但是隨著業(yè)務的深入應用,傳統(tǒng)的山洪監(jiān)測預警系統(tǒng)也面臨著諸多問題和難題(表1)。同時由于傳統(tǒng)的山洪預警系統(tǒng)中監(jiān)測與預警發(fā)布是分開建設的,在這種模式下各地區(qū)系統(tǒng)數(shù)據(jù)不能共享,各自為政不能互聯(lián)互通,出現(xiàn)災險情后,指揮系統(tǒng)不能應急聯(lián)動,這樣無法完成統(tǒng)一指揮和調(diào)度,影響預警系統(tǒng)的時效性和穩(wěn)定可靠性。因此,建設新的山洪災害預警監(jiān)測預警系統(tǒng)勢在必行。
云計算對于山洪監(jiān)測預警系統(tǒng)的建設的意義在于實現(xiàn)資源的整合與業(yè)務的協(xié)同,提升對海量數(shù)據(jù)存儲、分享、挖掘、搜索、分析和服務的能力,使得業(yè)務數(shù)據(jù)作為無形資產(chǎn)得到統(tǒng)一有效的管理,同時為更多公眾服務(表1)。因此云計算技術(shù)成為解決傳統(tǒng)山洪預警系統(tǒng)面臨的一些問題的首選技術(shù)方案。
1 研究基礎(chǔ)
1.1 云計算技術(shù)研究
“云計算”是一種能夠?qū)討B(tài)伸縮的虛擬化資源通過互聯(lián)網(wǎng)以服務的方式提供給用戶的計算模式,用戶不需要知道如何管理那些支持云計算的基礎(chǔ)設施,而只需要關(guān)注自己需要什么類型的服務?!癤即服務”的模式不斷增長和發(fā)展,帶動著數(shù)據(jù)中心向“云”快速邁進。在云中,用戶不再關(guān)心數(shù)據(jù)的物理存儲,只需要在用時為其付費,以較低的成本帶來了更高的性能和生力,以及決策解決方案的通用性。
1.2 GIS系統(tǒng)集成研究
地理信息系統(tǒng)(GIs,Geographic Information System)是隨著地理科學、計算機技術(shù)、遙感技術(shù)和信息科學的發(fā)展而發(fā)展起來的一個學科。GIS平臺具備漫游縮放、圖元點的選取、距離測量、面積測量、屬性數(shù)據(jù)查找圖元、專題圖顯示、圖例顯示等通用的GIS功能.基于云架構(gòu)的山洪監(jiān)測預警系統(tǒng)在GIS平臺和云平臺基礎(chǔ)之上,進行山洪災害預警預報模型的程序?qū)崿F(xiàn),主要利用GIS軟件提供的各種開發(fā)接口和可調(diào)用函數(shù),經(jīng)過集成二次開發(fā)來實現(xiàn)對雨量、地形條件記錄、氣象等數(shù)據(jù)實時管理及動態(tài)跟新等,從而為系統(tǒng)實時監(jiān)測預警分析提供保證。
2 系統(tǒng)云平臺架構(gòu)設計與部署
2.1 山洪災害監(jiān)測預警系統(tǒng)云架構(gòu)設計
基于云架構(gòu)的山洪災害監(jiān)測預警系統(tǒng)依托云計算的三層結(jié)構(gòu)進行架構(gòu)設計,整個系統(tǒng)中云計算平臺是系統(tǒng)的中樞,負責所有的數(shù)據(jù)處理、交換以及共享,并將決策結(jié)果向上發(fā)送到應用層。計算資源和存儲設施都由云計算服務提供商負責。系統(tǒng)最終以SaaS的方式提供給租戶租用。如圖1為山洪災害監(jiān)測預警系統(tǒng)的云架構(gòu)圖。
(1)信息數(shù)據(jù)采集層。信息數(shù)據(jù)采集層是山洪災害預警系統(tǒng)的數(shù)據(jù)源基礎(chǔ)。信息采集對象包括相關(guān)水利部門建設的監(jiān)測站點傳送的水位,雨量,視頻等信息。物理層是IAAS基礎(chǔ)設施層,包括計算設備,儲設備、網(wǎng)絡設備等。
(2)虛擬資源層。虛擬資源層則通過分布式技術(shù)和虛擬化技術(shù)對服務器、存儲設備與網(wǎng)絡設備等硬件資源進行虛擬化,以虛擬機為單位進行統(tǒng)一自動化管理,對這些虛擬資源提供資源監(jiān)控、負載管理、資源調(diào)度、安全管理等功能。
(3)系統(tǒng)管理與數(shù)據(jù)資源層。此架構(gòu)中,虛擬化平臺采用較為成熟的VMwarev Sphere虛擬化管理工具,并配置vCenter Server Heartbeat保證虛擬平臺的可靠性;Hadoop批處理來實現(xiàn)大數(shù)據(jù)處理,結(jié)合MapReduee和并行數(shù)據(jù)庫的優(yōu)勢,可以得到更高效的分布式計算模型。數(shù)據(jù)資源層是系統(tǒng)信息匯集的目的地,是數(shù)據(jù)存儲和管理的基礎(chǔ)。
(4)平臺支撐層。平臺支撐層配備基本的公共服務產(chǎn)品,方便開發(fā)者在其上層更加快捷的搭建業(yè)務應用流程和構(gòu)造信息門戶。該層可以有效地隔離下層數(shù)據(jù)和上層應用之間的直接聯(lián)系,方便系統(tǒng)靈活擴展,建立與其他水利業(yè)務系統(tǒng)之間的數(shù)據(jù)共享通道和建立業(yè)務協(xié)同關(guān)系。
(5)應用層。業(yè)務層依托云平臺環(huán)境的支撐,建立山洪災害監(jiān)測預警業(yè)務羅晉,構(gòu)建各項防汛業(yè)務相關(guān)的SAAS服務。
2.2 云架構(gòu)平臺的實現(xiàn)部署
采用Hadoop技術(shù)的云計算平臺的搭建部署主要過程如下:
步驟1:在所有云計算中心申請的IAAS資源主機上部署相同的hadoop目錄結(jié)構(gòu),并且用戶名的帳戶要相同,用戶名和密碼自己指定。配置每臺電腦上的/etc/hosts目錄,保證他們之間能相互通信。
步驟2:進行SSH免密碼遠程登錄配置。在進行SSH配置之前需要先安裝SSH服務并開啟。用hadoop用戶分別登錄每臺主機資源,在/home/hadoop/目錄下建立.ssh目錄,在master節(jié)點(即主機testl)上使用命令$ssh-keygen-t rsa來生成密鑰對,然后把這個公鑰分別放置在Slave節(jié)點的hadoop/.ssh/authorizedkeys文件中。在NameNode節(jié)點上生成密鑰對并將公鑰復制至其他DataNode:
ssh-keygen-t dsa-P”-f~/.ssh/ld dsa cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys
步驟3:在每臺主機資源上分別安裝JAVA的開發(fā)和運行環(huán)境,安裝完成后并進行環(huán)境變量的配置,用$source/etc/profile使JAVA環(huán)境生效。
步驟4:進行hadoop參數(shù)設置。下載并解壓縮hadoop-0.19.1.jar,并對其進行配置。首先在hadoop-env.conf文件中,修改JDK安裝路徑,再按需要對hadoop-site.conf文件修改
步驟5:Hadoop核心配置文件core-site.xml、HDFS配置文件hdfs-site.xml、MapReduce配置文件mapred-site.xml配置如下圖所示配置eonf/master文件,添加所有的NameNode:testl。配置conf/slave文件,添加所有的DataNode:est2、test3、test4。
步驟6:同步配置文件。如果需要任何一臺機器都能夠啟動和關(guān)閉Hadoop,就需要將NameNode上安裝配置完成的hadoop文件拷貝到所有DataNode。如果都是通過Master去啟動和關(guān)閉的,那么Master和Slave上的幾個conf配置文件不需要全部同步。
步驟7:啟動hadoop。啟動之前,需要先使用$bin/hadoop namenode—format命令來完成格式化Na-meNode。使用bin/start-all.sh啟動了hadoop的守護進程。如果要停止,使用$bin/stop-a11.sh來停止hadoop。至此,hadoop云計算平臺已經(jīng)搭建完成??梢栽跒g覽器中輸入http:∥testl:9100就能看到testl上的Na-meNode的運行情況了,同理可以查看其它計算機的運行情況。
3 基于云架構(gòu)的山洪災害監(jiān)測預警系統(tǒng)實現(xiàn)
3.1 系統(tǒng)的基礎(chǔ)數(shù)據(jù)整理與錄入
山洪災害監(jiān)測預警系統(tǒng)的基礎(chǔ)數(shù)據(jù)來源廣泛且量大復雜,數(shù)據(jù)格式不統(tǒng)一,所以必須對不同來源的數(shù)據(jù)通過數(shù)據(jù)清洗和轉(zhuǎn)換進行統(tǒng)一的數(shù)據(jù)編碼和和統(tǒng)一的數(shù)據(jù)存儲?;A(chǔ)數(shù)據(jù)來源主要有根據(jù)國家要求建設的水位站,雨量站信息,還有其后各相關(guān)水利部門自己建設的水位站雨量站,有些是自動的上報的,有些是人工上報的,還有河道,水庫的視頻監(jiān)控站等數(shù)據(jù)。此外還有氣象,水文,國土等部門提供的外部數(shù)據(jù)。對于這些龐大的數(shù)據(jù)經(jīng)過統(tǒng)一的編碼和存儲錄入后,采用建立專題數(shù)據(jù)庫的形式,如實時水雨情數(shù)據(jù)庫、歷史大洪水數(shù)據(jù)庫洪澇災害數(shù)據(jù)庫、山洪災害專題空間數(shù)據(jù)庫等采用Hadoop技術(shù)中HDFS對山洪異構(gòu)數(shù)據(jù)提供分布式存儲。
3.2.1 監(jiān)測站編碼
監(jiān)測站主要指水位站,雨量站,視頻站等采集的數(shù)據(jù),通過統(tǒng)一的編碼進行入識別入庫。
水位,雨量監(jiān)測站代碼組成ABBCDDEE
代表:流域(區(qū))碼水系(分區(qū))碼測站(斷面)類測站所屬地標識測站序號
視頻站編碼組成ABTFFSSNNNY
代表:類別屬性嗎一級流域碼二級流域碼支流編碼視頻點編碼視頻點類型
3.2.2 監(jiān)測數(shù)據(jù)整理錄入
以水位站,雨量站示例數(shù)據(jù)說明(表2)
示例數(shù)據(jù)說明測站編碼:60523450時間范圍:2014/6/23 8:00-2014/6/27 8:00
Stcd(測站編碼) TM(時間) DPR(時段降水量)INTV(時段長)
PRD(降水歷時) DYP(日降水量) WTH(時段長)
2014/6/23 8:00降水記錄舉例:一小時內(nèi)的時間段累計降水(當INTV=1情況下),DYP=15.5代表2014/6/23 8:00—2014/6/27 8:00前一日的日累計降水,實際取值∑DPR(2014/6/23 8:00—2014/6/27 8:00);2014/6/27 06:00降水記錄舉例:如在05:55~06:00這一段有降雨發(fā)生,則在06:00時刻需分別記錄該時刻的降雨短歷時(5分鐘)和小時累計雨量,由于數(shù)據(jù)表主鍵字段限制,造成無法正常記錄數(shù)據(jù),需要針對短歷時(五分鐘)累計雨量入庫數(shù)據(jù)中的TM字段進行處理,在06:00時刻上再加入5毫秒,形成“2014/6/27 6:00:0.005”的TM數(shù)據(jù),小時累計數(shù)據(jù)入庫時則沿用“2014/6/27 6:00”的TM數(shù)據(jù)。
在2014/6/24 8:00的記錄中,DRP為NULL,代表前一段沒有降雨,而DYP 5.5,為前一日的時段累計降水量;由于本次監(jiān)測站需要發(fā)平安報,因此即使前一日沒有降雨(∑DPR=0),也必須按DYP 0報送,具體格式如表中2014/6/27 8:00的第一行記錄。數(shù)據(jù)庫表降雨歷時字段:數(shù)據(jù)存儲的格式是HH.NN,其中HH為小時數(shù),取值為00~23;NN為分鐘數(shù)取值為01~99如表中第四行PRD=0.25,代表前一小時內(nèi)的實際降水時間25分鐘;如果∑DPR(15分鐘)>5mm就要進行暴雨加報。WTH 7代表雨天。
3.2 系統(tǒng)的主要功能實現(xiàn)展示
3.2.1 實時水雨情監(jiān)測,重點山洪區(qū)域視頻監(jiān)控功能
系統(tǒng)的表現(xiàn)形式以WEBGIS和表格的方式為主,主要在地圖上顯示各監(jiān)測站點的分布,并在站點旁標注出水雨情信息(如降雨,水位,流量等),并可以查詢各監(jiān)測站點的詳細信息(如時段降雨,日降雨等)和歷史水雨情信息,當監(jiān)測站點的監(jiān)測項達到預警指標時,系統(tǒng)自動通過聲音,閃爍,短信方式報警,讓防汛人員及時掌握最新動態(tài),提前做出決策,避免或者減少災害造成的損失,見圖3。
3.2.2 河道水庫實時監(jiān)測
實時顯示各水庫河道站當前水位,流量,水位變化趨勢,警戒保證情況,并提供當前水位示意圖;顯示選定區(qū)域內(nèi)任意時段的各站水位,水勢,流量,歷史最高水位及發(fā)生時間,最大流量發(fā)生時間,顯示水位流量過程線等,如圖4。
3.2.3 山洪分析預警以預警發(fā)布
系統(tǒng)對水雨情報警展示,山洪預警信息,山洪預警指標,通過降雨量,水位,土壤含水量等信息進行山洪歷史數(shù)據(jù)建模分析,根據(jù)預警指標一旦出現(xiàn)預警信息,系統(tǒng)自動對關(guān)聯(lián)的區(qū)域進行報警提示,并發(fā)送報警信息給相關(guān)的目標用戶。同時,提供雨水情之間的預警聯(lián)動,即雨量站報警后,系統(tǒng)智能地對附近的水位站進行報警提示。