Настройка наборов данных в 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 также поддерживает настройку наборов данных с использованием формата metadata control file (MCF), определенного инструментом pygeometa.
Использование MCF предоставляет больше гибкости и контроля, но требует точного написания, чтобы убедиться, что MCF правильно отформатирован и соответствует необходимой схеме.
Файлы MCF могут быть опубликованы из командной строки в контейнере wis2box-management. Дополнительную информацию смотрите в документации wis2box.
Подготовка
Подключитесь к вашему брокеру, используя MQTT Explorer.
Вместо использования ваших внутренних учетных данных брокера, используйте публичные учетные данные everyone/everyone:

Note
Никогда не нужно делиться учетными данными вашего внутреннего брокера с внешними пользователями. Пользователь 'everyone' является публичным пользователем, чтобы обеспечить возможность обмена уведомлениями WIS2.
Учетные данные everyone/everyone имеют доступ только для чтения к теме 'origin/a/wis2/#'. Это тема, где публикуются уведомления WIS2. Глобальный брокер может подписаться с этими публичными учетными данными, чтобы получать уведомления.
Пользователь '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", чтобы изменить настройки плагина, такие как расширение файла и шаблон имени файла. Пока вы можете оставить настройки по умолчанию.
О флажке для кэширования основных данных
Вы увидите следующий флажок:

Если вы снимете этот флажок, wis2box добавит properties.cache=False, указывая, что вы не хотите, чтобы Global Cache загружал и сохранял копию ваших данных. По умолчанию этот флажок установлен, что означает, что Global Cache будет кэшировать ваши основные данные, что является рекомендуемой настройкой для большинства наборов данных.
Публикация вашего набора данных
Наконец, вы можете нажать 'submit', чтобы опубликовать ваш набор данных.
Вам потребуется предоставить токен авторизации для 'processes/wis2box', который вы создали ранее. Если вы этого еще не сделали, вы можете создать новый токен, следуя инструкциям в разделе подготовки.
Убедитесь, что после отправки вашего набора данных вы получили следующее сообщение, указывающее, что набор данных был успешно отправлен:

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

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

Повторная публикация метаданных обнаружения
Уведомление WIS2 публикуется сразу после успешной отправки метаданных обнаружения. Если вы не видите уведомления, это может быть связано с тем, что вы не были подключены к брокеру в момент публикации.
Если вы не видите уведомления WIS2, вы можете вручную инициировать повторную публикацию метаданных обнаружения с помощью следующей команды:
python3 wis2box-ctl.py execute wis2box metadata discovery republish
Проверьте содержимое опубликованного уведомления 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