柯麗娜, 王權明, 王國力, 張 翔, 王方雄, 楊 俊
(1. 遼寧省自然地理與空間信息科學重點實驗室, 遼寧 大連 116029; 2. 國家海洋環境監測中心, 遼寧 大連 116023)
水質評價是水環境管理保護和污染治理的一項重要基礎性工作, 如何評價水資源的質量, 為生產、生活提供水質信息, 采取相應的防治措施, 是水環境研究的一個重點。自20世紀50年代以來, 國內外學者對水體環境質量進行了深入的研究, 各類水質監測評價方法逐步建立與規范。以Simeonov 為代表的國外學者對水體質量從化學組成上進行了評價[1], Russo[2]介紹了美國水質標準的發展過程, Bhabesh[3]采用主成分分析法借助地理信息系統對海灣地區環境質量進行了評價; 李雪[4]、吳斌[5]、鄭琳[6]、孔維萍[7]、王洪禮[8]、李凡修[9]等國內學者分別用BP人工神經網絡、“三元法”、模糊綜合、灰色聚類法、基于支持向量機理論法及集對分析方法等方法對不同區域海水水質進行了評價, 總體來看這些方法和模型各有優缺點。海水水質評價可以視為是一個具有確定性的評價指標和評價標準與具有不確定性的評價因子及其含量變化相結合的分析過程, 各評價指標含量本身就具有中介過渡性, 屬于模糊概念, 而大多數傳統的水質評價方法往往將評價標準或參照標準處理成點的形式存在一定的不足, 因此本文試圖將可變模糊數學模型[10-11]引入海水水質評價中, 通過變化模型及其參數, 合理地確定樣本指標對各級指標標準區間的相對隸屬度和相對隸屬函數, 有效地解決環境評價中邊界模糊及監測誤差對評價結果的影響問題[11]。另外, 為了進行監測評價數據管理、評價信息輸出、表現水環境污染的時空分布態勢等, 各類數據庫管理系統、地理信息系統技術開始在環境監測評價領域應用, 對提高環境水質污染監測評價能力起到了重要作用。本文將利用ArcEngine集成開發技術, 探索海水水質可變模糊評價GIS系統的設計與實現, 以期能夠為改進和完善海水環境質量評價提供新的思路和參考。
系統采用ArcGIS數據結構為標準的多源空間數據庫和相關屬性數據庫, 通過ArcSDE數據引擎和專用開發數據接口訪問SQL Server中的海水水質評價數據庫, 采用ArcEngine集成開發技術, 在Visual C# 2008開發環境下, 將可變模糊數學模型與GIS空間分析手段集成, 建立基于ArcEngine的海水水質可變模糊評價系統。
評價信息系統的總體設計目標是實現對海水水質空間信息和屬性信息的一體化與可視化管理, 能夠進行海水水質評價及制作海水水質評價專題地圖、評價結果報表輸出等, 實現GIS支持下的海水水質評價結果的可視化表達, 系統從結構功能上由4大模塊組成: 數據輸入與管理模塊、GIS數據查詢與編輯模塊、海水水質可變模糊評價模塊、制圖與輸出模塊, 該系統的總體結構設計如圖1所示。

