基于GIS的大气污染扩散模拟的设计与实现_第1页
基于GIS的大气污染扩散模拟的设计与实现_第2页
基于GIS的大气污染扩散模拟的设计与实现_第3页
基于GIS的大气污染扩散模拟的设计与实现_第4页
基于GIS的大气污染扩散模拟的设计与实现_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第29卷Vol.29第10期No.10计算机工程与设计ComputerEngineeringandDesign2008年5月May2008基于GIS的大气污染扩散模拟的设计与实现赵摘伟1,邹峥嵘1,李建文2(1.中南大学测绘与国土信息工程系,湖南长沙410083;2.大武口区建设交通局,宁夏石嘴山753000)要:对于城市空气环境问题的管理和决策,大气污染扩散模拟系统提供了科学的依据。论述了一个基于GIS,采用VisualBasic.NET、组件MapObjects和组件Surfer8.0相结合的大气污染扩散模拟系统的设计与实现,同时介绍了大气污染扩散的模拟过程、系统的主要功能、MapObje

2、cts与Surfer8.0两个组件的部分属性和方法,并给出了实现系统的关键代码。关键词:大气扩散;地理信息系统;组件技术;空间分析;等值线中图法分类号:TP311文献标识码:A文章编号:1000-7024(2008)10-2655-03DesignandimplementationofsimulatingairpollutantdispersionbasedonGISZHAOWei1,ZOUZheng-rong1,LIJian-wen2(1.DepartmentofGeomatics,CentralSouthUniversity,Changsha410083,China;2.Construct

3、ionandTransportationBureauofDawukou,Shizuishan753000,China)Abstract:Accordingtothemanagementanddecision-makingoftheproblemsofcity'sair,thescientificbasisisputforwardwithairpollutantdispersionsimulationsystem.WithcombinationofMapObjects,Surfer8.0andVisualBasic.NET,airpollutantdispersionsimulation

4、systemisdesignedandimplemented.Processofsimulatingairpollutantdispersion,mainsystemfunction,partialpropertiesandmethodsofbothMapObjectsandSurfer8.0areintroduced,andsomecodeofmainprogramaregiven.Keywords:airdiffusion;geographyinformationsystem;componenttechnology;spacialanalysis;contours模拟的设计与实现。利用GI

5、S管理空间数据,如企业烟囱分布图、主要交通道路分布图等;运用GIS的空间分析技术,计算出污染物的扩散分布并实现各种空间操作。0引言随着城市工业化的发展,城市工业企业数量和机动车数量都在急剧增加1。二氧化硫、氮氧化物、烟尘等污染物大量排入到城市空气中,城市大气环境质量急剧下降,严重破坏了生态系统和人们正常生活条件,进而限制了经济的进一步快速发展,不利于经济、社会以及生态环境的可持续发展。对现有大气污染源进行科学的评价和管理,利用现有污染源排放数据对环境空气质量进行及时预测和分析,找出主要大气污染物及其浓度的空间分布并提出相应的防治措施,将有利于城市大气环境问题的及时解决、改善和提高。因此,实现大

6、气污染扩散模拟具有重要的实际应用价值。大气污染扩散模拟离不开污染源等环境信息的采集和处理,而85%以上的环境信息与空间位置有关。地理信息系统(geographicinformationsystem,GIS)是在计算机软硬件支持下,对地理空间信息进行采集、存储、管理、运算、分析、显示和描述的技术系统。它通过对多种地理空间实体数据及其关系的处理和管理,用于分析和处理一定地理区域内分布的各种现象和过程,为用户进行预测、监测、规划管理和决策提供科学依据3-6。本文以惠州市惠城区为例探索基于GIS的大气污染扩散21.1系统设计与功能大气污染扩散的模拟过程大气污染扩散模拟分成两个阶段:前期的数据采集与后期

7、的扩散模拟。数据采集是一项十分重要的工作,采集的数据是否完善且是否准确,将直接影响到后期模拟结果的好坏。需要采集的数据主要有工业企业污染物排放、汽车尾气污染物排放、气象参数和各种地图,如图1所示。而扩散模拟的计算步骤如下:(1)用大量固定的计算点将整个模拟区域离散化,以便计算扩散的污染物浓度;(2)确定一个污染源影响的范围。一般认为一个污染源只会对下风向22.5°夹角范围内形成污染,因此先筛选出受此污染源影响的所有固定计算点;(3)把计算得到的气象参数和污染源数据代入大气扩散模型,分别计算出此污染源对所有固定计算点造成的污染物浓度值;(4)对每一个污染源重复执行步骤(2)、(3)。注

