戴彥群
(成都理工大學 工程技術學院,四川 樂山 614007)
水文環境的影響不僅局限于環境范疇下,經調查水文環境同時也深深地影響了經濟和社會的發展[1-2]。如何提高和改善流域水環境狀況,如何建立水文信息監測網絡并完善水文信息管理系統,如何依托這些舉措構建出國內水環境安全保障體系,是當下擺在面前極其重要而又緊迫的難題。建立基于GIS的水文信息管理系統能極大提高水文環境治理的工作效率[3-4],改善水文信息管理觀念,改變職能部門面貌。
該文以四川省西充縣境內的西充河流域為例,以ArcEngine為開發平臺[5],建立一個面向管理層的水文信息管理系統。該系統有效結合了數據庫技術和組件式GIS技術(components GIS,ComGIS),具有河流域水文信息空間數據和屬性數據的高效管理與統計分析能力,可以便捷直觀地顯示和分析西充河流域的水文污染狀況、主要河流水質測評結果、污染源類型、污染源分布、流域城鎮相關信息等,且具有生成報表和專題圖的能力,為西充河流域的水文環境管理和決策提供強大的技術與數據支持,可以極大地提高管理者對西充河流域水文環境管理工作的效率[6-7]。
系統設計遵循“系統穩定、數據安全”,“功能設計模塊化”,“注重成本控制、適用性強”,“用戶合作”和“注重設計前瞻性”。
(1)系統穩定,數據安全。
系統首先要運行流暢,容錯性好,對軟件誤操作要有考慮準備,然后添加用戶的權限管理,增強對數據的安全性保護。
(2)功能設計模塊化。
根據軟件設計規范和對功能需求的結構劃分來設計系統的功能模塊,提高開發效率,降低開發風險。
(3)注重成本控制,適用性強。
系統開發資金有限,在保證完整的功能實現的前提下盡量采用價格更為低廉的解決方案。
(4)用戶合作。
系統的使用對象的體驗十分重要,可用、易用的系統不僅可為系統增加用戶量,更能讓系統功能更有效、更實用。
(5)注重設計前瞻性。
系統設計不應只著眼于解決當前問題,還應有相當的操作前瞻性和改進,需對用戶可能會有的需求進行設計,同時對以后的功能需求留下改進的設計,使得系統設計具有相當的前瞻性。
傳統的水文信息管理系統只有純粹的數據庫信息的管理功能,根本不涉及空間數據的管理與分析;今后的水文信息管理系統將集成GIS系統和信息管理系統的全部功能,可以預見的是,GIS技術將與水文信息管理結合更密切,GIS技術在水文領域的應用將更廣泛。
地理信息系統技術在空間分析方面有著得天獨厚的強大能力,水文專業模型則為專業的水文分析、評價提供科學的解決計算思路。二者結合,將進一步為水環境部門職能有效管理和決策者的科學決策提供科學的信息支持。這既是水文領域專家學者們長久以來的共同追求,也是基于地理信息系統技術構建的水文信息管理系統下一步發展的大趨勢。將功能模塊組件化,在統一的平臺下,這些組件的可復用性大大增強,這種理論已經成為快速搭建開發水文信息管理系統的一種熱門技術,在實際應用過程中得到了飛速發展。
該文的水文信息管理系統設計的目標是針對河流域的地理信息,以先進的組件式GIS為開發平臺[8-11],結合成熟的關系型數據庫技術,創建一個自動化程度高的水文信息管理系統。系統擁有對水文信息極強的分析功能,其結果用最為直觀的圖表展示出來,同時依托GIS對空間數據的處理[12],管理者可以直觀地了解和分析河流域污染狀況、水質狀況等。此外,此系統具備生成報表和專題圖的能力,為環保部門對河流域水文信息的管理提供強有力的平臺與技術支持[13]。建設目標具體包括:
(1)建立1∶10 000比例尺基礎空間數據庫,實現對部門基礎地理信息要素的顯示和檢索;
(2)采用SQLite數據庫建立河流域水文信息管理系統的屬性數據庫,實現河流域水文監測點位、監測斷面的準確定位;
(3)開發基于ArcEngine的水文信息管理系統,實現地圖顯示、圖屬互查、地圖操作等基本操作;實現水文監測信息的可視化管理,包括監測點位與監測數據的互查;實現水環境質量評價結果的統計及可視化表達;實現對監測點及監測斷面數據的查詢、添加、編輯和刪除,可以對月監測數據和年平均監測數據進行趨勢分析,生成報表和趨勢情況;實現流域工礦企業污染管理,可對污染企業進行查詢、新建、編輯和刪除,生成統計圖和專題圖。
系統開發環境主要由開發語言、GIS組件開發平臺、開發工具和數據庫四個部分組成。
(1)開發語言。
該系統采用的開發語言是VisualC#,一種面向對象的編程語言。C#繼承了C語言的表示形式和優美,同時引入對象思想,從而實現了應用程序的快速開發。
由于大部分GIS平臺都是基于.net環境開發,同時幾乎全部的數據庫都支持.net環境部署,所以選用C#作為水文信息管理系統是切實可行的。
(2)GIS開發平臺。
ArcGIS是ESRI公司系列產品中最為經典、功能最強大的專業GIS產品,它是ESRI公司在GIS領域的標桿。ArcGIS可運行于當前市面上的各種平臺。ArcGIS是世界上最全面的、可擴展性最強的GIS軟件。用戶利用ArcGIS進行專業的GIS操作,可進行各方面的數據構建、模擬、分析以及地圖的屏幕顯示和輸出。
系統GIS組件平臺采用美國ESRI公司的ArcEngine,它包含一個構建定制應用的開發包,開發人員可以調用其中的3 000多個組件對象,這些組件對象包含了ArcGIS桌面端的所有GIS功能,開發人員可以在它的幫助下快速、學習成本低的進行GIS應用開發,在自己開發的應用中嵌入GIS。
(3)開發工具。
該系統開發使用的工具是微軟公司的Visual Studio(簡稱VS),VS的集成開發環境適用于微軟支持的所有平臺。Visual Studio是目前應用最廣泛、最強大的.net平臺應用程序的集成開發環境。
(4)數據庫。
該系統屬性數據庫采用SQLite數據庫。SQLite是一款輕型的、嵌入式的數據庫。它能夠支持當今世界主流的操作系統,同時能夠跟很多程序語言相結合,數據處理速度十分快。SQLite是一款免費開源的數據庫,所以能為系統開發節省大量成本,符合西充縣水文信息管理系統成本控制的設計原則。
該系統采用Client/Server(客戶機/服務器)的開發體系,Client/Server依托網絡服務,在前臺管理用戶的業務需求,在后臺負責存儲、管理數據。Client/Server結構可以實現分布式計算,可以根據兩端的硬件水平決定處理任務的分配,以期達到系統最佳性能。
水文信息管理系統的核心功能模塊是:地圖模塊、數據管理模塊、統計分析模塊、系統管理模塊。具體設計如圖1所示。
1.地圖模塊。
該模塊主要實現基本的GIS功能:地圖數據瀏覽、管理圖層、監測點管理、監測數據圖屬互查、地圖恢復和其他GIS功能。
(1)地圖數據瀏覽。
可以直觀展示西充河流域的空間數據,用戶能利用漫游、全圖、前后視圖、標簽、定位、選擇要素等功能控制顯示該地區的水文空間信息要素。
(2)監測數據圖屬互查。
用戶能使用地圖要素點選擇操作,選感興趣的對象,依次展示該監測點的數據;用戶也能根據監測點屬性信息查出該監測點在地圖中的空間表達[14],同時顯示出其相關的數據。
(3)管理圖層。
用戶可以依據個人喜好設置相關圖層的隱藏/顯示屬性來突出某些圖層的顯示,同時還具備圖層重命名、圖層索引改變、地圖符號化、地圖標注及地圖渲染等管理功能。
(4)地圖恢復。
當用戶修改了地圖符號化設置、地圖標注設置后不滿意,可以恢復成系統對每個圖層的默認渲染風格。
(5)監測點管理。
用戶可以在地圖空間中,通過位置信息定位或直接點擊來可視化地創建、編輯、刪除和查看流域內的監測點信息。
(6)其他GIS功能。
其他GIS功能主要是提供對當前地圖的鷹眼視圖,同時提供對鷹眼視圖的控制。
2.數據管理模塊。
該模塊主要提供對監測數據、污染類型數據、污染源信息數據、基礎數據的管理。
(1)監測數據管理。
用戶可以對監測點信息、月監測數據和年平均監測數據進行查看、添加、修改和刪除操作。
(2)污染源類型數據管理。
用戶可以對污染源入河量數據和排放量數據進行查看、添加、修改和刪除操作。
(3)污染源信息數據管理。
用戶可以對集中式生活污水排放信息、集中式生活垃圾處理信息、規模化畜牧養殖信息、流域工礦企業信息和流域干流排污口的信息進行查看、添加、修改和刪除操作。
(4)基礎數據管理。
用戶可以對地表水環境質量基本項目標準數據、鄉鎮人口數量、監測斷面、監測河流和鄉政區劃信息等數據進行查看、添加、修改和刪除操作。
3.統計分析模塊。
該模塊主要向用戶提供月監測數據、年平均監測數據、污染源入河量和污染源排放量的趨勢分析和對比統計分析,同時能夠讓用戶自定義統計量分析和分析數據的結果導出。
(1)多種數據統計分析。
該功能支持用戶對數據的月、年變化趨勢進行分析,也能對歷史同期數據進行橫向對比,統計圖表提供高度定制化,以期讓用戶可以制作出精美的分析圖表。
(2)結果輸出。
該功能支持用戶將分析結果以Word、Excel等多種格式導出保存。
4.系統管理模塊。
該模塊主要向用戶提供了數據導出、數據備份、數據恢復和用戶管理等系統管理運維的功能。
(1)數據庫數據操作。
本功能支持用戶以Excel、SQLite數據庫格式導入和導出數據,同時提供數據庫的備份與恢復功能,切實保護數據的共享自由度和安全性。
(2)用戶管理。
該功能向管理員提供系統用戶的管理功能,可以對用戶登錄、部門管理等進行操作,同時最為關鍵的是限制用戶對數據的操作權限,防止誤操作導致數據污染,切實保護系統和數據的安全。