圖1 系統總體結構 Fig. 1 The overall structure of the system
數據輸入與管理模塊的基本功能主要實現基于數據庫數據的輸入、查詢、編輯、刪除等功能。這里數據主要包括基礎地理數據(矢量空間數據)、水質監測數據(*.xls,*.DBF)兩類。
GIS數據查詢與選擇編輯模塊的基本功能主要實現基本的GIS功能, 包括地圖放大、縮小、地圖數據量測、基于GIS的屬性和位置的查詢、GIS數據編輯與修改等功能, 其中查詢和選擇功能可以實現根據屬性選擇、根據位置選擇、根據屬性查詢、根據位置查詢等功能。
海水水質可變模糊評價模塊是海水水質評價信息系統的核心, 主要通過人機交互方式, 實現基于可變模糊模型的海水水質綜合評價。該模塊包括評價指標體系管理、評價指標標準值管理、可變模糊評價模型管理及評價結果顯示四個部分。評價指標體系管理根據用戶輸入的評價指標及相應的指標值進行相關性分析, 并結合人機交互模式, 選取有代表性的評價指標。指標標準值管理參照《中華人民共和國海水水質標準》(GB 3097-1997), 根據用戶確定的評價指標體系, 將海水水質標準數據庫中的相關數據調入評價系統, 確定海水水質可變模糊綜合評價指標的評價等級劃分及各等級的標準值。可變模糊評價模型管理部分以源程序和可執行程序存放可變模糊綜合評價方法, 能夠為系統提供海水水質可變模糊綜合分析模型及計算方法。評價結果顯示根據參數a,p(可變模糊模型參數)變化情況計算海水水質綜合級別特征值, 生成海水水質綜合評價圖, 快速、直觀反映水質隨時間的變化情況。
制圖與輸出模塊的基本功能是制作各類海水水質要素平面分布、模糊評價結果專題圖等, 包括: 單一符號圖、漸變符號圖、漸變色分級圖、柱狀圖及餅狀圖制作及制圖打印輸出。
系統的結構功能圖示見圖2。

圖2 海水水質評價系統功能圖 Fig. 2 The function diagram of seawater quality evaluation system
GIS的二次開發有多種實現方式, 其中組件式二次開發既可以充分利用GIS工具軟件對空間數據庫的管理、分析功能, 又可以利用其他可視化開發語言, 具有高效、方便、可靠性好、易于移植、便于維護等優點。
本系統從功能需求、成本和先進性等方面考慮, 利用ArcGIS Engine作為系統GIS組件, 結合C#語言, 在VS2008的平臺下建立基于GIS技術的海水水質環境可變模糊綜合評價系統。C#是一種最新的、面向對象的編程語言, 它使得程序員可以快速地編寫各種基于Microsoft.NET平臺的應用程序, 使開發者用更少的代碼做更多的事, 同時也不易出錯[12]。
ArcGIS Engine是ESRI在ArcGIS9版本新推出的用于構建定制應用的完整的嵌入式的GIS組件庫[13], 支持多種開發語言, 包括COM、.NET框架、Java和C++, 能夠運行在Windows、Linux和Solaris等平臺上。使用ArcGIS Engine, 開發人員不需要再依賴于ArcGIS Desktop就能夠創建新的應用程序, 或者在自定義的軟件應用中擴展GIS的功能, 把GIS嵌入到其他應用程序之中, 如: Microsoft Word或Excel中, 為用戶提供針對GIS解決方案的定制應用。
2.1.1 空間數據庫設計
采用ArcSDE作為空間數據庫引擎, 實現空間數據和視圖的無縫集成。空間數據庫采用ArcSDE管理, 根據ArcSDE的空間數據存儲方案, 將海水水質采樣點采用Shapefile格式存儲為點狀圖層。
2.1.2 屬性數據庫設計
屬性數據庫是存儲、分析、統計、查詢、更新等的核心工具, 為了使不同格式的屬性數據管理起來更加靈活, 可分別通過GeoDatabase及SQL Serve2005管理不同格式的屬性數據。在屬性數據庫中建立存有樣點ID及各待分析元素含量等屬性信息的屬性表, 在屬性表中設置樣點ID為主鍵, 通過主鍵與空間數據庫進行連接。
2.1.3 指標數據庫設計
指標數據是作為海水水質分級的依據, 存放于指標數據庫中。根據《中華人民共和國海水水質標準》(GB 3097-1997)在指標數據庫中建立存有指標名稱、運算符、第一類、第二類、第三類、第四類、劣四類等指標信息的指標表, 在指標表中設置指標名稱為主鍵, 在程序設計中通過主鍵與屬性數據庫進行關聯。
2.1.4 數據庫訪問
采用GeoDatabase數據模型管理空間數據和屬性數據, 采用SQL Server管理屬性數據和指標數據。通過ArcSDE數據引擎訪問 GeoDatabase, 通過C#中數據庫訪問類SqlClient訪問SQL Server, 最后空間數據、屬性數據及指標數據通過內部關聯碼(樣點ID和指標名稱)進行關聯, 如圖3所示, 構成靈活的系統數據體系, 這為可變模糊評價模塊的執行提供了數據保證。

