Перейти к содержанию

Настройка наборов данных в wis2box

Результаты обучения

К концу этой практической сессии вы сможете:

  • использовать редактор наборов данных в wis2box-webapp
  • создавать новые наборы данных, используя Template=weather/surface-based-observations/synop и Template=other
  • определять метаданные для обнаружения
  • проверять соответствие данных
  • публиковать уведомления WIS2 для ваших метаданных обнаружения

Введение

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

Метаданные обнаружения используются для создания записи WMO Core Metadata Profile (WCMP2), которая распространяется через уведомление WIS2, опубликованное на вашем брокере wis2box.

Соответствие данных используется для связывания плагинов данных с вашими входными данными, что позволяет преобразовывать данные перед их публикацией в WIS2.

В этой практической сессии вы научитесь создавать и настраивать наборы данных с помощью редактора наборов данных wis2box-webapp.

Настройка наборов данных без использования wis2box-webapp

wis2box также поддерживает настройку наборов данных с использованием формата файла управления метаданными (MCF), определенного инструментом pygeometa.

Использование MCF предоставляет больше гибкости и контроля, но требует точного написания, чтобы убедиться, что MCF правильно отформатирован и соответствует необходимой схеме.

Файлы MCF могут быть опубликованы из командной строки в контейнере wis2box-management. Подробнее см. в документации wis2box.

Подготовка

Подключитесь к вашему брокеру, используя MQTT Explorer.

Вместо использования ваших внутренних учетных данных брокера используйте публичные учетные данные everyone/everyone:

MQTT Explorer: Подключение к брокеру

Note

Никогда не делитесь учетными данными вашего внутреннего брокера с внешними пользователями. Пользователь 'everyone' является публичным пользователем, чтобы обеспечить доступ к уведомлениям WIS2.

Учетные данные everyone/everyone имеют доступ только для чтения к теме 'origin/a/wis2/#'. Это тема, где публикуются уведомления WIS2. Global Broker может подписываться на эти уведомления, используя публичные учетные данные.

Пользователь 'everyone' не сможет видеть внутренние темы или публиковать сообщения.

Откройте браузер и перейдите по адресу http://YOUR-HOST/wis2box-webapp. Убедитесь, что вы вошли в систему и можете получить доступ к странице 'dataset editor'.

См. раздел Инициализация wis2box, если вам нужно вспомнить, как подключиться к брокеру или получить доступ к wis2box-webapp.

Создание токена авторизации для processes/wis2box

Вам потребуется токен авторизации для конечной точки 'processes/wis2box', чтобы опубликовать ваш набор данных.

Чтобы создать токен авторизации, подключитесь к вашей учебной виртуальной машине через SSH и выполните следующие команды:

cd ~/wis2box
python3 wis2box-ctl.py login

Затем выполните следующую команду, чтобы создать случайно сгенерированный токен авторизации для конечной точки 'processes/wis2box':

wis2box auth add-token --path processes/wis2box

Вы также можете создать токен с определенным значением, передав токен в качестве аргумента команды:

wis2box auth add-token --path processes/wis2box MyS3cretToken

Обязательно скопируйте значение токена и сохраните его на вашем локальном компьютере, так как он понадобится вам позже.

После получения токена вы можете выйти из контейнера wis2box-management:

exit

Редактор наборов данных wis2box-webapp

Перейдите на страницу 'dataset editor' в wis2box-webapp вашего экземпляра wis2box, открыв http://YOUR-HOST/wis2box-webapp и выбрав 'dataset editor' в меню слева.

На странице 'dataset editor', во вкладке 'Datasets', нажмите "Create New ...":

Создание нового набора данных

Появится всплывающее окно, в котором нужно указать:

  • Centre ID: это аббревиатура агентства (в нижнем регистре и без пробелов), как указано членом ВМО, которая идентифицирует центр данных, ответственный за публикацию данных.
  • Template: Тип данных, для которых вы создаете метаданные. Вы можете выбрать предопределенный шаблон или выбрать other.

Всплывающее окно создания нового набора данных

Centre ID