圖1 系統功能設計
迄今為止,尚未制定一套能在全國或省、市范圍內通用的水文信息管理系統建設標準與規范。對平臺選擇、數據庫設計方面沒有統一標準,從而使得各套系統之間只能自選平臺方案。這導致已建成的系統之間數據無法共享,系統無法連接網,形成一個一個的“信息孤島”,造成資源的巨大浪費。
屬性數據與空間數據結合松散,目前的系統大多都沒有結合屬性和空間數據,都是分開儲存,分開分析的。兩種數據完全分開會導致屬性數據在時空特征方面的分析受到極大阻礙,同時對于保持數據的完整性是一個巨大的挑戰,而且數據更新將極為不便;屬性數據與空間數據混為一體存放,會導致管理混亂,數據更新不便,同時無法快速做出統計分析。針對以上問題,該文設計的水文信息管理系統選用輕量級的關系型數據庫SQLite作為后臺數據庫來存儲屬性數據,空間數據的存取主要通過ArcSDE來訪問管理,屬性數據的訪問管理由SQLite數據庫引擎來完成。
西充河流域水文信息的數據主要是由空間數據和屬性數據兩部分構成,主要包括基礎地理數據(行政區劃、人口分布、工業經濟、土地利用類型、水系數據等)、監測點及監測河流斷面信息、水質監測數據(如水中氨含量、氮含量、PH值、鉛含量、鎘含量等)。水文信息數據的特點主要有以下兩點:第一,數據量大。各個監測點位、河流監測斷面歷年的月監測信息及其年監測數據量非常巨大;第二,數據時效性強。監測數據與污染信息都在不斷實時更新。具體設計如下:
1.空間數據庫設計。
空間數據由基礎地理數據、專題地圖數據和社會經濟數據三大部分組成。所有原始數據都以ShapeFile格式存儲于文件數據庫中,系統通過ArcSDE來管理,同時數據庫中以信息要素分組的方式進行分組管理,使得數據層次更加鮮明[15]。空間數據由內容分為3個類型,即基礎地理數據、專題地圖數據、社會經濟數據。數據都由很多的點、線、面圖層構成。
基礎地理數據包括行政域內所有鄉鎮名稱、流域內各鄉鎮邊界、河流水系流域界線、鄉鎮區劃界線等。具體如表1所示。專題地圖數據包括人口密度專題數據、農村生活污水總等標污染負荷比專題數據、化肥總等標污染負荷比專題數據、城鎮地表總等標污染負荷比專題數據、土地利用類型專題數據等。社會經濟數據包括各鄉鎮GDP值專題數據、各鄉鎮人口分布專題數據等。

