1

我从 ECMWF 下载了 grib 格式的 Era interim 数据。有没有办法将具有多个波段的 grib 文件转换为 netCDF4,使波段保持 NETCDF 格式?

我尝试使用 cdo 操作,但输出将只是 grib 文件的第一个波段。

cdo -f nc copy input.grib output.nc
4

2 回答 2

1

python是的,使用,xarraycfgrib(需要 ECCODES)有一种非常舒适的方式。

按照github页面上的说明安装 cfgrib,您将在 eccodes 安装中拥有所有必需的 grib 表。

之后你只需要打开你的 grib 文件:

import xarray

data = xarray.open_dataset('path_to_grib_file.grib1', engine='cfgrib')
data.to_netcdf('netcdf_file.nc')
于 2020-11-23T08:03:36.710 回答
0

对于这种使用 ECMWF 数据的任务,通常最好安装 eccodes。例如在 Mac 上你可以做

brew install eccodes

这将为您提供许多有用的命令行工具,只要输入文件位于常规纬度/经度网格或常规高斯网格(键“typeOfGrid”应为“regular_ll”或“regular_gg”),您就可以转换为 netcdf

grib_to_netcdf -o output.nc input.grb 

这个工具比 CDO 更强大,因为它可以处理多个时间轴(例如,具有多个开始日期的季节性预测)以及额外的维度,例如集合成员编号,这可能会使 CDO 出错。

注意:问题的标题表明 netcdf4 是必需的,但您对 cdo 使用了 -f nc 选项。请注意,要使用 cdo 指定 netcdf4,您应该使用

cdo -f nc4 
于 2021-04-24T13:26:27.613 回答