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

Настройка наборов данных в 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:

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 Topic Hierarchy.

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

  • Набор данных, используя 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' и используйте идентификатор метаданных по умолчанию.

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

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

Далее заполните раздел, определяющий 'Contact Information of the Data Provider':

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

Наконец, заполните раздел, определяющий 'Data Quality Information':

После того как вы заполните все разделы, нажмите '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 публикуется сразу после успешной отправки метаданных обнаружения. Если вы не видите уведомление, возможно, вы не были подключены к брокеру во время публикации.

Если вы не видите уведомление 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 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" для данных.

Извлечение datetime из имени файла

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

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

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

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

Оставьте значения по умолчанию для "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 по адресу http://YOUR-HOST, вы должны увидеть 2 набора данных, перечисленных вместе с их WIS2 Topic Hierarchy. Чтобы увидеть описание каждого набора данных, вы можете нажать на "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

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

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

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

Заключение

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

В ходе этой практической сессии вы узнали, как:

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