Ваш Centre ID должен начинаться с TLD вашей страны, за которым следует дефис (-) и сокращенное название вашей организации (например, fr-meteofrance). Centre ID должен быть в нижнем регистре и содержать только буквенно-цифровые символы. Выпадающий список показывает все зарегистрированные Centre ID в WIS2, а также любые Centre ID, которые вы уже создали в wis2box. Выберите Centre ID, соответствующий вашей организации.

Template

Поле Template позволяет выбрать из списка шаблонов, доступных в редакторе наборов данных wis2box-webapp. Шаблон предварительно заполняет форму предложенными значениями по умолчанию, подходящими для типа данных. Это включает предложенные заголовок и ключевые слова для метаданных, а также предварительно настроенные плагины данных.

Тема автоматически устанавливается на тему по умолчанию, связанную с выбранным шаблоном, если вы не выбрали other. Если вы выбрали other, тему можно определить из выпадающего списка на основе иерархии тем WIS2.

Для целей обучения вы создадите два набора данных:

  • Набор данных, используя Template=weather/surface-based-observations/synop, который включает плагины данных для преобразования данных в формат BUFR перед публикацией.
  • Набор данных, используя Template=other, где вы сами определяете тему WIS2 и используете плагин "Universal" для публикации данных без преобразования.

Template=weather/surface-based-observations/synop

Для Template выберите weather/surface-based-observations/synop:

Форма создания нового набора данных: начальная информация

Нажмите continue to form, чтобы продолжить. Теперь вы увидите Форму редактора набора данных.

Поскольку вы выбрали шаблон weather/surface-based-observations/synop, форма будет предварительно заполнена начальными значениями, связанными с этим типом данных.

Создание метаданных обнаружения

Форма редактора набора данных позволяет указать метаданные обнаружения для вашего набора данных, которые контейнер wis2box-management будет использовать для публикации записи WCMP2.

Поскольку вы выбрали шаблон 'weather/surface-based-observations/synop', форма будет предварительно заполнена значениями по умолчанию.

Обязательно замените автоматически сгенерированный 'Local ID' на описательное имя для вашего набора данных, например, 'synop-dataset-wis2training':

Редактор метаданных: заголовок, описание, ключевые слова

Проверьте заголовок и ключевые слова, обновите их при необходимости и укажите описание для вашего набора данных.

Обратите внимание, что есть опции для изменения 'WMO Data Policy' с 'core' на 'recommended' или для изменения идентификатора метаданных по умолчанию. Оставьте политику данных как 'core' и используйте идентификатор метаданных по умолчанию.

Далее проверьте раздел, определяющий 'Временные свойства' и 'Пространственные свойства'. Вы можете скорректировать границы, обновив поля 'North Latitude', 'South Latitude', 'East Longitude' и 'West Longitude':

Редактор метаданных: временные свойства, пространственные свойства

Далее заполните раздел, определяющий 'Контактную информацию поставщика данных':

Редактор метаданных: контактная информация

Наконец, заполните раздел, определяющий 'Информацию о качестве данных':

После заполнения всех разделов нажмите 'VALIDATE FORM' и проверьте форму на наличие ошибок:

Редактор метаданных: проверка

Если есть ошибки, исправьте их и снова нажмите 'VALIDATE FORM'.

Убедитесь, что ошибок нет, и вы видите всплывающее окно, указывающее, что ваша форма прошла проверку:

Редактор метаданных: успешная проверка

Далее, перед отправкой вашего набора данных, проверьте соответствие данных для вашего набора.

Настройка соответствия данных

Поскольку вы использовали шаблон для создания вашего набора данных, сопоставления набора данных были предварительно заполнены плагинами по умолчанию для шаблона 'weather/surface-based-observations/synop'. Плагины данных используются в 'wis2box' для преобразования данных перед их публикацией с использованием уведомлений WIS2.

Data Mappings: update plugin

Обратите внимание, что вы можете нажать кнопку "Update", чтобы изменить настройки плагина, такие как расширение файла и шаблон имени файла. На данный момент вы можете оставить настройки по умолчанию.

Публикация вашего набора данных

Наконец, вы можете нажать 'submit', чтобы опубликовать ваш набор данных.

Вам потребуется предоставить токен авторизации для 'processes/wis2box', который вы создали ранее. Если вы этого еще не сделали, вы можете создать новый токен, следуя инструкциям в разделе подготовки.

