Получение данных о погоде из файла GRIB для определенных координат и даты / времени

У меня есть файл GRIB с прогнозом ECMWF, и я очень хочу извлечь из него данные на основе входных координат. Например, укажите координаты и получите прогноз на следующие 5 дней на определенное время (скорость ветра, скорость порывов ветра, направление ветра, высота волны ...).

Я думаю, что Python, вероятно, лучший вариант для этого. Может ли кто-нибудь указать мне правильное направление? Дай мне немного.

Я предполагаю, что двоичный файл необходимо преобразовать в JSON (или другой читаемый формат), а затем я могу проанализировать и найти данные на основе предоставленных координат?


person InsuredApple    schedule 15.03.2021    source источник
comment
конвертировать в json с помощью такого инструмента, как github.com/cambecc/grib2json. Затем вы можете заполнить БД данными или выполнить прямой поиск с помощью python.   -  person balderman    schedule 15.03.2021
comment
Спасибо. Я работаю над этим. Спасибо. Интернет сейчас немного медленный на лодке .. и я работаю над получением mvn.   -  person InsuredApple    schedule 17.03.2021


Ответы (1)


Один из способов сделать это в собственном Python - использовать xarray и cfgrib. Вот руководство. Вот ключевой код из учебника:

    import xarray as xr
    ds = xr.tutorial.load_dataset('<your_grib>.grib', engine='cfgrib')

Как только вы это сделаете, все поля в файле grib станут доступны. Общая форма

    ds.<field_name>[<index>].values

Имейте в виду, что этот код работает очень медленно по сравнению с использованием инструментов GRIB, предоставляемых Национальной метеорологической службой США. Ознакомьтесь с degrib. Большая часть кода обработки погоды написана на C и Fortran, потому что это намного быстрее, чем Python. В зависимости от доступных вычислительных ресурсов и размера данных вы не сможете обработать весь файл grib в Python до истечения срока действия прогноза, который он содержит.

Наконец, эта тема более подробно обсуждается на обмене стеками ГИС. grib там тег.

person Craeft    schedule 16.03.2021
comment
Спасибо!!! Я попробую. Просто пытаюсь снова запустить мою среду разработки Python. Отлично!!! - person InsuredApple; 17.03.2021
comment
Спасибо @Craeft, это сработало. Похоже, что PredictWind на самом деле загружает не файлы propper grib, а усеченные файлы. Так что мне нужно выяснить формат их файлов. - person InsuredApple; 17.03.2021
comment
Что вы имеете в виду под собственными grib-файлами? - person Craeft; 17.03.2021
comment
Вы можете получить данные прогноза NOAA по адресу ncdc.noaa.gov/data-access/model-data/model-datasets/ - person Craeft; 17.03.2021
comment
Прокрутите вниз до «Прогнозы GFS». Это настоящие уловки и охватывают весь мир - person Craeft; 17.03.2021
comment
Я нашел файлы GRIB от Predict Wind. cfgrib по какой-то причине принимает их все, кроме файлов ECMWF. - EOFError: в файле '/Users/kevin/Downloads/Gribs/ECMWF_WaG_50k_14d_3h_37N_19S_-68E_-89W_20210316_0300.grb' не найдено допустимого сообщения - не уверен, почему это происходит. Я пытаюсь выяснить, могу ли я подтвердить, что это файл (что вероятно), а не cfgrib. И СПАСИБО за помощь !! - person InsuredApple; 17.03.2021