Автор |
Сообщение |
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.
|