基于GIS的水环境决策支持系统的开发与应用
- 格式:doc
- 大小:35.50 KB
- 文档页数:3
GIS的水环境决策支持系统的开发与应用
摘要:随着计算机技术和全球信息网络技术的飞速发展, 决策支持系统(decision support system,简称dss)已经将管理信息系统(mis)推向更高一级发展,这种先进的信息管理系统将对GIS 软件也产生了影响。
该文主要探讨基于GIS技术的水环境决策支持系统开发,并介绍基于该技术开发的相应GIS系统。
关键词:决策支持系统;GIS系统;matlab
为了解决水环境管理中出现的诸多问题,人们将“决策支持”的概念引入水环境规划、管理与决策工作中,使得水环境管理信息系统升级为水环境管理决策支持系统(Water Environment Management Decision Support Systems,WEMDSS)。
它以水质预测和评价、水质规划和水环境管理为基础,主要目的是分析并预测水质状况,使决策者及时掌握水质变化规律,合理地使用水资源,控制水污染。
与此同时,伴随人们对空间数据需求的日益增大,地理信息系统( Geographic Information System, GIS) 也历经近四十年的发展, 已逐渐建立起其完整的技术系统和理论体系。
其中,ArcGIS 是ESRI 公司推出的代表GIS 的最高水平,集遥感、地理信息系统、全球定位系统及多媒体等高新技术于一体面向对象的综合信息管理软件。
在技术进步和应用需求的双重驱动下,充分利用现有的数据资源、电子信息管理技术、GIS技术,针对汾河运城段水利信息管理业务的特点,提出了基于GIS的水环境决策支持系统的基本框架、主要功能和组成部分。
该系统根据现有水利管理业务数据,通过GIS技术直观的显示,为水利各级管理人员提供方便、及时、有效、科学的辅助决策支持。
1 系统设计
充分考虑到ArcGIS 的特点,并结合汾河运城段的实际需求,确立了以下的设计思想:该系统是以汾河运城段的GIS地图为基础,管理河段内各种水文和水利信息,将空间数据和河段属性数据向结合,将GIS技术融合在决策支持系统,使得决策执行系统展现更直观、功能更全面。
1.1 系统结构设计
根据支持决策系统的需要和ArcGIS Engine的技术特点,本系统采用MVC三层结构模式。
1) 数据层是信息化的基础,包括多个部分:利用sql server作为后端数据库管理平台存储属性数据、通过ArcGIS地图存储空间数据、matlab文件的模型库等等,最终形成为应用服务的综合数据层。
这些综合信息在这一层通过通信与数据传输网络构成支持决策所需的原始信息和加工后的信息组合。
2) 控制层是根据具体各项业务工作需求,对信息经过分析计算和归纳组合之后,生成管理和决策的各类成果。
这部分主要由ArcGIS Engine开发包、VC 6.0 开发环境以及matlab 数据引擎等工具开发,构建土地信息管理系统的框架及主要处理模块。
3) 显示层只要指客户端界面程序。
在数据层和控制层的支持下,综合显示各功能模块的最后成果,实现对河段工作的决策支持服务。
该系统主要的服务对象有3类:管理员,拥有所有界面的操作权限;操作员,拥有除人员设置界面以外的其他界面的操作权限;一般用户,仅仅拥有个别界面查看的权限。
1.2 研究平台选择
本系统主要使用或结合下述3项工具开发:
1.2.1VC6.0
Microsoft Visual C++,(简称VC)微软公司的C++开发工具,C++是一种使用非常广泛的电脑程序设计语言,接口和类库非常丰富。
1.2.2SQL server
Microsoft SQL Server是由美国微软公司所推出的关系数据库解决方案,其内置语言是由美国标准局(ANSI)和国际标准组织(ISO)所定义的SQL语言,适用于中小企业的数据库管理,但是近年来它的应用范围扩展到大型、跨国企业的数据库管理。
1.2..3 Matlab
MATLAB是一款由美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
MA TLAB可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序,同时利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和分析等。
1.3 数据库设计
数据库设计作为整个系统的基础,本系统中涉及的数据形式综合,包括多个部分:
1.3.1利用sql server作为后端数据库管理平台存储河道属性数据;
1.3.2ArcGIS地图存储空间数据;
1.3.3 matlab文件的模型库。
1.4 功能设计
该系统的基本功能有:主要由数据库管理模块、模型库管理模块,决策管理模块和地图基本操作模块。
具体模块如下:
1.4.1数据库管理模块作为整个系统的基础,实现了对数据的录入、查询、修改、删除和统计等功能。
其中查询功能包括图表查询和图形查询:图表查询对超标和异常指标显示不同的颜色,使得数据查询更直观;在图形查询中,管理者可以选择显示自己需要的断面或指标的数据曲线,使得查询更具有针对性。
1.4.2 模型管理模块通过对模型算法和模型参数的管理,保证模型的不断更新,从而保证整个系统的有效性。
管理者可以通过算法库管理直接对程序代码进行修改编写,也可以通过参数库管理对模型参数进行删减和更新,增强了管理者对系统的操作性。
1.4.3 决策库管理模块作为系统的核心部分,包括水质预测、水质评价和水环境容量计算等功能。
管理者可根据自己的需求对未来水质变化情况做出预测和评价,同时对出现的问题,系统还会给出相应的措施和建议。
1.4.4 地图基本操作模块主要实现对空间数据的管理, GIS对空间数据的基本操作功能本系统都应具备。
如: 地图的放大、缩小、平移、全图, 同时还可以对土地的空间图层数据进行点图查询、设置图层的可见与否的操作。
2 系统的实现
2.1 数据库管理模块和模型管理模块
在数据库管理模块中,需处理的数据基本都是属性信息,大都是在表格中以字段形式进行存储的。
处理这些字段,可以利用ADO可以直接通过OLE DB Provider建立连接,也可以使用ODBC数据源。
在本项目中,主要使用的是第二种方法。
ODBC(开放数据库互连)提供了一种标准的API(应用程序编程接口)方法来访问数据管理系统,具有最大的独立性和开放性,而且这些API利用SQL来完成其大部分任务。
在模型管理模块中,需要管理的主要是模型算法文件和模型相关参数。
这些数据也是存储在数据库表格中,所以处理方式一样。
2.2 决策库管理模块
作为系统的核心部分,决策功能都需要调用相关算法的matlab文件。
不过,由于Matlab研发平台的局限性,在其上面研发的程式不能脱离Matlab运行环境,但是它能和VC方便的进行连接。
因此,该模块只能将二者结合共用。
一般而言,Matlab和VC
混合编程的实现方法主要有以下三种方法:
2.2.1通过引擎(Engine),采用客户机服务器的计算模式,通过Window的ActiveX 通道和Matlab进行连接。
2.2.2应用Matlab数学函数库,Matlab中包含了内容丰富的函数库,而且还提供了和VC的数学函数接口,用户能方便的在VC的IDE(集成研发环境)中调用。
2.2.3 通过DLL实现VC和Matlab的混合编程。
DLL是个可执行的二进制文件。
把非常多通用的功能放在DLL中,能供多个应用程式调用,这样能非常好的减少外部存储空间的占有量,并实现代码的共享。
在上述三种方法中,第一种方法对调用Matlab的工具箱非常实用,所有在进行控制系统的设计和分析时,一般都是通过调用Matlab引擎(Engine)来实现的。
本系统该模块也主要使用主引擎来实现VC和Matlab的混合编程。
在具体应用时,往往在VC 中设计程式框架,以编译的程式作为前端客户机;通过调用Matlab引擎在后台实现和服务器的连接,实现动态通信。
2.3 地图基本操作模块
该模块开发的基本思路是在VC中,通过加载ArcGIS Engine 组件库中的控件、工具条等现有的资源,简化程序的代码编写,提高开发效率。
ArcGIS Engine开发包包括3个关键部分;控件、工具条和工具、对象库。
控件是ArcGIS 用户界面的组成部分,包括MapControl 、ToolbarCont rol 、TOCControl等。
通过ArcGIS Engine和VC环境配置,将控件嵌入到容器中,将他们图形化至应用程序。