【问题标题】:converting Grib to netcdf4将 Grib 转换为 netcdf4
【发布时间】:2021-03-04 08:18:33
【问题描述】:
我从 ECMWF 下载了 grib 格式的 Era interim 数据。有没有办法将具有多个波段的 grib 文件转换为 netCDF4,保持 NETCDF 格式的波段?
我尝试使用 cdo 操作,但输出只会是 grib 文件的第一个波段。
cdo -f nc copy input.grib output.nc
【问题讨论】:
标签:
netcdf
netcdf4
cdo-climate
grib
eccodes
【解决方案1】:
是的,有一种使用python、xarray 和cfgrib(需要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')
【解决方案2】:
对于这种使用 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