GRIB2数据修改key信息
10/21
本文最后更新于
2023年10月21日,已超过
737天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
问题
有一个grib2数据,使用wgrib2查看元信息:
$ wgrib2 in.grb
其中SPFH场垂直层信息为reserved,未能显示正确的等压面层次。
使用eccodes中grib_ls工具查看
$ grib_ls in.grb输出如下:

其中typeOfLevel和level两个key信息对于比湿q(即wgrib2中显示的SPFH)有问题。
层次类型值为unknown,而不是像正常场一样为isobaricInhPa,其level单位是Pa,而其它正常显示的场单位是hPa,应该就是这个问题导致在wgrib2查看时出现异常。
修改key信息
通过eccodes提供的grib_set工具修改key信息使grib文件正常显示元信息。
$ grib_set -s typeOfLevel=isobaricInhPa -w typeOfLevel=unknown in.grib out.grib-w只对匹配该选项条件的GRIB messages执行set操作,其他不符合的messages原封不动拷贝到新的grib文件。-s设置key=value
修改后wgrib2查看

附:eccodes简要安装说明
最新的eccodes基于CMake构建。
$ tar xzvf eccodes-2.30.0-Source.tar.gz
$ cd eccodes-2.30.0-Source
$ cmake -DCMAKE_INSTALL_PREFIX=/path/to/install/eccodes -DENABLE_AEC=OFF -B build
$ cmake --build build --target install
# 设置环境变量
$ vi ~/.bashrc
export PATH=/path/to/install/eccodes/bin:$PATH
export ECCODES_DIR=/path/to/install/eccodes
$ source ~/.bashrceccodes一些功能需要依赖其它库,比如NETCDF/JPG/PNG等,具体cmake开关见官网说明。