- 积分
- 35081
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2019-5-13
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 一大碗年糕 于 2022-10-30 20:28 编辑
最近在摸索WRF-Chem,对人为排放清单数据集的预处理相关资料比较少,学习了一下anthro_emiss这个tool,记录一下(仅个人理解,如果有问题欢迎纠正~)!
anthro_emiss工具(ANTHRO),PREP-CHEM-SOURCES一样,用于对人为排放源的预处理。它对诸如如EDGAR/IPCC的排放清单很有用。
=============================================================================
关于anthro_emis产生的文件类型:
anthro_emiss可产生两种类型的数据,对应io_style_emissions的1和2
(a) diurnal 对应wrfchemi_00z_d<nn> and wrfchemi_12z_d<nn>,每个文件对包含12个时次
(b) serial 对应wrfchemi_d<nn>_<date>,每个文件包含一个单一个时次
===============================================================================
关于输入的原始人为排放源数据集Input anthropogenic datasets:
需要遵守以下数据结构:
(1) 每个输入数据集是针对一个输入物种的
(2) lon和lat一维变量,包含每个输入网格单元的经度和纬度。每个输入的网格单元是以其为中心的,lon和lat变量必须是单调的增加。
(3) 时间变量为以下其中一项。
(i) date和datesec变量,包含日期和秒。以日为单位。日期是一个整数,编码为yyyymmdd日期。
(ii) 一个时间变量,代表自某一特定日期以来的时间。基准日期必须包含在时间变量单位的属性中,并且是yyyy-mm-dd的形式。
(4) 一个或多个变量,包含实际的人为排放,指定为子类别。其数据结构必须为(lon, lat, time)。
此外,输入的人为数据集可以有输入物种的分子量,单位为g/mole(克/摩尔)。可以是一下三种类型
(1)a variable with the name molecular_weight (一个名为molecular_weight的变量)
(2)a global attribute with the name molecular_weight (一个全局属性,名称为molecular_weight)
(3)a sub category variable attribute with the name molecular_weight (一个名为分子量的子类别变量属性。)
如果输入的数据集没有指定物种的分子量
那么用户可以在 "src_names "这个变量中指定输入的物种分子量。
如果分子量是通过src_names namelist变量指定的来指定分子量,那么输入数据集中的任何分子量信息都会被忽略。
=========================================================================================
关于.inp文件中的namelist:
重点在于原始排放源数据与WRF-Chem排放源数据间的命名要映射关联,即src_names,emis_map必须要设置否则会报错
Variable name Variable type default value
-------- ---- -------- ---- ------- -----
!directory
anthro_dir character(len=132),scalar present working directory #原始人为排放源数据
wrf_dir character(len=132),scalar present working directory #含WRF的wrfinput_d<nn>.目录,注意不含/最后
!Filename
src_file_prefix character(len=132),scalar blank string #原始人为排放源数据前缀
src_file_suffix character(len=132),scalar blank string #原始人为排放源数据后缀
!Timing
start_output_time character(len=19),scalar (None) <date> #output开始时间,如'2019-11-28_00:00:00'
stop_output_time character(len=19),scalar (None) <date> #output结束时间,如'2019-12-07_00:00:00'
output_interval integer,scalar 3600 seconds #output间隔
serial_output logical,scalar .false. #是否采用串行输出
data_yrs_offset integer,scalar 0 years #如果排放源数据和模拟时间不同需要进行对齐
!Mapping
emis_map character(len=132),array(500) (None) #WRF变量和排放源变量的映射关系(必填,可以包含多个关系式子)
!Input File Variable Names
src_names character(len=32),array(50) See note below #原始人为排放源数据物种名称,可以有多个(最多50种),一般来说物种名后可带分子量如'CO(28)',分子量在查找文件时不会被索引
sub_categories character(len=32),array(50) See note below #部门指定,如'industrial'
cat_var_prefix character(len=132),scalar blank_string #部门指定前缀
cat_var_suffix character(len=132),scalar blank string #部门指定后缀,如'_emissions'
!注意,默认情况下cat_var_prefix和cat_var_suffix是空白字符串。因此,默认情况下,所有输入数据集中的所有子类别变量必须是以下名称之一:
agr', 'awb', 'dom', 'ee', 'ind', 'slv', 'tra', 'wst', 'ship' 。
!WRF Parameters
domains integer,scalar 1 #需找WRF文件时对应的domain
emissions_zdim_stag integer,scalar 10 #
============================================================================================
关于WRF变量和排放源变量的映射关系语法:
<WRF_emis> -> spc_mult * <emis_name>{ + spc_mult * <emis_name> + ... }
<emis_name> = <src_name{(cat_mult * <cat_name>){ + <cat_mult * <cat_name> + ... }})}
即可同时乘系数spc_mult,cat_mult和选择单独部门cat_name
例子:1.emis_map = 'CO->CO','NO->0.8*NOx','SO2->SO2','NH3->NH3','BC(a)->BC'
2.emis_map = 'PAR(a) -> ALK(.5*airplane+.25*forest)'
注:
如果出现"(a) "字符串,表示WRF输出的物种是气溶胶。
如果没有"(a) "字符串,则WRF输出的物种应理解为气体。
WRF的气相和气溶胶物种有不同的排放单位。
gas == mole/km^2/hr (moles per kilometer squared per hour) 气体==摩尔/公里^2/小时(摩尔/公里平方/小时)
aerosol == ug/m^2/s (micro gram per meter squared per second) 气溶胶 == ug/m^2/s (微克/平方米/秒)
===============================================================================
关于输出时间的设定:
对于serial_output = .false这种情况,start_output_time变量是可选的,stop_output_time和output_interval变量被忽略。
在serial_output = .true的情况下,所有的namelist变量都是可选的。
如果start_output_time变量没有在输入的namelist文件中指定
那么start_output_time将从wrfinput_d<nn>文件中提取。
如果在输入名册文件中没有指定stop_output_time变量
则stop_output_time将按WRF每个domain分配start_output_time的值。
如果start_output_time和stop_output_time已被分配,并且serial_output = .true。
则stop_output_time必须晚于start_output_time。 否则anthro_emis将出错停止。
关于output_interval:
对于serial_output = .true.的情况,output_interval定义了产生WRF输出排放数据集的频率,为以秒为单位,默认值为3600(1小时)。若为21600则为6小时
关于data_yrs_offset:
如果WRF模拟的排放输出时间超出了输入的原始排放数据集的时间,anthro_emis就会出错停止。如果仍想使用不同时间的排放数据集,可以使用data_yrs_offset变量来 "调整 "输出时间的年份,使之与跨度相同。之前的排放清单数据的时间往往无法做到每年都有,现在看EDGAR大部分年份都有貌似。
|
|