圖3 數據庫訪問示意圖 Fig. 3 The diagram of database access
數據輸入與管理模塊界面設計見圖4。這里僅以數據查詢進行說明, 數據查詢使用IQueryFilter接口定義qQueryFilter對象, 定義方法名selectMethod, 運用switch語句檢查用戶所選查詢方法, 分為4種, case0: 生成新的選擇集; case1: 添加到當前的選擇集; case2: 從當前的選擇集中去除; case3: 在當前選擇集中選擇。設置case0為默認選項, 即default。然后將pQueryFilter和所選方法selectMethod傳入pFeaterSelectin.SelectFeatures方法中進行查詢。

圖4 根據屬性查詢 Fig. 4 The attribute query interface
關鍵代碼的實現如下。首先使用IQueryFilter接口定義qQueryFilter對象, 然后運用Swich語句檢查 Combobox控件中查詢方法的被選狀態, 根據selectIndex確定被選方法, 最后將pQueryFilter和所選方法 selectMethod傳入 pFeaterSelectin.Select-Features方法中進行查詢。關鍵代碼:
esriSelectionResultEnum selectMethod;
switch (comboBoxMethod.SelectedIndex)
{case 0: selectMethod = esriSelectionResultEnum. esriSel- ection ResultNew; break;
case 1: selectMethod = esriSelectionResultEnum. esriSelectionResultAdd; break;
case 2: selectMethod = esriSelectionResultEnum. esriSelectionResultSubtract; break;
case 3: selectMethod = esriSelectionResultEnum. esriSelectionResultAnd; break;
default: selectMethod = esriSelectionResultEnum. esriSelectionResultNew; break; }
pFeatureSelection.SelectFeatures(pQueryFilter, selectMethod, false).
2.3.1 海水水質可變模糊評價模型
2.3.1.1 海水水質評價指標標準值矩陣建立
設海水水質待評對象u, 根據m個指標按c個級別的指標標準進行識別, 形成多指標、多級別的指標標準區間矩陣

其中aih,bih分別為指標i級別h標準值區間的上、下限值。式(1)第1行相當于越小越優型指標,aih
在每個指標、每個級別h的指標標準區間范圍內, 必存在一點yih, 使yih對于級別h的相對隸屬度等于1,yih定義為指標i、級別h的指標標準值, 將海水水質評價指標標準區間矩陣Y1轉化成多指標標準特征值矩陣Y2:

2.3.1.2 計算評價樣本u指標特征值的單指標級別隸屬度
根據對立統一定理, 級別h與(h+1)級構成對立模糊概念,

式中:μih(u),μi(h+(1)u)分別為待評對象u指標i對級別h與(h+1)級的相對隸屬度。
設待評對象u指標i的特征值xi落入[yih,yi(h+1)]內, 則xi對h級相對隸屬度為

2.3.1.3 計算待評對象u對級別h的綜合相對隸屬度
設pi是指標i對于級別h位于p1與pr之間的一點, 則pi與p1,pr兩端的多指標廣義權距離為:

則待評對象u對級別h的多指標綜合相對隸屬度vh(u)為:

p為距離參數,p=1為海明距離,p=2為歐氏距離;α為優化準則參數,α=1相當于最小一乘方,α=2為最小二乘方優化準則。α和p可有4種組合形式:a=1,p=1;a=1,p=2;a=2,p=1;a=2,p=2。
2.3.1.4 計算待評對象u的級別特征值
在模糊概念分級條件下, 用最大隸屬原則對級別歸屬進行識別, 容易導致最后評價結果的錯判, 應用文獻[5-6]提出的級別特征值公式, 充分表達h與vh(u)分布列的整體特征, 利用級別變量h隸屬于各等級的相對隸屬度信息, 作為可變模糊集理論判斷、識別、決策的準則。

