張紹強,劉子亭,程 宇
(1.中國灌溉排水發展中心,北京 100054;2.北京潤華信通科技有限公司,北京 100054;3.哈爾濱鴻德亦泰數碼科技有限責任公司,哈爾濱 150001)
根據2011年全國水利普查結果,設計灌溉面積2 萬hm2以上的灌區456處,灌溉面積1 866.7 萬hm2;設計灌溉面積666.7~20 000 hm2的灌區7 316處,灌溉面積1 486.7 萬hm2。全國總用水量6 107.2 億m3,其中農業用水3 743.5 億m3,占總用水量的61.39%。因此,提高灌區的輸配水管理水平,是建設現代化灌區和節水型社會的重要內容。
灌區業務劃分為4大主體業務:用水管理、工程管理、組織管理、經營管理。2大衍生服務:水文化、水生態。最核心的業務是兩個方面:“用水管理”、“工程管理”。
灌溉的業務目標可以概化為“以最少的水量損失,把適量的水,以最短的時間,用最少的人力,安全的輸送到最需要的地點。”要實現這個業務目標,僅靠原始的人工管理方法很難實現,因此,需要借助灌區信息化的先進工具提高灌區的用水管理和工程管理水平,才能保證灌區主要業務目標的達到。
大型灌區信息化建設總體分為三個階段:第一階段為2000年以前灌區自發開展的灌區信息化建設;第二階段為2001-2010年期間,水利部先后啟動了兩期灌區信息化建設試點,并給予資金政策扶持,在全國50處灌區開展了信息化試點建設;第三階段為2011年后,各灌區則根據灌區管理需求及資金可能安排信息化建設資金。通過對前期灌區信息化建設的總結和研究,灌區在用水管理和工程管理中地理信息技術的應用還有廣闊的提升空間。
下面結合中國灌溉排水發展中心課題項目“現代灌區信息管理技術(e-ids)開發完善與示范推廣”在試點推廣灌區的應用,分別論述地理信息技術在灌區用水管理和工程管理的應用。
地理信息技術主要采用ESRI公司的ArcGIS 10.5系列產品中的ArcGIS Enterprise,ArcGIS Enterprise是一個功能全面的制圖和分析平臺。該平臺包括功能強大的 GIS web服務器,加上專用的 Web GIS 基礎架構,可用于組織和共享作業以便可隨時隨地將地圖、地理信息和分析用于任何設備。ArcGIS Enterprise 具有靈活的部署方式,可以本地部署,亦可以云平臺部署,也支持兩種方式相結合。包含三個主要的組件,即 Portal for ArcGIS、ArcGIS Server 和 ArcGIS Data Store,三者共同組成了 Web GIS,提供基礎制圖和分析功能以及安全共享、應用程序基礎架構和信息管理功能。基于此強大的WEB GIS服務器運行架構,采用4.X系列的ArcGIS API for JavaScript進行應用程序開發。ArcGIS API for JavaScript 4.X是ESRI公司的新一代JavaScript API,集成了2D和3D的功能,易于使用,功能強大的API。4.X版本可以實現建立功能完善的Web 3D應用場景,展示豐富的地理信息,如地形、影像、要素和3D對象等。
目前采用最新版本的ArcGIS API for JavaScript 4.5,為了實現2D和3D的地圖加載,提出了新的地圖服務加載方式,即View對象,該對象分為MapView(2D視圖)和SceneView(3D視圖)。View對象相當于一個容器,在容器中初始化Map對象,在Map對象中添加許多圖層進行展示和處理。
Map對象作為ArcGIS API中的一個功能類,通過Map對象類中包含的相關方法和屬性,實現對二維地圖服務的加載和處理,支持加載基礎地圖,實現對地圖圖層的新增、維護,以及圖層集合的獲取。Map對象包含的具體方法和屬性請參見表1。

