張孝軍,王德高
(1.華東冶金地質(zhì)勘查局,合肥 230088;2.安徽工業(yè)經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院地質(zhì)與建筑工程學(xué)院,合肥 230051)
近年來,隨著越來越多的城市完成了城市地下管線普查工作,建立起了地下管線綜合管理系統(tǒng)。我們已經(jīng)實現(xiàn)了地下管線的數(shù)字化管理,解決了圖紙和表冊管理數(shù)據(jù)所面臨的易損壞、丟失、查找不便、更新困難等問題。然而,面對大量的地下管線數(shù)據(jù),如何利用,才能使其發(fā)揮更大的作用,使數(shù)據(jù)活起來。這成了我們必須面對的問題。本文以城市供水管網(wǎng)系統(tǒng)為切入點,闡述了如何利用開源GIS,管線數(shù)據(jù),物聯(lián)網(wǎng)實現(xiàn)城市供水管網(wǎng)系統(tǒng)的智能化管理與決策。
開源GIS提供了強(qiáng)大的空間分析和處理能力,而物聯(lián)網(wǎng)將物物進(jìn)行聯(lián)通,使用戶足不出戶就能對各種儀器進(jìn)行管理。兩者的結(jié)合使用戶可以在地圖上直觀的看到物聯(lián)網(wǎng)上儀器的相關(guān)位置,并對儀器之間的空間關(guān)系進(jìn)行分析,為用戶決策提供強(qiáng)有力的依據(jù)。
軟件開源目前已經(jīng)成為IT界的一種發(fā)展趨勢,越來越多的軟件加入到開源系統(tǒng)中。在GIS領(lǐng)域,開源GIS也是一股逐漸成長并壯大的力量。不同于商業(yè)GIS軟件,開源GIS軟件不僅成本低,體積小。而且不用背負(fù)數(shù)據(jù)兼容、易用性等問題的包袱,開發(fā)者能夠集中精力于功能的開發(fā),因此開源GIS軟件普遍功能很強(qiáng),技術(shù)也非常先進(jìn),其背后是來自技術(shù)狂熱者和學(xué)院研究生的大力支持。開源GIS目前已經(jīng)形成了一個比較齊全的產(chǎn)品線。比較流行的應(yīng)用形式為基于JAVA框架的Postgresql+PostGIS+uDig+GeoServer+OpenLayers/LeafLet。或者是基于C/C++的Postgresql+PostGIS+Qgis+MapServer+OpenLayers/LeafLet。
物聯(lián)網(wǎng)的核心和基礎(chǔ)仍然是互聯(lián)網(wǎng),它是在互聯(lián)網(wǎng)基礎(chǔ)上延伸和擴(kuò)展的網(wǎng)絡(luò)。其用戶端延伸和擴(kuò)展到了任何物品與物品之間,進(jìn)行信息交換和通信,也就是物物相息。物聯(lián)網(wǎng)通過智能感知、識別技術(shù)與普適計算等通信感知技術(shù),廣泛應(yīng)用于網(wǎng)絡(luò)的融合中。
本系統(tǒng)總體架構(gòu)是以面向?qū)ο螅∣OP)的設(shè)計為基礎(chǔ),以面向服務(wù)(SOA)的設(shè)計為應(yīng)用擴(kuò)展,系統(tǒng)主要采用Browser-Server(B/S)表現(xiàn)形式。以城市地下供水管網(wǎng)管線數(shù)據(jù)庫,基礎(chǔ)數(shù)據(jù)庫和相關(guān)輔助數(shù)據(jù)庫為核心,面向城市供水管網(wǎng)管理部門提供一體化管網(wǎng)信息管理和服務(wù)。
系統(tǒng)以著名的開源GIS庫PostgreSQL為數(shù)據(jù)存儲層,輔以PostGIS空間插件。將城市供水管線數(shù)據(jù)存儲在空間數(shù)據(jù)庫中,建立空間索引,便于空間數(shù)據(jù)的快速查詢和分析。PostgreSQL是目前最好的開源GIS數(shù)據(jù)庫,相比Oracle,具有開源免費,安裝方便,體積小巧等優(yōu)點。
后端GIS服務(wù)采用GeoServer服務(wù)器,GeoServer是一個功能齊全,遵循OGC開放標(biāo)準(zhǔn)的開源WFS-T和WMS服務(wù)器。利用Geoserver可以把數(shù)據(jù)作為maps/images來發(fā)布(利用WMS來實現(xiàn)),也可以直接發(fā)布實際的數(shù)據(jù)(利用WFS來實現(xiàn)),同時也提供了修改,刪除和新增的功能(利用WFS-T)。有著良好的安全性、擴(kuò)展性以及跨平臺的適應(yīng)能力。支持緩沖區(qū)分析、疊加分析、路徑分析、網(wǎng)絡(luò)分析等各種空間分析算法。
前端Web層采用目前流行的VUE框架,輔以Element組件進(jìn)行界面的快速搭建。地圖方面采用Openlayers進(jìn)行圖層的加載和操作。OpenLayers是當(dāng)前應(yīng)用廣泛的開源地圖框架,提供了豐富的地圖組件,包括鷹眼圖,圖層控制器,要素選擇器等。
在城市供水管網(wǎng)系統(tǒng)中嵌入傳感器,并通過普遍連接形成“感知物聯(lián)網(wǎng)”,傳感器采用433MHz與GPRS接力傳輸,實現(xiàn)分鐘級上報壓力數(shù)據(jù)的能力。
系統(tǒng)主要實現(xiàn)了城市供水管網(wǎng)的可視化展現(xiàn),管網(wǎng)分類統(tǒng)計,管線信息查詢,自動報警提示,爆管分析,遠(yuǎn)程開關(guān)閥控制,數(shù)據(jù)更新等功能。
利用地下管線普查采集到的供水管網(wǎng)數(shù)據(jù),以百度地圖作為底圖,將管線數(shù)據(jù)渲染到百度地圖上,根據(jù)管點類型進(jìn)行分類渲染。直觀的查看到城市供水管線的分布情況。同時將硬件傳感器位置進(jìn)行上圖,直觀的顯示傳感器布設(shè)的位置。
可以根據(jù)不同條件進(jìn)行分類統(tǒng)計,按區(qū)域統(tǒng)計管線長度,閥門個數(shù)等信息,形成柱狀圖,并能將結(jié)果以報表形式進(jìn)行輸出。
點擊地圖上管點或管線,可以查詢當(dāng)前管線的建設(shè)年份,責(zé)任單位,材質(zhì)等信息。
系統(tǒng)接入物聯(lián)網(wǎng)數(shù)據(jù),當(dāng)管線出現(xiàn)壓力異常等現(xiàn)象時,傳感器將數(shù)據(jù)傳回控制系統(tǒng),地圖上將自動出現(xiàn)閃爍狀態(tài)的報警點,提示工作人員盡快處理。同時,相關(guān)負(fù)責(zé)人將會收到短信提醒。
當(dāng)出現(xiàn)爆管現(xiàn)象后,工作人員點擊爆管分析,地圖上將自動顯示出需要關(guān)閉的閥門位置。并高亮顯示出受影響的管線信息。
工作人員在地圖上點擊需要進(jìn)行開關(guān)處理的閥門,彈出操作框,可以動態(tài)的關(guān)閉閥門。當(dāng)破損管線維修完成后,再動態(tài)開啟閥門。
當(dāng)供水管線走向和相關(guān)屬性信息發(fā)生變化時,可以將有變化的管線信息及時錄入系統(tǒng)。進(jìn)行數(shù)據(jù)的快速更新,保證了數(shù)據(jù)的現(xiàn)勢性。
討論了系統(tǒng)在建設(shè)過程中遇到的技術(shù)問題。
首先,初始化一個圖片切片地圖數(shù)據(jù)源,var baidu_source=new ol.source.TileImage({}),ol.source.TileImage 是 OpenLayers 中專門負(fù)責(zé)調(diào)用地圖以切片圖片存放的類,其中給定了三個參數(shù),projection參數(shù)指定了地圖切片使用的坐標(biāo)系,tileGrid 指定了切片使用的網(wǎng)格的模式,tileUrlFunction 指定一個回調(diào)函數(shù),這個回掉函數(shù)第一個參數(shù)中包含三個變量,主要是 當(dāng)前縮放級別(z),切片的 x y 索引。每次用戶與地圖交互,比如 縮放、平移等,就會觸發(fā)回調(diào)函數(shù),該函數(shù)根據(jù)傳入的變量參數(shù)構(gòu)造圖片切片的 URL 地址。然后,使用圖片切片地圖數(shù)據(jù)源初始化一個 切片圖層:var baidu_layer=new ol.layer.Tile({source:baidu_source });最后將圖層加入到地圖中。
管網(wǎng)數(shù)據(jù)一般采用當(dāng)?shù)氐某鞘凶鴺?biāo)系。而百度地圖則是BD-09坐標(biāo)系,不同坐標(biāo)系下的數(shù)據(jù)要想疊加使用,必須進(jìn)行投影轉(zhuǎn)換。需要查詢相關(guān)轉(zhuǎn)換參數(shù),利用布爾莎七參數(shù)轉(zhuǎn)換方式,將管網(wǎng)數(shù)據(jù)轉(zhuǎn)為相同坐標(biāo)系下的數(shù)據(jù)。這樣,就能實現(xiàn)管網(wǎng)數(shù)據(jù)與百度地圖之間的疊加了。
在管網(wǎng)中嵌入的傳感器時刻將壓力數(shù)據(jù)傳入后臺數(shù)據(jù)庫中。當(dāng)出現(xiàn)異常后,如何在Web前端顯示。目前前后端的通訊主要采用HTTP協(xié)議,HTTP協(xié)議是一種無狀態(tài)的、單向的應(yīng)用層協(xié)議,它采用了請求/響應(yīng)模式,通訊請求只能由客戶端發(fā)起,服務(wù)端對請求做出應(yīng)答處理。這種單向請求的特點,注定了如果服務(wù)器有連續(xù)的狀態(tài)變化,客戶端要獲知就非常麻煩。大多數(shù) Web 應(yīng)用程序通過頻繁的異步JavaScript和XML(AJAX)請求實現(xiàn)長輪詢。輪詢的效率低,非常浪費資源。為了實現(xiàn)前后端的靈活通訊,本系統(tǒng)采用了WebSocket通訊技術(shù)。WebSocket 連接允許客戶端和服務(wù)器之間進(jìn)行全雙工通信,以便任一方都可以通過建立的連接將數(shù)據(jù)推送到另一端。WebSocket 只需要建立一次連接,就可以一直保持連接狀態(tài)。這相比于輪詢方式的不停建立連接顯然效率要大大提高。當(dāng)管網(wǎng)中的傳感器傳回異常數(shù)據(jù)時,后端服務(wù)捕捉異常,推送到前端進(jìn)行動態(tài)展示。
鼠標(biāo)點擊爆管管線位置,顯示受影響的管段區(qū)域,給出關(guān)閥方案,顯示所有應(yīng)關(guān)閉的閥門,輸出關(guān)閥報表,關(guān)閥圖和因關(guān)閥影響停水的重要用戶信息。要實現(xiàn)上述功能,本系統(tǒng)需要提前將管線數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)拓?fù)錁?gòu)建。利用Postgres提供的PostRouting路徑分析插件,結(jié)合Dijkstra(迪杰克斯特拉)算法,求出所有與爆管點相連通的閥門。Dijkstra的核心代碼如下:
要想時刻保持系統(tǒng)的現(xiàn)勢性,數(shù)據(jù)更新工作必不可少。而城市供水管網(wǎng)數(shù)據(jù)具有一次采集后,常年整體無變化,局部小范圍變化的特點。為了應(yīng)對此特點,利用GIS的空間查詢功能,將指定空間范圍的管線數(shù)據(jù)進(jìn)行刪除,導(dǎo)入新采集的管線數(shù)據(jù),從而實現(xiàn)了管線數(shù)據(jù)的局部替換。
隨著城市地下管線普查的基本結(jié)束,城市地下管網(wǎng)數(shù)據(jù)也趨于完善,如何更好的利用這些數(shù)據(jù),結(jié)合物聯(lián)網(wǎng)與GIS技術(shù),為城市的可持續(xù)發(fā)展提供決策服務(wù),為社會提供多元化服務(wù),是人們聚焦的重點問題。本文結(jié)合實際經(jīng)驗,以開源GIS搭建城市供水管網(wǎng)信息系統(tǒng),結(jié)合物聯(lián)網(wǎng),實現(xiàn)城市供水管網(wǎng)的智能化管理,通過智能化管理,實現(xiàn)管道連接性追蹤、事故狀態(tài)分析等功能。指導(dǎo)管網(wǎng)事故處理,增強(qiáng)事故反應(yīng)能力,減少事故損失。實現(xiàn)城市供水管網(wǎng)的智能化和科學(xué)化管理,提高供水企業(yè)的經(jīng)濟(jì)和社會效益。