AE大气扩散模型算法.ppt
《AE大气扩散模型算法.ppt》由会员分享,可在线阅读,更多相关《AE大气扩散模型算法.ppt(75页珍藏版)》请在三一办公上搜索。
1、基于Visual C#和ArcEngine的二次开发,GIS空间分析基于GIS的大气环境影响预测与模拟,大气污染模型高斯大气扩散模式单源大气污染扩散模拟,1 大气扩散模式大气扩散模式是对大气污染物散布过程的模拟。按污染源的几何特征可分为电源、线源、面源扩散模式;按污染源排放特性分有正常工况模式和非正常排放模式;按假设条件不同分有烟流扩散模式和烟团扩散模式;按模式适用范围不同分有短距离扩散模式和中长距离输送模式等。具体操作时应根据当地地形、气候等环境要素以及污染源亲何况正确选取并适当修正,不能盲目照搬。主要的大气扩散模式有:(1)高架电源扩散模式(静风模式、有效源高等)(2)面源扩散模式(虚电源
2、模式、窄烟云模式:在多面源情形下计算效果较好)(3)线源扩散模式(电源求和法、风向与线源平行时 扩散模式),一、大气污染模型,2 高斯大气扩散模式高斯大气扩散模式属于高架电源的烟羽大气扩散模式,它是计算释入大气中的气载污染物下风向浓度的应用最广的方法。高斯扩散模式所描述的扩散过程主要有以下几种:下垫面平坦、开阔、性质均匀,平均流场平直、稳定,不考虑风场的切变;扩散过程中,污染物本身是被动、保守的,即污染物和空气无相对运动,且扩散过程中污染物无损失、无转化,污染物在地面被反射;扩散在同一温度层集中发生,平均风速 1.0 m/s;适用范围一般 1020 km。在均匀、定常的湍流大气中污染物浓度满足
3、正态分布,但实际大气一般不满足均匀、定常条件,因此高斯模式应用于下垫面均匀平坦、气流稳定的小尺度扩散问题更为有效。,3高斯计算公式对于在恒定气象条件(指风向、风速、大气稳定度不随时间而变)下的高架点源的连续排放,在考虑了烟羽在地面的全反射后,下风向任一点的污染物浓度C(x,y,z)可由下式计算:式中:C(x,y,z):下风向某点(x,y,z)处的空气中污染物的浓度(mg/m3);x:下风向距离(m);y:横截风向距离(m);z:距地面的高度(m);Q:气载污染物源强,即释放率(mg/s);:排气筒出口处的平均风速(m/s);、:分别为水平方向和垂直方向扩散参数(m),它是下风向距离x及大气稳定
4、度的函数;He:有效排放高度(m),其中He=H+;H:排气筒距地面的几何高度(m);:烟气抬升高度(m)。,4高斯扩散方程的求解高斯扩散公式的求解,关键在于确定扩散参数、。1大气稳定度的确定Pasquill根据五类地面风速、三类日间的日射和两类夜间云量把扩散天气分为6类,即强不稳定、不稳定、弱不稳定、中性、较稳定和稳定。分别用英文字母A、B、C、D、E和F表示。在国标“制订地方大气污染排放标准的技术原则和方法”(GB3840-83)与“环境影响评价技术原则”(HJ/T2.1-93)中,建议采用下属修订的帕斯奎尔稳定度分类方法。首先由云量与太阳高度角按表1查出太阳辐射等级数,再由太阳辐射等级数
5、与地面风速按表2查找稳定度等级。,表1 太阳辐射等级数,表2 大气稳定度等级,2高架源回归系数(Py、qy、Pz、qz)确定国际原子能机构(IAEA)根据相关实验数据,推荐了一组适用于大粗糙度(Z01m)和高架源的弥散系数公式,如表3,据此求得相应地扩散参数。,表3 与排放高度有关的扩散参数(、),、是下风距离X及大气稳定度的函数,而下风方向的距离X是一变量,它是风速和时间的函数。高架电源烟气扩散是三维扩散过程,x方向上风速较大,以对流扩散为主,y方向和z方向则以弥散扩散为主。本实例编程只是实现了二维扩散模型。即只是实现了xy方向上的扩散模拟。,二、单源大气污染扩散模拟,1 相关菜单的添加在空
6、间分析主菜单中添加如下图所示菜单项。,2 大气污染扩散分析窗口的设计设计一个大气污染扩散分析窗口。,1,2,7,11,12,这些Label的AutoSize属性设置为:FalseBorderStyle属性设置为:Fixed3D,一些主要控件的属性设置如下:,其中大气污染扩散分析窗口的AutoSizeMode属性设置为:GrowAndShrink;MaximizeBox属性设置为:False,3菜单与窗口连接的实现双击“单源大气污染”菜单项,在响应的Click事件中添加如下代码:private void 单源大气污染ToolStripMenuItem_Click(object sender,Ev
7、entArgs e)大气污染扩散分析 form=new 大气污染扩散分析();form.Show();,4 高斯大气扩散功能的模拟实现步骤1:重写“大气污染扩散分析”类的构造函数,鉴于在该模型实现过程中多次需要调用主窗口中的函数或控件,所以为构造函数添加参数:主窗口 MainForm,同时在单源大气污染ToolStripMenuItem_Click事件中修改代码。大气污染扩散分析 form=new 大气污染扩散分析();修改为:大气污染扩散分析 form=new 大气污染扩散分析(this);,步骤2:在“大气污染扩散分析”窗口类中对相关参数进行初始化。using;/相关接口所在的命名空间 u
8、sing;/窗口类中定义的相关全局变量 public DiffusedParameter diffusedParameter50;/定义大气扩散参数结构体,该结构体是自己编写的,这里放在初始化函数后 public DiffusedParameter diffusedParameter100;public DiffusedParameter diffusedParameter180;const double PI=3.1415926;private 主窗口 parentForm;private int radius=-1;/辐射等级 private int atmosphereStability
9、=-1;/初始化大气稳定度等级 private double Py,Pz,Qy,Qz;/计算中使用的扩散参数 private double Q=500;/气载污染物源强,即释放率(mg/s)IEnvelope envelope;,public 大气污染扩散分析(主窗口 MainForm)InitializeComponent();/初始化“风向”、“风速”、“释放高度”、“计算高度”windspeed.Text=5;height.Text=100;interpolateHeight.Text=100;ILayer lyr;IFeatureLayer featureLyr;parentForm=
10、MainForm;envelope=new EnvelopeClass();,/初始化图层组合框 for(int i=0;i MainForm.GetLayerCount();i+)/GetLayerCount()是在主窗口中编写的获取图层数函数。lyr=MainForm.GetLayer(i);/GetLayer()是在主窗口编写的根据索引获取图层函数 try featureLyr=(IFeatureLayer)lyr;catch(Exception e)featureLyr=null;/当图层为点图层时,即将其对应的图层名添加到 comboBox_layer组合框中 if(featureL
11、yr!=null,/初始化扩散参数表,此时的0、1、2、3、4、5对应大气稳定度等级A、B、C、D、E、F diffusedParameter50=new DiffusedParameter6;diffusedParameter500.Py=1.503;diffusedParameter500.Qy=0.833;diffusedParameter500.Pz=0.151;diffusedParameter500.Qz=1.219;diffusedParameter501.Py=0.876;diffusedParameter501.Qy=0.823;diffusedParameter501.Pz
12、=0.127;diffusedParameter501.Qz=1.108;diffusedParameter502.Py=0.659;diffusedParameter502.Qy=0.807;diffusedParameter502.Pz=0.165;diffusedParameter502.Qz=0.996;,diffusedParameter503.Py=0.640;diffusedParameter503.Qy=0.784;diffusedParameter503.Pz=0.215;diffusedParameter503.Qz=0.885;diffusedParameter504.P
13、y=0.801;diffusedParameter504.Qy=0.754;diffusedParameter504.Pz=0.264;diffusedParameter504.Qz=0.774;diffusedParameter505.Py=1.294;diffusedParameter505.Qy=0.718;diffusedParameter505.Pz=0.241;diffusedParameter505.Qz=0.662;,diffusedParameter100=new DiffusedParameter6;diffusedParameter1000.Py=0.170;diffus
14、edParameter1000.Qy=1.296;diffusedParameter1000.Pz=0.051;diffusedParameter1000.Qz=1.317;diffusedParameter1001.Py=0.324;diffusedParameter1001.Qy=1.025;diffusedParameter1001.Pz=0.070;diffusedParameter1001.Qz=1.151;diffusedParameter1002.Py=0.466;diffusedParameter1002.Qy=0.866;diffusedParameter1002.Pz=0.
15、137;diffusedParameter1002.Qz=0.985;,diffusedParameter1003.Py=0.504;diffusedParameter1003.Qy=0.818;diffusedParameter1003.Pz=0.265;diffusedParameter1003.Qz=0.818;diffusedParameter1004.Py=0.411;diffusedParameter1004.Qy=0.882;diffusedParameter1004.Pz=0.487;diffusedParameter1004.Qz=0.652;diffusedParamete
16、r1005.Py=0.253;diffusedParameter1005.Qy=1.057;diffusedParameter1005.Pz=0.717;diffusedParameter1005.Qz=0.486;,diffusedParameter180=new DiffusedParameter6;diffusedParameter1800.Py=0.671;diffusedParameter1800.Qy=0.903;diffusedParameter1800.Pz=0.0245;diffusedParameter1800.Qz=0.500;diffusedParameter1801.
17、Py=0.415;diffusedParameter1801.Qy=0.903;diffusedParameter1801.Pz=0.0330;diffusedParameter1801.Qz=1.320;diffusedParameter1802.Py=0.232;diffusedParameter1802.Qy=0.903;diffusedParameter1802.Pz=0.104;diffusedParameter1802.Qz=0.997;,diffusedParameter1803.Py=0.208;diffusedParameter1803.Qy=0.903;diffusedPa
18、rameter1803.Pz=0.307;diffusedParameter1803.Qz=0.734;diffusedParameter1804.Py=0.345;diffusedParameter1804.Qy=0.903;diffusedParameter1804.Pz=0.546;diffusedParameter1804.Qz=0.557;diffusedParameter1805.Py=0.671;diffusedParameter1805.Qy=0.903;diffusedParameter1805.Pz=0.484;diffusedParameter1805.Qz=0.500;
19、,public struct DiffusedParameter/自定义一个大气扩散参数结构体 public double Py;public double Pz;public double Qy;public double Qz;/在主窗口编写的函数 public int GetLayerCount()return this.axMapControl1.LayerCount;public ILayer GetLayer(int index)return this.axMapControl1.get_Layer(index);,运行程序,显示如下:,comboBox_layer中添加的点图层,
20、步骤3:响应comboBox_layer的SelectIndexChanged函数,根据comboBox中的图层文本获取相应的特征图层,并将图层中的“名称”字段值添加到comboBox_Polluter组合框中。private void comboBox_layer_SelectedIndexChanged(object sender,EventArgs e)/重置大气污染源集合();comboBox_polluter.Text=;string lyrName=;ILayer lyr=parentForm.GetLayerByname(lyrName);if(null=lyr)MessageB
21、ox.Show(没有找到+lyrName+图层!);return;ITable table=(ITable)lyr;IQueryFilter queryFilter=new QueryFilterClass();,ICursor cursor=table.Search(queryFilter,true);int fieldIndex=table.FindField(名称);if(fieldIndex=0)/当图层属性表中存在“名称”属性列时,即将该列的所有属性字段值添加到combBox_polluter组合框中 IRow row;while(row=cursor.NextRow()!=null
22、)comboBox_polluter.Items.Add(row.get_Value(fieldIndex);else MessageBox.Show(所选择的数据层不能提供污染源信息);/初始化label_address、label_name、label_person、label_type label_address.Text=;label_name.Text=;label_person.Text=;label_type.Text=;,运行程序,显示如下:,步骤4:响应comboBox_polluter的SelectedIndexChanged函数,当选择comboBox_polluter中
23、任意一数据项时,在label_name、label_type、label_address、label_person中添加从数据库中获取的污染源的名称、所属行业名称、地址和负责人信息。using;private OleDbConnection conn;private void comboBox_polluter_SelectedIndexChanged(object sender,EventArgs e)string name=;string sql=SELECT 代码,名称,8#行业类别_名称,县(区、市、旗),乡(镇),街(村)、门牌号,单位负责人 FROM(SELECT 代码,名称,8#
24、行业类别_名称,县(区、市、旗),乡(镇),街(村)、门牌号,单位负责人 FROM G101 UNION ALL SELECT 代码,名称,8#行业类别_名称,县(区、市、旗),乡(镇),街(村)、门牌号,单位负责人 FROM G201)AS derivedtbl_1 WHERE(名称=+name+);,conn=new OleDbConnection(Provider=Microsoft.Jet.OLEDB.4.0;Data Source=+Application.StartupPath+Database.mdb);OleDbCommand cmd=new OleDbCommand(sql,
25、conn);/申明的OleDbCommand对象,表示要对数据源执行的SQL语句 conn.Open();OleDbDataReader reader=cmd.ExecuteReader();int cols=reader.FieldCount;object values=new objectcols;if(reader.Read()reader.GetValues(values);label_name.Text=values1.ToString();label_type.Text=values2.ToString();label_address.Text=values3.ToString()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AE 大气 扩散 模型 算法
链接地址:https://www.31ppt.com/p-6501362.html