Jianpu record study notes

WRF 手把手教你运行模式(这教学太保姆了)!

首次学习WRF并运行官网案例的全过程

案例如下:

飓风Matthew在海地、古巴和巴哈马登陆,然后平行于美国东海岸,造成大面积破坏。

image.png

前期准备:

  • 已经完成了系统环境配置,WRF的安装、编译,WPS的安装与编译、静态地理数据下载。

静态地理数据

WRF 模型系统能够创建理想化的模拟,尽管大多数用户对真实数据案例感兴趣。要启动真实数据案例,必须创建区域再全局上的物理位置以及该位置的静态信息。这需要一个数据集,包括地形和土地使用类别等领域。这些数据可以从WRF下载页面获得。 下载链接

  • 下载其中的Mandatory Static Data数据。请记住,如果正在下载完整的数据集,那么该文件将非常大。
  • 将解压完的文件重命名为WPS_GEOG
  • 目录信息需要在namelist.wps 文件的&geogrid 部分中给定:
  • geog_data_path = ´path_to_directory/Build_WRF/WPS_GEOG´
  • Mandatory Static Data 大约为29G(压缩后2.6G)。除此之外还有一些特殊用途的静态地理数据。

最终得到三个文件夹:

image.png

下面开始正式过程:

1、ungrib

  • 在上述路径下建立一个空的文件夹data,用来存放数据
  • 使用命令:mkdir data

这样就有了四个文件夹:

将下载Matthew案例研究数据并放在DATA/ 目录中。文件下载链接如下: Matthew案例 先把文件下载放到data目录下:

image.png

在命令行使用解压命令如下:tar -xf matthew_1deg.tar.gz,当你解压tar文件时,你会得到一个名为matthew/ 的目录。

image.png

image.png

通过运行g2print 来熟悉这些数据:

使用cd命令切换到matthew文件下,可以发现有几个文件,然后通过


查看文件信息


