Как вывести значения из файла Grib1/.grb

Мне интересно, есть ли способ вывести значения из файла grib1? Моя конечная цель - найти значения для отдельных сообщений по широте и долготе или, по крайней мере, в точке сетки. Я использую систему Linux. Wgrib, кажется, ничего не делает, кроме чтения метаданных о сообщениях или их восстановления.

Я немного знаю Python, поэтому я могу использовать Pygrib, но я не знаю, как извлечь значения для определенной широты и долготы.

Вот несколько файлов.grb, с которыми можно поиграть. http://nomads.ncdc.noaa.gov/data/gfs-avn-hi/201402/20140218/

Спасибо за ответ,

2 ответа

Решение

Если вас интересуют данные из NOMADS, я бы предложил пройти через их сервер данных THREDDS, который позволит вам получить доступ к данным, указав широту и долготу, и вы можете получить эти данные обратно в виде файла csv, если хотите. Для этого сначала посетите сайт NOMADS TDS:

http://nomads.ncdc.noaa.gov/thredds/catalog/catalog.html

Примеры файлов данных, на которые вы ссылаетесь, можно найти здесь:

http://nomads.ncdc.noaa.gov/thredds/catalog/gfs-003/201402/20140218/catalog.html

Найдите сетку, которая вас интересует, скажем, поле анализа запуска 18Z:

http://nomads.ncdc.noaa.gov/thredds/catalog/gfs-003/201402/20140218/catalog.html?dataset=gfs-003/201402/20140218/gfs_3_20140218_1800_000.grb

Перейдите по ссылке с надписью "NetcdfService":

http://nomads.ncdc.noaa.gov/thredds/ncss/grid/gfs-003/201402/20140218/gfs_3_20140218_1800_000.grb/dataset.html

В верхней части этой страницы нажмите "Набор точечных данных":

http://nomads.ncdc.noaa.gov/thredds/ncss/grid/gfs-003/201402/20140218/gfs_3_20140218_1800_000.grb/pointDataset.html

Затем проверьте интересующие вас параметры, широту / долготу (будет выбрана ближайшая точка сетки к этой широте и долготе) и тип выходного формата.

Этот веб-интерфейс в основном генерирует URL-адрес доступа, который, если я хочу, чтобы Температура по Боулдеру, CO, возвращалась в CSV, это выглядит так:

http://nomads.ncdc.noaa.gov/thredds/ncss/grid/gfs-003/201402/20140218/gfs_3_20140218_1800_000.grb?var=Temperature_surface&latitude=40&longitude=-105&temporal=all&accept=csv&point=true

Как видно из приведенного выше URL, вы можете сгенерировать их довольно легко и сделать запрос, не выполняя все вышеописанные шаги.

Этот метод доступа (NetcdfSubsetService) можно легко комбинировать с Python. Для примера, посмотрите эту записную книжку ipython:

http://nbviewer.ipython.org/github/Unidata/tds-python-workshop/blob/master/ncss.ipynb

Конкретно первая и вторая ячейки в блокноте.

Обратите внимание, что вы можете получить последние данные GFS, в которых весь прогон модели содержится в одном файле grib, по адресу:

http://thredds.ucar.edu/thredds/idd/modelsNcep.html

Это позволит вам сделать запрос, как и выше, но несколько раз, используя один запрос.

Ура,

Шон

Вы можете использовать инструменты grib, в частности grib_ls и grib_get, чтобы получить значения от 1 точки сетки или 4 точек сетки, ближайших к указанной широте и долготе. Таким образом, вы можете использовать ближайшую соседку или билинейную интерполяцию или что угодно, чтобы получить свою ценность. Прочитайте эту презентацию, grib_ls начинается на странице 31:

http://nwmstest.ecmwf.int/services/computing/training/material/grib_api/grib_api_tools.pdf

При установке инструментов grib вы получите несколько инструментов, которые помогут вам поиграться с файлами GRIB.

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