Убедитесь, что после отправки вашего набора данных вы получили следующее сообщение, подтверждающее успешную отправку набора данных:

Submit Dataset Success

После нажатия 'OK' вы будете перенаправлены на главную страницу редактора наборов данных. Теперь, если вы нажмете на вкладку 'Dataset', вы должны увидеть ваш новый набор данных в списке:

Dataset Editor: new dataset

Просмотр уведомления WIS2 для метаданных обнаружения

Откройте MQTT Explorer. Если вы были подключены к брокеру, вы должны увидеть новое уведомление WIS2, опубликованное в теме origin/a/wis2/<your-centre-id>/metadata:

MQTT Explorer: WIS2 notification

Изучите содержимое уведомления WIS2, которое вы опубликовали. Вы должны увидеть JSON со структурой, соответствующей формату WIS Notification Message (WNM).

Question

В какой теме опубликовано уведомление WIS2?

Нажмите, чтобы увидеть ответ

Уведомление WIS2 опубликовано в теме origin/a/wis2/<your-centre-id>/metadata.

Question

Попробуйте найти заголовок, описание и ключевые слова, которые вы указали в метаданных обнаружения, в уведомлении WIS2. Можете ли вы их найти?

Нажмите, чтобы увидеть ответ

Заголовок, описание и ключевые слова, которые вы указали в метаданных обнаружения, отсутствуют в содержимом уведомления WIS2!

Вместо этого попробуйте найти каноническую ссылку в разделе "links" уведомления WIS2:

WIS2 notification for metadata, links sections

Уведомление WIS2 содержит каноническую ссылку на запись WCMP2, которая была опубликована.

Скопируйте и вставьте эту каноническую ссылку в ваш браузер, чтобы получить доступ к записи WCMP2. В зависимости от настроек вашего браузера, файл может быть предложен для скачивания или отображен непосредственно в браузере.

Вы найдете заголовок, описание и ключевые слова, которые вы указали, внутри записи WCMP2.

wis2box предоставляет только ограниченное количество предопределенных шаблонов. Эти шаблоны предназначены для распространенных типов наборов данных, но они могут не всегда подходить для специализированных данных. Для всех других типов наборов данных вы можете создать свой набор данных, выбрав Template=other.

Template=other

Далее мы создадим второй набор данных, используя Template=other.

Нажмите "Create New ..." снова, чтобы создать новый набор данных. Используйте тот же 'centre-id', который вы использовали ранее, он должен быть доступен в выпадающем списке. Для Template выберите other:

Create New Dataset Form: Initial information

Нажмите continue to form, чтобы продолжить, и вы снова увидите Dataset Editor Form.

Создание метаданных обнаружения

Укажите свои собственные значения для полей 'Title' и 'Description' и убедитесь, что вы заменили автоматически сгенерированный 'Local ID' на описательное имя для вашего набора данных:

Metadata Editor: title, description, keywords

Обратите внимание, что поскольку вы выбрали Template=other, вам нужно самостоятельно определить иерархию тем WIS2, используя выпадающие списки для 'Discipline' и 'Sub-Discipline'.

Для этого упражнения выберите тему Sub-Discipline "prediction/analysis/medium-range/deterministic/global":

Metadata Editor: title, description, keywords

Поскольку вы выбрали Template=other, ключевые слова не были предопределены. Убедитесь, что вы добавили как минимум 3 ключевых слова на ваш выбор:

Metadata Editor: title, description, keywords

После заполнения обязательных полей заполните оставшиеся разделы формы, включая 'Temporal Properties', 'Spatial Properties' и 'Contact Information of the Data Provider', и убедитесь, что форма прошла проверку.

Настройка сопоставлений данных

Когда используется Template=other, предопределенные сопоставления данных не предоставляются. В результате редактор сопоставлений набора данных будет пустым, и пользователям необходимо настроить сопоставления в соответствии с их конкретными требованиями.

Data Mappings: update plugin

Нажмите "ADD A PLUGIN +" для добавления плагина данных в ваш набор данных.

Выберите плагин с именем "Universal data without conversion". Этот плагин предназначен для публикации данных без применения каких-либо преобразований.

