Расшифровать Grib-файл

Полезные ссылки:
Метеоцентр.Азия - наш сайт с высокодетализированными прогнозами погоды по пунктам Pоссии и мира
Облегчённая версия Метеоклуба (для смартфонов)

Расшифровать Grib-файл

Сейчас в Метеоклубе:
Участников - 1 [ Mesocyclon ]
Максимальное одновременное количество посетителей: 308 [2 Ноя 2013 22:42]
Гостей - 296 / Участников - 12

 - Начало - Ответить - Статистика - Pегистрация - Поиск -

МЕТЕОКЛУБ : независимое сообщество любителей метеорологии (Европа и Азия) : ФОРУМ О ПОГОДЕ И ПРИРОДЕ / Компьютерная техника и интернет в метеорологии / Расшифровать Grib-файл
. 1 . 2 . >>
Автор Сообщение
Eskel
Участник

Томск
# Дата: 12 Апр 2009 12:46


Доброго времени суток.
Может кто нибудь подсказать где можно найти информацию для расшифровки Grib-файлов. Буду очень благодарен.

Corvus
Автор сайта

###Corvus###
# Дата: 12 Апр 2009 16:31


Eskel

Есть отличная программа для конвертации гриб-файлов в разные бинарные и текстовые форматы - wgrib. Правда, она работает в режиме командной строки, но зато есть версии и для Винды, и под Юниксы.

Погуглите по этому слову.

Eskel
Участник

Томск
# Дата: 13 Апр 2009 18:00


Спасибо за ответ. Программка есть, только вот под Вистой она тухнет сразу же - думал в ней косяк. Пойду на ХР попробую...

Eskel
Участник

Томск
# Дата: 15 Апр 2009 20:19


Ну вот, заработало, данные уидел. Но разобраться в них тяжело.
Возможно существует описание на русском языке? Никто не встречал?

zzann
Участник

Севастополь
# Дата: 16 Апр 2009 08:23


Eskel:
Описание чего? Ваших данных?
Или программы wgrib? или формата grib?

Eskel
Участник

Томск
# Дата: 16 Апр 2009 08:41


zzann, ну вот я запустил через wgrib полученный файл с данными, мне в консоль вывалились эти данные. Как мне определить каким координатам что соответствует, где спрятана температура, скорость и направление ветра, например.

zzann
Участник

Севастополь
# Дата: 16 Апр 2009 11:45


Eskel:

можно сначала создать inventory file, так:
wgrib filename >inventory.txt

это текстовый файл, в котором каждая строка - описание одной записи в исходном гриб-файле. Там можно разобраться, там указаны дата, уровень и т.д.

теперь можно вытащить одну строку в отдельный текстовый файл, например 1.txt, и извлечь из исходного гриба запись, соответствующую этой строке, так:
wgrib filename -i -nh <1.txt

при этом в выходном файле с именем dump будет содержаться эта запись. Формат бинарный с плавающей точкой 4-байтовый.

-i означает, что запись выбирается по инвентори-файлу
-nh убирает шапку в выходном файле

есть всякие другие опции у wgriba

Eskel
Участник

Томск
# Дата: 16 Апр 2009 12:34


Спасибо! Вот-вот, именно такое описание я и хочу найти)

А если на примере? Вот допустим у меня первая строка инвертори-файла.
1:0:d=09041100:HGT:kpds5=7:kpds6=100:kpds7=10:TR=1 0:P1=0:P2=0:TimeU=1:10 mb:anl:NAve=0
и из серединки
117:11388252:d=09041100:VGRD:kpds5=34:kpds6=100:kp ds7=600:TR=10:P1=0:P2=0:TimeU=1:600 mb:anl:NAve=0

Как определить для каких координат эти данные, какого времени? Что значат: HGT, VGRD, TR, TimeU и прочее. Об этом где нибудь доступно написано? Или до всего надо опытным путём доходить?

zzann
Участник

Севастополь
# Дата: 16 Апр 2009 14:16


Eskel
время 11 апреля 2009 00 часов
HGT - геопотенциал
VGRD - мерид. компонента ветра
уровень - 10mb и 600mb


добавьте опцию -V (verbose, многословный) или -v (не очень многословный)
wgrib filename -V >inventory.txt
получите координаты

kpds7 - фирменный код переменной (американский, в Европе другие номера)
kpds6 - фирменный код типа уровня
kpds5 - фирменный код еще чего-то

Где читать? пишите в Гугле wgrib help и читайте.

zzann
Участник

Севастополь
# Дата: 16 Апр 2009 16:04


Eskel
насчет kpds напутал...

вот здесь вроде хорошо написано и правильно
http://www.cpc.noaa.gov/products/wesley/wgrib.html

Lisonka
Участник