2.3.2 海水水質可變模糊綜合評價關鍵代碼實現
海水水質可變模糊評價是海水水質評價系統的核心, 根據海水采樣樣本點數據和《中華人民共和國海水水質標準》(GB 3097-1997)建立樣本特征值矩陣和指標標準值矩陣, 再根據待評對象u指標i的特征值xi落入級別h與(h+1)級的標準值區間[yih,yi(h+1)], 計算xi對h級相對隸屬度, 確定各評價指標的影響權重, 運用公式(4)、(5)、(6)、(7)計算不同參數組合結果, 計算模糊級別特征值, 再求取 4種組合vf1,vf2,vf3,vf4的平均值, 并四舍五入得到評價等級結果, 通過MessageBox提示“分類結果已經完成”更新數據, 在表中添加列名"a=1,p=1", "a=1,p=2", "a=2,p=1", "a=2,p=2", "分級結果", 然后運用for循環將每行的計算結果和評價結果導入表中并刷新, 至此對數據的模糊評價計算完成并完成表的更新, 得到每個采樣點的分級級別值, 然后運用ArcEngine中IFeature接口中的set_Value方法將分級結果添加到空間圖層數據的屬性表中, 按照空間圖層數據中的“分級結果”字段在海水水質評價系統中表現出不同海域海水水質的變化。關鍵代碼為:
//以a=1,p=1為例
public void ()
a= new float[point, 5];
b= new float[point, 5];
floatwi= (float)1.0 / (stand - 1);
for (inti= 0;i< point;i++)
{for (intj= 1;j< stand;j++)
{for (intk= 0;k<= 4;k++)
{b[i,k] += (float)(m[i,j,k] *wi); }}}
for (inti= 0;i< point;i++)
{for (intj= 0;j<= 4;j++)
{v1[i,j] =b[i,j] } };
for (inti= 0;i< point;i++)
{vf1[i] =v1[i, 0] * 1 +v1[i, 1] * 2 +v1[i, 2] * 3 +v1[i, 3] * 4 +v1[i, 4] * 5}};
for (inti= 0;i< point;i++)
{float temp = (vf1[i] +vf2[i] +vf3[i] +vf4[i]) / 4;vfsum[i] = Round(temp, 0) };
table1.Columns.Add("a=1,p=1");
table1.Columns.Add("a=1,p=2");
table1.Columns.Add("a=2,p=1");
table1.Columns.Add("a=2,p=2");
table1.Columns.Add("分級結果");
for (inti= 0;i DataRow row = table1.Rows[i]; row["a=1,p=1"] =vf1[i]; row["a=1,p=2"] =vf2[i]; row["a=2,p=1"] =vf3[i]; row["a=2,p=2"] =vf4[i]; row["分級結果"] =vfsum[i];} dataGridView1.Refresh(). GIS數據查詢與選擇編輯模塊主要實現基本的GIS功能, 包括地圖放大、地圖縮小、地圖數據量測、基于GIS的屬性和位置的查詢、GIS數據編輯與修改等功能, 這里只以GIS模塊添加為例進行說明, GIS模塊數據添加是通過ArcGIS控件實現的, 首先通過Icommand接口實例化, 運用switch語句檢查當前視圖版面, 并把添加的數據更新到當前的版面中。當前版面分為兩種情況case0, case1。case0表示當前視圖為數據視圖, case1表示當前視圖為版面視圖。通過for循環語句逐個將選擇的數據圖層添加到axMapControl2內, 最后通過esriPointerDefault方法將鼠標樣式還原。關鍵代碼為: private void ToolStripMenuItem_Click(object sender, EventArgs e) {int currentLayerCount = axMapControl1.LayerCount; ICommand pCommand = new ControlsAddDataCommand Class(); pCommand.OnCreate(axMapControl1.Object); pCommand.OnClick(); this.axMapControl1.ActiveView.Refresh(); IMap pMap = axMapControl1.Map; this.pControlsSynchronizer.ReplaceMap(pMap); switch (this.tabControl1.SelectedIndex); {case 0: pControlsSynchronizer.ActivateMap(); break; case 1: pControlsSynchronizer.ActivatePageLayout(); break} for(inti= 0;i< axMapControl1.LayerCount;i++) {axMapControl2.AddLayer(axMapControl1.get_Layer(i)) }; axMapControl1.MousePointer=esriControlsMousePointer. esriPointerDefault; axMapControl2.Extent = axMapControl2.FullExtent; axMapControl2.Refresh()}. 萊州灣位于渤海南部, 是渤海三大海灣之一, 西起黃河口, 東至龍口市屺姆島, 寬96 km, 海岸線長319.06 km, 面積6 966 km2, 沿岸有黃河、小清河等10余條河流入海, 是黃、渤海多種經濟魚蝦類的主要產卵場、孵幼場和索餌場[14-16]。近年來隨著萊州灣沿岸工、農業的發展和人口的增長, 排海污染物迅速增加, 特別是營養鹽類和有機物的過量排放引起海水污染和水域富營養化, 給萊州灣生態環境和生物群落造成嚴重危害。因此, 及時了解和掌握萊州灣及附近海域環境質量狀況, 對萊州灣赤潮災害控制、萊州灣環境污染監測及海洋生態環境保護都具有重要意義。 本文利用了萊州灣2010年8月的20個監測點的水質監測數據(監測點位置見圖5), 監測項目有水溫、鹽度、pH、溶解氧、COD、營養鹽、重金屬、葉綠素a等, 所有樣品均按《海洋監測規范》規定的方法采集、處理、保存、運輸和分析。結合萊州灣海水污染現狀[14-16], 選擇主要評價因子: COD(化學耗氧量)、DO(溶解氧)、無機氮、活性磷酸鹽、油類5個項目, 水質標準采用《中華人民共和國海水水 質標準》(GB 3097-1997)。 圖5 萊州灣位置及監測站位 Fig. 5 The location of the Laizhou Bay and locations of monitoring stations 萊州灣海水水質評價樣本集數據X為: 參照海水水質標準(GB 3097-1997) 及萊州灣海水水質的實際情況[14-16], 確定萊州灣海水水質綜合評價指標標準值矩陣Y為: 萊州灣海水水質評價指標的綜合權重W為: 0.2278, 0.2071) 采用公式(3)~(7)計算萊州灣海水水質評價對象x對級別h的綜合相對隸屬度向量, 再應用公式(8)計算海水水質評價樣本當a=1,p=1;a=1,p=2;a=2,p=1;a=2,p=2時的級別特征值。 利用ArcEngine建立的海水水質可變模糊綜合評價系統得到的萊州灣海水水質綜合評價結果見圖6, 評價結果直觀反映了水質等級可變模糊綜合評價值空間分布態勢, 結合單要素平面分布專題圖, 可以看出: 萊州灣海水水質大部分為二類或三類海水, 氮磷比嚴重失衡, 水體富營養化現象比較嚴重。海水中主要污染物是無機氮、石油類和活性磷酸鹽, 其中以無機氮的污染最嚴重, 灣內80%以上海域無機氮濃度達到或超過四類標準, COD、石油類和活性磷酸鹽的污染區主要分布于沿岸海域。究其原因, 萊州灣水環境受小清河和廣利河影響明顯, 陸源污染物排海、不合理養殖及生物資源過度開發是導致萊州灣海域水質較差的主要因素。 圖6 萊州灣海水水質評價分布圖 Fig. 6 The seawater quality evaluation result of the Laizhou Bay 海水水質評價實質是一個具有確定性的評價指標和評價標準與具有不確定性的評價因子及其含量變化相結合的分析過程, 是一個多因素多水平耦合作用的復雜不確定系統, 因此利用數學模型評價方法進行水質評價十分必要, 但其計算過程比較復雜, 更需要利用GIS系統來實現評價過程的自動化與評價結果輸出展示, 本文將可變模糊數學模型引入海水水質評價中, 并結合GIS技術, 采用ArcEngine集成開發技術, 在Visual C# 2008開發環境下, 將可變模糊數學模型與GIS空間分析手段集成, 建立基于ArcEngine的海水水質可變模糊評價系統, 通過ArcSDE數據引擎和專用開發數據接口訪問SQL Server中的海水水質評價空間數據庫, 實現海水水質空間分布狀況的實時動態顯示, 并將該系統應用到萊州灣海水水質綜合評價中, 實現了萊州灣海域海水水質綜合評價結果的直觀、可視化顯示, 為控制環境污染、進行環境規劃提供了科學依據。 [1] Simeonov V, Stratis J A, Samara C, et al. Assessment of the surface water quality in Northern Greece [J]. Water Research, 2003, 37: 4119–4124. [2] Russo R C. Development of marine water quality criteria for the USA [J]. Marine Pollution Bulletin, 2002, 45: 84–91. [3] Sarkar B C, Mahanta B N, Saikia K, et al. Geo-environmental quality assessment in Jharia coalfield, India, using multivariate statistics and geographic information system[J]. Environ Geol, 2007, 51: 1177-1196. [4] 李雪, 劉長發, 朱學慧, 等. 基于BP人工神經網絡的海水水質綜合評價[J]. 海洋通報, 2010, 29(2): 225-230. [5] 吳斌, 宋金明, 李學剛,等.沉積物質量評價“三元法”及其在近海中的應用[J]. 生態學報, 2012, 32(14): 4566-4574. [6] 鄭琳, 崔文林, 賈永剛. 青島海洋傾倒區海水水質模糊綜合評價[J]. 海洋環境科學, 2007, 26(1): 38-41. [7] 孫維萍, 于培松, 潘建明. 灰色聚類法評價長江口、杭州灣海域表層海水中的重金屬污染程度[J]. 海洋學報, 2009, 31(1): 79-84. [8] 王洪禮, 王長江, 李勝朋. 基于支持向量機理論的海水水質富營養化評價研究[J]. 海洋技術, 2005, 24(1): 48-51. [9] 李凡修, 陳武. 海水水質富營養化評價的集對分析方法[J]. 海洋環境科學, 2003, 22(2): 72-74. [10] 陳守煜. 可變模糊集理論與模型及其應用[M]. 大連:大連理工大學出版社, 2009. [11] 陳守煜, 胡吉敏. 可變模糊評價法在水資源承載力評價中的應用[J].水利學報, 2006, 37(3): 264-277. [12] 靳玉峰. 海洋水質監測與預報系統研究[D]. 大連: 大連海事大學, 2009. [13] 李福建. 基于GIS的我國海岸帶地質災害基礎信息管理系統的設計與實現[D]. 青島: 中國海洋大學, 2010. [14] 馬紹賽, 趙俊, 陳碧鵑, 等. 萊州灣漁業水域生態環境質量分析與綜合評價研究[J]. 海洋水產研究, 2006, 27(5): 13-16. [15] 孫丕喜, 王波, 張朝暉, 等. 萊州灣海水中營養鹽分布與富營養化的關系[J]. 海洋科學進展, 2006, 24(3): 329-335. [16] 衣華鵬, 張鵬宴, 畢繼勝, 等. 萊州灣東岸海水入侵對生態環境的影響[J]. 海洋科學, 2010, 1: 29-34.2.4 GIS數據查詢與選擇編輯模塊的設計與實現
3 實例應用
3.1 研究區概況
3.2 評價指標與分級標準

3.3 萊州灣海水水質綜合評價#



3.4 評價結果可視化顯示

4 結論