◎ 浙江大学控制科学与工程学系 赵晓东 周洪亮 张宏建
浙江省杭州市饮用水源均取自河流,80%主要来自钱塘江和东苕溪。在枯水期,随着沿途取水量的增加,水流减缓,当水温和营养盐条件适合时,爆发蓝藻水华的可能性大大增加。2004年7月20日至8月15日,钱塘江梅城—闸口河段出现了较为严重的蓝藻爆发,蓝藻水华属源发性质。富春江大坝建成后,水流减缓,比其他河段相对更容易爆发蓝藻。2006年8月15日,杭州余杭东苕溪(奉口段)水源地发现蓝藻,直接威胁饮用水源安全。其原因是由于来源于太湖(江苏境内)的蓝藻,蓝藻水华属外源侵入性质。国内针对湖泊水华预警的研究较多,如太湖、漕湖等大型淡水湖已做过许多相关预警研究。本文结合其特点设计了针对河流的水华预警体系,其内容包括:水质指标阈值动态定义及实时展现、水华指标定义及显示、预警模型及接口扩展,以及系统设计架构等几个部分。
系统可分为三层:藻类预警信息发布中心、业务层、数据层。结构如图1所示。
信息发布层即“藻类预警信息发布中心”,做为系统的最终Web展现层,直接依赖于业务处理层所提供的各项服务,并间接访问数据提供层。用户可以通过浏览器直接访问发布的藻类预警信息,方便地获得以授权的水质指标、预测获得的水华发生等级、叶绿素浓度等信息。信息发布的具体展现形式通过系统的业务层实现,由相应的水质专家级管理员完成信息发布。
业务层包含了系统的几乎所有功能的实现,它在系统中起着承上启下的作用。业务层一方面直接与数据库连接,拥有着对数据库的各项操作能力;另一方面又要响应信息发布层的各种处理请求,为最终用户提供丰富的服务。业务层还大大简化了系统管理和维护的难度,将所有的功能模块的实现聚集在一起使得管理员可以集中精力于此,不要关心数据提供层或者信息发布层。另外,业务层还从逻辑上隔离了信息发布层和数据层,从系统架构上就一定程度地防范了各种潜在的恶意攻击和破坏。
图1 系统功能结构图
图2 指标动态展现原理图
图3 藻类水华预警指标展现效果图
数据层为系统的最底层,包括了水文数据库、水质数据库、地理信息数据库、模型数据库。各个数据库共同为业务处理层提供了数据支持,并且信息发布层的原始数据也在这些数据库内。数据处理层的数据来源则由业务处理层的数据录入管理模块掌控,可以灵活的配置为数据接口自动录入方式或者手工录入方式。
.NET框架是一个多语言组件开发和执行环境,它提供了一个跨语言的统一编程环境。.NET框架的目的是便于开发人员更容易地建立Web应用程序和Web服务,使得 Internet上的各应用程序之间,可以使用Web服务进行沟通。.NET框架包括两类应用——传统的Windows应用程序(Win Forms)和基于ASP.NET的面向Web的网络应用程序(Web Forms)——本系统中对应了针对管理员的桌面管理程序和针对用户的Web水质信息展现。
C#是微软公司发布的一种面向对象的、运行于.NET框架之上的高级程序设计语言。它是微软公司.NET框架的主角,有着极大的发展潜力。
本系统是围绕水质监测数据进行展现和分析的河流藻类水华预警系统,故良好的数据库设计对整个系统的正常高效运作有着重要的影响。系统采用了Microsoft SQL Server 2005这款主流的结构化数据库产品作为数据支持平台。除了Microsoft SQL Server 2005本身作为优秀数据库产品的所有特性外,其与.NET框架和C#语言的编程高效性和方便性也是采用它的重要原因之一。表结构的设计符合了《中华人民共和国水利行业标准》之SL325-2005《水质数据库表结构与标识符标准》。此符合行业标准的数据库表设计非常便于以后与其它相关系统的集成和协同工作。
水质指标的展现为本系统最关键的模块之一,此模块能通过数据表格的方式准确地展现当前的各项水质指标,原理如图2所示。
除了通用的几个固定字段(测站编号、测站名称、采样时间)外,数据表格中的字段都是通过读取配置文件信息的字段抽取方式定制化地展现的。用户直接交互的对象只有Web页面,其余的动作都是在服务器端完成的。用户通过Web页面向服务器发送请求,此请求没有直接向数据库请求数据,而是在业务层根据配置文件内的信息(展现内容)动态的修饰用户的请求,然后根据这一定制化的请求从数据库提取数据再经配置文件内的信息(阈值、色彩等)将原始数据进行解析美化,最终在Web页面上呈现给用户。管理员可以对配置文件中的信息进行配置,灵活地改变客户端展现形式。
这种设计方式可以最大限度的提高系统的灵活性,以应对以下情况:
(1)站点不可能监测所有《水质数据库表结构与标识符标准》内的字段对应的水质指标,对没有数据源的指标进行展现是没有任何意义的,通过定制配置文件内的字段信息可以屏蔽掉那些无数据源的监测指标;
(2)水质指标的项类别繁多,而用户关心的却往往是某几项关键指标,列出每一项指标反而会造成视觉混乱影响识别,并且大量的数据请求对数据库系统也会产生不必要的负荷。
采用字段抽取方式则可以有效的解决此上述问题。
经过预警模型和统计模型处理后获得的藻类水华描述主要展现形式包括:叶绿素浓度、优势藻种、水华发生概率。如图3所示。
叶绿素浓度可通过预警模型中的机理模型直接计算获得,可对不同藻种生物量进行同时计算,在获得各种生物量的同时,可对各藻种的生物量进行判断,优势藻种的生物量相对于其它藻种具有一定的优势,优势藻种可能包含多种,随着时间的不同优势藻种也发生变化。本系统采用的方法是对各藻种生物量从大到小依次排序,首选出排在前三位的藻种,再根据三种藻种在总生物量的百分比确定是否都是优势种。影响水华发生(上浮)概率的影响因素主要包括藻类生物量和水文条件,如风速、水流动速度等。当风速和水流速度较大时,即使藻类浓度很高,仍不会发生水华,而当风速小于3m/s时发生水华的几率会明显升高。
藻类水华的预警模型分为机理模型和智能模型两部分,其中机理模型针对河流采用的是迹线法,藻类生长机理模型关系为:
A表示生物量(干重)、叶绿素a浓度; μ是总生长速率;Υ是呼吸速率;es表示内源呼吸率;m是非捕食导致的死亡率;s是沉降速率;G是由于牧食而导致的损失。
μmax是参考温度下的最大生长速率;ƒ(T)为温度的变动;ƒ(L)为光限制;ƒ(C,P,N,Si)为营养物限制,对于营养物的限制采用李比希最小因子定律即:
机理模型的数据可直接抽取自数据库,实现自动的藻类预警。机理模型作为主要的预警手段,可实现实时的预警,智能模型作为辅助手段以提高预测经度,常用的智能预测模型包括神经网络,支持向量机等方法。
本文较为详细的介绍了针对河流的藻类水华预警系统的设计方法和主要模型的实现过程。实现了水质指标、水华指标在线显示和动态预警功能。系统具有灵活的扩展性和可维护性,为藻类预警信息系统的集成提供了较好的实际指导意义。