Извлечение данных из модели погоды в Grib
Я скачал grib1
данные модели из GFS, я использую Mac OS X и смог построить wgrib2
файл из NOAA, но не удалось извлечь данные. Я не нашел grib1
утилита для MAC.
Затем я запускаю эту программу http://www.giss.nasa.gov/tools/panoply/ которая смогла прочитать файл и увидеть данные, но у меня возникли некоторые проблемы с ним.
- значения приведены в других единицах (например, K для температуры и другие, отличные от мм в количестве осадков)
- Я могу экспортировать
CSV
но только значения не координаты
Что я хочу сделать, это:
- извлечь данные из файла grib через командную строку по широте и долготе
- извлечь данные ход к
MySQL
база данных, чтобы иметь возможность агрегировать данные (сумма, максимум, минимум) и т. д. - быть в состоянии построить / отобразить данные (я бы, вероятно, использовал сервис CartoDB)
Я уже могу извлечь grib
или можно загрузить из определенного региона, я хотел бы, чтобы эти данные можно было видеть в электронной таблице, например, широта, долгота, температура, ливень, ветер и т. д., а затем оттуда я могу взять их в базу данных, или sum / avg и т. д. или манипулировать данными.
Образец grib
файл данных: https://dl.dropboxusercontent.com/u/104462/neavilag_rain_wind_pressure.grb
Исходя из моего сценария, каков наилучший подход для удовлетворения моих потребностей? Можете ли вы предложить мне, что делать?
1 ответ
Рекомендую использовать cfgrib
который представляет собой читатель grib на основе Python, основанный на проекте Python xarray
и eccodes
программное обеспечение ЕЦСПП.
Это очень простой в использовании:
import cfgrib
cfgrib.open_datasets('your_grib_data.grib2')
А в xarray есть множество полезных встроенных функций. Радоваться, веселиться!
Если я делаю такого рода манипуляции, я обычно использую CDO, так как он правильно обрабатывает все виды собственных сеток. Если вы хотите вычислить сумму или среднее значение поля, например, для определенной области, будет некорректно просто вычислять среднее арифметическое с регулярной или уменьшенной гауссовой сеткой, поскольку она не учитывает изменение сетки. размеры клеток при движении к полюсам.
Поэтому я бы выбрал область с
cdo -f nc sellonlatbox,lon1,lon2,lat1,lat2 in.grb out.nc
Здесь я конвертирую в netcdf одновременно с опцией "-f nc". Многие программные пакеты легко читают netcdf для создания графиков (ncl, gdl/idl, grads, R, python, panoply и т. Д. И т. Д.).
Рассчитать статистику полей для файлов так же просто, как
cdo fldmean in.nc out.nc
cdo fldmax in.nc out.nc
cdo fldsum in.nc out.nc
Чтобы привести некоторые примеры, которые вы запрашиваете. Вы также можете делать статистику в измерении времени (тимман и т. Д.). Проверьте справочные страницы CDO для деталей. Я установил CDO на свой MAC, используя macports.