吳 倩 ,孫銘聰 ,陳國(guó)輝 ,陳 繼 ,馬曉平 ,劉敦龍
(1.四川省地質(zhì)工程勘察院集團(tuán)有限公司,四川 成都 610072;2.成都信息工程大學(xué),四川 成都 610225)
我國(guó)地質(zhì)災(zāi)害種類多、分布廣、災(zāi)情嚴(yán)重,是世界上地質(zhì)災(zāi)害最嚴(yán)重的國(guó)家之一,威脅著人民生命財(cái)產(chǎn)安全[1]。據(jù)統(tǒng)計(jì),除地震外的各類地質(zhì)災(zāi)害平均每年造成1000 多人死亡、經(jīng)濟(jì)財(cái)產(chǎn)損失上100 億元,地質(zhì)災(zāi)害防災(zāi)減災(zāi)工作顯得尤為迫切[2]。
隨著遙感衛(wèi)星、無(wú)人機(jī)與地理信息等技術(shù)被用于地質(zhì)災(zāi)害調(diào)查和監(jiān)測(cè),地質(zhì)災(zāi)害數(shù)據(jù)呈現(xiàn)出多源性、多時(shí)相性、異構(gòu)性、多尺度、多分辨率等特點(diǎn),地質(zhì)災(zāi)害數(shù)據(jù)日益呈現(xiàn)出海量發(fā)展趨勢(shì)[3]。傳統(tǒng)地質(zhì)災(zāi)害信息管理系統(tǒng)由于沒(méi)有統(tǒng)一的數(shù)據(jù)集成框架及直觀的數(shù)據(jù)展示,已無(wú)法滿足災(zāi)害信息管理的迫切需求[4]。REST(表述性狀態(tài)傳遞,Representational State Transfer)是一種輕量級(jí)的軟件架構(gòu)風(fēng)格,已普遍地取代了基于SOAP 和WSDL 的接口設(shè)計(jì),具有很好的應(yīng)用前景。
本文的三維地質(zhì)災(zāi)害監(jiān)測(cè)預(yù)警平臺(tái)采用C/S 開發(fā)模式,結(jié)合REST 服務(wù),可對(duì)地質(zhì)災(zāi)害監(jiān)測(cè)數(shù)據(jù)實(shí)施有效的組織管理與集成、實(shí)時(shí)預(yù)警運(yùn)算與發(fā)布、三維可視化展示。同時(shí),本平臺(tái)具有性能可靠、開放易擴(kuò)展等優(yōu)勢(shì),對(duì)豐富地質(zhì)災(zāi)害信息管理系統(tǒng)的功能,提高工作效率和數(shù)據(jù)共享等方面具有很大借鑒意義。
基礎(chǔ)平臺(tái)提供了三維GIS 的基礎(chǔ)運(yùn)行環(huán)境,包括地球橢球體模型構(gòu)建,三維場(chǎng)景瀏覽控制,矢量數(shù)據(jù)、地形數(shù)據(jù)與影像數(shù)據(jù)可視化展示,圖形數(shù)據(jù)緩存及投影轉(zhuǎn)換等基礎(chǔ)功能,并通過(guò)業(yè)務(wù)功能模塊的擴(kuò)展使平臺(tái)在地質(zhì)災(zāi)害監(jiān)測(cè)方面的應(yīng)用更具專業(yè)性。
為充分利用本地運(yùn)算能力以呈現(xiàn)更好的三維展示效果,平臺(tái)采用了桌面客戶端形式以C#語(yǔ)言進(jìn)行開發(fā),以.NET Framework 4.0 為開發(fā)框架,結(jié)合了分布式數(shù)據(jù)庫(kù)架構(gòu)和第三方控件DevExpress。DevExpress 控件具有功能豐富、應(yīng)用簡(jiǎn)便、界面華麗、方便定制等優(yōu)點(diǎn)。
基礎(chǔ)平臺(tái)的GIS 功能模塊利用ArcGIS Engine 開發(fā)組件,用戶界面采用DevExpress 提供的系列控件,三維呈現(xiàn)采用ArcGISGlobe 三維數(shù)字地球引擎構(gòu)建基礎(chǔ)地球結(jié)構(gòu);業(yè)務(wù)邏輯部分根據(jù)監(jiān)測(cè)預(yù)警平臺(tái)需求,包括了圖層管理、球體漫游、空間測(cè)量、空間標(biāo)繪、數(shù)據(jù)可視化、REST請(qǐng)求處理等功能模塊;用戶界面結(jié)合業(yè)務(wù)邏輯模塊構(gòu)成了三維GIS 平臺(tái)。
基礎(chǔ)三維GIS 平臺(tái)主要由三維模型、可視視圖、事件監(jiān)聽和圖層數(shù)據(jù)四大模塊構(gòu)成。三維模型由球體模型,基礎(chǔ)圖層和拼接控制構(gòu)成;在三維模型基礎(chǔ)上建立可視視圖,視圖通過(guò)顯示器展示,并根據(jù)用戶操作通過(guò)場(chǎng)景控制反饋到可視視圖;事件監(jiān)聽可以對(duì)所有事件進(jìn)行監(jiān)聽并執(zhí)行相應(yīng)程序,圖層數(shù)據(jù)可通過(guò)本地緩存文件或者通過(guò)基于HTTP 的Web 服務(wù)訪問(wèn)地圖服務(wù)器獲取。
地質(zhì)災(zāi)害監(jiān)測(cè)是通過(guò)采用多種觀測(cè)設(shè)備對(duì)地質(zhì)災(zāi)害的發(fā)育、發(fā)展過(guò)程進(jìn)行不間斷的長(zhǎng)期觀測(cè),并基于一定量的監(jiān)測(cè)數(shù)據(jù),通過(guò)分析、處理與計(jì)算等,判斷地質(zhì)災(zāi)害的穩(wěn)定狀況及其發(fā)展趨勢(shì)。其目的是為了獲悉并掌握地質(zhì)災(zāi)害的發(fā)展規(guī)律,及時(shí)捕捉到地質(zhì)災(zāi)害發(fā)生的前兆信息,提升科技防災(zāi)減災(zāi)水平。監(jiān)測(cè)的內(nèi)容主要為可反映地質(zhì)災(zāi)害穩(wěn)定狀況的相關(guān)信息,如雨量、地聲、次聲、地表位移、土壤含水量、地表裂縫、視頻、泥水位、撞線等。
平臺(tái)的數(shù)據(jù)管理主要包括監(jiān)測(cè)設(shè)備管理、報(bào)警閾值管理、警情數(shù)據(jù)管理和用戶管理四大模塊。具體如下:
(1)監(jiān)測(cè)設(shè)備管理包含測(cè)點(diǎn)管理和設(shè)備管理兩個(gè)模塊,測(cè)點(diǎn)管理是對(duì)監(jiān)測(cè)點(diǎn)位/區(qū)域的相關(guān)信息進(jìn)行管理以及測(cè)點(diǎn)位置可視化展示;設(shè)備管理是對(duì)監(jiān)測(cè)儀器的相關(guān)信息進(jìn)行管理。測(cè)點(diǎn)與設(shè)備具有一對(duì)多的關(guān)系,即一個(gè)測(cè)點(diǎn)可以包含多個(gè)監(jiān)測(cè)設(shè)備。
(2)報(bào)警閾值管理模塊是設(shè)置不同監(jiān)測(cè)點(diǎn)位/區(qū)域上的不同監(jiān)測(cè)設(shè)備在不同預(yù)警等級(jí)的報(bào)警閾值。若監(jiān)測(cè)數(shù)據(jù)超過(guò)相關(guān)預(yù)設(shè)閾值,則發(fā)出相應(yīng)等級(jí)的報(bào)警信息,可通過(guò)發(fā)送短信以及在系統(tǒng)的三維球體上的相應(yīng)位置閃爍相應(yīng)顏色的預(yù)警圖標(biāo)。由于在不同監(jiān)測(cè)區(qū)域,誘發(fā)地質(zhì)災(zāi)害的閾值條件存在差異,需要針對(duì)監(jiān)測(cè)區(qū)域的特性,單獨(dú)設(shè)置不同監(jiān)測(cè)區(qū)域內(nèi)的不同監(jiān)測(cè)設(shè)備的報(bào)警閾值。
(3)警情數(shù)據(jù)管理是對(duì)已報(bào)警的數(shù)據(jù)記錄進(jìn)行處理,有延遲預(yù)警和已查看兩種方式。延遲預(yù)警是指在規(guī)定時(shí)間內(nèi),若警情沒(méi)有升級(jí),則不再發(fā)出報(bào)警信息;若警情升級(jí),則仍要發(fā)出報(bào)警信息;超出規(guī)定時(shí)間后,若監(jiān)測(cè)數(shù)據(jù)超過(guò)預(yù)設(shè)閾值,則發(fā)出報(bào)警信息。已查看是指對(duì)本次預(yù)警情況已知曉,若后續(xù)的監(jiān)測(cè)數(shù)據(jù)超過(guò)了預(yù)警閾值,仍要發(fā)出相應(yīng)的報(bào)警信息。
(4)用戶管理模塊是對(duì)用戶信息進(jìn)行管理,用戶類型分為普通用戶、管理員和超級(jí)管理員三種權(quán)限,普通用戶只能進(jìn)行瀏覽查看;管理員用戶可以對(duì)測(cè)點(diǎn)、監(jiān)測(cè)儀器、報(bào)警閾值和警情進(jìn)行管理,但無(wú)法對(duì)用戶信息進(jìn)行操作;超級(jí)管理員則具有超級(jí)權(quán)限,允許進(jìn)行系統(tǒng)的所有操作。
根據(jù)地質(zhì)災(zāi)害監(jiān)測(cè)對(duì)象不同,可以分為單體地質(zhì)災(zāi)
R 值為綜合預(yù)警等級(jí)指數(shù),Wi為第i 個(gè)評(píng)價(jià)指標(biāo)權(quán)重,Pi表示第i 個(gè)評(píng)價(jià)指標(biāo)的單因素分級(jí)指數(shù)。
平臺(tái)所需的地理數(shù)據(jù)主要包括底圖切片、DEM 高程數(shù)據(jù)、DOM 數(shù)據(jù)、監(jiān)測(cè)設(shè)備圖標(biāo)以及空間矢量數(shù)據(jù)。目前,主流的GIS 服務(wù)器軟件大都具備REST 服務(wù)能力,如商業(yè)軟件ArcGIS、SuperMap 等,開源軟件GeoServer 等,它們的RESTAPI 封裝了開發(fā)所需的GIS 功能,包括地圖、數(shù)據(jù)等,可將這些GIS 功能以資源形式提供,平臺(tái)客戶端通過(guò)編寫REST 接口程序?qū)Y源進(jìn)行操作,獲取相應(yīng)的GIS 能力。地理信息服務(wù)集成主要分成了客戶端表現(xiàn)層、地理信息服務(wù)層和地理數(shù)據(jù)層三大部分。
在服務(wù)端,業(yè)務(wù)邏輯層為監(jiān)測(cè)數(shù)據(jù)的操作提供相應(yīng)的URI 和允許的HTTP 操作。客戶端通過(guò)URI 和HTTP方法來(lái)請(qǐng)求數(shù)據(jù)服務(wù),用以操作相應(yīng)的監(jiān)測(cè)數(shù)據(jù)。REST服務(wù)的主要操作內(nèi)容包括數(shù)據(jù)的查詢(GET),新增(POST),更新(PUT)和刪除(Delete),對(duì)應(yīng)的數(shù)據(jù)庫(kù)操作即為 Select,Create,Update,Delete。以監(jiān)測(cè)設(shè)備操作為例,若要獲取監(jiān)測(cè)設(shè)備列表則執(zhí)行GET <URI>/devices,業(yè)務(wù)邏輯層解析URI 后通過(guò)Select 方法在數(shù)據(jù)庫(kù)的devices表中檢索設(shè)備列表,并返回給客戶端;通過(guò)客戶端新增設(shè)備時(shí),則通過(guò) POST<URI>/devices/{id}請(qǐng)求,并附上該描述該設(shè)備所需的字段說(shuō)明,服務(wù)程序采用Insert 方法將新設(shè)備數(shù)據(jù)插入devices 表中;同理,在修改和刪除設(shè)備時(shí)采用PUT 和DELETE 請(qǐng)求,利用設(shè)備id 參數(shù),通過(guò)害監(jiān)測(cè)預(yù)警與區(qū)域地質(zhì)災(zāi)害監(jiān)測(cè)預(yù)警兩大類。在實(shí)際應(yīng)用中,通常中長(zhǎng)期預(yù)測(cè)以區(qū)域監(jiān)測(cè)為主,短臨預(yù)警則以單體監(jiān)測(cè)預(yù)警為主。本平臺(tái)建設(shè)主要考慮通過(guò)實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù)進(jìn)行單體的短臨預(yù)警,利用專業(yè)監(jiān)測(cè)設(shè)備進(jìn)行地質(zhì)災(zāi)害點(diǎn)的實(shí)時(shí)觀測(cè),通過(guò)建立綜合指標(biāo)體系的演算分析構(gòu)建地質(zhì)災(zāi)害預(yù)警的數(shù)學(xué)模型,利用該預(yù)警模型實(shí)現(xiàn)對(duì)監(jiān)測(cè)對(duì)象的實(shí)時(shí)監(jiān)測(cè)預(yù)警。
實(shí)際應(yīng)用中,一個(gè)監(jiān)測(cè)對(duì)象往往會(huì)利用多種監(jiān)測(cè)設(shè)備同時(shí)進(jìn)行觀測(cè),這種情況下,當(dāng)針對(duì)不同監(jiān)測(cè)內(nèi)容采用不同的定量值進(jìn)行預(yù)警時(shí),會(huì)得到多個(gè)不同的預(yù)警結(jié)果。因此,本平臺(tái)采用了多判據(jù)條件下的綜合預(yù)警模式進(jìn)行預(yù)警,通過(guò)不同指標(biāo)權(quán)重來(lái)建立評(píng)價(jià)模型,以得到更為準(zhǔn)確的預(yù)警結(jié)果。
綜合預(yù)警等級(jí)分析將各監(jiān)測(cè)點(diǎn)的預(yù)警等級(jí)進(jìn)行量化,并根據(jù)權(quán)重進(jìn)行綜合預(yù)警等級(jí)指數(shù)的計(jì)算,最終得出綜合預(yù)警等級(jí)。綜合預(yù)警等級(jí)指數(shù)的計(jì)算方式為:Update 和Delete 方法操作數(shù)據(jù)庫(kù)。
客戶端獲取到返回的JSON 數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行解析判定,并根據(jù)數(shù)據(jù)類型與經(jīng)緯度信息將其疊加到三維GIS 平臺(tái)上,通過(guò)程序的圖層控制實(shí)現(xiàn)相關(guān)監(jiān)測(cè)數(shù)據(jù)與三維GIS 平臺(tái)的融合展示。
圖1 三維地質(zhì)災(zāi)害監(jiān)測(cè)預(yù)警平臺(tái)界面
預(yù)警模型的調(diào)用在系統(tǒng)中通過(guò)主動(dòng)和定時(shí)觸發(fā)兩種方式調(diào)用,預(yù)警模型的運(yùn)算結(jié)果將存入數(shù)據(jù)庫(kù)中。定時(shí)方式由后臺(tái)定時(shí)任務(wù)觸發(fā)執(zhí)行(定時(shí)間隔由管理員設(shè)定)。主動(dòng)調(diào)用方式是指用戶在客戶端主動(dòng)發(fā)起請(qǐng)求,對(duì)指定的地質(zhì)災(zāi)害監(jiān)測(cè)區(qū)域進(jìn)行一次預(yù)警運(yùn)算。如,POST 請(qǐng)求:<URI>/warning/monitoring/{area_id},其中,area_id 為監(jiān)測(cè)區(qū)域的唯一標(biāo)識(shí)。服務(wù)端的預(yù)警模型在接收請(qǐng)求后通過(guò)area_id 查詢數(shù)據(jù)庫(kù)中該區(qū)域部署的傳感器監(jiān)測(cè)數(shù)據(jù),在綜合運(yùn)算完成后,預(yù)警模型將分析結(jié)果寫入數(shù)據(jù)庫(kù)表中。
平臺(tái)以.Net Core 和數(shù)據(jù)庫(kù)技術(shù)為基礎(chǔ),結(jié)合了三維GIS 引擎,利用REST 風(fēng)格的Web 服務(wù)集成了地理信息、監(jiān)測(cè)數(shù)據(jù)及預(yù)警模型服務(wù),實(shí)現(xiàn)矢量數(shù)據(jù)、柵格數(shù)據(jù)、專題數(shù)據(jù)等各類GIS 數(shù)據(jù)的加載、監(jiān)測(cè)數(shù)據(jù)接入展示及模型預(yù)警展示功能。由于采用REST 風(fēng)格服務(wù),系統(tǒng)具有較強(qiáng)的靈活性與兼容性,可同時(shí)接入多種業(yè)務(wù)服務(wù)。本平臺(tái)可接入地形數(shù)據(jù)與影像數(shù)據(jù)服務(wù)、矢量數(shù)據(jù)圖層,專題數(shù)據(jù)圖層以及圖標(biāo)元素?cái)?shù)據(jù)等,可呈現(xiàn)出三維立體的視覺感受(圖 1)。
本文基于REST 服務(wù)架構(gòu),結(jié)合三維GIS 平臺(tái)、分布式數(shù)據(jù)庫(kù)和DevExpress 第三方控件開發(fā)了三維地質(zhì)災(zāi)害監(jiān)測(cè)預(yù)警平臺(tái),豐富了地質(zhì)災(zāi)害信息管理系統(tǒng)的功能、提高了系統(tǒng)的工作效率以及實(shí)現(xiàn)了數(shù)據(jù)共享。該監(jiān)測(cè)預(yù)警平臺(tái)使得地理信息、監(jiān)測(cè)數(shù)據(jù)、預(yù)警模型運(yùn)算等多類服務(wù)的集成接入得到簡(jiǎn)化,并通過(guò)GIS 平臺(tái)能夠?qū)⒈O(jiān)測(cè)數(shù)據(jù)和預(yù)警結(jié)果實(shí)時(shí)以三維視角直觀呈現(xiàn),帶來(lái)一種新的地質(zhì)災(zāi)害監(jiān)測(cè)預(yù)警平臺(tái)開發(fā)方法,通過(guò)在監(jiān)測(cè)預(yù)警項(xiàng)目中的實(shí)際應(yīng)用,也驗(yàn)證了本設(shè)計(jì)的可靠性與實(shí)用性。