Санкт-Петербург, РГГМУ + Тулуза, Meteo France
# Дата: 17 Апр 2009 09:15


kpds5, kpds6, kpds7 - по идее, должны быть номера кодов метеорологических переменных ВМО. Но на практике многие прогностические центры не соблюдают эту кодировку и кладут туда, что им удобно. Иначе говоря, GRIB - не совсем стандарт, это - полустандарт. Поэтому желательно знать, кто именно этот GRIB-файл произвел на свет, и что было заложено в кодировку. На расшифровку wgrib типа
HGT - геопотенциал
VGRD - мерид. компонента ветра

очень уж полагаться не стоит. Лучше определять переменные по kpds и по таблицам соответствующего центра.

zzann
Участник

Севастополь
# Дата: 17 Апр 2009 09:51


Lisonka
Ну да, так надежней. Там на странице http://www.cpc.noaa.gov/products/wesley/wgrib.html
все таблицы kpds5(код переменной) приведены, и европейские и американские

Lisonka
Участник

Санкт-Петербург, РГГМУ + Тулуза, Meteo France
# Дата: 17 Апр 2009 12:53


zzann
и европейские и американские

Они еще и в Европе у разных центров могут быть разными. Надо смотреть на таблицы того центра, откуда берется информация.

Eskel
Участник

Томск
# Дата: 17 Апр 2009 17:12 - Поправил: Eskel


wgrib filename -V >inventory.txt
Ну да, так стало ещё чуть-чуть попонятнее куда двигаться дальше:)

Т.е., как я понял, подробно структуру grib-файла необходимо искать именно на сервере, предосавляющем метеоданные?

zzann
Участник

Севастополь
# Дата: 17 Апр 2009 18:55


Eskel
Не структуру файла, а названия переменных. В принципе можно особо не морочиться с этим, данные у вас наверно американские. Или опеhативный анализ-прогноз, или реанализ.

Таблицы для этих двух типов данных отличаются незначительно

ftp://ftp.cpc.ncep.noaa.gov/wd51we/wgrib/reanal_nc eptab
ftp://ftp.cpc.ncep.noaa.gov/wd51we/wgrib/opn_ncept ab

если вы не используете какие-то экзотические переменные, тогда
то что wgrib пишет про имя переменной, есть правда

Eskel
Участник

Томск
# Дата: 17 Апр 2009 19:08 - Поправил: Eskel


Сейчас как раз и занимаюсь переводом аналогичного файлика:)

zzann, если это важно, то данные я беру из этого источника:
http://nomad5.ncep.noaa.gov/cgi-bin/ftp2u_gfs_dir. sh

zzann
Участник

Севастополь
# Дата: 18 Апр 2009 12:25


ну да, американский оперативный анализ-прогноз, одноградусный ГФС.
У них там в соседней директории лежат файлы с расширением .ctl
http://nomad5.ncep.noaa.gov/pub/gfs/gfs20090417/gf s_00z.ctl

В них можно посмотреть точное соответствие между кодом и именем переменной.

snowstorm
Участник

Russian Federation
# Дата: 21 Jun 2010 23:25


я открываю эту программу, а она тут же закрывается

lalex
Участник

Москва+Крым
# Дата: 31 Май 2011 23:45 - Поправил: lalex


Где найти правильный inventory для GFS 0,5х0,5? Там откуда рекомендуют брать файлы GRIB, на основном сервере NOMADS, что-то нет описаний, или они ловко спрятаны :( Пока использую описание с NOAA.gov. Вроде по основным параметрам соответствует (температура, извлекаемая по коду 190, похожа на температуру ;)

Также этот перечень соответствует тому, что выдает WGRib. Однако если глянуть как работает GRIB-фильтр на NOMADS, то там в GRIBах есть еще куча параметров, а в перечне они не звучат: TMIN, TMAX например.

Подскажите, пожалуйста, где брать максимально полное описание, соответствующее текущим файлам GRIB? Не хотелось бы через фильтр всегда работать...

Corvus
Автор сайта

###Corvus###
# Дата: 1 Jun 2011 09:20


Где найти правильный inventory для GFS 0,5х0,5?
lalex

В первоисточнике :)
То есть на серверах НОМАДС.

что-то нет описаний, или они ловко спрятаны :(

Есть, и не очень спрятаны :)

Текстовое описание переменных
http://nomad1.ncep.noaa.gov:9090/dods/gfs/rotating /gfs_00z.info

Инвентори в чистом виде
http://nomad3.ncep.noaa.gov/pub/gfs/rotating/gfs.t 00z.pgrbf00.inv

Есть даже технология выборочного скачивания полей с помощью инвентори
http://www.cpc.ncep.noaa.gov/products/wesley/fast_ downloading_grib.html

TornadoF5
Участник

