BUFR
Универсальная двоичная форма представления метеорологических данных ( BUFR ) — это формат двоичных данных, поддерживаемый Всемирной метеорологической организацией (ВМО). Последней версией является BUFR Edition 4. BUFR Edition 3 также считается актуальной для оперативного использования. кодов ВМО на основе символов и местоположения BUFR был создан в 1988 году с целью замены десятков метеорологических , таких как SYNOP (приземные наблюдения), TEMP (аэрологические зондирования) и CLIMAT (ежемесячные климатологические данные). BUFR был разработан как портативный, компактный и универсальный. Могут быть представлены данные любого типа вместе с их конкретным пространственным/временным контекстом и любыми другими связанными метаданными . В терминологии ВМО BUFR принадлежит к категории табличных кодовых форм , где значение элементов данных определяется путем обращения к набору таблиц, которые хранятся и поддерживаются отдельно от самого сообщения.
BUFR — это сложный формат, который может быть сложно использовать. [1] и это имеет некоторые недостатки. [2] Введение формата BUFR привело к «диспропорции» данных и множеству ошибок форматирования. [3] [4] [5]
Описание формата
[ редактировать ]Сообщение BUFR состоит из шести разделов, пронумерованных от нуля до пяти.
- Разделы 0, 1 и 5 содержат статические метаданные, в основном для идентификации сообщений.
- Раздел 2 является необязательным; если он используется, он может содержать произвольные данные в любой форме, желаемой создателем сообщения (это рекомендуется только для локального использования).
- Раздел 3 содержит последовательность так называемых дескрипторов , которые определяют форму и содержание информационного продукта BUFR.
- Раздел 4 представляет собой битовый поток, содержащий основные данные сообщения и значения метаданных, как указано в разделе 3.
Описание продукта, содержащееся в разделе 3, можно сделать сложным и нетривиальным за счет использования дескрипторов репликации и/или операторов. (Краткий обзор различных видов дескрипторов см. ниже; дополнительную информацию см. в Руководстве ВМО по BUFR.)
Шаблоны
[ редактировать ]Раздел 3 содержит короткий заголовок, за которым следует последовательность дескрипторов, соответствующая содержимому битового потока Раздела 4. Последовательность дескрипторов в разделе 3 можно понимать как шаблон сообщения BUFR. Шаблон содержит информацию, необходимую для описания структуры значений данных, встроенных в соответствующий битовый поток. Его следует интерпретировать поэтапно, подобно алгоритму . Учитывая набор сообщений BUFR, значения, содержащиеся в разделе 4, могут отличаться от одного сообщения к другому, но их порядок и структура будут оставаться предсказуемыми, если шаблон, представленный в разделе 3, останется неизменным. Шаблоны могут быть разработаны с учетом требований конкретного продукта данных (например, метеорологических наблюдений). Такие шаблоны затем можно использовать для стандартизации содержания и структуры продуктов данных BUFR. ВМО выпустила ряд шаблонов BUFR для данных приземных и аэрологических наблюдений.
Дескрипторы
[ редактировать ]Все дескрипторы шириной 16 бит имеют структуру FXY , где F относится к двум старшим битам (крайний левый); X относится к 6 средним битам, а Y — к младшим (самым правым) 8 битам. Значение F (от 0 до 3) определяет тип дескриптора.
- Дескрипторы элементов (F=0): Как следует из названия, эти дескрипторы используются для передачи элементарных данных и связанных с ними метаданных.
Значение X идентифицирует класс дескриптора (т. е. параметры горизонтальной координаты, параметры температуры и т. д.). Значение Y — это номер дескриптора в его классе. Классы дескрипторов элементов с 1 по 9 обладают особым свойством оставаться в силе с момента их появления в оставшейся части шаблона BUFR, если им не противоречит или не отменяют. На практике дескрипторы классов с 1 по 9 используются для пространственных, временных и других метаданных, которые применимы к основным данным сообщения BUFR.
Все дескрипторы элементов определены в разделе спецификации BUFR, известном как «Таблица B». Добавление дескрипторов новых элементов в таблицу B не требует внесения изменений в спецификацию программного обеспечения BUFR. Определение дескриптора элемента в Таблице B включает его номер, краткое текстовое определение, параметры декодирования (разрядность, масштабный коэффициент и смещение) и тип (числовой, символьная строка, кодовая таблица и т. д.). - Дескрипторы репликации (F=1): специальные дескрипторы, которые позволяют контролируемое повторение выбранного количества дескрипторов. Это очень мощная операция, которая вводит в шаблоны BUFR структуры, подобные циклам. Значение X указывает количество следующих дескрипторов, которые будут включены в репликацию; значение Y указывает, сколько раз должна выполняться репликация. Если Y =0, то репликация называется «отложенной репликацией» и количество репликаций должно быть получено из значения дескриптора специального элемента.
- Дескрипторы операторов (F=2). Эти дескрипторы передают специальные операции, которые могут изменять характер данных или позволять создавать и манипулировать дополнительными данными наряду с исходными. Значение X идентифицирует оператора, а значение Y используется для управления его применением. Эти дескрипторы определены в разделе спецификации BUFR, известном как «Таблица C». Добавление новых дескрипторов операторов в Таблицу C требует изменений в спецификации программного обеспечения BUFR и, следовательно, приводит к новому номеру издания BUFR.
- Дескрипторы последовательностей (F=3): один дескриптор последовательности является псевдонимом для последовательности других дескрипторов, включая дескрипторы репликации и записи таблиц B, C и D. Эти дескрипторы определены в разделе спецификации BUFR, известном как «Таблица D». Использование значений X и Y такое же, как и для дескрипторов элементов.
Подмножества
[ редактировать ]Структура данных, установленная в шаблоне Раздела 3, может многократно использоваться в одном сообщении BUFR. В таком случае Раздел 4 будет содержать последовательность так называемых подмножеств . Например, подмножества можно использовать для передачи наблюдений из нескольких мест в одном сообщении.
Ссылки
[ редактировать ]- ^ «BUFR: МЕТЕОРОЛОГИЧЕСКИЙ КОДЕКС ДЛЯ 21 ВЕКА (pdf)» . Архивировано из оригинала 15 февраля 2018 г. Проверено 14 февраля 2018 г.
- ^ «О пригодности BUFR и GRIB для архивирования данных» . 10 января 2013 г.
- ^ Хэнд, Э. (2016). «Для аэростатных данных грозит устаревание» . Наука . 352 (6283): 281–282. Бибкод : 2016Sci...352..281H . дои : 10.1126/science.352.6283.281 . ПМИД 27081049 .
- ^ «Решение проблемы исчезновения приземных данных: переход на BUFR и прекращение текстовых отчетов SYNOP и буев» . 25 января 2017 г.
- ^ «ECMWF — TAC2BUFR — ECMWF Confluence Wiki» (PDF) . Архивировано из оригинала (PDF) 15 февраля 2018 г. Проверено 14 февраля 2018 г.
Внешние ссылки
[ редактировать ]- Официальное руководство по BUFR, таблицы и другие оперативные кодовые формы ВМО.
- Серия вводных презентаций PowerPoint.
- Руководства по табличным формам кодов ВМО (дополняют Наставление по BUFR, но должны рассматриваться как вторичный источник по отношению к Наставлению)
- Коротко о BUFR
- Стороннее руководство по созданию шаблонов BUFR (от Environment Canada)
Онлайн-валидаторы BUFR
[ редактировать ]Библиотеки программного обеспечения
[ редактировать ]- ECMWF предоставил библиотеку BUFRDC и новую библиотеку ecCodes . Magics и Metview используют их для обработки и визуализации данных BUFR.
- библиотека НЦЭП
- libECBUFR Библиотека окружающей среды Канады
- Библиотека NCAR wmobufr — библиотека Java и реализация XML
- оболочки Python на основе Fortran и C вокруг библиотеки ECMWF
- wreport Бесплатная библиотека C++, реализующая кодирование и декодирование BUFR и CREX
- trollbufr , программа чтения и записи BUFR на чистом Python для FOSS
- csv2bufr — пакет Python для преобразования данных CSV в формат WMO BUFR.