8、意:对于汽收稿日期:2007-06-28E-mail:zhongnanzhaowei作者简介:赵伟(1981),男,湖南常德人,硕士研究生,研究方向为环境地理信息系统;邹峥嵘(1965),男,湖南祁东人,教授,研究方向为摄影测量、遥感以及地理信息系统;李建文(1972),男,宁夏平罗人,助理工程师,研究方向为地理信息系统工程与应用。2655需要的数据ArcInfocoverage、CAD文件和VPF数据。MapLayer.GeoData-set:表示地理数据的集合;MapLayer.Records:返回Recordset气象参数地图工业企业汽车尾气对象;MapLayer.Visible:隐藏还

9、是显示MapLayer;MapLa-yer.SearchShape:返回Recordset对象,其包含的特征满足一定的空间查找条件;MapLayer.SearchExpression:返回Recordset对象,其包含的特征满足用SQL语言说明的属性查找条件。(2)Map对象:图层的集合。Map.Layers是MapLayer对象的集合,提供了管理集合的方法,例如加载、删除、移动地理数据文件;(3)DataConnection对象:连接地理数据文件。DataCon-nection.DataBase:指向包含地理数据文件的文件夹;Data-Connection.FindGeoDataset:把指

10、定地理数据文件读入到一个GeoDataset对象中。(4)Recordset对象:MapObjects的Recordset对象是Geo-Dataset的记录和经过查询后得到的记录的集合。Recordset.Fields:用于读写记录的数据,值得注意的是所有记录都包含一个Shape字段,其保存的是指向几何图形对象的指针;Re-cordset.MoveFirst:指向第一条记录;Recordset.EOF:指示当前记录位置是否在最后一条记录的后面;Recordset.Move-Next:移到下一条记录。(5)图形对象:MapObjects的图形对象有点、点集、线、矩形、多边形和椭圆。Points对

11、象:包含多个点对象的集合,能够添加和删除点对象;Line对象:线对象由多个点对象组成的。线对象有一个Parts属性,它是一个集合,将线对象分割成多个部分,每个部分就是一个点集。然而,有时线对象只有一个部分,由一个点集组成。经纬度污染物排放量其它车流量车型分类排放因子气候降水近地面逆温层近地面风场大气稳定度主要道路行政区划图1收集的数据车尾气排放物形成的线型污染源,常用的做法是将线源划分成有限多个点源,然后求这些点源浓度之和;(5)根据所有固定计算点保存的浓度值,生成各自专题图,以便更直观展示出污染扩散的结果。1.2系统设计GIS与大气质量模型的结合方式有3个层次:松散结合、7紧密结合和完全集成

12、。当前真正意义上完全集成的GIS系统还十分少见,而紧密结合的GIS系统可操作性差,因此嵌入式紧密结合的方法则是目前向用户提供GIS服务的主要发展方向,它同时利用面向对象的开放式开发环境、动态连接和数据对象访问技术以及GIS组件技术,通过各种开放式的嵌入机制和透明的数据交换来实现与模型的集成。本系统采用VisualBasic.NET为开发环境,并编写大气质量模型的程序;通过动态链接库(DLL)的方式调用组件Map-Objects和Surfer8.0,来实现各种空间分析操作与生成浓度等值线。本系统功能主要包括:设置气象参数、计算污染物浓度、图层管理与控制、模拟结果的输出和查找功能等,如图2所示。基

13、于GIS的大气污染物扩散模拟系统2.2Surfer8.0Surfer是美国GoldenSoftware公司研制开发的基于Win-设置气象参数计算污染物浓度图层管理与控制模拟结果的输出dows操作系统的二维和三维科技绘图软件,其具有强大的绘查找功能制等值线等矢量图能力。Surfer包含了目前流行的所有插值方法。利用它可根据数据源情况和制图要求,绘制符合要求的等值线图。Surfer8.0还提供了对Automation技术的支持,为通过高级语言程序控制Surfer自动绘图提供了编程接口。用户通过使用这项技术,可在自己开发的客户应用程序中,方便地引入Surfer的Automation对象,通过对象编程

14、,在客户程序中轻松地实现Surfer强大的图形绘制功能。本系统主要用到Application对象、ContourMap对象、Levels对象,下面对本系统用到对象的属性、方法分别做简单介绍9。(1)Application对象:Application对象是surfer对象模型的根对象,代表surfer本身,其它对象都是Application派生的子对象,都要直接或间接通过Application对象来获得,对象的获得需一层一级地进行。Application.Visible:Surfer主界面是否可见;Application.GridData:用包含XYZ三列数据的空间离散文件生成Grid文件,其主

