Преобразование 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