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

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

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

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

4 ответа

Решение

После еще одного исследования я в конечном итоге использовал пакет "Ирис" из Британского метрополитена ( 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

Можно также использовать операторы климатических данных (cdo's) для этой задачи - 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

Другие вопросы по тегам