APP下载

基于ArcEngine的海水水质可变模糊评价系统设计、实现及应用

2013-12-23柯丽娜王权明王国力王方雄

海洋科学 2013年3期
关键词:莱州湾水质评价级别

柯丽娜, 王权明, 王国力, 张 翔, 王方雄, 杨 俊

(1. 辽宁省自然地理与空间信息科学重点实验室, 辽宁 大连 116029; 2. 国家海洋环境监测中心, 辽宁 大连 116023)

水质评价是水环境管理保护和污染治理的一项重要基础性工作, 如何评价水资源的质量, 为生产、生活提供水质信息, 采取相应的防治措施, 是水环境研究的一个重点。自20世纪50年代以来, 国内外学者对水体环境质量进行了深入的研究, 各类水质监测评价方法逐步建立与规范。以Simeonov 为代表的国外学者对水体质量从化学组成上进行了评价[1], Russo[2]介绍了美国水质标准的发展过程, Bhabesh[3]采用主成分分析法借助地理信息系统对海湾地区环境质量进行了评价; 李雪[4]、吴斌[5]、郑琳[6]、孔维萍[7]、王洪礼[8]、李凡修[9]等国内学者分别用BP人工神经网络、“三元法”、模糊综合、灰色聚类法、基于支持向量机理论法及集对分析方法等方法对不同区域海水水质进行了评价, 总体来看这些方法和模型各有优缺点。海水水质评价可以视为是一个具有确定性的评价指标和评价标准与具有不确定性的评价因子及其含量变化相结合的分析过程, 各评价指标含量本身就具有中介过渡性, 属于模糊概念, 而大多数传统的水质评价方法往往将评价标准或参照标准处理成点的形式存在一定的不足, 因此本文试图将可变模糊数学模型[10-11]引入海水水质评价中, 通过变化模型及其参数, 合理地确定样本指标对各级指标标准区间的相对隶属度和相对隶属函数, 有效地解决环境评价中边界模糊及监测误差对评价结果的影响问题[11]。另外, 为了进行监测评价数据管理、评价信息输出、表现水环境污染的时空分布态势等, 各类数据库管理系统、地理信息系统技术开始在环境监测评价领域应用, 对提高环境水质污染监测评价能力起到了重要作用。本文将利用ArcEngine集成开发技术, 探索海水水质可变模糊评价GIS系统的设计与实现, 以期能够为改进和完善海水环境质量评价提供新的思路和参考。

1 系统的设计

1.1 系统的总体结构

系统采用ArcGIS数据结构为标准的多源空间数据库和相关属性数据库, 通过ArcSDE数据引擎和专用开发数据接口访问SQL Server中的海水水质评价数据库, 采用ArcEngine集成开发技术, 在Visual C# 2008开发环境下, 将可变模糊数学模型与GIS空间分析手段集成, 建立基于ArcEngine的海水水质可变模糊评价系统。

评价信息系统的总体设计目标是实现对海水水质空间信息和属性信息的一体化与可视化管理, 能够进行海水水质评价及制作海水水质评价专题地图、评价结果报表输出等, 实现GIS支持下的海水水质评价结果的可视化表达, 系统从结构功能上由4大模块组成: 数据输入与管理模块、GIS数据查询与编辑模块、海水水质可变模糊评价模块、制图与输出模块, 该系统的总体结构设计如图1所示。

图1 系统总体结构 Fig. 1 The overall structure of the system

1.2 系统的基本功能

数据输入与管理模块的基本功能主要实现基于数据库数据的输入、查询、编辑、删除等功能。这里数据主要包括基础地理数据(矢量空间数据)、水质监测数据(*.xls,*.DBF)两类。

GIS数据查询与选择编辑模块的基本功能主要实现基本的GIS功能, 包括地图放大、缩小、地图数据量测、基于GIS的属性和位置的查询、GIS数据编辑与修改等功能, 其中查询和选择功能可以实现根据属性选择、根据位置选择、根据属性查询、根据位置查询等功能。

海水水质可变模糊评价模块是海水水质评价信息系统的核心, 主要通过人机交互方式, 实现基于可变模糊模型的海水水质综合评价。该模块包括评价指标体系管理、评价指标标准值管理、可变模糊评价模型管理及评价结果显示四个部分。评价指标体系管理根据用户输入的评价指标及相应的指标值进行相关性分析, 并结合人机交互模式, 选取有代表性的评价指标。指标标准值管理参照《中华人民共和国海水水质标准》(GB 3097-1997), 根据用户确定的评价指标体系, 将海水水质标准数据库中的相关数据调入评价系统, 确定海水水质可变模糊综合评价指标的评价等级划分及各等级的标准值。可变模糊评价模型管理部分以源程序和可执行程序存放可变模糊综合评价方法, 能够为系统提供海水水质可变模糊综合分析模型及计算方法。评价结果显示根据参数a,p(可变模糊模型参数)变化情况计算海水水质综合级别特征值, 生成海水水质综合评价图, 快速、直观反映水质随时间的变化情况。

