WRF(Weather Research and Forecasting Model)模式是由美国环境预测中心(NCEP),美国国家大气研究中心(NCAR)等美国科研机构中心着手开发的一种统一的中尺度天气预报模式。
WRF模式系统具有的可移植,易维护,可扩充,高效率,方便等特点,使其成为改进从云尺度到各种不同天气尺度的重要天气特征预报精度的工具。
WRF系统组成可分为四部分。即:
其中,主模块分为ARW(the Advanced Research WRF)和NMM(the Nonhydrostatic Mesoscale Model)两种,即研究用和业务用两种形式,本文运行的是的是 ARW WRF。关于二者的具体区别,可参考相关文献。
图1 WRF流程图
在进行中尺度模式的大气研究时,WRF是最常见的模式之一。对于笔者这种初学者而言,想要掌握WRF模式、首先就是要解决它的安装与运行问题。对于更为深入的参数化方案,则需要在熟练的基础上进行更多的研究。
目前网上已有许多WRF安装、运行教程,但绝大多数都是以PPT、PDF文档形式,要获取相对完整的WRF教程,需要一定的渠道,而类似于博文这类的学习教程则过于零散,需要大量的时间搜索。这无疑为一些想要学习WRF模式的人增加了门槛。
作为刚接触WRF模式不到一周的初学者,为了更好的理解WRF运行的流程,也为之后研究生阶段对WRF模式的学习打下一定基础。
WRF模式通常需要基于Linux系统安装运行。而本文选用步骤更为简单的基于Cygwin的WRF运行。**Cygwin是一个可原生运行于Windows系统上的POSXI兼容环境。**简单来说,它是Windows系统下的一个模拟Linux环境的应用软件,虚拟机中运行的是完全的Linux系统,而Cygwin相当于提供了一个Linux的API接口。当然,在Cygwin下的WRF模式并不能替代完全Linux系统下的WRF运行,但仅就WRF模式入门、熟练掌握运行步骤而言,Cygwin版与虚拟机版并没有太大区别(只是计算速度和计算量的限制)。
此外,作为气象专业的学生,笔者并不建议在私人电脑上安装虚拟机运行WRF,而是在实验室电脑或者大型机上安装运行。除去虚拟机本身安装步骤较为繁琐,虚拟机对电脑硬件配置也较高。尽管如今网上已有许多安装教程,但很多教程由于年代较早往往适用性不高,会出现各种报错乃至电脑崩溃等事故。 而Cygwin在搭建Linux环境步骤则简便得多。通过Cygwin,来掌握一些Linux基本操作与熟悉WRF运行对初学者绰绰有余。
将下载的Cygwin压缩包(约5GB)解压至盘根目录中,运行cmd,进入cygwin路径下,运行Cygwin.bat,如下图,搭建好Linux环境。
图2 Linux环境
此后你可以尝试一些基础的Linux命令:如文件的解压、连接、权限设置,可参考Linux常用命令。
之后,下载WRF与WPS安装包与相应数据,在/cygwin/opt目录下创建WPS、WRF两个文件夹。记得先安装WRF,再安装WPS。
在WRF压缩包下载中下载好WRF压缩包,在之前创建的WRF文件夹中,解压WRF压缩包。
紧接着,使用相同的命令在WPS文件夹下解压WPS压缩包(WPS下载)。
在cygwin/opt目录下创建GEOG文件夹,将下载的数据文件拷贝并解压至该文件夹下。
至此,前期准备工作完成。
在运行前,我们需要了解它的相关配置。
WPS(WRF Preprocessing System)主要对资料进行预处理,定义并创建模式区域,将数据插值到模式的计算格点上。也就是在运行WRF模型前,需要进行三个预处理步骤,由三个子程序完成,即:
图3 WPS流程
这三个程序运行前需要先对它们的配置文件进行相应的修改。配置文件文件名为 namelist.wps, 位于WPS 源码根目录下。
除此之外,上述程序还需要控制参数文件,如GEOGRID.TBL、 METGRID.TBL和Vtable。
Vtable定义了ungrib.exe提取气象场所需要的参数。对于常用气象数据集而言,比如NCEP,EC等机构提供的气象场,WRF中都提供了Vtable模版文件,一般直接链接使用即可。一般运行前,使用命令:
检验是否由正确链接生成。
对于WPS流程与细解,请参看博客WRF模式WPS前处理细解
进入WPS目录,使用命令:
chmod –R u+rwx WPS给予读写权限。
随后:vi namelist.wps
打开并根据自己需求,修改namelist.wps参数文件。关于vi命令,参考vi-文件修改
namelist.wps样例与基本参数解释如下:
以&符号开头的为配置模块名称。 &share 模块描述了通用配置选项,&geogrid 描述了geogrid.exe的配置选项,&ungrib 描述了 ungrib.exe的配置选项,&metgrid 描述了 metgrid.exe的配置选项。
修改完成后,分别运行程序:
至此,WPS运行完成。
WRF运行
图4 WRF目录
可以选择到 run/目录或者 test/em_real/目录中去运行 WRF 模式,两者步骤大同小异,仅有进入目录不同。
namelist.wps主要修改以下部分:
(a)
(b)
图5 修改部分
根据namelist.wps修改即可,参数意义可参考WRF NAMELIST.INPUT FILE DESCRIPTION,也可参考WRFV3使用指南WRF的初始化和运行初步
至此,WRF运行完成。
一般而言,WRF运行后的结果可以用ncview查看,或者用NCL进行绘制。
通常会使用ARWpost将wrfout文件转换成.dat和.ctl文件,随后使用grads绘图。
对于其安装与运行,我在这里不多加赘述。除NCL外,Matlab,Python,R均可对nc实行读写计算操作,python对WRF结果可视化这块目前已较为成熟,笔者日后将会关注这块应用。
在学习namelist.wps参数含义时,我发现对于网格的设计与嵌套描述较为抽象,母网格与子网格之间的关系并不清楚,于是我去对进行了一些了解,进行相关补充。
图6 区域嵌套关系
不难得出内层网格的大小和坐标以及网格比例之间存在关系:
e_we = (i_parent_end - i_parent__start) * parent_grid_ratio + 1
e_sn = (j_parent_end - j_parent__start) * parent_grid_ratio + 1
将外层网格作为坐标系,左下角为原点,注意原点坐标为(1,1),定下坐标值时,将内层网格的起点与对应网格格点重合更为方便。
定义了每层网格相对应的根区域 ,对于最外层网格而言,其并没有根区域,选为1,第二层网格选第一层网格为根区域,第三层网格则以第二层网格为根区域。这样互相嵌套。
i_parent_start = 1, 31, j_parent_start = 1, 17,设定了子区域对应原点的位置(根区域左下角),即相对于原点,子区域左下角坐标为(31,17)。
e_we = 74, 112, e_sn = 61, 97,parent_grid_ratio = 1, 3,dx = 30000, dy = 30000,这几句确定了网格区域的大小,即,该双层嵌套网格的网格1大小为73×60,分辨率为30km×30km;网格2为111×96,分辨率为10km×10km。
图7 嵌套示例
在实际中,对于区域嵌套网格的设计往往需要结合可视化工具,常用工具为WRFDomainWizard,该软件对于WRF的运行提供极大的便利。可以参考:WRF Domain Wizard运行官网案例01
此外,在查询时还看到有人使用QGIS设计WRF嵌套网格:QGIS设计WRF嵌套域网格
WRF模式在几十年的研究中,发展出了其他各类子模式,在大气化学、水文气象等领域中有着诸多应用。
图8 WRF应用
1.中山大学环境科学与工程学院大气科学系 笨笨的冬日: 模式学习从 LINUX 安装开始
2. WRFV3使用指南WRF的初始化和运行初步
3. 南京信息工程大学中尺度数值模式及应用教学团队:WRF数值模式介绍
4. 合适的煎蛋:气象wrf模式内部培训配置资料
5. xg1990:用WRF模型进行气象模拟入门(2)——WPS的配置与使用https://xg1990.com/blog/archives/206
其他参考博客资料已在文中贴出,此处不再重复。
数据与软件均来源于毕业实习老师。