2013-03-15 19 views
5

wiem, że to oprogramowanie jak wgrib2 że przekształci grib i grib2 pliki w formacie do NetCDF, ale muszę iść w drugą stronę, z NetCDF do grib2, ponieważ lokalne urzędy Pogoda tutaj można spożywać siatkowe dane w formacie grib2.Konwersja netcdf do GRIB2

Wydaje się, że jednym z rozwiązań mogłoby być w Pythonie, używając NetCDF4-Python library (lub inny), aby przeczytać NetCDF plików i korzystania pygrib napisać grib2.

Czy istnieje lepszy sposób?

Odpowiedz

5

Po dalszych badaniach skorzystałem z pakietu "Iris" z brytyjskiego urzędu skarbowego (http://scitools.org.uk/iris/docs/latest/index.html), który może odczytywać NetCDF, a także OPeNDAP, GRIB i kilka innych formatów, i umożliwia zapisywanie jako NetCDF lub GRIB.

Zasadniczo kod wygląda następująco:

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 

Ale jeśli plik netcdf nie zawiera wystarczających metadane, może trzeba go dodawać, które można również zrobić z Iris. Oto pełny przykład roboczych:

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

3

Można także używać operatorów danych klimatycznych (CDO) dla zadania - https://code.zmaw.de/projects/cdo/wiki

ale trzeba zainstalować oprogramowanie ze wszystkimi dodatkowymi bibliotekami.

+0

Wow, to wygląda na dość obszerne. Czy kiedykolwiek używałeś go do konwersji NetCDF4 na GRIB2? –

+0

Jest to rzeczywiście najlepszy sposób na zrobienie tego. W przypadku plików netCDF prędzej czy później CDO i/lub NCO będą bardzo przydatne. Są szybkie i niezawodne, przechowują metadane, są bezpłatne i niezwykle wszechstronne. Po nauce CDO i NCO można przeprowadzić dowolną manipulację na plikach gridowych. Te dwa są zdecydowanie najbardziej kompletnymi rozwiązaniami do pracy z plikami gridowymi bez potrzeby kodowania (R, Python są bardziej uniwersalne, ale zwykle wolniejsze). – AF7

+0

W odpowiedzi na Rich, wyjście GRIB2 jest możliwe dzięki użyciu flagi -f grb2, patrz poniżej dla pełnej komendy –

0

ECMWF posiada narzędzia opartego na linii poleceń właśnie do tego: https://software.ecmwf.int/wiki/display/GRIB/grib_to_netcdf

+1

pytanie dotyczyło netcdf do grib, a nie grib do netcdf –

+0

Prawda, ale N1B4 ma rację, wskazując, że ECMWF ma zgrabny zestaw narzędzi do obsługi grib/netcdf, chociaż uważam, że grib_api właśnie została zastąpiona. –

0

wiem CDO wspomniano powyżej, ale pomyślałem, że dobrze byłoby, aby dać pełny polecenie

cdo -f grb2 copy in.nc out.grb