爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: kermit

【2025开箱即用】Cygwin WRF4.6.1 For Windows 绿色免安装版

  [复制链接]
发表于 2022-4-20 17:00:28 | 显示全部楼层

回帖奖励 +1 金钱

1193789120 发表于 2022-4-19 10:04
请问按教程运行到ungrib这一步报错,应该怎么解决?谢谢!

若遇见相同问题,可以尝试使用管理员模式打开cygwin,即可正常出结果。疑似为文件读取权限的问题,在此感谢群主的热心解答!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 成长值: 0
发表于 2022-4-21 08:52:36 | 显示全部楼层

Piggy Packages气象工具包WRF入门教程

本帖最后由 kermit 于 2025-5-10 01:00 编辑

本教程旨在帮助初学者运行并理解WRF数据前处理、数值预报、资料同化的完整流程,所描述的运行流程不是最简单的,但能够尽量避免遇到难以处理的问题。建议初学者按步骤操作,运行成功之后再尝试自己或者别的教程的方法。

1.    Piggy Packages气象工具包
欢迎使用 Piggy_Packages!

Piggy_Packages 是一个专为气象科研人员和爱好者打造的、高度集成的软件包合集。它基于 Cygwin 进行了深度定制和优化,旨在 Windows 操作系统环境下提供一个“解压即用”的便捷科研平台。本软件包致力于消除在 Windows 系统中安装和配置复杂气象软件的障碍,让用户能够快速投入到实际的科研工作中。

Piggy_Packages 目前支持 Windows 10 (22H2)和 Windows 11。请注意,随着Windows 10支持周期的结束,对于 Windows 10 的支持将很快被移除。

如果您目前使用的是Windows 10,安装Windows Terminal将会获得更佳的使用体验,请在此处下载:https://aka.ms/terminal
Windows 11 已经内置了Windows Terminal,您无需额外安装。


本文所用到的全部数据下载地址:http://nui.st/4fqm

2.    WPS数据前处理系统的运行
假设现在是2022年4月1日06时(世界时),我们想要预报如图所示的区域在接下来24小时内的逐小时天气要素变化。
图片 1.png
由于现在刚刚到2022年4月1日06时,虽然我们可以获取到这个时刻全球不同站点的气象观测,但是各种地面、高空、卫星、雷达以及微波辐射计、飞机报等观测资料时空维度不一,有的区域观测资料密集而有的区域观测资料稀疏,质量也参差不齐,无法直接处理成均匀的格点数据。我们的预报需要这个时刻的气象格点资料,最简便的方法是从全球模式的预报场获得。

为了完成24小时的逐小时天气要素预报,我们已获取了全球模式于2022年4月1日00时起报的6、9、12、15、18、21、34、27、30小时预报场。其中6小时预报场,即6小时前对当前时刻的全球大气预报,作为本次预报的初始场,9-30小时预报场作为预报过程中的边界条件(因为区域模式不关注区域外发生了什么,但是区域外的大尺度天气系统又足以对区域内的天气造成影响,因此区域模式预报时需要全球模式的预报场为其提供边界条件)。

首先将 WPS程序包拷贝到当前目录:
  1. cp -r /pp_model/WRF-4.6.1/WPS ./
复制代码
进入WPS目录:
  1. cd WPS
复制代码
打开当前目录:
  1. open
复制代码
将刚刚下载的GFS全球预报场资料拷贝至此。
在运行WPS之前,需要编辑namelist.wps 文件,该文件记录了WPS运行时的各种参数。
打开namelist.wps :
  1. open -e namelist.wps
复制代码
清空所有内容,并且将以下内容粘贴进去:
  1. &share
  2. wrf_core = 'ARW',
  3. max_dom = 3,
  4. start_date = '2022-04-01_06:00:00','2022-04-01_06:00:00','2022-04-01_06:00:00'
  5. end_date = '2022-04-02_06:00:00','2022-04-02_06:00:00','2022-04-02_06:00:00'
  6. interval_seconds = 10800,
  7. io_form_geogrid = 2,
  8. /

  9. &geogrid
  10. parent_id = 1, 1, 2,
  11. parent_grid_ratio = 1, 3, 3,
  12. i_parent_start = 1, 40, 17,
  13. j_parent_start = 1, 26, 21,
  14. e_we = 81, 49, 55,
  15. e_sn = 57, 49, 55,
  16. geog_data_res = 'lowres','lowres','lowres',
  17. dx = 81000,
  18. dy = 81000,
  19. map_proj = 'lambert',
  20. ref_lat = 35,
  21. ref_lon = 110,
  22. truelat1 = 30,
  23. truelat2 = 60,
  24. stand_lon = 116.397,
  25. geog_data_path = '/pp_model/WRF-4.6.1/WPS_GEOG/'
  26. /

  27. &ungrib
  28. out_format = 'WPS',
  29. prefix = 'FILE',
  30. /

  31. &metgrid
  32. fg_name = 'FILE'
  33. io_form_metgrid = 2,
  34. /
