前言
本项目旨在解决在WRF的ungrib报错GRIB文件类型不一致
错误详情
在链接era5的single数据时后
进行ungrid.exe时出现以下报错
output format is WPS
Path to intermediate files is ./
*** stopping in gribcode ***\n
\tI was expecting a Grib1 file, but this is a Grib2 file.
\tIt is possible this is because your GRIBFILE.XXX files
\tare not all of the same type.
\tWPS can handle both file types, but a separate ungrib
\tjob must be run for each Grib type.\n
gribsize in gribcode
在测试了
https://forum.mmm.ucar.edu/threads/ungrib-error-for-grib1-and-or-grib2-files.13014/#:~:text=#1.%20Hi,%20forum.%20I%20am%20trying%20to%20ungrib%20ERA5%20surface
https://forum.mmm.ucar.edu/threads/era5-surface-data-not-found-in-wps.12540/#post-30200
等链接内提到的方法都行不通
我尝试看看下载的era5的single层数据变量
grib_ls -p editionNumber era5_sf.grib
结果如下
原来是一群grib1变量中出了一个grib2变量
对于这种情况,wrf论坛有人提过可以使用wgrib将grib1和grib2进行分离
但是在网上没有检索到相应的命令
于是我们把目光转向了欧洲中心开发的eccodes
解决方法
在网址https://perillaroc.github.io/eccodes-tutorial-cn/06-grib-advanced-topics/grib_1_to_2/#:~:text=%E5%A6%82%E4%BD%95%E5%B0%86%20GRIB%201
我们得知可以使用如下代码将grib1转为grib2
grib_set -s edition=2 in.grib1 out.grib2
那么反过来就是
grib_set -s edition=1 in.grib2 out.grib1
博主实测可行,已解决问题
补充
注意将grib2转为grib1即可,全转为grib2有可能会出现以下报错
ERROR: Vtable does not contain Grib2 decoding information. 11 or 12 columns of information is expected. *** stopping parse_table ***
另外欢迎熟悉wgrib的朋友留言,可以探索新的解决之路