王瑞兵, 曹 鑫,賀光秀,姚 堯,李 媫,周李磊
(1.重慶交通大學 土木工程學院,重慶400074;2.重慶交通大學 建筑與城市規劃學院,重慶 400074)
人類賴以生存的生態環境是一個不斷變化和繼承的系統,而變化或進化,既有積極的(進化),也有消極的(退化)[1];變化或進化的原因既有自然過程的影響,也有人類活動的影響和干擾[2]。通過構建指標,帶入模型進行生態健康評價從而為生態健康維護提供輔助決策。
預警可視化平臺指通過基礎數據,運用一定模型對未來發展趨勢及演化做出評估,并最終以可視化形式在WebGIS平臺呈現。預警平臺國內多以生態安全預警為主,其他風險預警為輔進行預警,如王妍婕等對監測平臺進行研發,平臺由基礎設施支撐系統、實時監控監測站點、綜合數據庫、預警分析管理平臺多個部分組成。實現鄱陽湖濕地生態環境數據時空信息的集成、共享和高效利用[3]。在數據可視化中,國內外大多以單一的JavaScript開發包作為數據的顯示,如王占越從不同尺度上評估和展示全國林業生態安全狀況,基于Cesium三維球體開源軟件研發了林業生態安全指數可視化展示系統[4]。
當前國內研究中,生態安全可視化平臺的研發已經成熟,但是針對生態健康預警評估以及可視化的研究比較少,本次可視化平臺構建遵循信息化開發規范、規程,進行系統平臺服務接口、功能模塊及系統安全策略集成框架設計,以生態風險精準感知數據庫為基礎,研發以自然干擾、人為干擾監測模型、生態系統狀況評估模型、生態風險預警模型等為技術手段,以生態風險信息識別和生態風險智能預警為核心內容,建設長江經濟帶生態系統健康智能預警平臺,并進行業務化運行應用示范。
重慶市復雜環境生態風險預警平臺依托精準感知數據庫,對數據進行收集、整理并轉換和存儲歷史數據和調查數據;預警平臺使用正態云模型將背景數據和預測數據進行處理完成生態安全預警和成果發布。
開發模式采用C/S和B/S混合開發,Web端主要進行前端的展示與數據的整合,B/S開發主要用來對地圖服務的發布和維護、瓦片地圖的整合進行開發。
構建長江經濟帶生態系統健康可視化平臺,并通過阿里云短信服務實現預警。通過服務器環境配置,搭載平臺運行所需要的開發包,結合模型所做的結果,將健康情況以專題圖的形式發布成WebGIS服務,通過OpenLayers進行地圖服務解析以達到地圖數據的展示;通過ECharts開發包,使用AJAX技術將統計數據在前端以交互的方式進行展示;前端使用Flex布局,將功能集成在Tomcat發布的Web服務中,實現多端適配以及大屏展示;預警方面,通過申請阿里云API,調用短信接口,設定提醒參數,實現短信云預警(圖1)。
圖1 系統總體構架
(1)服務器。云平臺監控初始服務器可以先裝配在私人電腦端,到后期視情況會投放到阿里云、騰訊云、碼云等云平臺實現云監控。
(2)數據更新。通過網絡爬蟲技術,與相關網站合作,獲取網站實時獲取構建的指標體系中的數據,做到數據能夠實時更新。
(3)交互型數據顯示。地理數據顯示:通過百度地圖、谷歌地圖或高德地圖提供的API接口,從優選擇,對地理數據進行展示和交互。統計數據顯示:通過ECharts、Highcharts或Python的Pyecharts包進行數據的交互型展示(圖2)。
(1)即開即用。當系統搭載到云平臺,只需一個URL即可訪問云平臺,從而實現多設備、無縫訪問。
(2)靈活預警。通過搭載云平臺所提供的接口,可以實現短信、郵件的方式推送,也可以推送到指定的WebHook、消息隊列、函數計算、日志服務中,方便將報警信息集成到運維系統中(阿里云平臺)[5]。
首先設計長江經濟帶生態系統健康智能預警集成框架,對應用層、服務層、數據層和支撐層進行設計,然后進行整個平臺的研發[6],具體步驟如下。
步驟一:設計支撐層和數據層。根據平臺開發需求,選擇好支撐層的軟件和硬件,設計好開發流程,對底層環境和結構進行學習并依據平臺需求進行支撐層和數據層的設計,對整個指標體系的數據設置合適的字段和數據格式,設計地理數據發布規范。
步驟二:設計服務層和應用層。根據平臺的功能需求和可擴展性,充分考慮到預警和可視化之間的協調,設計好服務層和應用層。
步驟三:平臺開發。多調試WebGIS相關項目源代碼,不斷學習各種可視化技術,以達到預期目標。
圖2 前端平臺搭建
系統具備大屏展示、響應式布局、海量空間數據高效管理等特性,為生態健康監測提供狀態展示、歷史統計、趨勢預測、等級占比、指標權重等一系列數據展示來輔助決策;同時提供正態云模型的隸屬度計算,為生態健康評估提供模型支撐。
數據層:為展示平臺搭建基礎數據庫,主要提供地圖服務數據與統計數據,地理數據主要包括矢量數據和柵格數據,用于共享的數據采用GeoServer進行發布,其他地圖服務通過ArcGISServer進行封裝[7];統計數據主要分為三個層面:自然數據、經濟數據、社會數據,通過MySQL建立個人數據庫進行存儲[8-9],專題數據以文件方式存儲。
平臺層:主要提供生態健康評價結果、各種指標統計結果,并將結果以AJAX技術異步傳輸到前端;同時,該平臺提供指標數據趨勢預測與更新機制,通過Python提供的網絡服務包對網頁部分數據進行替換,以實現數據庫的實時更新,提高數據的現勢性。
服務層:是整個系統的連接層,主要負責數據的傳輸,作為持久層,為前端提供數據交互,同時整合后端數據,實現數據的聯通和轉化。
應用層:對網頁提供功能進行模塊化整合,實現操作簡易化和流程化,為生態安全決策輔助依據(表1)。
表1 后臺搭建所需軟件工具
4.2.1 服務器配置
4.2.1.1 Tomcat
Tomcat是Apache 軟件基金會中的一個核心項目,運行環境需要一定的配置,由于其穩定性和開放性,經常配合一些開源網頁開發包進行使用,在本次可視化平臺開發過程中,主要通過其進行網頁服務的發布。
在配置過Java 1.8環境之后,對Tomcat進行安裝,并設置8080端口號,在webapps文件夾中裝載主要網頁服務文件之后,啟動Tomcat,并設置防火墻,即可通過外網訪問開設端口,并進行網頁服務。
4.2.1.2 ArcGIS Server
ArcGIS Server 是ESRI 發布的提供面向Web 空間數據服務的一個企業級GIS軟件平臺,提供創建和配置GIS應用程序和服務的框架,這樣可以滿足不同客戶的各種需求[10,11],在本次可視化平臺開發過程中,主要通過其進行地圖服務的發布。首先安裝ArcGIS License,然后安裝ArcGIS Server 10.4,通過設置初始用戶和密碼,在開設端口6080中進入系統界面。在系統界面可以進行地圖服務的相關操作,其中包括服務的啟動、載入、刪除、停止等。
發布之后的服務均通過arcgis/rest域名進行訪問,在該域名下存儲所有發布的地圖服務,通過相關鏈接解析,即可得到地圖數據,并以瓦片形式展示。
4.2.1.3 ECharts開發包
ECharts是一款由百度進行開發,并最終捐贈給Apache進行開源的數據可視化開發包,它同時具備美觀性和交互性,在本次可視化平臺開發過程中,主要進行統計數據的展示與交互。
由于網絡包引用CDN效率低且有一定的安全風險,所以在本次可視化平臺開發過程中,將ECharts開發包部署在服務器,通過服務器的訪問,可以有效降低風險,提升網頁運行效率,ECharts的開發包可以通過Tomcat進行發布,也可以通過Windows Server2016系統中的IIS進行發布。
4.2.1.4 OpenLayers
OpenLayers是一個用于開發WebGIS客戶端的JavaScript包[12]。開發者可以通過使用該開發包對地圖服務進行解析,實現基礎空間地理操作。在本次可視化平臺開發過程中,主要進行地圖服務的解析與圖層控制等,其主要解析的地圖服務是ArcGIS Server 10.4所發布的地圖服務[13]。
4.2.2 地圖服務發布及統計數據展示
通過在catalog中連接ArcGIS Server服務器,進行遠程操作,并在ArcMap中進行地圖服務發布,通過Analysts進行地圖信息矯正和格式規范統一,最后Publish發布到遠程服務器。
本次可視化平臺開發過程中,前端展示采用六個統計圖表進行統計數據展示,其中包括:生態系統健康統計柱狀圖、生態系統健康趨勢折線圖、等級劃分占比環狀圖、指標權重柱狀圖、生態系統健康地區折線圖、云計算權重扇形圖。這六個統計圖均采用ECharts所提供的開發包進行開發,實現了AJAX數據異步傳輸和jQuery的數據交互展示。
4.2.3 數據更新與預警
(1)Python字符串更新。對于字段統計數據,使用Python提供的網頁服務包進行字符串更新操作,在代碼中設置數據源與更新周期進行數據替換,地理數據通過ArcMap操作并發布新版本來替換原始數據,實現地理數據更新。
(2)阿里云短信預警。在預警方面,首先專題圖的更新提供數據調用接口,通過阿里云中的短信通知功能,監測調用的生態風險結果,當達到預警值即可進行短信通知(圖3)。
本文構建復雜環境生態風險預警可視化平臺,通過ArcMap將地圖發布出來,便于監測平臺調用該地圖,以實現在線地圖服務,同時借助jQuery、Flex、AJAX等底層技術進行平臺前端框架的實現。通過生態風險統計柱狀圖、生態風險趨勢折線圖、等級劃分占比環狀圖、指標權重柱狀圖、生態風險地區折線圖、云計算權重扇形圖共計六類統計圖表對統計數據進行可視化展示。通過Python軟件,實現了監測平臺統計數據的自動更新功能;同時借助ArcMap軟件,實現人工的地圖服務更新功能。該平臺還具有較為完備的預警功能,通過阿里云中的短信通知功能,監測調用的生態風險結果,一旦達到預警值,平臺便可發出短信通知,實現短信預警功能。
圖3 平臺界面