Преобразование NetCDF в GRIB2

Я знаю, что существует программное обеспечение, такое как wgrib2, которое преобразует файлы в grib и grib2 в NetCDF файлы, но мне нужно пойти другим путем: из NetCDF в grib2, потому что местные метеослужбы здесь могут использовать данные с координатной сеткой только в формате grib2.

Похоже, что одним из решений может быть Python с использованием библиотеки NetCDF4-Python ( или другое) для чтения файлов NetCDF и использования pygrib для записи grib2.

Есть ли способ лучше?


person Rich Signell    schedule 15.03.2013    source источник


Ответы (4)


После дополнительных исследований я остановился на пакете 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

person Rich Signell    schedule 02.05.2013

Для этой задачи также можно использовать операторов климатических данных (cdo) -https://code.zmaw.de/projects/cdo/wiki

но нужно установить ПО со всеми дополнительными библиотеками.

person msi_gerva    schedule 05.04.2013
comment
Ничего себе, это выглядит довольно обширно. Вы когда-нибудь использовали его для преобразования NetCDF4 в GRIB2? - person Rich Signell; 19.04.2013
comment
Это действительно лучший способ сделать это. При работе с файлами netCDF рано или поздно CDO и/или NCO будут очень полезны. Они быстрые и надежные, сохраняют метаданные, бесплатны и чрезвычайно универсальны. После того, как вы хорошо изучите CDO и NCO, вы сможете выполнять любые манипуляции с файлами с координатной сеткой. Эти два решения на сегодняшний день являются наиболее полными решениями для работы с файлами с сеткой без необходимости написания кода (R и Python более универсальны, но обычно медленнее). - person AF7; 04.09.2015
comment
В ответ на Rich, вывод GRIB2 возможен с использованием флага -f grb2, полную команду см. ниже. - person Adrian Tompkins; 08.08.2017

Я знаю, что CDO упоминается выше, но я подумал, что было бы полезно дать полную команду

cdo -f grb2 copy in.nc out.grb
person Adrian Tompkins    schedule 07.06.2017

Для этого у ECMWF есть инструмент командной строки: https://software.ecmwf.int/wiki/display/GRIB/grib_to_netcdf

person N1B4    schedule 27.01.2015
comment
вопрос был о netcdf для граба, а не граба для netcdf - person Rich Signell; 20.01.2016
comment
Верно, но N1B4 правильно указывает, что у ECMWF есть удобный набор инструментов для работы с grib/netcdf, хотя я считаю, что grib_api только что снова был заменен. - person Adrian Tompkins; 07.06.2017