首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >数值模式 | WRF与CMAQ的桥梁——MCIP工具介绍

数值模式 | WRF与CMAQ的桥梁——MCIP工具介绍

作者头像
用户11172986
发布2026-04-24 19:27:48
发布2026-04-24 19:27:48
680
举报
文章被收录于专栏:气python风雨气python风雨

数值模式 | WRF与CMAQ的桥梁——MCIP工具介绍

最近读者问wrf数据怎么转cmaq的输入格式,小编于是稍作检索,将内容呈上(实际上是官方教程的搬运,如有问题还是去原仓库了解)

在空气质量数值模拟工作流中,WRF(Weather Research and Forecasting)模式提供气象场驱动,而CMAQ(Community Multiscale Air Quality)模式进行化学传输模拟。两者之间需要一个关键的桥梁——MCIP(Meteorology-Chemistry Interface Processor),将WRF输出的气象数据转换为CMAQ/SMOKE可用的气象输入文件。[^mcip_epa]

根据CMAQ官方用户手册,CMAQ所需的气象输入必须由MCIP从WRF输出生成,且MCIP应作为CMAQ预处理流程的第一步。[^cmaq_inputs]

常见痛点:

  • WRF输出文件(wrfout)格式与CMAQ输入要求不匹配
  • 需要处理网格交错、坐标转换、变量计算等复杂操作
  • MCIP配置参数众多,容易出错

本教程将详细介绍如何使用MCIP进行格式转换,并补充关键配置与输出检查。

转换流程概览(Mermaid)

代码语言:javascript
复制
flowchart TD
  A[运行 WRF 生成 wrfout] --> B[配置 run_mcip.csh 参数]
  B --> C[运行 MCIP]
  C --> D[生成 CMAQ 输入文件]
  D --> E[最小成功判据检查]

技术方案概述

MCIP核心功能(概要)

以下功能概述基于 EPA 对 MCIP 的官方说明:[^mcip_epa]

功能

说明

域定义

定义CCTM计算域(通常比气象模式域小,排除边界格点)

数据提取

从WRF输出中提取指定计算域的气象数据

变量直通

温度、气压、湿度、风场等变量直接从WRF获取

派生变量计算

计算WRF未直接输出但CMAQ需要的变量

格式转换

输出I/O API或netCDF格式文件

输入输出文件

MCIP输入文件:(来自MCIP README)[^mcip_readme]

文件

格式

必需

说明

wrfout_*

NetCDF

WRF模式输出文件

geo_em.*

NetCDF

可选

WRF地理网格文件(用于土地利用数据)

MCIP输出文件:(来自MCIP README)[^mcip_readme]

文件

类型

时间依赖

说明

GRIDDESC

ASCII

静态

网格描述文件

GRID_CRO_2D

I/O API

静态

2D格心静态数据

GRID_CRO_3D

I/O API

静态

3D格心静态数据

GRID_DOT_2D

I/O API

静态

2D点位静态数据

GRID_BDY_2D

I/O API

静态

2D边界静态数据

MET_CRO_2D

I/O API

时变

2D格心气象数据

MET_CRO_3D

I/O API

时变

3D格心气象数据

MET_DOT_3D

I/O API

时变

3D点位气象数据

MET_BDY_3D

I/O API

时变

3D边界气象数据

LUFRAC_CRO

I/O API

静态

土地利用比例

SOI_CRO

I/O API

时变

土壤属性

mcip.nc

netCDF

时变

IOFORM=2时生成

mcip_bdy.nc

netCDF

时变

IOFORM=2时生成

(以上文件清单与必需性说明来自 MCIP README)[^mcip_readme]

第一部分:MCIP安装与配置

1.1 环境准备

MCIP作为CMAQ的一部分发布,源码位于CMAQ仓库的 PREP/mcip 目录。[^mcip_readme]

提示:具体依赖、编译器版本与库要求请以你所使用的CMAQ发行版文档为准。

代码语言:javascript
复制
# 可选:检查环境变量与工具(在终端执行)
!nc-config --version
!nf-config --version
!echo $IOAPI

1.2 MCIP编译

MCIP源码随CMAQ发布,以下为常见编译流程示例(路径仅作示意):

代码语言:javascript
复制
%%bash
# 设置CMAQ主目录(示例路径)
export CMAQ_HOME=/path/to/CMAQ

# 进入MCIP源码目录
cd$CMAQ_HOME/PREP/mcip/src/