Харьков, Украина. (Игорь)
# Дата: 1 Jun 2011 19:20


А подходит программа wgrib для расшифровки формата .grib2? Или для этого нужна другая прога?

Corvus
Автор сайта

###Corvus###
# Дата: 1 Jun 2011 19:25


TornadoF5

Для этого есть прога wgrib2, там параметры командной строки несколько отличаются.

http://www.cpc.ncep.noaa.gov/products/wesley/wgrib 2/

TornadoF5
Участник

Харьков, Украина. (Игорь)
# Дата: 1 Jun 2011 19:51


Corvus
А Вы знаете, как установить эту программу?? Я скачал архив с этого сайта, а в нём куча файлов с непонятными расширениями, но нету файла .exe

lalex
Участник

Москва+Крым
# Дата: 1 Jun 2011 20:18 - Поправил: lalex


Я пользуюсь WGrib2, никаких проблем с установкой и первым запуском не было. По ссылке для WindowsXP лежат и dll, и exe-шник. Распаковывать ничего не надо было, просто тупо скачал все файлы по очереди и поместил в один каталог. Вроде пишут, что GFS перешла на Grib2, поэтому с Grib-1 не стал экспериментировать.

2Corvus: спасибо большое. Еще вопрос - я почему-то пристрастился выкачивать по номеру (индексу) параметра, например

c:\programs\wgrib\wgrib2.exe infile -d 190 -text outfile

В inventory, которую выдает сам Wgrib, номер 190 это

190 2 m above ground TMP analysis Temperature [K]

А в полной inventory по вашей второй ссылке, gfs.t00z.pgrbf00.inv, температура на поверхности это вроде бы номер 207

207:20998704:d=2011060100:TMP:sfc:anl:NAve=0

Как все-таки правильнее параметры выдергивать из GRIB, по имени, что ли? С ходу не нашел такой опции.

Corvus
Автор сайта

###Corvus###
# Дата: 1 Jun 2011 20:50 - Поправил: Corvus


правильнее параметры выдергивать из GRIB, по имени, что ли?
lalex

Да, по подстроке. Примерно так:

#!/bin/sh
#
$HOME/get_inv.pl http://nomad3.ncep.noaa.gov/pub/gfs/rotating/gfs.t 18z.pgrbf03.inv | egrep "(:TMP:2 m above gnd:|:RH:2 m above gnd:|:TMAX:2 m above gnd:|:TMIN:2 m above gnd:|:UGRD:10 m above gnd:|:VGRD:10 m above gnd:|:CPRAT:sfc:|:APCP:sfc:|:CSNOW:sfc:|:CICEP:sfc :|:CFRZR:sfc:|:CRAIN:sfc:|:CRAIN:sfc:|:LFTX:sfc:|: CAPE:sfc:|:CIN:sfc:|:HGT:sfc:|:TMP:sfc:|:HGT:1000 mb:|:TMP:1000 mb:|:RH:1000 mb:|:VVEL:1000 mb:|:UGRD:1000 mb:|:VGRD:1000 mb:|:HGT:975 mb:|:TMP:975 mb:|:RH:975 mb:|:VVEL:975 mb:|:UGRD:975 mb:|:VGRD:975 mb:|:HGT:950 mb:|:TMP:950 mb:|:RH:950 mb:|:VVEL:950 mb:|:UGRD:950 mb:|:VGRD:950 mb:|:HGT:925 mb:|:TMP:925 mb:|:RH:925 mb:|:VVEL:925 mb:|:UGRD:925 mb:|:VGRD:925 mb:|:HGT:900 mb:|:TMP:900 mb:|:RH:900 mb:|:VVEL:900 mb:|:UGRD:900 mb:|:VGRD:900 mb:|:HGT:875 mb:|:TMP:875 mb:|:RH:875 mb:|:VVEL:875 mb:|:UGRD:875 mb:|:VGRD:875 mb:|:HGT:850 mb:|:TMP:850 mb:|:RH:850 mb:|:VVEL:850 mb:|:UGRD:850 mb:|:VGRD:850 mb:|:HGT:800 mb:|:TMP:800 mb:|:RH:800 mb:|:VVEL:800 mb:|:UGRD:800 mb:|:VGRD:800 mb:|:HGT:750 mb:|:TMP:750 mb:|:RH:750 mb:|:VVEL:750 mb:|:UGRD:750 mb:|:VGRD:750 mb:|:HGT:700 mb:|:TMP:700 mb:|:RH:700 mb:|:VVEL:700 mb:|:UGRD:700 mb:|:VGRD:700 mb:|:HGT:650 mb:|:TMP:650 mb:|:RH:650 mb:|:VVEL:650 mb:|:UGRD:650 mb:|:VGRD:650 mb:|:HGT:600 mb:|:TMP:600 mb:|:RH:600 mb:|:VVEL:600 mb:|:UGRD:600 mb:|:VGRD:600 mb:|:HGT:550 mb:|:TMP:550 mb:|:RH:550 mb:|:VVEL:550 mb:|:UGRD:550 mb:|:VGRD:550 mb:|:HGT:500 mb:|:TMP:500 mb:|:RH:500 mb:|:VVEL:500 mb:|:UGRD:500 mb:|:VGRD:500 mb:|:HGT:400 mb:|:TMP:400 mb:|:RH:400 mb:|:UGRD:400 mb:|:VGRD:400 mb:|:HGT:350 mb:|:TMP:350 mb:|:RH:350 mb:|:UGRD:350 mb:|:VGRD:350 mb:|:HGT:300 mb:|:TMP:300 mb:|:RH:300 mb:|:UGRD:300 mb:|:VGRD:300 mb:|:HGT:250 mb:|:TMP:250 mb:|:RH:250 mb:|:UGRD:250 mb:|:VGRD:250 mb:|:HGT:200 mb:|:TMP:200 mb:|:RH:200 mb:|:UGRD:200 mb:|:VGRD:200 mb:)" | $HOME/get_grib.pl http://nomad3.ncep.noaa.gov/pub/gfs/rotating/gfs.t 18z.pgrbf03 $HOME/0_21.grb
#




