我建议cdo。CDO 可以读取 GRIB 文件(虽然我认为它只支持 GRIB2 文件)并且有许多计算方式、子集、重新网格化等选项。如果您也添加该-f nc选项,它将自动输出到 NetCDF。
ECMWF 的ecCodes 库可能也会派上用场。
我通常结合使用 CDO 和 ecCodes。例如,如果我想处理一个包含来自仅包含一个时间步长的气候模型的全球气象场的 GRIB 文件,我将使用以下内容:
# This ecCodes command splits the GRIB file "model_output+000000" into different
# vertical levels. In this case, the file only contains one kind of vertical level
# - pressure (hPa), but it could conceivably contain output on sigma levels, hybrid
# sigma coordinates, altitude etc. The "+000000" refers to the timestep contained
# in this file (the zeroth timestep).
grib_copy model_output+000000 model_output+000000_[typeOfLevel]
# The "*_isobaricInhPa" file was created by the previous command.
cdo -f nc setgridtype,regular model_output+000000_isobaricInhPa model_output+000000.nc