复制代码


然后生成模拟区域的地形数据,运行geogrid.exe
  1. ./geogrid.exe
复制代码
成功之后将生成geo_em.d01.nc、geo_em.d02.nc、geo_em.d03.nc文件。
接下来从GRIB格式的GFS全球预报场数据中提取模式需要的气象要素场:
  1. ./link_grib.csh gfs.0p25.2022*
  2. ln -sf ungrib/Variable_Tables/Vtable.GFS Vtable
  3. ./ungrib.exe
复制代码
成功之后将生成FILE:2022-04-01_06、FILE:2022-04-01_09等文件
接下来将气象要素场插值到地形格点上:
  1. ./metgrid.exe
复制代码
成功之后将生成met_em.d01.2022-04-01_06:00:00.nc等文件
至此整个数据前处理流程运行完毕。

3.    REAL生成模式的初始场和边界
回到Home目录:
  1. cd
复制代码
将 WRF程序包拷贝到当前目录:
  1. cp -r /pp_model/WRF-4.6.1/WRF-REAL ~/WRF
复制代码
切换到WRF运行目录:
  1. cd WRF/run
复制代码
real.exe的作用是将metgrid.exe生成的气象要素场处理为模式的初始场和边界条件,其运行参数储存在namelist.input 文件中。初学者可以直接使用我们提供的namelist.input文件。
打开当前目录:
  1. open
复制代码
将我们提供的namelist.input文件拷贝至此,覆盖原文件。
将metgrid.exe生成的met_em文件拷贝(对于初学者来说比较保险)到当前目录:
  1. cp ../../WPS/met_em.* .
复制代码
运行real.exe
  1. ./real.exe
复制代码
运行完成后生成三层嵌套网格的初始场wrfinput_d01、wrfinput_d02、wrfinput_d03和最外层网格边界条件wrfbdy_d01 (内层网格的边界条件由外层网格提供,因此只有最外层网格需要全球模式为其提供边界条件)

4.    数值模式WRF的运行
现在到了激动人心的时刻了,让我们来运行数值模式WRF、占卜未来天气!
  1. ./wrf.exe
复制代码
或者,如果你的电脑CPU和内存充足,你可以多核运行WRF:
  1. mpirun -np $NUMBER_OF_PROCESSORS ./wrf.exe #[使用全部CPU核心]
  2. mpirun -np 2 ./wrf.exe #[使用2个CPU核心]
复制代码
等待其运行完成。
如果在等待过程中想要查看进度,可以另外开启一个终端窗口,输入:
  1. tail -f ~/WRF/run/rsl.out.0000
复制代码
运行完成后,将能看到每个小时的wrfout文件。

5.    绘图查看预报结果
您可以使用NCVIEW或者PANOPLY打开wrfout文件,直接查看各个变量绘图,或者使用NCL官网提供的脚本绘图。
  1. ncview wrfout_d01_2022-04-01_07:00:00
复制代码
图片 1.png

6.    WRFDA资料同化
我们知道,模式预报效果很大程度取决于初始场的准确度。但是还记得我们给模式提供的初始场是从哪里来的吗?

是的,它来自于6小时之前全球模式的预报结果。既然是预报,就一定会存在误差!那么我们要怎么修正预报的误差呢?这时,我们就要用到当前时刻的观测资料。

我们知道,全球模式预报场尽管存在误差,但毕竟是整齐的网格化数据,能够基本反映全球大气真实状况;而观测资料数量众多,但空间分布疏密不均,质量参差不齐,由于设备故障或算法问题导致的数据错误或不准确时常发生。我们通过资料同化的方法充分利用优质的观测资料、按权重采信准确度一般但又有一定利用价值的观测资料,以修正模式初始场;而明显不可信的观测资料一般直接剔除。相关理论知识在此不予展开,请感兴趣的同学自行学习。


回到Home目录:
  1. cd
复制代码
新建WRFDA运行目录:
  1. mkdir -p WRFDA/d01 WRFDA/d02 WRFDA/d03 WRFDA/obs
