我知道有像软件wgrib2将在转换文件grib
和grib2
格式NetCDF
文件,但我需要走另一条路:从NetCDF
到grib2
,因为这里的当地天气办公室只能消耗在栅格数据grib2
格式。
看来,一个解决办法是在Python,使用NetCDF4-Python库 (或其他方式)来读取NetCDF
文件,并使用pygrib写grib2
。
有没有更好的办法?
我知道有像软件wgrib2将在转换文件grib
和grib2
格式NetCDF
文件,但我需要走另一条路:从NetCDF
到grib2
,因为这里的当地天气办公室只能消耗在栅格数据grib2
格式。
看来,一个解决办法是在Python,使用NetCDF4-Python库 (或其他方式)来读取NetCDF
文件,并使用pygrib写grib2
。
有没有更好的办法?
一些研究之后,我结束了使用英国气象局的“IRIS”包( 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文件不包含足够的元数据,你可能需要添加它,您也可以做虹膜。 这是一个完整的工作示例:
https://github.com/rsignell-usgs/ipython-notebooks/blob/master/files/Iris_CFSR_wave_wind.ipynb
你也可以利用气候数据运营商(CDO的)的任务- https://code.zmaw.de/projects/cdo/wiki
但需要与所有其他库安装软件。
我知道CDO是上面提到的,但我认为这将是有益的给完整的命令
cdo -f grb2 copy in.nc out.grb
ECMWF有一个基于命令行工具来做到这本: https://software.ecmwf.int/wiki/display/GRIB/grib_to_netcdf