15、要参数是空间离散文件的路径、生成Grid文件的路径、绘制等值线的插值方法、Grid文件的行数和列数、XY的最大值和最小值。(2)ContourMap对象:等值线对象。ContourMap.Smooth-Contours:定义等值线的平滑程度;ContourMap.Levels:生成Levels对象;ContourMap.ExportContours:生成3DAutoCADDXF格式的等值线文件,其参数是保存等值线文件的路径。点源扩散浓度线源扩散浓度任一点浓度浓度等值线浓度分级图平面浓度曲线污染源分布特定浓度分布图2大气污染物扩散模拟系统主要功能结构2.1采用的关键技术MapObjectsMap

16、Objects由美国ESRI公司开发的一组AxtiveX控件,利用它可以在VB、VC、Delphi等面向对象的编程语言上实现主要的地理信息系统功能。MapObjects包括数据访问对象组、地图显示对象组、几何图形对象组、地址匹配对象组、投影对象组、实用对象组等6个可分拆的对象组。接下来对本系统用到对象的属性、方法分别做简单介绍8。(1)MapLayer对象:是根据空间数据集包含的特征,表示地理数据文件,其可加载的文件有ESRIshapefile、SDElayer、26563.1系统的实现与关键代码生成空间数据图层本系统采用shapefiles文件保存空间数据,其使用早期的都通过动态链接库的方式

17、,被调入系统。3.4计算线源扩散浓度街道按照一定的长度被分割成若干个线段,把线段作为点源,用线段的中点代入大气扩散模型进行浓度计算,接下来的计算与点源扩散浓度的计算过程相类似。其关键代码如下:DimptsAsPoints=line_jiedao.Parts.Item(0)主要街道由一个点集组成ForiAsInt16=0Topts.Count-2pt1=pts.Item(i)pt2=pts.Item(i+1)MyClass.dividing_TwoPoint(pt1,pt2,increment,line_return)Next上述代码中函数dividing_TwoPoint使用递归算法将线段分割

18、成长度不大于间距increment的若干线段,且每个线段作为一个线段元素保存在line_return的Parts集合中。若线段长度小于等于间距increment,将由此线段两个端点形成的点集加入line_return的Parts集合;若线段长度大于间距increment,将此线段平分,分别重新调用函数dividing_TwoPoint。dBase数据库管理模式,一个文件夹是一个数据库,文件夹的不同文件就是数据库中的表,每个表代表GIS图中的一个图层。而每个图层文件必须包含3个以上的特征文件,如空间特征数据文件shp、索引文件shx、属性数据文件dbf。主要的空间数据图层是固定计算点分布图、烟囱

19、点源分布图、主要街道分布图,每个图层不仅具有空间位置信息,还包含大量的属性数据。其中固定计算点分布图按照180米分辨率将惠州市惠城区划分成61×61的格网,生成3721个固定计算点。3.2加载空间数据图层运用DataConnection对象和MapLayer对象把空间数据图层加载到Map对象中,其关键代码如下:DataConnection.Database=Application.StartupPath&"shapefile"MapLayer.GeoDataset=DataConnectionc.FindGeoDataset("dem180&qu

20、ot;)MapLayer.Visible=TrueMap.Layers.Add(MapLayer)3.5绘制浓度等值线为绘制浓度等值线,先根据固定计算点的XY坐标和保存的浓度值生成空间离散文件,然后Surfer的函数GridDate转换成Grid文件,最后以DXF格式导出等值线图层,供MapOb-jects调用,生成的等值线专题图如图4所示。3.3计算点源扩散浓度为了提高计算效率,首先在一个烟囱的下风向绘制一个扇形对象,此扇形就是烟囱的污染范围;接着用扇形对象与固定计算点分布图进行叠置分析,进而筛选出扇形包含的所有固定计算点;然后循环遍历这些固定计算点,计算出此烟囱对固定计算点形成的浓度值;最

21、后对其它烟囱重复上面的操作,将浓度值累加到固定计算点中。(1)绘制扇形对象:MapObjects没有提供扇形对象,本系统的函数Sector利用圆形对象与三角形对象进行交集运算,从而生成扇形对象,如图3所示。函数Sector有4个参数,分别是扇形的顶点、扇形的边长、扇形的夹角、扇形中心线的方位角,其实现的关键代码如下:poly_sector=circle.Intersect(triangle)东南风边长污染源(1)生成空间离散文件:利用VisualBasic.NET提供的StreamWriter生成一个文本文件,循环遍历区域格网图层的固定计算点,向文本文件写入固定计算点的X坐标、Y坐标和浓度值。