# 加载配置文件
source$CMAQ_HOME/config_cmaq.csh

# 编译
./make |& tee make.mcip.log

# 检查编译结果
ls -la $CMAQ_HOME/PREP/mcip/src/mcip.exe

1.3 配置运行脚本

MCIP通过 run_mcip.csh 脚本运行,脚本会在每次运行时自动生成namelist。[^mcip_readme]

关键配置变量包括 InMetDirInMetFilesMCIP_START/ENDINTVLIOFORM 等。[^mcip_readme]

  • InMetFiles 应按时间顺序列出,确保覆盖 MCIP_START/END。
  • IOFORM 输出格式需与后续 CMAQ/工具链读取方式保持一致。
代码语言:javascript
复制
# MCIP配置参数示例(run_mcip.csh)
mcip_config = '''
# 应用名称(用于输出文件命名)
set APPL = "20240701"

# 坐标系统和网格名称
set CoordName = "LAM_40N100W"
set GridName = "Beijing_3km"

# 输入输出路径(示例路径)
set DataPath = "/data/CMAQ"
set InMetDir = "/data/WRF/wrfout"
set InGeoDir = "/data/WRF/geogrid"
set OutDir = "/data/CMAQ/mcip_output"

# WRF输出文件列表(最多300个)
# 按时间顺序列出,确保覆盖 MCIP_START/END
set InMetFiles = ( \
    $InMetDir/wrfout_d01_2024-07-01_00:00:00 \
    $InMetDir/wrfout_d01_2024-07-01_01:00:00 \
    # ... 更多文件
)

# 地理网格文件(可选)
set IfGeo = "T"
set InGeoFile = "$InGeoDir/geo_em.d01.nc"

# 时间设置(UTC)
set MCIP_START = "2024-07-01-00:00:00.0000"
set MCIP_END = "2024-07-02-00:00:00.0000"

# 输出时间间隔(分钟)
set INTVL = "60"

# 输出格式:1=I/O API, 2=netCDF
# 与后续 CMAQ/工具链读取方式保持一致
set IOFORM = "1"

# 边界裁剪:BTRIM=5 推荐用于去除 WRF 侧边界
# BTRIM=-1 则使用窗口裁剪(X0/Y0/NCOLS/NROWS)
set BTRIM = "5"

# 窗口裁剪参数(仅当BTRIM=-1时使用)
# set X0 = "5"      # 左下角X坐标
# set Y0 = "5"      # 左下角Y坐标
# set NCOLS = "100" # 输出列数
# set NROWS = "100" # 输出行数
'''

print(mcip_config)

1.4 运行MCIP

执行MCIP转换(脚本示例来自官方README):[^mcip_readme]

1.5 最小成功判据(完成检查)

运行后在输出目录中至少应看到以下关键文件:GRIDDESCGRID_CRO_2DGRID_CRO_3DMET_CRO_2DMET_CRO_3DMET_BDY_3D。 如设置 IOFORM=2,还应生成 mcip.ncmcip_bdy.nc。[^mcip_readme]

代码语言:javascript
复制
%%bash
# 进入脚本目录
cd $CMAQ_HOME/PREP/mcip/scripts

# 运行MCIP
./run_mcip.csh |& tee run_mcip.log

# 检查输出
ls -la $OutDir/

参考与引用

[^mcip_epa]: EPA 官方 MCIP 页面(说明 MCIP 读取 WRF 输出并生成 CMAQ 输入) https://www.epa.gov/cmaq/meteorology-chemistry-interface-processor

[^mcip_readme]: USEPA CMAQ 官方仓库 MCIP README(输入输出、脚本参数、运行方式) https://github.com/USEPA/CMAQ/blob/main/PREP/mcip/README.md?plain=1

[^cmaq_inputs]: CMAQ 用户手册(说明气象输入由 MCIP 生成,且为流程第一步) https://usepa.github.io/CMAQ/DOCS/Users_Guide/CMAQ_UG_ch04_model_inputs.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 气python风雨 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数值模式 | WRF与CMAQ的桥梁——MCIP工具介绍
    • 转换流程概览(Mermaid)
    • 技术方案概述
      • MCIP核心功能(概要)
      • 输入输出文件
    • 第一部分:MCIP安装与配置
      • 1.1 环境准备
      • 1.2 MCIP编译
      • 1.3 配置运行脚本
      • 1.4 运行MCIP
      • 1.5 最小成功判据(完成检查)
    • 参考与引用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档