将NetCDF转换为GRIB2

时间:2013-03-15 12:32:59

标签: python netcdf grib

我知道有像wgrib2这样的软件会将gribgrib2格式的文件转换为NetCDF个文件,但我需要采用另一种方式:from { {1}}到NetCDF,因为此处的当地气象局只能使用grib2格式的网格化数据。

似乎有一个解决方案可以在Python中,使用NetCDF4-Python library(或其他)来阅读grib2文件并使用pygrib来编写NetCDF

有更好的方法吗?

4 个答案:

答案 0 :(得分:8)

经过一番研究,我最终使用了英国气象局" Iris" package(http://scitools.org.uk/iris/docs/latest/index.html),它可以读取NetCDF以及OPeNDAP,GRIB和其他几种格式,并允许保存为NetCDF或GRIB。

基本上代码如下:

import iris

cubes = iris.load('input.nc')       # each variable in the netcdf file is a cube
iris.save(cubes[0],'output.grib2')  # save a specific variable to grib 

但是如果您的netcdf文件没有包含足够的元数据,您可能需要添加它,您也可以使用Iris。这是一个完整的工作示例:

https://github.com/rsignell-usgs/ipython-notebooks/blob/master/files/Iris_CFSR_wave_wind.ipynb

答案 1 :(得分:5)

还可以使用气候数据运算符(cdo)来完成任务 - https://code.zmaw.de/projects/cdo/wiki

但需要安装包含所有其他库的软件。

答案 2 :(得分:2)

我知道上面提到了CDO,但我认为提供完整的命令

是有用的
cdo -f grb2 copy in.nc out.grb

答案 3 :(得分:0)

ECMWF有一个基于命令行的工具:https://software.ecmwf.int/wiki/display/GRIB/grib_to_netcdf