Двоичная универсальная форма представления метеорологических данных ( 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)". Архивировано из оригинала 2018-02-15 . Получено 2018-02-14 .
- ^ «О пригодности BUFR и GRIB для архивирования данных». 10 января 2013 г.
- ^ Hand, E. (2016). «Устаревание приближается к данным о воздушном шаре». Science . 352 (6283): 281–282. Bibcode :2016Sci...352..281H. doi :10.1126/science.352.6283.281. PMID 27081049.
- ^ «Работа с исчезающими данными о поверхности: переход на BUFR и прекращение текстовых отчетов SYNOP и буев». 25 января 2017 г.
- ^ "ECMWF - TAC2BUFR - ECMWF Confluence Wiki" (PDF) . Архивировано из оригинала (PDF) 2018-02-15 . Получено 2018-02-14 .
Внешние ссылки
- Официальное руководство BUFR, таблицы и другие рабочие кодовые формы ВМО
- Серия вводных презентаций PowerPoint
- Руководства ВМО по таблично-ориентированным кодовым формам (дополняет Руководство по BUFR, но должно рассматриваться как вторичный источник Руководства)
- BUFR в двух словах
- Стороннее руководство по созданию шаблонов BUFR (от Environment Canada)
Онлайн-валидаторы BUFR
- Бесплатный онлайн-валидатор CCD и коммерческая библиотека
- Проверка формата ECMWF BUFR/CREX
Библиотеки программного обеспечения
- ECMWF предоставил библиотеку BUFRDC и новую библиотеку ecCodes. Magics и Metview используют их для обработки и визуализации данных BUFR.
- библиотека NCEP
- libECBUFR Библиотека Министерства окружающей среды Канады
- Библиотека NCAR wmobufr — библиотека Java и реализация XML
- Обертки Python на основе Fortran и C вокруг библиотеки ECMWF
- wreport Бесплатная библиотека программного обеспечения C++, реализующая кодирование и декодирование BUFR и CREX
- trollbufr, FOSS-чистый Python-считыватель и писатель BUFR
- csv2bufr — пакет Python для преобразования данных CSV в формат WMO BUFR