Кстати, это анализ (фактическая Т в исх. срок), Вам он не нужен:

TMP:sfc:anl:

Надо начинать брать данные со смещения +3 ч.

TornadoF5
Участник

Харьков, Украина. (Игорь)
# Дата: 1 Jun 2011 21:14


lalex
Спасибо за ссылку!!!
А как в командной строке нужно записывать, чтобы прога расшифровала???
Можете скинуть примерчик?

lalex
Участник

Москва+Крым
# Дата: 1 Jun 2011 21:30 - Поправил: lalex


Спасибо. Правда, я пока учусь работать с WGrib, а ваш пример для скрипта $HOME/get_inv.pl - но примерно ясно, для WGrib тоже есть опция grep:

wgrib2 grb | grep ":HGT:" | wgrib2 -i grb -bin dump
write HGT fields to "dump"

Насчет 00z понятно: кроме того что это уже "прошло", там другой набор параметров - 301 шт, а в прогнозах 344. Я что-то не с того начал. Пойду дальше тренироваться ;)

Corvus
Автор сайта

###Corvus###
# Дата: 1 Jun 2011 21:50


WGrib тоже есть опция grep:


Это не опция, а передача выходного потока wgrib2 на вход в стандартную юниксовую утилиту grep (она делает поиск по подстроке), а затем она в свою очередь передаёт выходной поток опять на входной поток в wgrib2.

Передача потоков называется конвейером и обозначается |.
Разумеется, речь идёт о компе под Юниксом или Линуксом (на сервере хостинга).

lalex
Участник

Москва+Крым
# Дата: 1 Jun 2011 22:22 - Поправил: lalex


Конечно же, прошу прощения. Я имел в виду вот это:

wgrib2 -match ":HGT:" grb -bin dump

Чтобы разобраться с inventory, скачал из разных каталогов файлы Grib2 (c Nomads и из Nomads3-Rotating). Извлекая inventory с помощью WGrib, получаем одинаковые списки параметров. И там и там 308 строк, Inventory со второго сервера тоже этим двум извлеченным соответствует (только там ошибочки встречаются, типа сбоев ;)

215:12340164:d=2011060100:FLDCP:surface:6 hour fcst:
216:12366290:d=2011060100:var discipline=0 center=7 local_table=1 parmcat=6 parm=201:surface:6 hour fcst:
217:12404697:d=2011060100:LFTX:surface:6 hour fcst:


В общем получается, inventory извлеченный непосредственно из Grib, самый надежный (?)

И еще вопросик, если не надоел: Gribы-2 из из Nomads3-Rotating весят по 18Мб, c Nomads - больше 55Мб. Откуда такая разница, вроде бы параметры одни и те же, один и тот же прогон (и срок). Разный тип данных (размерность чисел)? Или просто упаковка?

Corvus
Автор сайта

###Corvus###
# Дата: 2 Jun 2011 10:34


Gribы-2 из из Nomads3-Rotating весят по 18Мб, c Nomads - больше 55Мб. Откуда такая разница, вроде бы параметры одни и те же, один и тот же прогон (и срок). Разный тип данных (размерность чисел)? Или просто упаковка?

lalex

По первой ссылке ГРИБ2, он упаковывает данные более компактно, чем ГРИБ1.

. 1 . 2 . >>
Ваш ответ

          Отменить *Что это?

 » Логин  » Пароль 
 
 


Поддержка: miniBB forum software © 2001-2024