复制代码
然后将所需的namelist.input拷贝到对应目录,d01还需要拷贝更新边界条件的配置文件parame.in,观测资料拷贝到obs目录。
依次对三层嵌套的初始场进行同化:
  1. #d01:
  2. cd d01
  3. cp ~/WRF/run/wrfinput_d01 fg #背景场
  4. cp ../obs/prepbufr.gdas.20220401.t06z.nr.48h ob.bufr #常规观测
  5. cp ../obs/gdas.1bamua.t06z.20220401.bufr amsua.bufr #卫星AMSUA观测
  6. cp /pp_model/WRF-4.6.1/WRFDA/var/run/be.dat.cv3 be.dat #背景误差协方差矩阵
  7. cp /pp_model/WRF-4.6.1/WRFDA/run/LANDUSE.TBL .
  8. # cp /pp_model/WRF-4.6.1/WRFDA/var/run/VarBC.in .  ##如果导致WRFDA卡死,请删除VarBC.in文件
  9. cp /pp_model/WRF-4.6.1/WRFDA/var/run/radiance_info .
  10. ln -sf /pp_model/WRF-4.6.1/RTTOV/rtcoef_rttov12/rttov7pred54L rttov_coeffs
  11. /pp_model/WRF-4.6.1/WRFDA/var/build/da_wrfvar.exe
  12. #d01同化之后需要更新边界条件
  13. cp ~/WRF/run/wrfbdy_d01 .
  14. /pp_model/WRF-4.6.1/WRFDA/var/build/da_update_bc.exe
  15. cd ..
  16. #d02:
  17. cd d02
  18. cp ~/WRF/run/wrfinput_d02 fg #背景场
  19. cp ../obs/prepbufr.gdas.20220401.t06z.nr.48h ob.bufr #常规观测
  20. cp ../obs/gdas.1bamua.t06z.20220401.bufr amsua.bufr #卫星AMSUA观测
  21. cp /pp_model/WRF-4.6.1/WRFDA/var/run/be.dat.cv3 be.dat #背景误差协方差矩阵
  22. cp /pp_model/WRF-4.6.1/WRFDA/run/LANDUSE.TBL .
  23. cp /pp_model/WRF-4.6.1/WRFDA/var/run/VarBC.in .
  24. cp /pp_model/WRF-4.6.1/WRFDA/var/run/radiance_info .
  25. ln -sf /pp_model/WRF-4.6.1/RTTOV/rtcoef_rttov12/rttov7pred54L rttov_coeffs
  26. /pp_model/WRF-4.6.1/WRFDA/var/build/da_wrfvar.exe
  27. cd ..
  28. #d03:
  29. cd d03
  30. cp ~/WRF/run/wrfinput_d03 fg #背景场
  31. cp ../obs/prepbufr.gdas.20220401.t06z.nr.48h ob.bufr #常规观测
  32. cp ../obs/gdas.1bamua.t06z.20220401.bufr amsua.bufr #卫星AMSUA观测
  33. cp /pp_model/WRF-4.6.1/WRFDA/var/run/be.dat.cv3 be.dat #背景误差协方差矩阵
  34. cp /pp_model/WRF-4.6.1/WRFDA/run/LANDUSE.TBL .
  35. cp /pp_model/WRF-4.6.1/WRFDA/var/run/VarBC.in .
  36. cp /pp_model/WRF-4.6.1/WRFDA/var/run/radiance_info .
  37. ln -sf /pp_model/WRF-4.6.1/RTTOV/rtcoef_rttov12/rttov7pred54L rttov_coeffs
  38. /pp_model/WRF-4.6.1/WRFDA/var/build/da_wrfvar.exe
  39. cd ..
复制代码
至此WRFDA资料同化的全部流程已经完成。在科研工作中,我们还需要对同化结果进行细致的诊断分析,以评估资料和同化算法的质量。感兴趣的同学可以自行学习。

7.    使用同化后的初始场进行数值预报
我们通过WRFDA同化系统,得到了更加准确的模式初始场,我们将这些初始场拷贝到WRF运行路径下,即可进行数值预报试验。
  1. cd ~/WRF/run
  2. #删除之前的初始场和预报结果
  3. rm -rf wrfbdy_d01 wrfinput_d0* wrfout_*
  4. #拷贝同化后的初始场和边界条件
  5. cp ~/WRFDA/d01/wrfbdy_d01 .
  6. cp ~/WRFDA/d01/wrfvar_output wrfinput_d01
  7. cp ~/WRFDA/d02/wrfvar_output wrfinput_d02
  8. cp ~/WRFDA/d03/wrfvar_output wrfinput_d03
  9. #运行WRF
  10. mpirun -np $NUMBER_OF_PROCESSORS ./wrf.exe
复制代码

评分

参与人数 1金钱 +2 收起 理由
hsong1984 + 2

查看全部评分

密码修改失败请联系微信:mofangbao
回复 支持 4 反对 0

使用道具 举报

发表于 2022-4-21 13:38:15 | 显示全部楼层
感谢分享!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

发表于 2022-4-22 10:57:26 | 显示全部楼层

回帖奖励 +1 金钱

谢谢楼主,非常游泳,期待已久。
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

发表于 2022-4-22 14:57:29 | 显示全部楼层
感谢分享!!!!!!!!!!!!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

发表于 2022-4-23 11:24:55 | 显示全部楼层

回帖奖励 +1 金钱

666 来学习一下!!
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

发表于 2022-4-23 19:31:52 | 显示全部楼层

回帖奖励 +1 金钱

赞赞大佬,非常厉害
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

发表于 2022-4-23 22:57:34 | 显示全部楼层

回帖奖励 +1 金钱

谢谢分享!{:eb511:}{:eb511:}
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2022-4-24 16:17:53 | 显示全部楼层

回帖奖励 +1 金钱

想学习一下,感谢感谢感谢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2022-4-24 17:11:25 | 显示全部楼层

回帖奖励 +1 金钱

楼主厉害
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表