【问题标题】:Converting NetCDF to GRIB2将 NetCDF 转换为 GRIB2
【发布时间】:2013-03-04 04:16:42
【问题描述】:

我知道有像wgrib2 这样的软件可以将gribgrib2 格式的文件转换为NetCDF 文件,但我需要另辟蹊径:从NetCDFgrib2,因为这里的当地气象局只能消费grib2格式的网格化数据。

似乎一种解决方案可能是在 Python 中,使用NetCDF4-Python library(或其他)读取NetCDF 文件并使用pygrib 写入grib2

有没有更好的办法?

【问题讨论】:

    标签: python netcdf grib cdo-climate


    【解决方案1】:

    经过更多研究,我最终使用了英国气象局的“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

    【讨论】:

      【解决方案2】:

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

      但需要安装带有所有附加库的软件。

      【讨论】:

      • 哇,这看起来相当广泛。你曾经用它把 NetCDF4 转换成 GRIB2 吗?
      • 这确实是最好的方法。在处理 netCDF 文件时,CDO 和/或 NCO 迟早会非常有用。它们快速可靠,保留元数据,免费且用途广泛。一旦你很好地学习了 CDO 和 NCO,就可以对网格文件进行任何操作。这两者是迄今为止处理网格文件的最完整的解决方案,无需编码(R、Python 更通用,但通常速度较慢)。
      • 回复 Rich,GRIB2 输出可以通过使用 -f grb2 标志,完整命令见下文
      【解决方案3】:

      我知道上面提到了 CDO,但我认为给出完整的命令会很有用

      cdo -f grb2 copy in.nc out.grb
      

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 问题是关于 netcdf 到 grib,而不是 grib 到 netcdf
        • 没错,但 N1B4 指出 ECMWF 有一个用于处理 grib/netcdf 的简洁工具集是正确的,尽管我相信 grib_api 刚刚被再次取代。
        猜你喜欢
        • 2021-06-06
        • 2014-05-20
        • 1970-01-01
        • 2019-02-02
        • 2012-02-10
        • 2018-05-12
        • 2021-06-02
        • 2019-12-17
        • 2021-02-23
        相关资源
        最近更新 更多