CALPUFF模型Word格式.docx
《CALPUFF模型Word格式.docx》由会员分享,可在线阅读,更多相关《CALPUFF模型Word格式.docx(131页珍藏版)》请在冰点文库上搜索。
1000pha,925pha,850pha,700pha,600pha,500pha各高度层上的位势高度、温度、露点、风的东西向分量,风的南北向分量,以及地面气压,海平面气压,地面温度。
(2)常规探空气象资料:
1000hpa,925hpa,850hpa,700hpa,500hpa各高度层上的位势高度,温度,露点,风向,风速。
(3)常规地面观测气象资料:
风速、风向、气温、云量、云底高度、地面气压、相对湿度,降水量,降水类型。
(4)全球海洋天气报资料:
海面上每日4次全球海洋天气报资料包括纬度,经度,气温,露点,风,气压、马士顿号、海表层温度。
污染源资料
CALPUFF可以处理点源、线源、面源、体积源。
考虑干湿沉降、建筑物下洗等因素。
CALMET输入数据文件格式
(1)SUR.DAT地面站气象数据文件格式:
第一行:
起始时间:
年日时,终止时间:
年日时时区台站数目
第二行:
台站编号
第三行:
年日时
第四行:
风速、风向、混合层高度、低云、温度、相对湿度、台站气压、降雨代码
(2)PPER.DAT高空数据文件格式:
年日时;
终止时间:
年日时、顶层气压、原始数据类型
数据类型、台站编号、年月日时、高空总层数、提取层数
气压、位势高度、温度(K)、风向、风速
(3)PRECIP.DAT降雨数据文件格式:
年日时、终止时间:
年日时、时区、台站数量
台站编码
年、日、时、降雨量(mm/hr)
(4)GEO.DAT地球物理数据文件格式:
头端信息字符串
网格数、空间分辨率、起点坐标、时区、NX、NY、DGRIDKM、XORIGRKM、
YORIGRKM、IUTMZN
土地使用类型LANDUSEDATACATEGORIES(1新、0默认值)
网格矩阵;
地形高程;
地表特征参数。
CALPUFF模型的基本操作
使用CALPUFFPro有两个方法。
一是直接操作系统的集成图形用户界面GUI;
二是改写系统各模块的控制流文件。
1集成图形界面
CALPUFFPro(ver6.0)有一个集成的图形用户界面GUI(图2-1)。
这个界面已将全系统的前处理、模拟模块和后处理模块,以及各类工具模块、图形模块集中到一个窗口中,从这里可直接进入各子模块的操作窗口,从而控制整个系统的全部功能。
所有子模块也都分别有相应的图形窗口,无须了解控制流文件的格式,因此建议初学者用这个图形界面进行操作,不用去了解控制流文件的格式。
图2-1集成的图形用户界面GUI
操作的顺序一般按图中从上到下从左到右的原则。
一般先定义整个系统的公用信息(须要选上“网格和其它信息作为公用”这个选项),如工作目录、气象网格大小和位置、时区、坐标投影方法等。
这些信息将在所有子模块里被引用,无须重新输入。
点击各子模块按钮进入相应子模块。
子模块都有一些类似的界面和通用的操作方法。
CALPUFFPRO一个子典型子模块的图形界面如图2-2所示。
在子模块里输入数据可采用两种方式:
采用“Input”菜单下的“Sequential”,即顺序输入的方式,按即提示逐步输入所需的参数。
第二方式是采用“Input”菜单下各相应子菜单,直接输入所选步骤的数据。
一般来说,先采用顺序法输入全部数据,再采用选择某一项的方法来修改。
输入完成后,按“RUN”菜单来运行,结果保存在给定文件中。
有错误时程序将停止运行,并弹出信息,可进行修正后再运行。
可按“HELP”菜单进入该模块的帮助系统查找有关信息。
另外,子模块的“Setup”可以设置让程序从一个已有的控制流文件开始,修改其中一些选项就行,而不必建一个全新的控制流文件,这样可以大大减少重复操作。
前处理模块:
设置地球物理和气象数据文件。
设定原始数据文件和运行参数,生成能被CALPUFF模型使用的地球物理数据文件(GEO.DAT)以及CALMET运行所需的地表气象数据文件(SURF.DAT)、探空气象文件(UP.DAT)、降雨数据文件(PRECIP.DAT)和海面气象数据文件(SEA.DAT)。
气象处理模块
CALMET:
用图形方式输入气象模块控制流文件,运行调试并生成CALPUFF所需的气象文件CALMET.DAT。
输出数据为一个给定的多高度层网格的三维气象场,包括风、云、温度、降雨等参数。
扩散计算模块
CALPUFF:
用图形方式输入扩散模块控制流文件,运行调试并生成预测
点的浓度、干沉、湿沉通量和可见度等结果。
主要包括输入输出文件名称、模拟时间、化学属性、污染源、复杂地形和预测点几个部分。
气象后处理模块:
由于CALMET输出的是一个二进制的文件,可以用这个后处理模块对这个文件取出有关数据进行查看、检验和分析。
CALMET还可以输出List文件,是一文本结果,它不能被CALPUFF使用,但便于直接查看。
扩散输出后处理模块:
对CALPUFF生成的四个结果(浓度、干沉、湿沉和可见度),按一定时段进行查看、分析。
气象处理模块CALMET
首先用input菜单生成一个calmet.inp控制流文件,再运行run生成calpuff所需的气象文件。
(1)setup
设置calmet的工作目录,calmet控制流文件名称等。
控制流文件可新生成,也可引入一个已有的,再进行修改。
(2)坐标及网格和地表文件的设置:
可用importsharedgriddata输入一个坐标及三维网格定义文件,也可用gridsettings进入一个设置窗口。
在这里要设置坐标投影方法,及网格原点、三维网格行列层数,并给定地表情况的地球物理数据文件(GEO.DAT)。
GEO.DAT可用预处理工具中的MAKEGEO生成。
也可直接生成。
投影方法:
一般可用UTM,计算范围很大要考虑地球曲率时须采用LCC(一般500km以上情况)。
投影格式缺省取WGS-84。
UTMzone分60区,从西经180开始,一直往东到东径180度,每隔6度为一区。
对于每个UTMzone,X坐标以其中间子午线设为500,000m,向东为增加,向西为减少。
Y坐标为赤道为0m,向北为正Y值。
对于北京,为东经116度,UTMzone为30+int(116/6)+1=50,北半球取N。
如果采用LCC或TTM,则需要输入
(此段内容需地理系知识)
定义气象网格西南角坐标(x,y)km,网格步长(DGRIDKM),网格行列层设置(NX、NY、NZ);
每层到地表的高度(ZFACE)。
(3)Runinformation:
设置标题(一到三级),气象时段(起止或长度),气象所用时区(北京时间为UTC+0800),及其它计算选项(可用缺省值)。
其中Runoptions中第二项为采用的气象数据来源(NOOBS)。
如果NOOBS=0,则所有气象资料采用有关气象站数据;
NOOBS=1,则地面和水面采用气象站数据,高空采用MM5/M3D计算结果;
NOOBS=2,则所有气象资料采用MM4/MM5/M3D计算结果。
(4)mixingheightparameters:
定义混合层计算相关参数。
可以都用缺省值。
(5)temperatureandRHparameters:
温度和相对湿度相关参数。
数据来源,如果NOOBS=0,则一般选气象站观察值。
地表温度可用某一个序号的地表站的观察值,同样上空温度递减率也可用某一序号的高空站的一定垂直高度(如200m)的温度梯度。
他们也可读入经预处理(地面和高空站)的结果文件DIAG.dat。
其它参数一般可用缺省值。
(6)windfield:
风场设置。
首先设置options。
风场生成模式:
一是目标分析法;
二是诊断风场法(DWM)。
目标分析法,就是用所有气象观测站的数据内插出气象网格的数据(直接生成step1的结果)。
诊断风场法则要从初猜场,进行地形、坡风、闭合效应、三维散度最小化调整(即step1)。
对step1的结果进行step2后,生成最终风场。
如果有MM4/MM5或CSUMM计算结果的网格风场,则可以当作DWM方法的初猜场,或目标分析法的STEP1结果。
对于目标分析法,MM4/MM5结果也可作视作观测值读入。
如果有经预处理气象文件DIAG.dat,则可定义其名称(在初猜场定义中可用作初猜场)。
如果没有MM4/MM5或CSUMM结果作为初猜场,需要进入initialguess设置初猜场。
从这里可以定义初猜场是从外部DIAG.dat读入,还是内部生成。
如果内部生成,可以均匀场(uniform),选一个探空站序号和垂直平均长度;
也可选择不均匀场,这时将用不同站点各层的观测值内插出气象场(若在option中选了用地面外延surfacewindextroplation,则这里内插时同时考虑地面站的数据,并可进入biases输入各层中高空探测数据占的权重)。
Step1,各参数一般取缺省值。
其中地形影响半径TERRAD可取1~10km。
Step2,设置气象计算网格插值方法。
一般应选上“使用不同影响半径”,对地面、高空
和水面设定不同影响半径,在这个半径内无有效数据,则找出最近的气象站替代。
一般可高RMAX1,RMAX2,RMAX2为100,500,500km;
RMIN为2km。
对初猜场与观测值的权重影响半径,可设R1,R2值(一般R2>
R1)。
定义Barriers。
Barriers是一种插值界限,定义两个点的一条线,影响高度可从地面到最高层,在这条线不同侧的气象计算点,只能用同侧的站点数据来插值。
例如,一个山谷站点的观测值只用于山谷内,山谷外的气象网格点不能用这个山谷站的数据来插值,就可以为这个山谷站设一些Barriers。
Barriers不是必选项。
湖泊水域(lakesbreeze):
如果计算区域有大面积水域,可对水域内的网格点采取优化插值方法。
定义每一个水域在计算网格上的起止行、列,水域岸线的起止坐标,及在水域内的站点数(地面和高空总和)及每个站台的ID。
Lakesbreeze不是必选项。
(7)设置气象站及数据文件Metedata。
分别设置地面、探空、降水、水面站的情况。
比如地面站,要定义气象数据文件surf.dat(这个文件包括全部站的观测数据,其格式可用SMERGE工具来生成),并用表格方式输入全部地面站的ID,坐标,时区,测风高等数据。
(8)输出选项Outputoptions:
定义输出结果的文件名称,格式。
可定Cloud和ListFile属性。
ListFile保存CALMET的计算选项和输入的参数,以及一些网格化数据。
CALMET需要至少一个地面站(逐时)和一个探空站(每天至少两次)的气象观测资料。
所有地表气象观测站数据按规定的格式放在SURF.DAT文件中。
以及CALMET运行所需的地表气象数据文件(SURF.DAT)、探空气象文件(UP.DAT)、降雨数据文件(PRECIP.DAT)和海面气象数据文件(SEA.DAT)。
扩散计算模块CALPUFF
首先用input菜单生成一个calpuff.inp控制流文件,再运行run生成计算结果。
(1)setup
设置工作目录,控制流文件名称等。
(2)网格设置:
可用importsharedgriddata输入气象网格文件,也可在gridsettings设置。
在这里要气象网格的有关数据,以及计算网格的范围。
气象网格的有关参数应完全按calmet中的有关设置,与其输入一致。
计算网格的范围应在气象网格的内部,不能超出气象网格的边界。
为了减少气象网格的边界影响效应,计算范围一般要在气象网格内部,离气象网格边界有一缓冲距离。
主要是设置计算时间的起止。
这个时间应是相关calmet计算时间的全部或一部分。
(4污染物(species):
定义参与计算的污染物及其属性参数。
系统本身库中已带有16个污染物及相应参数,如果要计算的污染物在这个库里,只要选取即可;
否则需要在污染物库中添加这个污染物及其参数,再选取。
(5)污染源:
可分别输入点、面、体、线、Boundarycondition五种污染源参数及污染物排放参数。
Boundarycondition(边界条件源,BC源)是在考虑预测范围边界的流入通量时的一个因素。
污染物排放参数:
可用表格输入各源各污染物的排放率(单位可选)。
如果污染物排放是变化的,可定义变化系数。
污染物排放变化可以是全年24小时周期的、以月为周期的、以季度24小时为周期的、以风速和稳定度为周期的、以温度为周期的。
(6)预测点:
包括网格点、任意点及复杂地形特定网格(CTSG网格)。
所有预测点都应在
(2)中网格设置的计算范围之内。
预测网格点是计算网格范围的一部分或全部,通过Nesting因子设置,可以比计算网格(即气象网格)更密或更粗,比如Nesting因子=2,则预测网格密度是计算网格的两倍。
(7)模型选项
气象和土地利用类型:
气象数据格式,可以CALMET的输出结果也或以是AERMET的结果。
城市地面类型的范围,及参数设置。
如果用AERMET的气象数据,则要输入单个气象站的参数(因AERMET只用一个气象站数据)。
风速幂指数,可直接输入或采用列表中城市1、城市2或农村的缺省值。
静风的上限风速。
烟羽抬升:
有四个模型选项。
考虑烟羽抬升过渡期(弯曲抬升段);
考虑烟囱本身的下洗作用;
考虑排放口以上的垂直风速切变;
考虑烟羽的部分穿透。
扩散选项:
烟羽模型:
烟团或分段烟羽。
高级变量设置:
烟羽最大长度;
烟团分割控制参数设置;
积分控制参数。
烟团释放速率、取样频率、移动速率的上限。
扩散参数σy、σz及各稳定度的风速σv、σw的下限。
风廓线近场垂直分布方式:
均匀或高斯分布。
建筑物下洗转变点。
地形选项:
地形调整的方法及相关系数。
若选择“部分烟羽路径调整”,则要输入各稳定度下的烟羽路径系数。
如果选择对孤立山体采用CTSG网格(复杂地形特定网格),则可以采用屏幕输入或从CTDM文件读入的方式输入地形和预测点相关数据。
(8)输出设置
设置结果文件名称:
CONCENTRATIONS(浓度)、DRYFLUXES(干沉)、WETFLUXES(湿沉)、RH(相对湿度,可见度)、FoggingPotential(起雾概率)。
输入结果可以用Binary(二进制,可以压缩并节省间)文件格式,也可以是ListFile(文本格式)。
对ListFile除输入名称外,要设定污染物输出的单位。
可以选择保存的时间间隔PrintInterval。
每种污染物是否输出浓度、沉降等可在SpeciesOutput表格中设置。
(9)沉降选择
在这里,对每一个已选择的污染物,设置是否考虑干沉、湿沉。
如果要考虑,可以进一步设置相关参数。
如:
颗粒物干沉降:
GEOMETRICMASSMEANDIAMETER(几何平均直径)、粒子比重。
湿沉降参数设置:
去除系数、LiquidPrecip(液态降水量)、固态降水量等。
(10)化学反应和转换
设置化学参数:
臭氧输入选项(MOZ=0或1);
臭氧月浓度序列(BCKO3);
氨月浓度序列(BCKNH3);
夜间SO2、NOx亏损率(RNITE1、RNITE2);
HNO3转化率(RNITE3);
H2O2输入选项(MH2O2);
H2O2月浓度序列(BCKH2O2);
二次生成有机气溶胶模块参数输入(BCKPMF、OFRAC、VCNX)。
输出后处理模块CALPOST
(1)运行设置(Processingoptions):
起止时间(或全部数据时间),时间间隔(每隔N个时间取出数据,比如计算结果是每小时浓度,时间间隔为1,则取出每小时数据,时间间隔为2,则每隔一小时取出数据)。
预测点:
可以从网格点、任意点中选择全部或部分点参与处理。
源的贡献。
坐标缩放。
背景浓度(相应预测点的逐小时监测浓度)。
(2)数据格式(Data):
要处理的数据类型(浓度,干沉通量,湿沉通量,总沉或能见度)。
污染物名称。
数据文件名(这个文件是CALPUFF的计算结果文件)。
如果要计算能见度,
则要设置大量相关参数和算法选项。
(3)输出设置(Outputoptions):
设置平均时间,浓度单位。
输出内容选项有,可有最大50个数据,各点四个级别的数据(例如第1,2,3,4大的数据),超标率。
选择输出的时间(日期)。
要输出成绘图文件,设置名称、格式及其它参数。
改写控制流文件
CALPUFFPro系统的三大部份都有自己的控制流文件,通过修改这些控制流文件中的相关参数,然后运行各部分执行程序,从而得到所需的计算结果。
控制流文件都有相近的格式,为了使用方便,相当多的篇幅只是用于说明和注释。
使用时只要修改两个执行提示符!
之间的有关内容即可,而两个*之间的内容则认为是注释而忽略。
比如下文:
上文为Calmet控制流第0组的第a分组,定义主要输入输出文件名称。
如果地表气象文件不是SURF.DAT,而是Surface.txt,则改成SRFDAT=SURFACE.DAT即可。
每一个GROUP的结尾处,有一个NOTES,会对本组内的格式和注意事项进行说明。
CALPUFF控制流文件格式
CALPUFF模型系统以控制流脚本文件执行程序模块。
控制流文件CALPUFF.INP通过命令输入计算参数,选择物理过程,输出浓度、干湿沉降通量及能见度计算结果。
控制流文件CALPUFF.INP包括模拟区域参数设置:
区域左下角坐标、东西南北向网格数、垂直层数、网格空间分辨率、LAMBERT投影、时区;
模拟时间设置:
起始时间(年月日时)、终止时间(年月日时)、计算时间;
污染源参数设置:
源的类型及参数;
化学反应机理选择;
干湿沉降参数设置;
CALMET输出的三维、二维、微物理参数文件选择;
风廓线与大气稳定度计算方法设置;
烟羽抬升物理过程选择(建筑物下系、烟羽部分穿透、垂直风剪切作用等);
扩散计算模式设定方法选择;
边界条件选择;
接受点参数设置。
每组控制令命以“!
END!
”结束。
CALPUFF控制流文件实例
CALPUFFtestcaserun-3pointsources
24-HourSimulationusingCALMETmet.data
Griddedreceptorson17x1720-kmmetgrid
----------------Runtitle(3lines)-----------------------------------------
CALPUFFMODELCONTROLFILE
INPUTGROUP:
0--InputandOutputFileNames
DefaultNameTypeFileName
CALMET.DATinput!
METDAT=CALMET.DAT!
or
ISCMET.DATinput*ISCDAT=*
PLMMET.DATinput*PLMDAT=*
PROFILE.DATinput*PRFDAT=*
SURFACE.DATinput*SFCDAT=*
RESTARTB.DATinput*RSTARTB=*
-
CALPUFF.LSToutput!
PUFLST=CALPUFF.LST!
CONC.DAToutput!
CONDAT=CALPUFF.CON!
DFLX.DAToutput*DFDAT=*
WFLX.DAToutput*WFDAT=*
VISB.DAToutput*VISDAT=*
TK2D.DAToutput*T