![image.png](https://s2.loli.net/2024/01/20/9srRfOhUlV6Tb5Y.png)


使用命令如下,
这一段代码**前一部分**主要是调用`g2print.exe`查看文件信息,首先找到你的`g2print.exe`的路径,我的是在:`./WPS/util/g2print.exe` ,
**第二部分**就是你想要查看的文件所在的路径,这里我的是在: `../WRF/data/matthew/fnl_20161006_00_00.grib2`,
**最后的代码**就是生成一个日志文件:`>& g2print.log`

./WPS/util/g2print.exe ../WRF/data/matthew/fnl_20161006_00_00.grib2 >& g2print.log




运行后会在文件目录下生成一个名为`g2print.log`的文件,可以查看里面的内容信息:

![image.png](https://s2.loli.net/2024/01/20/QbL1qi9vcm8dTrw.png)

![image.png](https://s2.loli.net/2024/01/20/qB4ib6QTGCR8kI5.png)




### 链接到`GFS Vtable`
这一步需要用的文件位于:`ungrib/Variable_Tables/Vtable.GFS`

GFS 介绍:

![image.png](https://s2.loli.net/2024/01/20/gv6Sxz9w7DUbEul.png)

链接代码如下

```python
ln -sf ungrib/Variable_Tables/Vtable.GFS Vtable

image.png

这一步用到的文件位于wps的link_grib.csh文件,需要将我们最开始下载的matthew文件下的所有fnl***.grib2文件进行链接:

image.png

image.png

代码如下:./link_grib.csh ../DATA/matthew/fnl

image.png

这将创建以下链接:

image.png

编辑namelist.wps 文件,并设置如下:

该文件同样位于WPS的目录下:

image.png

注:有关这些变量的详细解释以及对最佳实践的建议,请参阅Best Practices WPS Namelist, 或 WRF User’s Guide的第三章。

image.png

修改如下:

max_dom = 1
start_date = '2016-10-06_00:00:00',
end_date = '2016-10-08_00:00:00',
interval_seconds = 21600,

image.png

保存后退出。

运行ungrib 来创建中间文件:

文件还是在WPS路径下:

image.png

代码如下:

./ungrib.exe

运行后显示,这个是成功了:

image.png

2、获取SST数据(本步可跳过)

  • 注:我们不会在单区域情况下使用SST 数据,但是如果对运行SST-update 案例感兴趣,稍后将使用它。现在,只存储这些数据,以便以后使用。如果您对运行sst-update案例不感兴趣,那么您可以跳过本节。 还是同样需要先下载SST数据,下载链接如下:SST下载 下载完成后,还是放在之间最开始创建的data文件夹下

image.png

然后还是老样子,cd到该data文件夹下解压文件:tar -xf matthew_sst.tar.gz

image.png

一旦你解包数据,你应该有一个名为matthew_sst/ 的目录,这是独立的SST 数据文件的位置:

image.png

重复两部操作,链接vtablesst_grib文件

  • ln -sf ungrib/Variable_Tables/Vtable.SST Vtable
  • ./link_grib.csh ../data/matthew_sst/rtg_sst_grb

image.png

  • 编辑namelist.wps,与上面同理:

image.png

再运行:./ungrib.exe,显示运行完成:

image.png

3、 Geogrid

首先!!!!确保你的电脑上有陆地数据,也就是静态地理数据。

  • 确保处于WPS/ 目录中
  • 编辑namelist.wps
parent_id = 1,
parent_grid_ratio = 1,
i_parent_start = 1,
j_parent_start = 1,
e_we = 91,
e_sn = 100,
geog_data_res = 'default',
dx = 27000,
dy = 27000,
map_proj = 'mercator',
ref_lat = 28.00,
ref_lon = -75.00,
truelat1 = 30.0,
truelat2 = 60.0,
stand_lon = -75.0,
 geog_data_path = '/Software/Models/WRF/WPS_GEOG',

image.png

在运行geogrid.exe之前,确保区域位于正确的位置: 运行以下代码进行查看:

ncl util/plotgrids_new.ncl

image.png

得到如下的图片,自行检查

image.png

现在运行geogrid.exe 来创建这个区域的静态数据,该文件还是处于WPS的目录下

image.png

  • 注:这将覆盖任何之前运行的geo_em.d01.nc 文件,所以,如果你想保存旧文件,就把它们保存在其它地方。 运行代码:./geogrid.exe,出现以下内容表示成功啦:

image.png

并且,可以在该文件目录下找个geo_em.d01.nc文件:

image.png

4、 Metgrid

1. 插值到模式区域(metgrid.exe)

  • namelist.wps 不需要对namelist.wps 进行额外的更改,只需要确保对Matthew案例正确设置开始和结束日期,并将fg_name 设置为FILE

image.png

  • 运行metgrid.exe 将输入文件插值到模式区域上,文件位置与上述相同:

image.png

./metgrid.exe

下面的文本应该在运行时出现在屏幕上。在运行结束时寻找“ Successful completion of metgrid ”,表明在执行过程中一切顺利。还将创建一个包含更多信息的metgrid.log 文件。如果遇到任何问题,可以使用此日志文件进行故障排除。如下:

image.png

这一步会创建以下文件:

image.png

  • 终于,以上操作你都完整的完成下来,那么就到了最后,运行WRF模式啦。

    5、Real and WRF

    1. 运行模式(real.exe & wrf.exe)

  • 确保位于WRF/ 目录中。在本案例中,将在test/em_real/ 目录中运行。 代码如下,不能漏!!
cd WRF/test/em_real  
  • 链接metgrid.exe 创建的met_em 文件,就是刚刚那几个nc文件: 代码如下:
 ln -sf ../../../WPS/met_em.d01.2016-10* .

image.png

  • 编辑namelist.input,它在哪呢?他就在这个路径下:

image.png

编辑内容如下:

run_days = 0,
run_hours = 48,
run_minutes = 0,
run_seconds = 0,
start_year = 2016,
start_month = 10,
start_day = 06,
start_hour = 00,
end_year = 2016,
end_month = 10,
end_day = 08,
end_hour = 00,
interval_seconds = 21600
input_from_file = .true.,
history_interval = 180,
frames_per_outfile = 1,
restart = .false.,
restart_interval = 1440,
time_step = 150,
max_dom = 1,
e_we = 91,
e_sn = 100,
e_vert = 45,
num_metgrid_levels = 32,
dx = 27000,
dy = 27000,

image.png

  • 注:上面的restart_interval 设置——我们计划稍后进行重新启动,因此需要再重新启动之前设置这次运行。这将创建额外的重新启动输出文件,稍后我们可以从这些文件重新启动模型。

  • 运行real.exe (验证程序是否正确运行),这个文件在该目录下: 注:这将会覆盖以前运行的wrfinput_d01 和wrfbdy_d01 文件,所以,如果你想保存旧文件,就把它们保存在其他地方。 如下图显示就是运行成功啦:

image.png

检查是否已经创建了以下两个文件:

一般来说,不管你是几个嵌套,边界文件都是一个,其他由嵌套层数决定

wrfinput_d01
wrfbdy_d01
  • 运行wrf.exe (验证程序是否正确运行)

检查是否已经创建了以下文件:

image.png

至此,就已经把WRF模式跑完啦。一般最后一步要跑好久。如果有条件得话,可以放到学校集群上进行多核运行~