22、其关键代码如下:point=.Fields.Item("shape").Valuec=.Fields.Item(field).Valuefield是固定计算点中保存浓度的字段str=point.X&""&point.Y&""&cfile.WriteLine(str)(2)转换成Grid文件。surferApp.GridData(Datafile:=strInFile,xcol:=1,ycol:=2,zcol:=3,NumCols:=121,NumRows:=121,algorithm:=2,Dup-Me

23、thod:=2,xMin:=537463.4626,xMax:=548263.4627,yMin:=2550165.039,yMax:=2560965.04,ShowReport:=False,Search-Enable:=True,OutGrid:=strGridFile)图3绘制扇形对象(2)筛选出被污染的固定计算点。Recordsetlyr_DZ.SearchShape(poly_sector,SearchMethod-Constants.moContaining,"")在上面的代码中,lyr_DZ是固定计算点分布图,在调用形状查找功能SearchShape时,要选择

24、合适的查找方式,moCon-taining表示返回完全包含在指定特征中的特征,满足查找条件的固定计算点都保存在对象Recordset中。(3)遍历固定计算点,计算扩散浓度:循环保存了所有固定计算点的Recordset对象,分别调用大气扩散模型计算污染源对此固定计算点造成的污染浓度值。而所有的大气质量模型3.6查找浓度分布通过设置查找范围的最小浓度值和最大浓度值,找出用户关心的区域。其关键代码如下:(下转第2661页)2657"replagent","mypassword","DataSource=MyDocumentsperson.sdf;Pa

25、ssword=1a2b3c4D");第1个参数为服务器上IIS的URL,移动设备通过此URL实现与服务器数据库的同步。该URL需要使用SQLServer2005CompactEdition的“配置Web同步向导”配置,方法与合并复制时的配置相同。第2、3个参数为移动客户程序连接服务器IIS时进行验证的用户及密码,第4个参数为连接本地CompactEdition数据库的连接串。(2)从服务器上下载数据到本地CompactEdition数据表。rda.Pull("person2","SELECTid,name,ageFROMrdatable",&q

26、uot;Provider=SQLOLEDB;DataSource=0;InitialCatalog=demo;UserId=sa;Password=dbpassword",RdaTrackOption.TrackingOn);方法中第1个参数为本地数据表,第2个参数为一个在远程数据库表中的查询语句,结果集会下载到本地数据库表,第3个参数为连接远程数据库服务器的连接串。(3)与服务器数据同步。rda.Push("person2","Provider=SQLOLEDB;DataSource=0;InitialCat

27、alog=demo;UserId=sa;Password=dbpassword",RdaBatchOption.BatchingOn);参数与Pull方法的类似。地化、不要求有持续网络连接、可随时与远程服务器端数据同步等特点,在企业中具有广泛的应用前景。现时主流数据库,如MSSQLServer及Oracle等,都具备这种功能。笔者所在网络学院,利用MSSQLServer(CompactEdition)开发了基于手机的网络教学平台学生学籍、学习过程信息等的统计查询及数据修改,数据添加等应用,在实践中使用效果良好。参考文献:123Microsoft.SQLserverreplicatio

28、nEB/OL.WilliamRStanek.SQLServer2005管理员必备指南M.张海,楮四斌,罗小峰,译.北京:清华大学出版社,2007.Microsoft.ReplicatingdatabetweenaserverandclientsEB/OL.AndyWigley,Peter.BuildingMicrosoftASP.NETapplicationsformobiledevicesM.2ndEd.USA:MicrosoftPress,2003:200-301.56RobertVieira.SQLServer2005编程入门经典M.2版.叶寒,管贤平,译.北京:清华大学出版社,2007

29、.MicrosoftSQLServer2005联机丛书.执行复制EB/OL.ms-help:/MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/rpldata9/html/ff87c368-4c00-4e48-809d-ea752839551e.htm,2005.7MicrosoftSQLServerCompactEditionBooksonLine.Replica-tionprogrammingEB/OL.ms-help:/MS.SSCE.v31.EN/ssmprog3/html/94f9ee1c-d927-4283-9f9e-dc2b13a94e27.htm,2005.8Mi

30、crosoftSQLServerCompactEditionBooksonLine.TypicalusesofremotedataaccessEB/OL.4结束语随着手机(特别是智能手机)的日益普及,运行于移动设备上的应用越来越多。基于SQLServerCompactEdition服务器客户端之间的复制机制的应用模式,由于其数据操作本(上接第2657页)Dimlyrdem180AsMapLayer=MyClass.myAxMap.Layers.Item("dem180")固定计算点分布图DimstrExpressionasstring=field_name&">="&Min&"and"&field_name&"<="&MaxDimrecord_selectasRec

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论