表1 空間數據設計
2.屬性數據庫設計。
大部分屬性數據與空間數據庫并無多大關聯,強行與GIS結合并無多大意義,反而容易造成數據污染,性能損失,因此將屬性數據庫由專門的數據庫管理,將與空間數據庫關聯較深的對象設置共同的關聯字段達到與空間數據庫的互動。
屬性數據主要包括四大類數據:監測數據、污染類型數據、污染源信息數據和基礎屬性數據。具體如表2所示。

表2 屬性數據庫
(1)監測數據。
該類數據包含監測點數據、月監測數據和年監測數據。
(2)污染源信息數據。
該類數據包含污染源進入量數據和污染源排放量數據。
(3)污染類型數據。
該類數據包含集中式生活污水排放信息、集中式生活垃圾處理信息、規模化畜牧養殖信息、流域工礦企業信息和流域干流排污口信息。
(4)基礎類型數據。
該類數據包含地表水環境質量標準基本項目標準、鄉鎮人口數量、監測斷面、監測河流和鄉政區劃信息數據。
3.數據庫連接設計。
系統將全部數據表建立成數據模型,在系統里統一管理,這種設計保證了系統操作的數據格式與數據庫一致。用ArcSDE來訪問空間數據,屬性數據庫則由自己開發的數據庫訪問層來實現。
該系統采用SQLite來存儲業務數據,并通過Arc-SDE 10.2來管理地理信息數據,開發平臺應用Visual Studio 2012,通過C#語言來調用ArcEngine 10.2服務接口進行客戶端桌面開發,系統采用了DevExpress 15.2控件進行頁面布置。采用C#高級編程語言對ArcEngine進行二次開發,降低了GIS二次開發的難度,依托Visual Studio工具,提高了系統開發的效率。將GIS和水文信息管理系統結合,完美解決了傳統方式在可視化管理的不足,并且讓系統對水文數據的空間分析能力得到較大的提升。采用了四川省西充縣數據為實驗數據。該系統實現了地圖基本功能模塊、數據管理模塊、數據分析模塊和系統管理模塊等。地圖功能模塊主要實現基本的GIS功能:地圖數據瀏覽、管理圖層、監測點管理、監測點圖屬互查、地圖恢復和其他GIS功能。主界面如圖2所示。

