陳翔宇 郭永剛
西藏農(nóng)牧學(xué)院水利土木工程學(xué)院,西藏 林芝 860000
截至2018 年底,西藏已經(jīng)建成水庫約為112 座,總庫容達(dá)到約34 億立方米,且大型水庫就達(dá)到了七座。面對如此數(shù)量眾多的水利工程,西藏還在沿用傳統(tǒng)的數(shù)據(jù)管理系統(tǒng),方式落后,效率低下,甚至有些水庫處于偏遠(yuǎn)地區(qū),出現(xiàn)無人值守的情況。這種方式不僅不能滿足水利工程日常的運(yùn)行維護(hù),而且不利于行政主管部門對西藏中小型水庫的管理。同時自治區(qū)負(fù)責(zé)信息管理的技術(shù)人員數(shù)量有限、對水利工程業(yè)務(wù)了解不足,尤其缺乏信息管理專業(yè)人員,這就使得安全檢測分析、預(yù)報調(diào)度方案工作開展變得困難,進(jìn)而導(dǎo)致相關(guān)業(yè)務(wù)系統(tǒng)建成之后不能有效的發(fā)揮其作用[1]。目前,自治區(qū)水利工程的基本監(jiān)測設(shè)施布置還不夠完善,只有部分水利工程布設(shè)了自動化監(jiān)測設(shè)備,很多偏遠(yuǎn)地區(qū)甚至連基本的監(jiān)測設(shè)施都沒有布置,這就造成了信息來源不透徹;自治區(qū)部分水庫雖然已經(jīng)建立信息化,但仍處于分專業(yè),單機(jī)管理狀態(tài),各水利工程分散建設(shè),通用性、擴(kuò)展性差,缺乏多源信息的有效融合,這就造成了信息孤島,各分級部分批次單獨工作,互聯(lián)互通不廣泛;此外,大部分水利工程監(jiān)測數(shù)據(jù)無法及時處理分析,工程安全狀態(tài)的實時評價工作也就無法及時開展,使得安全預(yù)警工作變得極為困難[2]。
針對西藏水利工程基本信息的管理、數(shù)據(jù)共享、查詢和統(tǒng)計分析的需求,本文基于C/S 架構(gòu)建立了西藏水利工程信息管理系統(tǒng)。利用GIS二次開發(fā)技術(shù)的優(yōu)勢,將西藏水庫信息以圖層的形式顯示出來,并且在圖層上用點要素標(biāo)注水庫的具體位置;利用Chart將西藏水利建設(shè)概況以圖表的形式直觀的顯示出來;并且基于裝箱拆箱的思想,將西藏各水利部門分管的水利樞紐信息以集中和拆分的形式進(jìn)行信息管理,提升系統(tǒng)的綜合集成能力,分級水利部門又各自獨立,更加科學(xué)地為水利樞紐調(diào)度管理提供統(tǒng)一、高效、便捷的遠(yuǎn)程管理平臺[3];最后,利用完備且強(qiáng)大的數(shù)據(jù)支撐,結(jié)合機(jī)器學(xué)習(xí)為水利工程災(zāi)后的損失做出精確評估和決策。
該系統(tǒng)主要有信息管理、圖層信息、信息統(tǒng)計、評估決策和用戶管理等功能[4]。其中信息管理功能主要是實現(xiàn)對水庫基本信息的增刪改查等功能,并且能夠?qū)⑺畮煨畔⒁訣xcel 的形式導(dǎo)出到本地存儲;圖層信息功能主要是利用ArcGIS Engine 在系統(tǒng)中對圖層進(jìn)行二次開發(fā),能根據(jù)水利工程的經(jīng)緯度獲取其具體位置,并以圖層的形式存儲其基本水文信息;信息統(tǒng)計功能主要是將西藏自治區(qū)歷年水庫工程建設(shè)概況、投資建設(shè)概況以Chart 的形式展現(xiàn)給用戶;評估決策功能主要是根據(jù)數(shù)據(jù)庫大量的數(shù)據(jù)支撐,通過散點圖將其數(shù)據(jù)可視化呈現(xiàn)各用戶,利用線性回歸等方法為水利工程進(jìn)行災(zāi)后損失評估,并對未來的建設(shè)與維護(hù)做出決策;系統(tǒng)管理功能主要是將用戶分為不同的等級,不同等級的用戶獲取不同的操作權(quán)限;具體功能結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體功能結(jié)構(gòu)圖
1.2.1 Net Framework 框架。Framework 框架主要使用C#進(jìn)行編寫,其包含的WinForm 可視化窗體設(shè)計器是用于桌面應(yīng)用開發(fā)的UI框架,使用Windows窗體可以開發(fā)制作出易于部署和更新的智能客戶端應(yīng)用,在脫機(jī)狀態(tài)下或者連接到Internet 網(wǎng)絡(luò)都可以使用[5]。其內(nèi)置的CLR 托管負(fù)責(zé)分配和釋放內(nèi)存并處理對象生成期,不像C++等其他語言開發(fā)的應(yīng)用程序任何人都可以自由訪問內(nèi)存,比傳統(tǒng)的MFC開發(fā)的應(yīng)用程序更加快捷和安全,這就保證了西藏水利部門人員在使用該系統(tǒng)的時候能夠有更加簡潔方便的操作界面,并且進(jìn)行信息共享的同時還能降低其數(shù)據(jù)泄露的風(fēng)險。
1.2.2 ArcGIS Engine 二次開發(fā)。ArcMap 是大家所常用的一款地圖制圖、圖編輯與分析的桌面應(yīng)用程序,但是如何將地圖編輯功能與實際工程應(yīng)用相結(jié)合起來一直是個問題,基于這個問題,ArcGIS Engine 于2004 年發(fā)布于美國ESRI,此開發(fā)包提供了一系列可以在Arc-GIS Desktop 框架外使用的組件,為實際工程中使用地圖數(shù)據(jù)編輯與處理提供了一種新的思路與方法。
此系統(tǒng)建立了基于C/S 的ArcGIS Engine 的二次開發(fā)平臺,將西藏自治區(qū)的矢量地圖數(shù)據(jù),河流湖泊數(shù)據(jù),經(jīng)緯度信息,水利工程位置屬性信息等疊加發(fā)布,構(gòu)建了基于GIS 的西藏水利工程地理圖層[6]。使用戶能夠在系統(tǒng)中能夠獲取西藏自治區(qū)詳細(xì)的河流湖泊分布信息,以及通過點要素的形式直觀展現(xiàn)水利工程的位置,并且通過點擊某水利工程的點要素,可以獲取該水利工程的詳細(xì)工程信息,用戶可以根據(jù)自己的需求快速的在地理圖層中獲取所需信息。
1.2.3 利用決策樹算法評估與決策。系統(tǒng)使用了決策樹分類與回歸算法,分類算法主要對離散數(shù)據(jù)進(jìn)行處理,因此可以對水利工程受災(zāi)時進(jìn)行受災(zāi)程度的判斷,將水利工程受災(zāi)嚴(yán)重等級劃分為0、1、2,再根據(jù)樣本集訓(xùn)練得出模型,利用模型對嚴(yán)重程度進(jìn)行分類判斷[7]?;貧w算法主要是對連續(xù)型數(shù)據(jù)進(jìn)行處理,因此可以根據(jù)水利工程的設(shè)計造價以及附近淹沒耕地面積和人口損失等特征設(shè)計樣本集,訓(xùn)練樣本集得到回歸模型進(jìn)行經(jīng)濟(jì)損失的預(yù)測。用戶可以利用此功能對災(zāi)后的水利工程進(jìn)行快速的經(jīng)濟(jì)損失評估,并迅速的做出決策判斷。
系統(tǒng)總體是由使用端、基礎(chǔ)應(yīng)用層、應(yīng)用支持層、數(shù)據(jù)資源層、基礎(chǔ)設(shè)施層、數(shù)據(jù)采集層幾部分構(gòu)成[8],其各部分功能具體如下:(1)使用端:主要是利用PC端在線使用該水利樞紐信息管理與評估系統(tǒng),并且將用戶分為水利廳、各市級水利部門、各縣級基層部門,每個權(quán)限等級對應(yīng)不同的功能。(2)基礎(chǔ)應(yīng)用層:用戶可以使用系統(tǒng)平臺的一些基礎(chǔ)應(yīng)用功能,包括圖層管理、水利工程地理圖層、水利工程災(zāi)后損失評估與決策等。(3)應(yīng)用支持層:是為了在應(yīng)用層所使用的一些系統(tǒng)功能和相關(guān)的計算機(jī)技術(shù)提供支持,如GIS平臺、日志管理、授權(quán)管理、Chart、機(jī)器學(xué)習(xí)等。(4)數(shù)據(jù)資源層:主要是對于整個系統(tǒng)所使用的數(shù)據(jù)庫,包括用戶管理數(shù)據(jù)庫、水利樞紐信息數(shù)據(jù)庫等。(5)基礎(chǔ)設(shè)施層:主要是系統(tǒng)所涉及的一些外部硬件設(shè)施,包括相關(guān)硬件設(shè)施以及存儲管理設(shè)備等。(6)數(shù)據(jù)采集層:是平臺獲取數(shù)據(jù)的途徑,包括基本信息數(shù)據(jù)的錄入和修改,大壩信息數(shù)據(jù),受災(zāi)具體情況數(shù)據(jù)等,總體框圖如圖2所示。
圖2 系統(tǒng)總體架構(gòu)圖
信息管理離不開數(shù)據(jù)的支撐,數(shù)據(jù)是系統(tǒng)正常運(yùn)作的必要前提,只有在完備的數(shù)據(jù)基礎(chǔ)上系統(tǒng)的功能才能得以實現(xiàn),此次設(shè)計的西藏水利工程信息管理系統(tǒng)使用的數(shù)據(jù)庫管理平臺為Mysql+Navicat將各數(shù)據(jù)進(jìn)行一體化管理。水利工程信息管理系統(tǒng)數(shù)據(jù)庫設(shè)計嚴(yán)格遵循《基礎(chǔ)水文數(shù)據(jù)庫表結(jié)構(gòu)及標(biāo)識符標(biāo)準(zhǔn)》《水資源監(jiān)控管理系統(tǒng)數(shù)據(jù)庫表結(jié)構(gòu)及標(biāo)識符標(biāo)準(zhǔn)》等管理規(guī)范[9],根據(jù)西藏自治區(qū)水利數(shù)據(jù)采集傳輸、動態(tài)顯示、共享交互,以及數(shù)據(jù)存儲、挖掘、分析的需求,完成元數(shù)據(jù)庫、基礎(chǔ)數(shù)據(jù)庫、空間數(shù)據(jù)庫、共享數(shù)據(jù)庫的字段設(shè)計與功能設(shè)計,基本實現(xiàn)對基礎(chǔ)數(shù)據(jù)的統(tǒng)一管理和存儲,見圖3。
圖3 系統(tǒng)數(shù)據(jù)庫的設(shè)計
元數(shù)據(jù)庫是系統(tǒng)能夠?qū)崿F(xiàn)相應(yīng)功能的關(guān)鍵,其包含了基礎(chǔ)應(yīng)用層、應(yīng)用支持層的重要數(shù)據(jù),是整個系統(tǒng)的核心[10];基礎(chǔ)數(shù)據(jù)庫則包含了整個系統(tǒng)最全面的基礎(chǔ)信息,空間數(shù)據(jù)庫主要類型是點、線、面,包含了西藏自治區(qū)的市區(qū)邊界、河流信息、湖泊信息以及各水利工程地理位置信息,而共享數(shù)據(jù)庫是存儲了根據(jù)用戶身份信息來判斷是否開放的基礎(chǔ)數(shù)據(jù)。
系統(tǒng)將登錄用戶權(quán)限分為水利廳、主管部門和基層部門三個等級[11]。其不同等級的系統(tǒng)登陸界面如圖4所示。
圖4 系統(tǒng)登錄界面
4.1.1 用戶登錄。用戶在選定自己身份后,需要輸入賬號,密碼和驗證碼,所有輸入項與數(shù)據(jù)庫一致才能登錄成功,進(jìn)入系統(tǒng)管理界面。
4.1.2 用戶管理。水利廳賬號等級權(quán)限最高,可以查看和修改主管部門、基層部門的賬號信息,而主管部門和基層部門的用戶只能查看自己的賬號信息[12]。
4.1.3 退出系統(tǒng)。在完成各項管理和維護(hù)工作之后,用戶可以通過點擊退出系統(tǒng)按鈕安全退出系統(tǒng),信息會直接保存在數(shù)據(jù)庫中不會丟失。
水利工程信息圖層功能效果如圖5所示。其主要是利用了ArcGIS Engine 的二次開發(fā)功能,首先在Arc-Map 中將自治區(qū)某市邊界、該市的河流湖泊等要素制作成地圖文件,在將水利工程位置以點要素的形式添加在地圖上,編輯點要素的屬性表,將水庫的基本信息存儲到屬性表中[13]。之后在系統(tǒng)中利用二次開發(fā)功能,讀取本地地圖文件,選中某點要素(某水利工程),使其高亮顯示,雙擊該點要素還可彈出新窗體顯示該點水庫的基本信息,并能根據(jù)獲取到的經(jīng)緯度利用高德地圖API(應(yīng)用程序接口)查詢到該水利工程的具體地理位置。
圖5 信息圖層功能展示
4.3.1 水庫信息錄入。如圖6 所示,基層用戶可以使用該系統(tǒng)將自己負(fù)責(zé)的地區(qū)水利工程的各項基本信息輸入到界面中,并且點擊添加按鈕后在Mysql 數(shù)據(jù)庫中形成一條水利工程記錄[14],具體效果如圖6所示。
圖6 水利工程信息錄入功能
4.3.2 水利工程信息管理。根據(jù)C#語言中的裝箱拆箱原理,先將自治區(qū)全部水利工程的信息存儲到數(shù)據(jù)庫,再根據(jù)自治區(qū)各級部門的權(quán)限分別設(shè)定了水利工程信息管理功能,原理圖如圖7 所示。根據(jù)用戶權(quán)限不同,水利工程信息可操作的功能也不同。水利廳用戶登錄可以查看全部水利工程信息,但是沒有修改權(quán)限,需要聯(lián)系基層部門進(jìn)行修改;主管部門用戶可以查看自己轄區(qū)內(nèi)的中小型水利工程(大型水庫由水利廳專門負(fù)責(zé)),同樣的修改權(quán)限也是需要聯(lián)系基層部門;基層部門用戶只能查看和修改自己縣區(qū)域所管水利工程。
4.3.3 水庫信息檢索[15]。為了方便基層用戶快速的對某一水利工程信息的快速檢索,用戶可以根據(jù)水利工程所在地區(qū)搜索某一區(qū)域內(nèi)的所有水利工程信息,或者根據(jù)某一水利工程的名稱來搜索該水利工程的基本信息,如圖8所示為搜索阿里地區(qū)的結(jié)果。
圖8 水利工程檢索功能
水利工程災(zāi)后評估與決策模塊主要包含了水利工程受災(zāi)情況、水利工程災(zāi)后評估和水利工程災(zāi)后決策子模塊[16]。水利工程受災(zāi)情況子模塊能夠從數(shù)據(jù)庫或者本地文件中讀取數(shù)據(jù),并以Chart的形式直觀的展示給用戶,使用戶能對水利工程歷年受災(zāi)情況有基本的了解;水利工程災(zāi)后評估子模塊則是使用了決策樹回歸算法,根據(jù)具體的某個水利工程造價數(shù)據(jù),在發(fā)生自然災(zāi)害(如地震、滑坡、泥石流等)之后,結(jié)合災(zāi)后受影響的耕地面積、房屋損失、人口損失等因子形成數(shù)據(jù)文件,將數(shù)據(jù)文件當(dāng)作樣本集進(jìn)行訓(xùn)練,得到具體的訓(xùn)練模型,再根據(jù)模型來對新的數(shù)據(jù)集進(jìn)行經(jīng)濟(jì)損失預(yù)測;水利工程災(zāi)后決策子模塊是通過決策樹分類算法來分析此次災(zāi)害對大壩的損害程度是否嚴(yán)重。該模塊旨在實現(xiàn)水利工程在受災(zāi)之后的快速經(jīng)濟(jì)損失評估,并且用戶能夠在災(zāi)后快速的做出決策,為實時、快速、全面掌握水利工程的受災(zāi)形式及采取有效的救災(zāi)措施提供科學(xué)依據(jù),如圖9是決策樹分類的功能示例圖。
圖9 決策樹分類功能
本文以現(xiàn)代信息技術(shù)和水利工程建設(shè)的深度結(jié)合為切入點,以西藏水庫水壩為設(shè)計實例,結(jié)合GIS二次開發(fā)等功能建立了西藏水利工程信息管理系統(tǒng)。該系統(tǒng)實現(xiàn)了西藏自治區(qū)全部水庫信息存儲的海量存儲與共享,為水利廳、各市級水利部門、各基層部門對各自分管的水庫提供基礎(chǔ)的信息服務(wù)功能。鑒于西藏水利資源豐富,水庫位置分布范圍較廣,信息搜集是一個艱巨的任務(wù),因此建立一個健全的數(shù)據(jù)庫是非常必要的。加強(qiáng)對系統(tǒng)用戶的培訓(xùn),使他們將系統(tǒng)應(yīng)用于日常管理任務(wù)中,提高他們的日常工作效率,提升水庫應(yīng)急管理與決策能力水平。