基于GIS水文信息管理系统的设计与实现
2020-12-25戴彦群
戴彦群
(成都理工大学 工程技术学院,四川 乐山 614007)
0 引 言
水文环境的影响不仅局限于环境范畴下,经调查水文环境同时也深深地影响了经济和社会的发展[1-2]。如何提高和改善流域水环境状况,如何建立水文信息监测网络并完善水文信息管理系统,如何依托这些举措构建出国内水环境安全保障体系,是当下摆在面前极其重要而又紧迫的难题。建立基于GIS的水文信息管理系统能极大提高水文环境治理的工作效率[3-4],改善水文信息管理观念,改变职能部门面貌。
该文以四川省西充县境内的西充河流域为例,以ArcEngine为开发平台[5],建立一个面向管理层的水文信息管理系统。该系统有效结合了数据库技术和组件式GIS技术(components GIS,ComGIS),具有河流域水文信息空间数据和属性数据的高效管理与统计分析能力,可以便捷直观地显示和分析西充河流域的水文污染状况、主要河流水质测评结果、污染源类型、污染源分布、流域城镇相关信息等,且具有生成报表和专题图的能力,为西充河流域的水文环境管理和决策提供强大的技术与数据支持,可以极大地提高管理者对西充河流域水文环境管理工作的效率[6-7]。
1 系统总体设计
1.1 设计原则
系统设计遵循“系统稳定、数据安全”,“功能设计模块化”,“注重成本控制、适用性强”,“用户合作”和“注重设计前瞻性”。
(1)系统稳定,数据安全。
系统首先要运行流畅,容错性好,对软件误操作要有考虑准备,然后添加用户的权限管理,增强对数据的安全性保护。
(2)功能设计模块化。
根据软件设计规范和对功能需求的结构划分来设计系统的功能模块,提高开发效率,降低开发风险。
(3)注重成本控制,适用性强。
系统开发资金有限,在保证完整的功能实现的前提下尽量采用价格更为低廉的解决方案。
(4)用户合作。
系统的使用对象的体验十分重要,可用、易用的系统不仅可为系统增加用户量,更能让系统功能更有效、更实用。
(5)注重设计前瞻性。
系统设计不应只着眼于解决当前问题,还应有相当的操作前瞻性和改进,需对用户可能会有的需求进行设计,同时对以后的功能需求留下改进的设计,使得系统设计具有相当的前瞻性。
1.2 设计目标
传统的水文信息管理系统只有纯粹的数据库信息的管理功能,根本不涉及空间数据的管理与分析;今后的水文信息管理系统将集成GIS系统和信息管理系统的全部功能,可以预见的是,GIS技术将与水文信息管理结合更密切,GIS技术在水文领域的应用将更广泛。
地理信息系统技术在空间分析方面有着得天独厚的强大能力,水文专业模型则为专业的水文分析、评价提供科学的解决计算思路。二者结合,将进一步为水环境部门职能有效管理和决策者的科学决策提供科学的信息支持。这既是水文领域专家学者们长久以来的共同追求,也是基于地理信息系统技术构建的水文信息管理系统下一步发展的大趋势。将功能模块组件化,在统一的平台下,这些组件的可复用性大大增强,这种理论已经成为快速搭建开发水文信息管理系统的一种热门技术,在实际应用过程中得到了飞速发展。
该文的水文信息管理系统设计的目标是针对河流域的地理信息,以先进的组件式GIS为开发平台[8-11],结合成熟的关系型数据库技术,创建一个自动化程度高的水文信息管理系统。系统拥有对水文信息极强的分析功能,其结果用最为直观的图表展示出来,同时依托GIS对空间数据的处理[12],管理者可以直观地了解和分析河流域污染状况、水质状况等。此外,此系统具备生成报表和专题图的能力,为环保部门对河流域水文信息的管理提供强有力的平台与技术支持[13]。建设目标具体包括:
(1)建立1∶10 000比例尺基础空间数据库,实现对部门基础地理信息要素的显示和检索;
(2)采用SQLite数据库建立河流域水文信息管理系统的属性数据库,实现河流域水文监测点位、监测断面的准确定位;
(3)开发基于ArcEngine的水文信息管理系统,实现地图显示、图属互查、地图操作等基本操作;实现水文监测信息的可视化管理,包括监测点位与监测数据的互查;实现水环境质量评价结果的统计及可视化表达;实现对监测点及监测断面数据的查询、添加、编辑和删除,可以对月监测数据和年平均监测数据进行趋势分析,生成报表和趋势情况;实现流域工矿企业污染管理,可对污染企业进行查询、新建、编辑和删除,生成统计图和专题图。
1.3 开发环境
系统开发环境主要由开发语言、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是一款免费开源的数据库,所以能为系统开发节省大量成本,符合西充县水文信息管理系统成本控制的设计原则。
2 系统功能设计
该系统采用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 系统功能设计
3 空间数据库的设计
迄今为止,尚未制定一套能在全国或省、市范围内通用的水文信息管理系统建设标准与规范。对平台选择、数据库设计方面没有统一标准,从而使得各套系统之间只能自选平台方案。这导致已建成的系统之间数据无法共享,系统无法连接网,形成一个一个的“信息孤岛”,造成资源的巨大浪费。
属性数据与空间数据结合松散,目前的系统大多都没有结合属性和空间数据,都是分开储存,分开分析的。两种数据完全分开会导致属性数据在时空特征方面的分析受到极大阻碍,同时对于保持数据的完整性是一个巨大的挑战,而且数据更新将极为不便;属性数据与空间数据混为一体存放,会导致管理混乱,数据更新不便,同时无法快速做出统计分析。针对以上问题,该文设计的水文信息管理系统选用轻量级的关系型数据库SQLite作为后台数据库来存储属性数据,空间数据的存取主要通过ArcSDE来访问管理,属性数据的访问管理由SQLite数据库引擎来完成。
西充河流域水文信息的数据主要是由空间数据和属性数据两部分构成,主要包括基础地理数据(行政区划、人口分布、工业经济、土地利用类型、水系数据等)、监测点及监测河流断面信息、水质监测数据(如水中氨含量、氮含量、PH值、铅含量、镉含量等)。水文信息数据的特点主要有以下两点:第一,数据量大。各个监测点位、河流监测断面历年的月监测信息及其年监测数据量非常巨大;第二,数据时效性强。监测数据与污染信息都在不断实时更新。具体设计如下:
1.空间数据库设计。
空间数据由基础地理数据、专题地图数据和社会经济数据三大部分组成。所有原始数据都以ShapeFile格式存储于文件数据库中,系统通过ArcSDE来管理,同时数据库中以信息要素分组的方式进行分组管理,使得数据层次更加鲜明[15]。空间数据由内容分为3个类型,即基础地理数据、专题地图数据、社会经济数据。数据都由很多的点、线、面图层构成。
基础地理数据包括行政域内所有乡镇名称、流域内各乡镇边界、河流水系流域界线、乡镇区划界线等。具体如表1所示。专题地图数据包括人口密度专题数据、农村生活污水总等标污染负荷比专题数据、化肥总等标污染负荷比专题数据、城镇地表总等标污染负荷比专题数据、土地利用类型专题数据等。社会经济数据包括各乡镇GDP值专题数据、各乡镇人口分布专题数据等。
表1 空间数据设计
2.属性数据库设计。
大部分属性数据与空间数据库并无多大关联,强行与GIS结合并无多大意义,反而容易造成数据污染,性能损失,因此将属性数据库由专门的数据库管理,将与空间数据库关联较深的对象设置共同的关联字段达到与空间数据库的互动。
属性数据主要包括四大类数据:监测数据、污染类型数据、污染源信息数据和基础属性数据。具体如表2所示。
表2 属性数据库
(1)监测数据。
该类数据包含监测点数据、月监测数据和年监测数据。
(2)污染源信息数据。
该类数据包含污染源进入量数据和污染源排放量数据。
(3)污染类型数据。
该类数据包含集中式生活污水排放信息、集中式生活垃圾处理信息、规模化畜牧养殖信息、流域工矿企业信息和流域干流排污口信息。
(4)基础类型数据。
该类数据包含地表水环境质量标准基本项目标准、乡镇人口数量、监测断面、监测河流和乡政区划信息数据。
3.数据库连接设计。
系统将全部数据表建立成数据模型,在系统里统一管理,这种设计保证了系统操作的数据格式与数据库一致。用ArcSDE来访问空间数据,属性数据库则由自己开发的数据库访问层来实现。
4 实验分析
该系统采用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 数据统计分析
5 结束语
采用GIS平台对水文信息管理系统进行设计与实现,结合GIS软件平台、空间数据库技术、空间分析,整合城市水文信息资源,同时依据水文信息管理需求对功能模块进行设计,使得系统在原有对两种数据进行科学管理的基础上,同时兼具了统计分析的能力,弥补传统水文信息管理中只能以单一的纯文字表格或纯图形来表达,而且还能挖掘出其他数据,可以很好地满足水文信息管理工作的实际需要。最后采用西充县的数据进行系统测试,通过实验证明了设计方案和实现技术的先进性和实用性。为基于GIS平台的水文信息管理系统的建设提供了理论依据和具有实际应用的技术参考。