圖2 地圖瀏覽
地圖數據瀏覽實現了可以直觀展示西充河流域的空間數據,用戶能利用工具欄的漫游、全圖、前后視圖、放大縮小、查看要素等功能控制該區域的水文信息要素。監測數據圖屬互查實現了能使用地圖要素點選擇操作,選感興趣的對象,依次展示該監測點的數據。用戶也可以根據監測點的相關屬性信息查出該監測點在地圖中的空間表達。管理圖層實現了依據個人喜好設置相關圖層的隱藏/顯示屬性來突出某些圖層,同時實現了圖層重命名、圖層索引改變、地圖符號化、地圖標注及地圖渲染等圖層管理功能。地圖恢復功能實現了恢復成系統對各圖層默認的渲染風格。監測點管理,主要是為了在地圖上將監測點可視化并存入相關信息,用戶可以在地圖空間中,通過位置信息定位或直接點擊來可視化地創建、編輯、刪除和查看流域內的監測點信息。
數據管理模塊主要實現對監測數據管理、污染源類型數據管理、污染源信息數據管理、基礎數據管理,數據是以表格形式展示,主要是對數據進行增加、刪除、編輯、查詢等操作。具體如圖3所示。
數據分析模塊實現了向用戶主要提供月監測數據、年平均監測數據、污染源入河量和污染源排放量的趨勢分析和對比統計分析,同時支持用戶高度自定義統計量分析和分析數據的結果導出。
支持用戶將分析結果以Word、Excel等多種格式導出保存。參數構造區:構造統計量,確定統計類型,同時可以修改已參與統計分析的統計量,實現用戶對數據統計量的高度定制化,靈活性非常強。結果呈現區:此區域顯示分析結果,同時也是數據導出時圖面的主要繪制區域。

圖3 數據修改
該功能支持用戶對數據的月、年變化趨勢進行分析,也能對歷史同期數據進行橫向對比,同時也能添加標準值對比,這里對西充河流域2010~2011年10月份的生化需氧量、氨氮含量進行趨勢分析,同時有標準值作對比,結果如圖4所示。

圖4 數據統計分析
采用GIS平臺對水文信息管理系統進行設計與實現,結合GIS軟件平臺、空間數據庫技術、空間分析,整合城市水文信息資源,同時依據水文信息管理需求對功能模塊進行設計,使得系統在原有對兩種數據進行科學管理的基礎上,同時兼具了統計分析的能力,彌補傳統水文信息管理中只能以單一的純文字表格或純圖形來表達,而且還能挖掘出其他數據,可以很好地滿足水文信息管理工作的實際需要。最后采用西充縣的數據進行系統測試,通過實驗證明了設計方案和實現技術的先進性和實用性。為基于GIS平臺的水文信息管理系統的建設提供了理論依據和具有實際應用的技術參考。