При добавлении этого плагина вам потребуется указать File Extension и File Pattern (определяется регулярным выражением), который соответствует шаблону именования ваших файлов данных. В случае плагина "Universal" File Pattern также используется для определения свойства "datetime" для данных.

Извлечение даты и времени из имени файла

Плагин "Universal" предполагает, что первая группа в регулярном выражении соответствует дате и времени данных.

Шаблон по умолчанию — ^.*?_(\d{8}).*?\..*$, который соответствует 8 цифрам, предшествующим символу подчеркивания, и любым символам перед точкой и расширением файла. Например:

  • mydata_20250101.txt будет соответствовать и извлечет 25 января 2025 года как свойство datetime для данных
  • mydata_2025010112.txt не будет соответствовать, так как 10 цифр вместо 8
  • mydata-20250101.txt не будет соответствовать, так как перед датой стоит дефис вместо подчеркивания

При загрузке данных с использованием плагина "Universal" либо переименуйте ваши файлы в соответствии с шаблоном по умолчанию, либо обновите File Pattern, убедившись, что первая группа в регулярном выражении соответствует дате и времени.

Оставьте значения по умолчанию для "File Name" на данный момент, так как они соответствуют данным, которые вы будете загружать в следующей практической сессии:

Data Mappings: update plugin

Нажмите "SAVE", чтобы сохранить настройки плагина, и убедитесь, что теперь вы видите плагин в списке в редакторе сопоставлений набора данных:

Data Mappings: update plugin

Обратите внимание, что при загрузке данных расширение файла и шаблон имени файла должны соответствовать настройкам, которые вы указали здесь, в противном случае данные не будут обработаны, и контейнер wis2box-management зарегистрирует сообщения об ошибке (ERROR).

Отправка и проверка результата

Наконец, предоставьте токен авторизации для 'processes/wis2box', который вы создали ранее, и нажмите 'submit', чтобы опубликовать ваш набор данных.

После успешной отправки ваш новый набор данных появится на вкладке Dataset:

Dataset Editor: new dataset

Откройте MQTT Explorer, если вы были подключены к вашему брокеру, вы должны увидеть еще одно новое уведомление WIS2, опубликованное в теме origin/a/wis2/<your-centre-id>/metadata.

Question

Перейдите в интерфейс wis2box-UI по адресу http://YOUR-HOST.

Сколько наборов данных вы видите в списке? Как можно просмотреть иерархию тем WIS2, используемую для каждого набора данных, и как можно увидеть описание каждого набора данных?

Нажмите, чтобы увидеть ответ

Открыв интерфейс wis2box UI по адресу http://YOUR-HOST, вы должны увидеть 2 набора данных в списке вместе с их иерархией тем WIS2. Чтобы увидеть описание каждого набора данных, вы можете нажать на "metadata", что перенаправит вас к соответствующему элементу 'discovery-metadata', предоставляемому wis2box-api.

Question

Попробуйте обновить описание последнего созданного набора данных. После обновления описания вы видите новое уведомление WIS2, опубликованное в теме origin/a/wis2/<your-centre-id>/metadata? В чем разница между новым уведомлением и предыдущим?

Нажмите, чтобы увидеть ответ

Вы должны увидеть новое сообщение об уведомлении данных, отправленное после обновления вашего набора данных в теме origin/a/wis2/<your-centre-id>/metadata.

В сообщении значение "rel": "canonical" изменится на "rel": "update", указывая на то, что ранее опубликованные данные были изменены. Чтобы просмотреть обновленное описание, скопируйте и вставьте URL в ваш браузер, и вы должны увидеть обновленное описание.

Question

Попробуйте обновить иерархию тем для последнего набора данных, который вы создали, изменив выбор в "Sub-Discipline Topics". Видите ли вы новое уведомление WIS2, опубликованное по теме origin/a/wis2/<your-centre-id>/metadata?

Нажмите, чтобы увидеть ответ

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

Заключение

Поздравляем!

В этой практической сессии вы научились:

  • использовать редактор наборов данных wis2box-webapp
  • создавать новые наборы данных, используя Template=weather/surface-based-observations/synop и Template=other
  • определять метаданные для обнаружения
  • проверять соответствие данных
  • публиковать метаданные для обнаружения и просматривать уведомления WIS2