WRF-CHEM 新手向实践(三):生物质燃烧排放与化学边界场构建全流程

张开发
2026/4/20 21:15:14 15 分钟阅读

分享文章

WRF-CHEM 新手向实践(三):生物质燃烧排放与化学边界场构建全流程
1. 生物质燃烧排放处理全流程第一次接触WRF-CHEM的生物质燃烧排放模块时我被各种数据格式和转换工具搞得晕头转向。经过多次实践终于摸清了从FINN数据下载到最终生成wrffirechemi文件的完整流程。下面我会用最直白的语言带你一步步走完这个过程。1.1 FINN数据获取实战FINN数据库是处理生物质燃烧排放的黄金标准但它的官网交互设计实在不敢恭维。我第一次使用时花了半小时才找到正确的下载入口。关键步骤其实很简单访问FINN官网建议用Chrome浏览器在提交页面填写基本信息邮箱务必写对下载链接会发到这里选择数据版本时有个坑v1.5和v2.5的存储结构完全不同。新手建议先用v1.5练手等熟悉了再尝试新版我最近一次做2020年华北平原模拟时发现v1.5数据对PM2.5的估算比v2.5更接近观测值。不过这个可能因地区而异建议两个版本都试试看。1.2 工具编译那些坑下载的FINN工具包解压后有两个关键文件夹src/源代码目录编译主战场run/包含示例输入文件编译时最常见的报错是Fortran编译器问题。我在Ubuntu 20.04上实测可用的编译命令组合export FCgfortran export NETCDF/usr/local/netcdf # 你的netCDF安装路径 ./make_fire_emiss如果遇到undefined reference错误八成是netCDF库路径没设对。可以用nc-config --all检查库位置。2. 排放文件生成详解2.1 输入文件配置技巧example_finn15_wrf.inp文件里有几个参数需要特别注意fire_directory /path/to/FINN_data # 路径不要带中文 wrf_directory ./ # wrfinput所在目录 start_date 2020-06-01_00:00:00 # 格式必须严格对应 domains 3 # 必须和实际域数一致有个隐藏坑点时间格式里的下划线必须保留写成空格直接报错。我第一次运行时因为这个问题debug了整整一天。2.2 运行与结果验证执行生成命令后./fire_emis example_finn15_wrf.inp fire_emis.out成功的标志是在src/目录下生成一系列wrffirechemi_dXX文件。建议用ncview快速检查ncview wrffirechemi_d01正常应该能看到EBIO_ISO等变量。如果文件是空的先去fire_emis.out里找错误信息最常见的是时间范围不匹配或者路径错误。3. 化学边界场构建实战3.1 CAM-Chem数据获取CAM-Chem数据下载流程和FINN类似但有几点要特别注意数据分分辨率和版本新手建议选0.9x1.25度的MERRA2驱动数据文件通常很大单月数据可能超过10GB确保磁盘空间充足下载链接有时效性最好在24小时内完成下载我常用的变量组合包括必选O3、NOx、CO、VOCs可选PM2.5、SO2根据研究需求3.2 mozbc工具配置详解mozbc的Makefile修改是第一个难关。这是我验证过的配置FC gfortran NETCDF_DIR /usr/local/netcdf # 改成你的路径 AR_FILES -L$(NETCDF_DIR)/lib -lnetcdff -lnetcdf编译成功后重点在于inp文件的调试。以CBMZ-MOSAIC方案为例关键参数解析do_bc .true. # 生成边界条件 do_ic .true. # 生成初始场 domain 1 # 从最外层开始处理 dir_wrf ./ # wrfinput所在目录 fn_moz camchem.nc # CAM数据文件名4. 物种映射的玄学4.1 气相物种匹配spc_map部分的配置堪称整个流程里最令人头疼的环节。以O3为例spc_map o3 - O3 # 左边是CAM变量名右边是WRF变量名常见的坑点包括大小写敏感NO2和no2会被视为不同变量化合物别名问题比如CH3CHO和ALD都指乙醛物种单位不一致ppmv vs. mol/mol4.2 气溶胶处理秘籍Mosaic方案需要额外添加气溶胶映射。这是我调试成功的配置片段so4_a1 - SO4, no3_a1 - NO3, nh4_a1 - NH4, ...特别注意不同化学方案的气溶胶分级可能不同8bin和4bin的映射关系天差地别。建议先在WRF手册里查清自己方案的物种命名规则。5. 实战调试经验最近一次帮学弟调试时遇到的典型问题边界场出现负值检查CAM数据的时间范围是否完全覆盖模拟期初始场浓度异常确认wrfinput是否预先处理过需要先运行real.exe物种缺失报错核对spc_map的每个物种是否在CAM文件中真实存在有个取巧的方法先用ncdump查看CAM数据的变量列表ncdump -h camchem.nc | grep float最后提醒整个过程会生成大量临时文件建议专门建个workspace目录。我的习惯是按照日期组织项目~/wrf_chem/ ├── 20240601_fire_emiss ├── 20240602_mozbc └── 20240603_run

更多文章