1. 从零开始:WRF官网个例实战准备
第一次接触WRF模型的朋友可能会被复杂的流程吓到,但其实只要跟着官网教程一步步操作,运行第一个案例并没有想象中那么困难。我刚开始学习WRF时也踩过不少坑,今天就把这个2000年1月暴雨案例的完整运行过程分享给大家。
首先需要明确的是,WRF模型运行主要分为两个部分:WPS预处理系统和WRF主程序。WPS负责将各种气象数据转换成WRF能识别的格式,而WRF则负责具体的数值模拟。在开始之前,请确保你已经完成了WRF和WPS的安装,这是最基本的前提条件。
官网案例使用的是2000年1月24-25日的暴雨资料,文件名是JAN00_GFS_FNL.tar.gz。这个案例非常适合新手练习,因为数据量适中,运行时间短,而且包含了典型的中尺度天气过程。我建议大家在第一次运行时,完全按照官网的参数设置,等熟悉流程后再尝试修改。
2. 数据获取与准备工作
2.1 下载案例数据
案例数据可以在UCAR官网的ARW Online Tutorial页面找到。下载完成后,我们需要创建一个专门的数据目录来存放这些文件。我的习惯是在WPS同级目录下新建一个DATA文件夹:
mkdir DATA然后把下载的JAN00_GFS_FNL.tar.gz文件移动到这个目录下并解压:
tar -zxvf JAN00_GFS_FNL.tar.gz解压后会得到一个JAN00目录,里面包含了2000年1月24-25日的气象数据。这里有个小技巧:解压前先用ls -lh查看文件大小,确保下载完整。我曾经遇到过因为网络问题导致下载不完整的情况,结果运行到一半就报错。
2.2 设置静态地理数据
在运行WPS之前,我们需要先配置namelist.wps文件。这个文件相当于WPS的"说明书",告诉程序如何处理数据。用vi或你喜欢的文本编辑器打开它:
vi namelist.wps重点修改两个参数:
- max_dom = 1 (表示我们只使用一个模拟区域)
- geog_data_path = '你的WPS_GEOG数据路径' (指向你存放静态地理数据的目录)
静态地理数据是WRF运行的基础,包含了地形、土地利用类型等信息。如果路径设置错误,后续的geogrid步骤就会失败。我建议先用ls命令确认路径是否正确。
3. WPS预处理流程详解
3.1 运行geogrid.exe
geogrid是WPS的第一步,它的作用是根据我们设定的区域参数生成静态地理数据。在WPS目录下直接运行:
./geogrid.exe运行完成后,一定要检查两个地方:
- 查看rsl.out.0000文件,确认最后有"Successful completion of geogrid"的提示
- 用
ls命令确认生成了geo_em.d01.nc文件
如果运行失败,最常见的原因是namelist.wps中的参数设置有问题,特别是区域范围和地图投影参数。我第一次运行时因为ref_lat和ref_lon设置错误,导致程序直接崩溃。
3.2 解码气象数据:ungrib步骤
这一步是将下载的GRIB格式气象数据解码成WPS能识别的中间格式。首先需要链接Variable Table文件:
ln -sf ungrib/Variable_Tables/Vtable.AWIP Vtable然后使用link_grib.csh脚本链接GRIB数据:
./link_grib.csh ../DATA/JAN00/2000012接下来修改namelist.wps,设置正确的时间参数:
- start_date和end_date要与数据时间匹配
- interval_seconds=21600表示使用6小时间隔的数据
运行ungrib.exe:
./ungrib.exe >& ungrib_data.log成功运行后会生成一系列FILE:YYYY-MM-DD_HH格式的中间文件。如果这一步出错,通常是时间设置有问题或者数据损坏。我建议先用ncdump -h查看数据时间范围,确保namelist中的时间在数据覆盖范围内。
3.3 数据插值:metgrid步骤
metgrid的作用是将ungrib生成的中间文件插值到我们设定的模拟区域。直接运行:
./metgrid.exe检查点:
- rsl.out.0000中应有"Successful completion of metgrid"
- 生成met_em.d01.YYYY-MM-DD_HH:00:00.nc系列文件
这一步常见的问题是投影参数不匹配。如果geogrid和metgrid使用的投影参数不一致,插值结果就会出错。我建议把两个步骤的namelist.wps参数放在一起核对,确保一致。
4. WRF主程序运行指南
4.1 real.exe预处理
现在进入WRFV3目录下的test/em_real子目录。首先链接metgrid生成的文件:
ln -sf ../../../WPS/met_em.d01.2000-01* .注意命令最后的点和星号之间要有空格。然后检查namelist.input文件,确保时间参数与WPS设置一致。特别要注意:
- run_days/run_hours要覆盖整个模拟时段
- start_*和end_*参数要准确
- interval_seconds与WPS设置相同
运行real.exe:
./real.exe成功后会生成两个关键文件:wrfinput_d01(初始场)和wrfbdy_d01(边界条件)。如果缺少这两个文件,后续的wrf.exe就无法运行。
4.2 运行wrf.exe进行模拟
最后一步就是运行WRF主程序:
./wrf.exe运行时间取决于你的计算机性能。在等待过程中,可以监控rsl.out.0000文件了解进度:
tail -f rsl.out.0000成功完成后会生成wrfout_d01_2000-01-24_12:00:00等输出文件。第一次运行时建议先用小区域、短时间测试,等熟悉流程后再尝试更大的模拟。
5. 常见问题排查技巧
在实际操作中,难免会遇到各种问题。根据我的经验,90%的错误都集中在以下几个方面:
路径设置错误:特别是geog_data_path和文件链接路径。建议每次修改路径后都用
ls命令确认。时间参数不匹配:WPS和WRF的namelist中时间设置必须一致,且要在数据时间范围内。我习惯把关键时间参数列个表格核对。
文件权限问题:有时候因为权限不足导致程序无法读写文件。可以用
chmod修改权限,或者直接用ls -l检查。内存不足:对于大区域或高分辨率模拟,可能需要调整计算机的内存设置。可以在运行前用
ulimit -s unlimited解除栈大小限制。
当程序报错时,首先要查看的就是rsl.out.0000和对应的.log文件。WRF的错误信息通常比较直观,比如"Could not open file"明显就是文件路径问题。对于新手来说,严格按照官网教程的参数设置能避开大多数坑。