表1 Map對象說明
為了便于用戶操作地圖要素數據,API中提供三種查詢方法,IdentifyTask、FindTask、QueryTask,其中IdentifyTask適用于基于地圖范圍進行的要素查詢,例如查詢某位置的地圖要素或與某圖形范圍內的所有要素等需求。FindTask適用于基于要素屬性的查詢,可以設置查詢條件,查詢所有圖層中滿足條件的地圖要素。QueryTask適用于只查詢某圖層的要素信息。
3個地圖要素查詢對象中,IdentifyTask的使用最為簡便,處理基本依托于Arcgis Server來實現,其中包含的屬性、方法和返回結果的功能說明請參見表2。

表2 IdentifyTask對象說明
一切基于地圖的處理均是對圖層的處理,可以實現對圖層要素的符號渲染顯示,用到API中提供的分類渲染ClassBreaksRenderer、唯一值渲染UniqueValueRenderer、點云渲染PointCloudRenderer等多種渲染方式,提供多種類型的圖標可供選擇,支持普通的點、線、面的圖標樣式,亦支持3D效果的點、線、面的圖標樣式,還提供一些圖片、文本等多種圖標樣式,為實現豐富的應用提供實現方式。
ClassBreaksRenderer渲染方式應用范圍廣,展示效果好,加載速度快。并且提供多種實現方法,方便開發人員進行擴展應用,具體屬性名稱和功能說明請參見表3。

表3 ClassBreaksRenderer對象說明
ArcGIS API for JavaScript 4.5為了用戶更加簡單實現常用的空間分析功能,提供了一些即拿即用的空間分析服務,其中有打印服務、GP服務調用服務、路徑分析服務、定位服務等,提供了簡單的調用方法,實現相關應用的開發更加快速容易,無須應用開發者去制作復雜的GP流程。但若是需要實現與業務需求相關的空間分析,則依然需要開發者根據業務所需算法制作GP工具,并利用ArcGIS Server部署為GP Service供應用程序調用。
GP Service又被叫做GP工具,是在Web應用中實現空間數據分析的基礎。利用GP工具既可以實現復雜的空間分析,也支持用戶根據特定的業務需求進行定制開發,是實現復雜GIS 應用的重要方法類,其中包含的具體屬性和方法請參見表4。

表4 GP Service對象說明
用水管理業務模塊實現農業灌溉和用水控制的流程化管理和分析,并結合當前互聯網最新設計思想和展示形式,實現水雨情實時監測、配水情況及水費收繳情況分析、預警預測等多種應用方式。實時監控水源蓄水信息、輸水渠道配水信息、用水單位的水量應用情況以及水費收繳情況等。根據實時監控的最新數據以及收集的歷史數據,對達到警戒狀態的供水情況進行預警,預警形式包括顏色預警、位置預警、語音預警等多種警戒方式,例:當配水口水位超過警戒線時,進行語音播報,同時在地圖上高亮顯示該測點位置,以提醒工作人員及時處理。
為了幫助灌區在用水管理過程中,嚴格執行“三條紅線”管理政策,實現節水灌溉的目的,通過該模塊實時監控各用水單位的年總供水量,當發現有用水單位用水量超過控制指標或即將超標時,在地圖上高亮顯示該單位位置并語音播報警戒信息,以提醒工作人員。在控制用水單位的用水量的同時,也支持計算用水單位的應收水費與實收水費,若發現用水單位未交水費或欠費時,可在分析圖表中顯示,管理人員可依據管理辦法采取相應措施。
實現實時掌握用水灌溉信息,水流從供水水源開始,逐步流動至各輸水渠系中,根據各引配水口的水位和流量數據,在地圖上渲染顯示各級渠道的過水情況,通過此種方式可以清晰看到哪些渠道正在輸配水,哪些渠道已停止供水。對于管理供水渠道過長的灌區,通過該功能,可在供水初期,顯示水流已到達位置、分析預計到達時間,使各管理站(所)的調度人員更加精準的配水,為灌區的調配水工作提供更加豐富的分析方式,為調度工作提供指導。效果顯示如圖1。

