张凯
摘要:针对郑州市大气污染防治中PM2.5污染这一热点问题,采取分层架构、功能引导、模块划分的设计思路,以GIS技术为支撑,基于VS平台使用C#语言编程,结合TE的二次开发技术,实现对郑州辖区的PM2.5污染情况进行定量分析、二三维可视化呈现、趋势预测和控制辅助决策,为环保部门决策和疾病预防提供理论依据和技术支撑。
关键词: GIS 显示 控制 预测 Surfer
PM2.5 pollution diffusion display system supported by GIS
Zhang Kai
Shijiazhuang mechanized infantry academy
Abstract:Aiming at the hot issue of atmospheric pollution protection about PM2.5 in Zheng Zhou, this topic will take layered architecture, function guiding and module partition designed ideas. It supported by GIS technology, based on VS 2010 platform and used of C# programming language. The topic also combined with secondary development technology of TE implementation. It can realize the quantitative analysis in2D&3D visualization rendering, trend prediction and control of power plant auxiliary decision making to the PM 2.5 pollution. The main purpose is to providetheoretical evidence and technical supporting for environment protection department's decision making and disease prevention.
Key words:GIS revealcontrol forecast Surfer
1概述
河南省作為全国第一人口大省,用电量巨大,但由于地处内陆,煤炭资源丰富,电力供应绝大多数依靠火电,雾霾已成为人们的健康杀手。郑州市作为河南的省会城市,空气污染十分严重,空气质量常年“爆表”,污染问题亟待解决。
本文以郑州市为例,探究郑州市内13座火电站的污染排放对市区各地PM2.5(主要指二氧化硫、氮氧化物和悬浮颗粒三种污染物)的影响,并绘制等值线图,形象地显示各种污染物的变化情况,以便对市区空气质量变化趋势进行分析、预测。
设计的总体布局为“数据+算法+前台展示”;首先使用XML数据加工处理技术对原始数据进行数据库设计,再将加工好的数据提供给Surfer软件,利用软件自带的等值线算法生产等值线图,并对图形的显示进行一系列调整,增强图形对数据的表现力。最后在开发环境中使用C#语言编写WinForm应用程序,作为系统的前台展示部分,通过Active X Automation接口编程调用Surfer的绘图功能,快速、批量生成绘图,从而在界面上进行显示。
2研究背景和现状
空气污染监测是一个复杂的系统工程,它不但需要对海量的实时数据进行快速处理,更牵涉到不同部门、不同领域。随着在网络传输、软件开发和大数据等领域的许多技术难题得以攻克,越来越多的空气污染监测系统被研发出来,为环保、电力部门对空气污染进行监测和控制提供了有力的技术支持。
各类污染监测系统种类繁杂,其实现方法各不相同,但在设计思路上大同小异,都是结合了编程语言与功能软件的相应功能来对系统进行实现的。目前在PM2.5污染防治和检测中,GIS技术运用较局限,大都运用于分析,没有利用GIS可视化的优点对PM2.5进行实时监测,将污染情况显示到地图上。
本文针对这一突破口进行创新,在地理信息系统中直观形象地展示郑州地区13座火力发电站对空气质量的影响情况,以便电力、环保部门查询和分析,进而制定相应的手段措施应对空气污染。
3基于XML的PM2.5污染数据库设计
郑州市一共有13个火力发电站,本文只考虑假设火电站产生的灰分Dust、硫化物SO2以及氮化物NOx三种污染物,而忽略汽车尾气等其他因素对环境产生的恶劣影响。郑州市市区包含有9个PM2.5的监测点,分别是:市环保局院内监测站、郑州烟厂、医学院、郑纺机、省银行学校、西开发区供水公司、经开区管委会、郑东新区47中校内和岗李水库(黄河边)。为了首先了解火电站数据会产生什么影响,构建基于XML的污染数据库模块,设计中仅考虑13个电站产生的污染物会对环境产生影响。
本模块对XML数据库的设计,考虑到是基于使用XMLSpy的数据库开发工具,它具有工业界标准的XML专业开发环境,支持Unicode、多字符集,支持Well-formed和Validated两种类型的XML文档,同时也具有很强大的样式表设计功能,它可以利用图形化的XML文档编辑手段,将污染因素的文本信息及结构直观的呈现给用户。XMLSpy在不需要直接编写XML代码的情况下,利用编辑器可视化编辑功能会自动生成和定义需要的结构化数据。
在建立数据库过程中,分别根据电站实际位置和监测点位置,建立电站表和监测点表,数据选择2016年1月1号零时零分和2016年1月8号零时零分,由于数据量比较大,仅以该时间点的数据进行分析参考,并以此构建数据库和数据查询举例。构建基于XML的污染数据库[ZZPM25_Dev]。对数据库的构造,先构建了一个Schema的模型模板,如图3-3所示,是block字段的相关详细信息,具体包括位置信息、污染信息以及13个电站的具体权重贡献率。
对每个监测站而言,13个电站对它都会产生污染贡献率,确定这个监测点的准确位置,能得到13个电站三种污染物的权重。对已建好的XML数据库ZZPM25_Dev,利用索引来对XML数据库进行查询优化。
4基于Surfer的PM2.5污染等值线设计与实现
Surfer软件可以通过OLEDB、ODBC或其他方式链接任何被MS支持的数据库。因为本文所要处理的数据量巨大,为了便于后续的数据处理工作,先将数据库文件转换为Excel的表格文件,在场景窗口中,通过“网格”—“数据”选项,在对话框中选择已经从数据库中處理好的数据文件打开,并按需求修改网格数据信息。点击生成的等值线图,左下方会出现属性管理器,在这里可以对等值线图的各种属性进行修改,包括常规、层次、图层、坐标系和信息等。
4.1 郑州地区三维地图与等值线图叠加显示
1、选取郑州地区地图作为基底图,地图范围为“112.6698°E—114.2152°E,34.25367°N— 34.99295°N”,通过“图形”—“新建”—“基底图”选项,选择合适的图片文件作为基底图。
2、生成该地区某一时刻某种污染物浓度等值线图,在属性管理器中选择“图层”选项,将不透明度按需求调整为45%。
3、将等值线图与基底图叠加,首先在“编辑”工具中选择“全选”将等值线图与基底图全部选中,然后在“图形”工具中选择“按坐标叠加图形”,完成叠加。
4.2 单污染物同高度等值线图设计
本文选取二氧化硫、氮氧化物和灰尘等三种污染物,选取2016年1月1日0时至2016年1月2日23时期间的郑州市污染物浓度数据,每一个小时为一个时间节点,共48个时间节点,选取0、2、4、6、10、20、30、40、50、100、150、200等12个高度节点,共1728张等值线图。本部分不仅可以实现用户对单污染物同高度等值线的查询,也为动态演示模块提供材料。
1、选取数据库中海拔为0、时刻为2016年1月1日0时的数据,保存为PM25Value _H0_2012-1-1-0.bln。
2、生成网格数据, X轴、Y轴分别选择经度纬度,Z轴选择二氧化硫数据,网格化算法选择克里金插值法。
3、等值线设计,生成等值线后,打开属性管理器,分别设置最小等值线为-0.02,最大等值线为0.32,等值线间隔为0.02,主要等值线间隔为5,填充等值线颜色选择为Rainbow,选择比色刻度尺。
氮氧化物和灰尘的等值线图同理可得。
4.3 单污染物多高度等值线图设计
以2016年1月1日12时、灰尘数值为例,分别选取0、50、100、150、200海拔高度,在同一绘图场景下生成五张等值线图并进行堆叠。
通过“图形”—“添加”—“刻度尺”选项,添加海拔高度刻度尺,并通过属性管理器调整刻度尺属性。将生成的所有等值线图拖动至对应的海拔高度,通过“图形”—“水平对准图形选项”将所有图形排列在同一竖直面内。
4.4 利用C#语言调用Surfer软件实现等值线图的自动化生成
仅在 “112.6698°E—114.2152°E,34.25367°N— 34.99295°N”的范围内,48小时内就产生1万多条数据,可想系统如果投入使用,这么大的数据量仅靠人工是难以完成的,所以本文在人工生成等值线图的基础上进一步研究如何利用C#语言调用Surfer软件按需求自动生成上述的各种等值线图。
4.4.1由表格文件生成网格数据
(1)创建Surfer应用
(2)设置相应参数
包括定义软件地址、数据文件地址、文件路径、表单名等。
(3)设置文件路径
(4)设置表单名
(5)处理二氧化硫数据
处理氮氧化物和灰尘数据同理可得。
4.4.2数据生成等值线图
(1)设置相应参数
包括定义软件地址、网格文件命名、图片文件命名等。
(2)添加基础地图
(3)加载网格文件
(4)网格文件和图片文件命名
(5)显示色柱和添加颜色填充
(6)设置等值线平滑和透明度
(7)导出等值线图
处理氮氧化物和灰尘数据同理可得。
5GIS支撑下的PM2.5污染扩散显示系统设计与实现
GIS系统,是构架在数据库管理系统(DBMS)和计算机辅助设计(CAD)两个软件基础之上,并加入了强大的空间数据管理、分析功能的一种系统。本系统的开发正是基于此点,使用C#语言调用TerraExplorer软件的控件,进行二次开发,来获取系统的3D显示窗口。
5.1 系统运行环境
系统开发软件:Skyline Terra Explorer Pro、Visual Studio 2010
系统开发语言: C#
运行平台:Windows7及以上版本
数据库:SQL Server 2008 R2
5.2 系统界面
5.2.1主界面
主界面是用户借以完成各项操作的主要用户交互界面,其主要包含以下几个部分:
菜单和工具条:用户通过菜单和工具条调用系统的各项命令,或选取某种工具,进行鼠标或键盘的交互操作。
图形显示区域:该区域主要用于进行地图、专题图等图形的显示,并完成选择、编辑、查询、分析等操作的鼠标或键盘交互。
显示控制窗口:用于对显示要素的叠加顺序、显示状态进行控制。
属性数据窗口:用于显示和处理查询结果集合中的属性数据。
状态显示窗口:用于显示状态信息、视点位置、姿态信息以及查询或分析的结果数据。
5.2.2数据处理界面
5.2.3AQI预测界面
AQI预测界面其主要功能是,根據当前的PM2.5数据情况,参照未来天气条件,采用ARIMA、趋势外推和BP神经算法等相关算法,对未来一段时间空气质量情况进行预测,以便为相关部门制定生产计划提供依据,为人们的日常生活出行提供参考。
6结束语
本文采用分层架构的总体思路,以功能为指引,将系统模块化;在开发过程中,采用UML对系统进行了进一步的设计;在具体实现时,以GIS技术为支撑,基于VS2010提供的.NET框架,使用C#语言进行程序编写,依托TE的二次开发技术,成功实现了系统的数据处理、污染呈现、动态展示、污染扩散、前后对比等功能。
通过监测污染源,借助直观形象的GIS,对其进行PM2.5污染情况显示控制,可以为电力部门在电厂选址、污染物排放点源位置选择等问题上提供辅助决策信息,并协助环保部门对大气污染进行更加科学的治理。
由于系统所需数据的数据量十分巨大,到达千万数量级,所以导致系统进行业务处理时可能会出现等待时间较长的现象,使软件的整体效率和用户体验打折扣。为解决此问题,可从以下两方面进行系统优化升级:
优化系统内部结构,如改进算法,优化数据组织结构等;
引入云处理技术,将烦杂耗时的部分置于云内,利用云端强大的处理能力,缩短系统总体的运行时间。
参考文献:
[1]徐艺斐.郑州市灰霾与PM2.5污染水平及火电排放源对大气环境的影响分析[D]郑州大学,2012.
[2]刘瑞兵.GIS和SURFER软件在城市大气污染空间分析中的应用——以沂南县城区SO2为例[D].青岛大学,2007:1-3.
[3] 刘树涛. Native XML数据库存储研究[D].中国石油大学,2008.
[4] SQL Server 2005及以上版本中XML操作函数详解[EB∕OL]
http://www.poorren.com/sql-server-2005-xml/comment-page-1/
[5]蔡明.基于多层架构的数据库系统开发中设计模式的应用[J].电脑知识与技术,2010年24期:6669-6670.
[6] 胡颉. 我国PM2.5的污染现状及监测[J],城市建设理论研究(电子版),2013,(24)
[7] 白世彪,王建,常直杨. Surfer 10地学计算机制图[M].北京:科学出版社,2012
[8] 刘烨焜. 基于VB与Surfer气象要素等值线图形绘制[J],现代农业,2014,(3):93—94