Настройка наборов данных в 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
:
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.
Обратите внимание, что вы можете нажать кнопку "Update", чтобы изменить настройки плагина, такие как расширение файла и шаблон имени файла. На данный момент вы можете оставить настройки по умолчанию.
Публикация вашего набора данных
Наконец, вы можете нажать 'submit', чтобы опубликовать ваш набор данных.
Вам потребуется предоставить токен авторизации для 'processes/wis2box', который вы создали ранее. Если вы этого еще не сделали, вы можете создать новый токен, следуя инструкциям в разделе подготовки.
Убедитесь, что после отправки вашего набора данных вы получили следующее сообщение, подтверждающее успешную отправку набора данных:
После нажатия 'OK' вы будете перенаправлены на главную страницу редактора наборов данных. Теперь, если вы нажмете на вкладку 'Dataset', вы должны увидеть ваш новый набор данных в списке:
Просмотр уведомления WIS2 для метаданных обнаружения
Откройте MQTT Explorer. Если вы были подключены к брокеру, вы должны увидеть новое уведомление WIS2, опубликованное в теме origin/a/wis2/<your-centre-id>/metadata
:
Изучите содержимое уведомления WIS2, которое вы опубликовали. Вы должны увидеть JSON со структурой, соответствующей формату WIS Notification Message (WNM).
Question
В какой теме опубликовано уведомление WIS2?
Нажмите, чтобы увидеть ответ
Уведомление WIS2 опубликовано в теме origin/a/wis2/<your-centre-id>/metadata
.
Question
Попробуйте найти заголовок, описание и ключевые слова, которые вы указали в метаданных обнаружения, в уведомлении WIS2. Можете ли вы их найти?
Нажмите, чтобы увидеть ответ
Заголовок, описание и ключевые слова, которые вы указали в метаданных обнаружения, отсутствуют в содержимом уведомления WIS2!
Вместо этого попробуйте найти каноническую ссылку в разделе "links" уведомления WIS2:
Уведомление WIS2 содержит каноническую ссылку на запись WCMP2, которая была опубликована.
Скопируйте и вставьте эту каноническую ссылку в ваш браузер, чтобы получить доступ к записи WCMP2. В зависимости от настроек вашего браузера, файл может быть предложен для скачивания или отображен непосредственно в браузере.
Вы найдете заголовок, описание и ключевые слова, которые вы указали, внутри записи WCMP2.
wis2box предоставляет только ограниченное количество предопределенных шаблонов. Эти шаблоны предназначены для распространенных типов наборов данных, но они могут не всегда подходить для специализированных данных. Для всех других типов наборов данных вы можете создать свой набор данных, выбрав Template=other.
Template=other
Далее мы создадим второй набор данных, используя Template=other.
Нажмите "Create New ..." снова, чтобы создать новый набор данных. Используйте тот же 'centre-id', который вы использовали ранее, он должен быть доступен в выпадающем списке. Для Template выберите other:
Нажмите continue to form, чтобы продолжить, и вы снова увидите Dataset Editor Form.
Создание метаданных обнаружения
Укажите свои собственные значения для полей 'Title' и 'Description' и убедитесь, что вы заменили автоматически сгенерированный 'Local ID' на описательное имя для вашего набора данных:
Обратите внимание, что поскольку вы выбрали Template=other, вам нужно самостоятельно определить иерархию тем WIS2, используя выпадающие списки для 'Discipline' и 'Sub-Discipline'.
Для этого упражнения выберите тему Sub-Discipline "prediction/analysis/medium-range/deterministic/global":
Поскольку вы выбрали Template=other, ключевые слова не были предопределены. Убедитесь, что вы добавили как минимум 3 ключевых слова на ваш выбор:
После заполнения обязательных полей заполните оставшиеся разделы формы, включая 'Temporal Properties', 'Spatial Properties' и 'Contact Information of the Data Provider', и убедитесь, что форма прошла проверку.
Настройка сопоставлений данных
Когда используется Template=other, предопределенные сопоставления данных не предоставляются. В результате редактор сопоставлений набора данных будет пустым, и пользователям необходимо настроить сопоставления в соответствии с их конкретными требованиями.
Нажмите "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 цифр вместо 8mydata-20250101.txt
не будет соответствовать, так как перед датой стоит дефис вместо подчеркивания
При загрузке данных с использованием плагина "Universal" либо переименуйте ваши файлы в соответствии с шаблоном по умолчанию, либо обновите File Pattern, убедившись, что первая группа в регулярном выражении соответствует дате и времени.
Оставьте значения по умолчанию для "File Name" на данный момент, так как они соответствуют данным, которые вы будете загружать в следующей практической сессии:
Нажмите "SAVE", чтобы сохранить настройки плагина, и убедитесь, что теперь вы видите плагин в списке в редакторе сопоставлений набора данных:
Обратите внимание, что при загрузке данных расширение файла и шаблон имени файла должны соответствовать настройкам, которые вы указали здесь, в противном случае данные не будут обработаны, и контейнер wis2box-management зарегистрирует сообщения об ошибке (ERROR).
Отправка и проверка результата
Наконец, предоставьте токен авторизации для 'processes/wis2box', который вы создали ранее, и нажмите 'submit', чтобы опубликовать ваш набор данных.
После успешной отправки ваш новый набор данных появится на вкладке 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