刁希凱 徐 韌 李億紅 劉漢奇
1(上海海洋大學(xué)海洋科學(xué)學(xué)院 上海 201306)2(國家海洋局東海環(huán)境監(jiān)測中心 上海 201206)3(海洋赤潮災(zāi)害立體監(jiān)測技術(shù)與應(yīng)用國家海洋局重點實驗室 上海 201206)
基于RIA和WebGIS的長江口海域危險化學(xué)品應(yīng)急監(jiān)測信息管理系統(tǒng)
刁希凱1,2,3徐 韌2,3*李億紅2,3劉漢奇2,3
1(上海海洋大學(xué)海洋科學(xué)學(xué)院 上海 201306)2(國家海洋局東海環(huán)境監(jiān)測中心 上海 201206)3(海洋赤潮災(zāi)害立體監(jiān)測技術(shù)與應(yīng)用國家海洋局重點實驗室 上海 201206)
利用傳統(tǒng)的方式管理沿岸的危險化學(xué)品,不僅應(yīng)急監(jiān)測效率不高,而且事故模擬的能力差。針對這方面的問題,采用 Flex和ArcGIS API for Flex開發(fā)基于RIA和WebGIS的長江口海域危險化學(xué)品應(yīng)急監(jiān)測信息管理系統(tǒng),完成了對污染擴散模型的集成,實現(xiàn)了對長江口海域危險化學(xué)品的可視化管理以及應(yīng)急事件處置流程的軟件化。結(jié)果表明,系統(tǒng)增強了對事故的模擬能力,提高了化學(xué)危險品應(yīng)急事件處置的效率。
RIA 危險化學(xué)品 模型集成 應(yīng)急處置
長江口海域裝載危險化學(xué)品的船舶往來頻繁,沿岸的危險化學(xué)品企業(yè)眾多,一旦發(fā)生危險化學(xué)品泄漏事故,將會迅速對周邊環(huán)境造成嚴重的危害。為了高效應(yīng)對這類監(jiān)測工作,利用RIA結(jié)合WebGIS來管理長江口海域的危險化學(xué)品風(fēng)險源實有必要。
1.1 技術(shù)平臺
將RIA技術(shù)引入到WebGIS系統(tǒng)中,可以解決傳統(tǒng)框架下WebGIS的局限性,能夠讓用戶體驗快速、流暢的WebGIS[1]。
1) RIA開發(fā)平臺
傳統(tǒng)網(wǎng)絡(luò)應(yīng)用程序把HTML頁面作為表示層,所有的數(shù)據(jù)處理都在服務(wù)器端[2]。這樣會導(dǎo)致服務(wù)器的運行壓力比較大、客戶端的界面體驗性差。
RIA結(jié)合了C/S模式下優(yōu)秀的客戶體驗效果和Web程序易于部署和更新的特點[3],基于RIA開發(fā)的系統(tǒng)優(yōu)勢明顯[4-6],當(dāng)下流行的RIA開發(fā)平臺有Microsoft Silverlight、HTML5、Adobe Flex等,它們都有各自的優(yōu)缺點[7]。
2) WebGIS平臺
使用ArcGIS API for Flex開發(fā)的Flex應(yīng)用可以非常便捷地使用REST接口提供的GIS查詢及分析功能,還可以將ArcGIS Server提供的地圖資源和其它資源嵌入到Web應(yīng)用中。
1.2 系統(tǒng)邏輯結(jié)構(gòu)
系統(tǒng)邏輯結(jié)構(gòu)分為技術(shù)層、數(shù)據(jù)層、應(yīng)用服務(wù)層和業(yè)務(wù)功能層四個部分,如圖1所示。
圖1 系統(tǒng)邏輯結(jié)構(gòu)
1) 技術(shù)層
技術(shù)層是指系統(tǒng)開發(fā)過程所依賴的主要技術(shù),包括數(shù)據(jù)庫技術(shù)、WebGIS技術(shù)、.NET技術(shù)和RIA技術(shù)等。
2) 數(shù)據(jù)層
數(shù)據(jù)層中的系統(tǒng)數(shù)據(jù)庫按照用途和類型分為模型數(shù)據(jù)庫、監(jiān)測數(shù)據(jù)庫和基礎(chǔ)數(shù)據(jù)庫。這些數(shù)據(jù)庫主要是用來存儲模擬軟件模擬的數(shù)值結(jié)果、風(fēng)險源企業(yè)信息、地理底圖和相關(guān)的圖層數(shù)據(jù)。
3) 應(yīng)用服務(wù)層
Web服務(wù)器用來響應(yīng)客戶端向應(yīng)用服務(wù)器端發(fā)送的請求,GIS服務(wù)器通過Web服務(wù)器來響應(yīng)Flex客戶端發(fā)送的地圖請求,從而將專題地圖、地理地圖以及空間分析的結(jié)果返回給客戶端。
4) 業(yè)務(wù)功能層
業(yè)務(wù)功能層包括用戶直接操作的各種功能,包括用戶管理和系統(tǒng)的各種功能等。用戶通過操作客戶端實現(xiàn)訪問數(shù)據(jù)和調(diào)用服務(wù)的目的。
1.3 系統(tǒng)開發(fā)架構(gòu)
開發(fā)架構(gòu)如圖2所示,表示層通過MXML來描述Flex應(yīng)用程序的界面。業(yè)務(wù)邏輯層通過ActionScript語言和相關(guān)類庫構(gòu)建RIA交互程序。數(shù)據(jù)訪問層,空間數(shù)據(jù)是通過ArcGIS Server發(fā)布GIS相關(guān)服務(wù)來訪問;業(yè)務(wù)數(shù)據(jù)是通過FluorineFx來訪問,F(xiàn)luorineFx是專門針對.NET平臺與Flex通信提供的AMF協(xié)議通信網(wǎng)關(guān)。
圖2 系統(tǒng)架構(gòu)設(shè)計
1.4 系統(tǒng)功能設(shè)計
系統(tǒng)功能主要包括信息管理、輔助決策和其它功能。如圖3所示,輔助決策在系統(tǒng)功能中處于關(guān)鍵位置,輔助決策功能包括污染擴散模擬和風(fēng)險等級評價兩個模塊,這個兩個模塊功能的實現(xiàn)需要分別將水動力擴散模型、加權(quán)平均評分法集成到系統(tǒng)中。
圖3 系統(tǒng)功能設(shè)計
污染擴散模擬可以直觀顯示危險化學(xué)品污染擴散模擬的結(jié)果,并分析其結(jié)果對周邊功能區(qū)的影響。污染擴散模擬功能的實現(xiàn)思路:(1) 根據(jù)對流擴散方程得出濃度點的分布范圍;(2) 將一定范圍的濃度點生成多邊形;(3) 通過計算多邊形與多邊形之間的最短距離判斷其對周邊功能區(qū)的影響范圍。
風(fēng)險等級評價是將加權(quán)平均評分法集成到系統(tǒng)中。此方法的實現(xiàn)步驟:(1) 選取評價指標;(2) 將各評價指標屬性值按一定方法轉(zhuǎn)換成為評價分值;(3) 確定每個評價指標權(quán)重;(4) 累加分值與權(quán)重的乘積,得出用加權(quán)平均評分法計算出的綜合評價分值。
2.1 擴散點生成擴散區(qū)域的實現(xiàn)
GIS對模擬結(jié)果的可視化表達有多種方式,王炫利用ArcGIS Engine將 NetCDF文件轉(zhuǎn)換為Raster文件格式,然后對Raster進行渲染播放實現(xiàn)了危險化學(xué)品泄漏后擴散的時間軌跡動態(tài)演示[8]。吳迪軍等利用克里金空間插值計算,將離散化的點還原為一個連續(xù)的空間[9]。
本系統(tǒng)中海域擴散模型輸出結(jié)果是根據(jù)擴散方程生成一系列的擴散點集合,目的是為了研究擴散邊界對周邊功能區(qū)在距離方面的影響,是邊界問題,而不必考慮擴散區(qū)內(nèi)每個點的屬性,因此我們不選用空間插值的方法,而是利用convexHull方法將外側(cè)離散點生成一個沒有凹面的最小多邊形,這個多邊形又被稱為凸包。 ArcGIS API for Flex提供了GeometryService服務(wù)用于編輯幾何要素,例如移動要素,編輯多變的形狀等,可以利用此服務(wù)提供的convexHull方法,生成凸包。代碼如下:
1) 通過實現(xiàn)convexHull來生成凸包
首先使用for循環(huán)將一系列點加入geometries中,然后執(zhí)行convexHull操作,代碼如下:
var geometries:Array = [];
for(var i=0;i { var result:Array = evt.result.serverInfo.initialData[i]; var pt:MapPoint = new MapPoint(Number(result [column.indexOf (″JD″)]),Number(result[column.indexOf(″WD″)])); var wpt:MapPoint=WebMercatorUtil.geographicToWebMercator (pt) as MapPoint; geometries.push(wpt); } geometryService.convexHull(geometries,new SpatialReference(4326)); 2) 凸包生成后將其加載到圖層 GeometryService標簽代碼如下: id唯一標識了這個GeometryService,url的作用是指定GeometryService的地址。在convexHullComplete事件發(fā)生時調(diào)用convexHullCompleteHandler方法將生成的圖形添加到圖層中。結(jié)果如圖4所示,旗幟所在的位置是事故發(fā)生的位置,包圍旗幟的第一個小的、顏色較深的多邊形是由模擬擴散點生成的凸包。 圖4 擴散點生成的擴散區(qū)域 2.2 擴散區(qū)域影響周邊海洋功能區(qū)空間查詢功能的實現(xiàn) 通過使用緩沖區(qū)分析和疊加分析可以研究擴散區(qū)域?qū)χ苓叚h(huán)境的影響。張文藝對GIS空間分析中的緩沖區(qū)分析和疊加分析進行了研究[10]。歐陽坤將污染擴散圖層與建筑圖層進行疊加分析,輸出污染擴散范圍內(nèi)的建筑物信息[11]。緩沖區(qū)和疊加分析主要是對污染擴散區(qū)域所能覆蓋到的功能區(qū)進行空間分析,而本系統(tǒng)計算的是污染擴散區(qū)域與周邊功能區(qū)之間的最短距離,在一定范圍內(nèi)即使周邊功能區(qū)沒有受到影響也要參與計算,這實際上是要轉(zhuǎn)換為計算多邊形與多邊形之間的最短距離,實現(xiàn)思路和過程如下: (1) 使用if語句判斷兩個參數(shù)是否是多邊形,如果任意一個參數(shù)不是多邊形就不能參與以后的計算。 if(geo1.type!=Geometry.POLYGON||geo2.type!=Geometry.POLYGON) (2) 判斷兩個多邊形是否相交或包含,方法是首先遍歷多邊形中所有的rings(Polygon對象是由一個或多個ring對象的有序集合,ring是一個封閉的Path,即起始點和終止點有相同的坐標值,其中ring可以分為out ring和inner ring,它們都是有方向性的)。然后對其中包含的每個ring進行遍歷,如果某個ring中的點包含在另一個多邊形中,則返回true,兩個多邊形之間的距離為0,路徑不需要畫;如果返回false,則需要進行距離和路徑的計算,代碼如下: Private static function PolygonInsectPolygon (poly1:Polygon,poly2: Polygon): Boolean { var ring1:Array =poly1.rings as Array; var ring2:Array =poly2.rings as Array; for (var i:int =0;i { var ringA:Array=ring1[i] as Array; for(var j:int=0;j { var pt:MapPoint =ringA[j] as MapPoint; if(poly2.contains(pt)) {return true;} } } ……/*代碼省略,方法同上,利用兩個for循環(huán),對ring2中每個ring中的點進行if判斷,如果poly1中包含其中的點則返回true。*/ return false; } (3) 如果兩個多邊形沒有相交或包含,則計算兩個多邊形之間的最短距離。ArcGIS API for Flex在其開發(fā)包中提供了com.esri.ags.tasks.GeometryService.distance()方法,并在幫助文檔中告知可以計算除了Extent類以外的所有的幾何類之間的距離,但是沒有說明計算兩個多邊形之間的距離時,起算點在多邊形中的哪個位置。因此本文沒有嘗試使用distance()方法,而是采用自定義函數(shù),在誤差允許的范圍內(nèi)(因為求得的大地線需要經(jīng)過距離改化和方向改化才可利用平面三角形公式進行計算[12]),將多邊形之間的最短距離轉(zhuǎn)換為點與線段的最短距離。 基本思路是分別遍歷一個多邊形上所有rings中的點到另一個多邊形上所有rings中的點所組成線段的距離,最終找到距離最小的值就是多邊形之間的最短距離。 求某個點到某個線段距離具體分析如下: 已知A、B、C三點的經(jīng)緯度坐標,假設(shè)所求的距離是點A到某線段BC的距離,先求得三角形的邊長a、b、c,再定義一個obj對象接收返回值,varobj:Object=newObject();點A到線段BC的最短距離可以分為三種情況討論,如圖5所示,當(dāng)滿足條件a2+b2-c2≤0時即if(a×a+b×b-c×c<=0)時,說明角C為鈍角或者直角,此時b為點A到線段BC的最短距離,即obj.distance=b;當(dāng)滿足條件a2+c2-b2≤0時即if(a×a+c×c-b×b<=0)時,說明角B為鈍角或者直角,此時c為點A到線段BC的最短距離,即obj.distance=c;當(dāng)以上兩個條件都不滿足時,說明角B和角C都是銳角,此時垂線段h為點A到線段BC的最短距離,即obj.distance=h,最后求解h的長,varh:Number=Math.sqrt(c×c-Math.pow((a×a+c×c-b×b)/(2×a),2))。 圖5 點A到線段BC最短距離的三種情況 對周邊海洋功能區(qū)空間查詢完成后的顯示結(jié)果如圖6所示,圖中顯示,在某時間段內(nèi),污染源擴散的影響范圍距離河口海洋保護區(qū)的距離是0.57km;距離某保留區(qū)的距離是0km,說明已經(jīng)開始污染此區(qū)域;距離旅游娛樂區(qū)的距離是3.07km。 圖6 擴散區(qū)域影響周邊海洋功能區(qū)空間查詢結(jié)果 2.3 風(fēng)險等級評價模型的集成 評價模型的建立有多種方法,王紀東采用層次分析法和灰色聚類相結(jié)合的方法對內(nèi)河?;反a頭進行風(fēng)險評價[13]。李學(xué)盛將層次分析法與模糊綜合評價法集成到系統(tǒng)中對單個油品儲罐進行安全狀態(tài)評估[14]。 本文采用的評價模型是加權(quán)平均評分法,其中權(quán)重和評價指標的確定采用了層次分析法和德爾菲法。加權(quán)平均評分法基本原理是用權(quán)重(W)對各項指標的得分(P)進行加權(quán)綜合,其結(jié)果即為多項指標的綜合評價值F。公式如下: F=∑PiWi(i=1,2,…,n) 式中,F(xiàn)代表多項指標綜合評價值;Pi代表第i項指標的評分;Wi代表第i項指標的權(quán)重;n為指標的項數(shù)。 表1列出了每項指標的權(quán)重和指標對應(yīng)的評分標準:Pi分為高風(fēng)險(3分)、中風(fēng)險(2分)、低風(fēng)險(1分)三個等級;準則層分為12個指標,每個指標對應(yīng)的權(quán)重W1-W12在表1中列出。 表1 等級評價規(guī)則 根據(jù)表1的等級評級規(guī)則,在客戶端和服務(wù)端定義、實現(xiàn)相應(yīng)的方法,以便在數(shù)據(jù)庫中讀取數(shù)據(jù)并返回計算結(jié)果。 (1) 在MXML代碼中定義 (2) 在FluorineFx服務(wù)庫中定義UpdateFXDJ()方法,代碼如下: public string UpdateFXDJ() {……//代碼 double score = 0; score += GetFXYSF(……省略參數(shù)); /*多次執(zhí)行類似操作,GetFXYSF()的作用是從數(shù)據(jù)庫取得FXZBQZ*FXYSDF(風(fēng)險指標取值*風(fēng)險要素打分)的值,直至score得到所有累加值*/ ……//代碼 } public double GetFXYSF(string fxzb, string fxys) {……//代碼 string sql = ″select isnull(FXZBQZ*FXYSDF,0)FROM FXDJPJ WHERE FXZB=? + fxzb + ? AND FXYS=? + fxys + ?″; ……//代碼 } 以一個模擬案例來說明系統(tǒng)從接到應(yīng)急監(jiān)測任務(wù)開始到自動生成監(jiān)測方案這一流程。如圖7所示,假設(shè)接報得知吳淞口外航道發(fā)生化學(xué)危險品泄露事故,事故發(fā)生的經(jīng)度是121.50,緯度是31.45。得到接報的詳細內(nèi)容以后,應(yīng)急領(lǐng)導(dǎo)小組組長通知副組長,并召開應(yīng)急小組成員會議,確認應(yīng)急監(jiān)測項目(水文、水質(zhì)、生物生態(tài)、氣象),并通知相關(guān)科室準備出海監(jiān)測任務(wù)。 圖7 從接報到生成監(jiān)測方案階段流程圖 將接報得到的基本信息(接報形式、經(jīng)緯度、時間、事件概要、要求)以及會議商討的信息(應(yīng)急監(jiān)測領(lǐng)隊、應(yīng)急監(jiān)測人員、應(yīng)急監(jiān)測的項目)輸入到系統(tǒng)中。通過危險化學(xué)品的海域污染擴散模擬功能可以獲取污染擴散隨時間變化對周圍海洋功能區(qū)的影響,針對模擬的結(jié)果布設(shè)監(jiān)測站位。系統(tǒng)會將信息按照監(jiān)測方案的格式進行布局,最后生成一個完整的監(jiān)測方案用來指導(dǎo)出海監(jiān)測。 從模擬的時間效率來看,從填寫應(yīng)急監(jiān)測項目信息到模擬出擴散影響范圍再到布設(shè)監(jiān)測站點,然后生成應(yīng)急監(jiān)測方案,整個過程不足10分鐘,與以往人工編寫應(yīng)急監(jiān)測方案相比,縮短了工作時間,為應(yīng)急監(jiān)測爭取了寶貴的時間。 本系統(tǒng)以Flex和ArcGIS API for Flex為基礎(chǔ)開發(fā),F(xiàn)lex開發(fā)的系統(tǒng)用戶體驗性強,界面友好;而ArcGIS API for Flex為開發(fā)人員提供了大量的封裝類便于調(diào)用,提高了開發(fā)的效率。本系統(tǒng)實現(xiàn)了對污染擴散模型的集成,彌補了以往應(yīng)急監(jiān)測過程中輔助決策能力差的不足;將風(fēng)險等級評價模型集成到系統(tǒng)中,通過監(jiān)測危險化學(xué)品風(fēng)險源的風(fēng)險等級,實現(xiàn)了對潛在的風(fēng)險進行提前監(jiān)測,提前預(yù)警的功能。 [1] 宣翠仙,顏鈺琳.基于RIA的WEBGIS技術(shù)研究及應(yīng)用進展[J].電腦知識與技術(shù),2014,10(25):6008-6010. [2] 姜銳,劉璐.RIA技術(shù)在WebGIS中的應(yīng)用研究[J].測繪與空間地理信息,2012,35(9):106-108. [3] 王非.WebServices應(yīng)用研究與RIA系統(tǒng)中的實現(xiàn)[J].計算機應(yīng)用與軟件,2010,27(3):168-171. [4] Wang L,Hu D,Wang Z,et al.Research and realization of RIA WebGIS based on Flex[J].Computer Applications,2008,28(12):3257-3260. [5] 吳濤,戚銘堯,黎勇,等.WebGIS開發(fā)中的RIA技術(shù)應(yīng)用研究[J].測繪通報,2006(6):34-37. [6] 許自舟,梁斌,張浩,等.基于ArcGIS Server的海洋環(huán)境信息服務(wù)平臺設(shè)計與實現(xiàn)[J].海洋環(huán)境科學(xué),2013,32(2):284-288. [7] 李海.ArcGIS Web API開發(fā)平臺的選擇[C]//第十五屆華東六省一市測繪學(xué)會學(xué)術(shù)交流會論文集,2012. [8] 王炫.基于GIS的危險化學(xué)品泄漏事故環(huán)境風(fēng)險預(yù)測與評價信息支持系統(tǒng)研究[D].上海:復(fù)旦大學(xué),2009. [9] 吳迪軍,陳建國,黃全義,等.水污染擴散的二維數(shù)值模擬及其可視化[J].武漢大學(xué)學(xué)報(工學(xué)版),2009,42(3):296-300. [10] 張文藝.GIS緩沖區(qū)和疊加分析[D].長沙:中南大學(xué),2007. [11] 歐陽坤.基于三維和時態(tài)GIS的大氣污染擴散模擬系統(tǒng)研究與實現(xiàn)[D].北京:清華大學(xué),2011. [12] 孔祥元,郭際明,劉宗泉.大地測量學(xué)基礎(chǔ)[M].武漢:武漢大學(xué)出版社,2005. [13] 王紀東.內(nèi)河危化品碼頭安全風(fēng)險評估與應(yīng)急管理研究[D].重慶:重慶交通大學(xué),2013. [14] 李學(xué)盛.基于WebGIS油品儲罐區(qū)風(fēng)險評價與動態(tài)監(jiān)控系統(tǒng)研究與實現(xiàn)[D].上海:華東理工大學(xué),2013. EMERGENCY MONITORING INFORMATION MANAGEMENT SYSTEM FOR HAZARDOUSCHEMICAL PRODUCTS ON YANGTZE RIVER ESTUARY BASED ON RIA AND WEBGIS Diao Xikai1,2,3Xu Ren2,3*Li Yihong2,3Liu Hanqi2,3 1(CollegeofMarineSciences,ShanghaiOceanUniversity,Shanghai201306,China)2(EastChinaSeaEnvironmentMonitoringCenterofSOA,Shanghai201206,China)3(KeyLaboratoryofIntegratedMarineMonitoringandAppliedTechnologiesforHarmfulAlgalBlooms,S.O.A.,MATHAB,Shanghai201206,China) Using traditional ways to manage coastal hazardous chemical products leads to inefficiency in emergency monitoring as well as low ability in accident simulation. Aiming at these problems, we use Flex and ArcGIS API for Flex to develop an emergency monitoring information management system for hazardous chemical products on Yangtze River estuary based on RIA and WebGIS. We complete the integration of the pollution dispersion model. Meanwhile, we achieve visual management of hazardous chemical products on Yangtze River estuary and software implementation for emergency response. The results show that the system enhances the ability in accident simulation and promotes the efficiency in emergency monitoring. RIA Hazardous chemical Model integration Emergency response 2015-12-22。上海市科委項目(12231203200)。刁希凱,碩士生,主研領(lǐng)域:GIS,環(huán)境科學(xué)。徐韌,教授級高工。李億紅,高級工程師。劉漢奇,工程師。 TP3 A 10.3969/j.issn.1000-386x.2017.03.0143 應(yīng)用案例
4 結(jié) 語