圖1 供水渠道分析效果圖
顯示已超標或即將超過的用水單位個數,并在地圖上渲染顯示用水單位位置,若是即將超標,則將該用水單位渲染成黃色,并顯示該用水單位剩余可用水量。若是已經超標,則將該用水單位渲染紅色,并顯示該用水單位已超標水量值。同時語音播報警戒信息,例:XXX鄉鎮用水總量已超標XX萬方,總量指標為XXX萬方。效果顯示如圖2。

圖2 水資源總量指標控制效果圖
利用柱狀圖、曲線圖等多種圖表形式,對比顯示各用水單位的地表水實供水量、地下水實供水量以及總量控制指標,若用水單位實供水量超標時,用特殊顏色標識,使各用水單位的實際用水情況清晰明了。
同時在地圖根據各用水單位的供水總量的大小,用漸變色渲染顯示用水單位管理范圍,通過顏色的深淺可以判斷用水單位的用水量多少。效果顯示如圖3、圖4。
通過圖表形式,顯示各用水單位的定額內應收水費、超定額應收水費、應收兩費以及實收水費、實收兩費等收費信息。效果顯示如圖4。
工程管理業務模塊實現對灌區水利工程的信息化管理,包括工程臺賬歸檔、日常巡檢管理等灌區日常工作中水利工程相關的管理工作。利用地圖實現任意查看各類水利工程的臺賬信息、照片、實時視頻等多媒體材料。可以隨時查看當前正在巡檢工作人員的巡查位置、現場視頻以及進行語音對講,同時支持語音智能識別,實現與現場工作人員進行實時溝通,及時處理各種突發狀況。支持查詢歷史巡檢記錄,查看巡檢視頻、巡檢錄音和照片等各類巡檢過程數據,若巡檢過程有發現問題還可以自動定位至發現異常的位置,為灌區執法巡查和工程維修養護提供有力的數據支撐。

圖3 供水總量效果圖

圖4 實供水量分析效果圖
在地圖點擊任意一個水利工程建筑物,查看該建筑物基礎臺賬信息、多媒體資料以及相關的管理數據。例:當點擊水庫時,可查看水庫的工程屬性信息、照片、實時視頻、文字簡介、最新水位、庫容、入庫流量、出庫流量以及大壩安全監測數據等。當點擊渠道時,可查看渠道的工程屬性信息、照片、維修養護信息、改造信息以及該條渠道上的所有監測站點的最新水位、流量數據等。效果顯示如圖5-7。

圖5 水庫信息效果圖

圖6 渠道信息效果圖

圖7 渠首信息效果圖
在地圖上自動顯示當前正在巡檢人員的工作軌跡以及所在位置,并實時更新。當在地圖上點擊人員標識時,可以查看當前正在巡檢工作人員的巡檢記錄、上傳的照片以及現場視頻和錄音文件,錄音文件可以通過智能分析技術轉換成文字。同時可以發起語音對講,與現場人員進行通話。效果顯示如圖8、圖9。

圖8 渠道實時巡檢效果圖

圖9 實時巡檢信息效果圖
支持查看歷史巡檢記錄,通過點擊歷史巡檢記錄,實現查看該次巡檢的視頻文件、錄音文件以及圖片等現場信息,同時定位顯示此次巡檢過程中發現問題的位置。效果顯示如圖10、圖11。

圖10 巡檢記錄效果圖

