先把结论放在前头:这个项目标题看起来很硬核,但它本质上是把“WRF模式系统”当成一个天气实验室来搭建和做实验,从驱动场数据准备、区域设置,到跑一个典型台风暴雨过程,再到通过修改地表和地形制造对照试验,最后用Python把模式结果变成图、路径和统计结论,是一条非常典型的数值模拟全链路。我做过不少类似风格的案例,过程中踩过的坑比想象中多得多,所以这篇直接把能复用的流程和细节写出来,给同样想用WRF做中尺度模拟、或准备做敏感性试验的朋友作参考。
1. 项目全貌:这不止是“跑WRF”,而是一整套科研工作流
1.1 从标题拆出来的几条任务线
这个标题里有几个关键词:WRF、GFS、ERA5、Python,加上“台风暴雨案例”“修改土地利用与地形”“敏感性试验”。这些东西单独拿出来都不难理解,但放在一个项目里,就意味着你要具备好几块能力:
- 能在Linux环境里编译部署WRF和WPS,并且把NetCDF、MPI等依赖库安排明白;
- 能处理两种不同来源的驱动场数据,也就是GFS预报数据和ERA5再分析资料;
- 会设计嵌套区域、写namelist,并能独立完成WPS到real再到wrf.exe的完整运行;
- 能修改模式底层的静态地理数据,比如土地利用类型和地形高度;
- 有做控制变量试验的方法论,能设计出可信的敏感性试验;
- 最终还要用Python读取wrfout文件,做风场、海平面气压、降水、路径等的专业气象分析。
串起来看,这不只是单一“模拟流程”的内容,更像是一个中尺度天气数值实验的完整技术栈。它的应用场景很广:台风路径与暴雨落区分析、城市热岛和土地利用变化对降水的影响、复杂地形下的局地环流研究、物理参数化方案对比等等。能把这套链路跑通的人,基本就具备了独立开展中尺度数值模拟研究的能力。
1.2 整体链路和阶段产物
我们可以把整个项目拆成五个阶段:
- 数据准备阶段:下载GFS或ERA5数据,整理驱动场文件,并完成格式转换和预处理;
- 静态数据生成阶段:通过geogrid生成包含地形、土地利用、土壤类型等信息的geo_em文件;
- 初边条件生成阶段:ungrib将GRIB格式的气象要素转成中间格式,metgrid将驱动场插值到模拟网格上,生成met_em文件;
- 模式积分阶段:real.exe读取met_em生成初始条件和边界条件文件,wrf.exe完成时间积分,输出wrfout文件;
- 分析与试验阶段:用Python读wrfout,绘制台风路径、降水分布、敏感性试验对比图,再结合修改geo_em或物理方案做对照,评估不同因素对结果的影响。
我建议第一次接触这套流程的人,先把阶段1到4完整跑通一次,不追求物理方案多先进、嵌套多细,先用一个单域、简单方案跑出一个结果,再逐步增加复杂度。否则很容易在最复杂的配置里迷失方向,最后连是namelist写错还是数据没下对都分不清。
1.3 这套内容适合谁来做
如果你是想做毕业论文的气象学生、需要给项目提供模式支撑的科研助理、或者是想用数值模拟方法做局地天气过程分析的从业者,这个项目方向都挺合适。只要你已经具备Linux基本操作能力和一点点Python基础,就可以按这个流程逐步搭起来。纯新手也不用怕,前面耗时间的部分其实是配环境和处理数据,真正上手后你会发现WRF的模式积分反而不是最大的技术门槛。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 先把“天气实验室”环境搭好:从系统到依赖库
2.1 硬件和操作系统的建议
跑WRF没有说一定要上超算,但需要一台够用的Linux机器。以我要跑的台风案例为例,如果做三层嵌套,最内层分辨率到3km,建议物理核心不少于16核,内存不低于32GB,磁盘预留至少300GB。一个72小时的三层嵌套模拟,如果用16核并行跑,可能需要一天甚至更长时间,具体取决于你选择的物理方案和分辨率。
在系统层面上,OpenMPI、gfortran、NetCDF这些基础环境是核心。操作系统的发行版影响不大,Ubuntu、CentOS、Rocky Linux都行,但有一点很重要:WRF不支持Windows原生跑,别想着在Windows里编译运行;如果只有Windows机器,也要用WSL2或者干脆在Linux服务器上操作。路径尽量不要出现空格、中文和过长的层级,这是很多初学者容易忽视的坑。
2.2 依赖库的编译顺序和版本匹配
WRF依赖的关键库有NetCDF-C、NetCDF-
