将NetCDF格式转换成GRIB2格式

9
我知道有像wgrib2这样的软件,可以将gribgrib2格式的文件转换为NetCDF文件,但我需要相反的方式:从NetCDFgrib2,因为这里的本地气象办公室只能使用grib2格式的网格数据。

看起来,一个解决方案可能是使用Python,使用NetCDF4-Python库(或其他)读取NetCDF文件,并使用pygrib编写grib2

是否有更好的方法?

4个回答

10

经过更多的研究,我最终选择使用英国Met Office的"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文件不包含足够的元数据,你可能需要添加它。你也可以使用Iris完成这项任务。这里提供一个完整的可行示例:

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


5

哇,看起来相当广泛。你曾经用它将NetCDF4转换为GRIB2吗? - Rich Signell
1
这确实是做这件事的最佳方式。在处理netCDF文件时,迟早会非常有用CDO和/或NCO。它们快速可靠,保留元数据,免费且极其灵活。一旦您学会了CDO和NCO,可以执行任何格网文件上的操作。这两个解决方案远远是处理格网文件的最完整解决方案,无需编写代码(R、Python更加灵活,但通常较慢)。 - AF7
1
回复Rich,可以通过使用“-f grb2”标志来输出GRIB2格式,完整命令如下所示。 - ClimateUnboxed

4

我知道之前已经提到了CDO,但是我认为给出完整的命令会更有帮助。

cdo -f grb2 copy in.nc out.grb

0

2
问题是关于将netcdf转换为grib,而不是将grib转换为netcdf。 - Rich Signell
没错,但N1B4指出ECMWF有一个处理grib/netcdf的好工具集,尽管我相信grib_api已经被取代了。 - ClimateUnboxed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接