圖11 巡檢詳細信息效果圖
渠道巡檢軌跡渲染程序實現的實例代碼如下所示:
//巡檢段
xunjianduanXR = function getPersonCanalResults(ID) {
resultsLyr.removeAll();
var qTask=new QueryTask();
qTask.url = "http:∥www.xjsth.cn:8399/arcgis/rest/services/slgk_pm_Map/MapServer/17";
var query=new Query();
query.outFields=["*"];
query.returnGeometry=true;
query.where="FID = "+ID+"";
qTask.execute(query).then(function (results) {
var graphicS = arrayUtils.map(results.features,function (feature) {
feature.symbol = new SimpleLineSymbol({
color:[253, 97, 0],∥[ 21, 197, 234],
width:4
});
return feature;
});
resultsLyr.addMany(graphicS);
view.goTo(graphicS);
}),function (error) {
alert(error);
};
}
渠道輸配水情況渲染程序實現的實例代碼如下所示:
//動態水流渲染
renderByPictureMarkMethod = function RenderByPictureMarkMethod(url, where,linename) {
resultsLyr.removeAll();
var qTaskArea=new QueryTask();
qTaskArea.url = "http:∥www.xjsth.cn:8399/arcgis/rest/services/szy_ds_Map/MapServer/";
var queryArea=new Query();
queryArea.outFields=["*"];
queryArea.returnGeometry=true;
var qWhereArea = where != "" && where != undefined ? where : "1 = 1";
queryArea. where=qWhereArea ;
qTaskArea.execute(queryArea).then(function (results) {
arrayUtils.map(results.features,function (feature) {
if(feature.geometry.paths[0] && feature.geometry.paths[1]) {...}
});
});
}
水量分析渲染程序實現代碼如下所示:
∥水量超標處理
getUnit = function getUnit(where1,where2) {
resultsLyr.removeAll();
var url = "http:∥www.xjsth.cn:8399/arcgis/rest/services/szy_ds_Map/MapServer/25";
var senderInfo = {"Type":"POLYGON","Color":[255,0,0,
0.8],"Style":"solid","OutlineColor":[139,54,38],"OutlineWidth":1};
renderGeometryMethod(url,where1,senderInfo);
var senderInfo = {"Type":"POLYGON","Color":[255,255,0,
0.8],"Style":"solid","OutlineColor":[139,54,38],"OutlineWidth":1};
renderGeometryMethod(url,where2,senderInfo);
}
//超標信息顯示
renderTextMethod = function RenderTextMethod(url, where,text){
//resultsLyr.removeAll();
var qTask=new QueryTask();
qTask.url = url;
var query=new Query();
query.outFields=["*"];
query.returnGeometry=true;
var qWhere = where != "" && where != undefined ? where : "1 = 1";
query.where=qWhere;
qTask.execute(query).then(function (results) {
var graphicS = arrayUtils.map(results.features,function (feature) {...});
resultsLyr.addMany(graphicS);
if (zoom != undefined){
view.goTo({target: graphicS, zoom: zoom});
}
}),function (error) {
alert(error);
};
}
通過以上在各個試點灌區用水管理和工程管理中地理信息技術的應用示例,使灌區用水管理和工程管理更加直觀和形象,提高了灌區輸配水的時效性和科學性,提高了工程管理的現場感和實時性,因此,地理信息技術在灌區業務管理中還有很大的應用空間。
□
[1] 中國灌溉排水發展中心. 大型灌區信息化建設技術指南[M]. 北京:中國水利水電出版社,2012.
[2] 王順久. 水資源優化配置原理及方法[M]. 北京:中國水利水電出版社,2007.
[3] Eelco van Beek. 宋心同 譯. 水資源綜合管理 方法-模型-應用[M]. 鄭州:黃河水利出版社,2008.
[4] 湯國安,楊 昕. ArcGIS地理信息系統空間分析實驗教程[M]. 北京:科學出版社,2006.
[5] 池 建. 精通ArcGIS地理信息系統[M]. 北京:清華大學出版社,2010.
[6] 安迪·米切爾. 張 旸 譯. GIS空間分析指南[M]. 北京:測繪出版社,2011.
[7] 王遠飛. 空間數據分析方法[M]. 北京:科學出版社,2007.