制图与输出模块的基本功能是制作各类海水水质要素平面分布、模糊评价结果专题图等, 包括: 单一符号图、渐变符号图、渐变色分级图、柱状图及饼状图制作及制图打印输出。

系统的结构功能图示见图2。

图2 海水水质评价系统功能图 Fig. 2 The function diagram of seawater quality evaluation system

1.3 系统开发的关键技术

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 系统的实现

2.1 数据库设计

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

2.2 数据输入与管理模块的设计与实现

数据输入与管理模块界面设计见图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 海水水质可变模糊综合评价模块的设计与实现

2.3.1 海水水质可变模糊评价模型

2.3.1.1 海水水质评价指标标准值矩阵建立

设海水水质待评对象u, 根据m个指标按c个级别的指标标准进行识别, 形成多指标、多级别的指标标准区间矩阵

其中aih,bih分别为指标i级别h标准值区间的上、下限值。式(1)第1行相当于越小越优型指标,aihbih。

在每个指标、每个级别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().

2.4 GIS数据查询与选择编辑模块的设计与实现

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()}.

3 实例应用

3.1 研究区概况

莱州湾位于渤海南部, 是渤海三大海湾之一, 西起黄河口, 东至龙口市屺姆岛, 宽96 km, 海岸线长319.06 km, 面积6 966 km2, 沿岸有黄河、小清河等10余条河流入海, 是黄、渤海多种经济鱼虾类的主要产卵场、孵幼场和索饵场[14-16]。近年来随着莱州湾沿岸工、农业的发展和人口的增长, 排海污染物迅速增加, 特别是营养盐类和有机物的过量排放引起海水污染和水域富营养化, 给莱州湾生态环境和生物群落造成严重危害。因此, 及时了解和掌握莱州湾及附近海域环境质量状况, 对莱州湾赤潮灾害控制、莱州湾环境污染监测及海洋生态环境保护都具有重要意义。

3.2 评价指标与分级标准

本文利用了莱州湾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

3.3 莱州湾海水水质综合评价#

莱州湾海水水质评价样本集数据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时的级别特征值。

3.4 评价结果可视化显示

利用ArcEngine建立的海水水质可变模糊综合评价系统得到的莱州湾海水水质综合评价结果见图6, 评价结果直观反映了水质等级可变模糊综合评价值空间分布态势, 结合单要素平面分布专题图, 可以看出: 莱州湾海水水质大部分为二类或三类海水, 氮磷比严重失衡, 水体富营养化现象比较严重。海水中主要污染物是无机氮、石油类和活性磷酸盐, 其中以无机氮的污染最严重, 湾内80%以上海域无机氮浓度达到或超过四类标准, COD、石油类和活性磷酸盐的污染区主要分布于沿岸海域。究其原因, 莱州湾水环境受小清河和广利河影响明显, 陆源污染物排海、不合理养殖及生物资源过度开发是导致莱州湾海域水质较差的主要因素。

图6 莱州湾海水水质评价分布图 Fig. 6 The seawater quality evaluation result of the Laizhou Bay

4 结论

海水水质评价实质是一个具有确定性的评价指标和评价标准与具有不确定性的评价因子及其含量变化相结合的分析过程, 是一个多因素多水平耦合作用的复杂不确定系统, 因此利用数学模型评价方法进行水质评价十分必要, 但其计算过程比较复杂, 更需要利用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.

猜你喜欢

莱州湾水质评价级别
痘痘分级别,轻重不一样
莱州湾沉积物粒度与大型底栖生物群落关系的初步分析
浞河浮游藻类的调查研究与水质评价
迈向UHD HDR的“水晶” 十万元级别的SIM2 CRYSTAL4 UHD
莱州湾扇贝养殖区浮游植物的群落变化研究
新年导购手册之两万元以下级别好物推荐
滻灞河水质评价方法研究
你是什么级别的
基于概率统计和模糊综合评价法的水质评价模型及其应用——以拉萨河水质评价为例
山东莱州湾南岸典型剖面海(咸)水入侵过程的水文地球化学识别