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

Инструменты для преобразования данных

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

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

  • Получать доступ к инструментам командной строки ecCodes внутри контейнера wis2box-api
  • Использовать инструмент synop2bufr для преобразования отчетов FM-12 SYNOP в BUFR из командной строки
  • Запускать преобразование synop2bufr через wis2box-webapp
  • Использовать инструмент csv2bufr для преобразования данных CSV в BUFR из командной строки

Введение

Данные, публикуемые в WIS2, должны соответствовать требованиям и стандартам, установленным различными экспертными сообществами по дисциплинам/областям системы Земли. Чтобы снизить барьер для публикации данных наземных наблюдений, wis2box предоставляет инструменты для преобразования данных в формат BUFR. Эти инструменты доступны через контейнер wis2box-api и могут использоваться из командной строки для тестирования процесса преобразования данных.

Основные преобразования, поддерживаемые wis2box, включают преобразование отчетов FM-12 SYNOP в BUFR и данных CSV в BUFR. Поддержка данных FM-12 обусловлена их широким использованием и обменом в сообществе ВМО, а поддержка данных CSV позволяет преобразовывать данные, полученные с автоматических метеостанций, в формат BUFR.

О формате FM-12 SYNOP

Поверхностные метеорологические отчеты с наземных станций исторически передавались ежечасно или в основные (00, 06, 12 и 18 UTC) и промежуточные (03, 09, 15, 21 UTC) синоптические часы. До перехода на BUFR эти отчеты кодировались в текстовом формате FM-12 SYNOP. Хотя переход на BUFR был запланирован к завершению в 2012 году, значительное количество отчетов до сих пор передается в устаревшем формате FM-12 SYNOP. Дополнительную информацию о формате FM-12 SYNOP можно найти в Руководстве ВМО по кодам, Том I.1 (WMO-No. 306, Volume I.1).

О библиотеке ecCodes

Библиотека ecCodes представляет собой набор программных библиотек и утилит, предназначенных для декодирования и кодирования метеорологических данных в форматах GRIB и BUFR. Она разработана Европейским центром среднесрочных прогнозов погоды (ECMWF), см. документацию ecCodes для получения дополнительной информации.

Программное обеспечение wis2box включает библиотеку ecCodes в базовый образ контейнера wis2box-api. Это позволяет пользователям получать доступ к инструментам командной строки и библиотекам из контейнера. Библиотека ecCodes используется в стеке wis2box для декодирования и кодирования сообщений BUFR.

О csv2bufr и synop2bufr

Помимо ecCodes, wis2box использует следующие модули Python, которые работают с ecCodes для преобразования данных в формат BUFR:

  • synop2bufr: для поддержки устаревшего формата FM-12 SYNOP, традиционно используемого ручными наблюдателями. Модуль synop2bufr использует дополнительные метаданные станции для кодирования дополнительных параметров в файл BUFR. См. репозиторий synop2bufr на GitHub
  • csv2bufr: для преобразования данных CSV, полученных с автоматических метеостанций, в формат BUFR. Модуль csv2bufr используется для преобразования данных CSV в формат BUFR с использованием шаблона сопоставления, который определяет, как данные CSV должны быть преобразованы в формат BUFR. См. репозиторий csv2bufr на GitHub

Эти модули могут использоваться как отдельно, так и в составе стека wis2box.

Подготовка

Предварительные требования

  • Убедитесь, что ваш wis2box настроен и запущен
  • Убедитесь, что вы настроили набор данных и сконфигурировали хотя бы одну станцию в вашем wis2box
  • Подключитесь к брокеру MQTT вашего экземпляра wis2box с помощью MQTT Explorer
  • Откройте веб-приложение wis2box (http://YOUR-HOST/wis2box-webapp) и убедитесь, что вы вошли в систему
  • Откройте панель мониторинга Grafana для вашего экземпляра, перейдя по адресу http://YOUR-HOST:3000

Для использования инструментов командной строки BUFR вам необходимо войти в контейнер wis2box-api. Если не указано иное, все команды должны выполняться в этом контейнере. Вам также потребуется открыть MQTT Explorer и подключиться к вашему брокеру.

Сначала подключитесь к вашей виртуальной машине студента через SSH-клиент и скопируйте материалы упражнения в контейнер wis2box-api:

docker cp ~/exercise-materials/data-conversion-exercises wis2box-api:/root

Затем войдите в контейнер wis2box-api и перейдите в каталог, где находятся материалы упражнения:

cd ~/wis2box
python3 wis2box-ctl.py login wis2box-api
cd /root/data-conversion-exercises

Убедитесь, что инструменты доступны, начиная с ecCodes:

bufr_dump -V

Вы должны получить следующий ответ:

ecCodes Version 2.36.0

Далее проверьте версию synop2bufr:

synop2bufr --version

Вы должны получить следующий ответ:

synop2bufr, version 0.7.0

Далее проверьте csv2bufr:

csv2bufr --version

Вы должны получить следующий ответ:

csv2bufr, version 0.8.6

Инструменты командной строки ecCodes

Библиотека ecCodes, включенная в контейнер wis2box-api, предоставляет ряд инструментов командной строки для работы с файлами BUFR. Следующие упражнения демонстрируют, как использовать bufr_ls и bufr_dump для проверки содержимого файла BUFR.

bufr_ls

В первом упражнении вы будете использовать команду bufr_ls для проверки заголовков файла BUFR и определения типа содержимого файла.

Используйте следующую команду для запуска bufr_ls на файле bufr-cli-ex1.bufr4:

bufr_ls bufr-cli-ex1.bufr4

Вы должны увидеть следующий вывод:

bufr-cli-ex1.bufr4
centre                     masterTablesVersionNumber  localTablesVersionNumber   typicalDate                typicalTime                numberOfSubsets
cnmc                       29                         0                          20231002                   000000                     1
1 of 1 messages in bufr-cli-ex1.bufr4

1 of 1 total messages in 1 file

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

Question

Какой командой можно вывести предыдущий результат в формате JSON?

Вы можете запустить команду bufr_ls с флагом -h, чтобы увидеть доступные параметры.

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

Вы можете изменить формат вывода на JSON, используя флаг -j, например:

bufr_ls -j bufr-cli-ex1.bufr4

При выполнении этой команды вы должны получить следующий вывод:

{ "messages" : [
  {
    "centre": "cnmc",
    "masterTablesVersionNumber": 29,
    "localTablesVersionNumber": 0,
    "typicalDate": 20231002,
    "typicalTime": "000000",
    "numberOfSubsets": 1
  }
]}

Вывод представляет значения некоторых ключей заголовка в файле BUFR.

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

При анализе файла BUFR мы часто хотим определить тип данных, содержащихся в файле, и типичную дату/время данных в файле. Эта информация может быть выведена с помощью флага -p для выбора заголовков для вывода. Несколько заголовков могут быть включены с использованием списка, разделенного запятыми.

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

bufr_ls -p dataCategory,internationalDataSubCategory,typicalDate,typicalTime -j bufr-cli-ex1.bufr4

Question

Выполните предыдущую команду и интерпретируйте вывод, используя Общую кодовую таблицу C-13, чтобы определить категорию и подкатегорию данных.

Какой тип данных (категория и подкатегория) содержится в файле? Каковы типичная дата и время данных?

Нажмите, чтобы увидеть ответ
{ "messages" : [
  {
    "dataCategory": 2,
    "internationalDataSubCategory": 4,
    "typicalDate": 20231002,
    "typicalTime": "000000"
  }
]}

Из этого мы видим, что:

  • Категория данных — 2, что указывает на данные типа "Вертикальные зондирования (кроме спутниковых)".
  • Международная подкатегория — 4, что указывает на данные типа "Отчёты о температуре/влажности/ветре на верхних уровнях с фиксированных наземных станций (TEMP)".
  • Типичная дата и время — 2023-10-02 и 00:00:00z соответственно.

bufr_dump

Команда bufr_dump может быть использована для отображения и анализа содержимого BUFR-файла, включая сами данные.

Попробуйте выполнить команду bufr_dump для второго примера файла bufr-cli-ex2.bufr4:

bufr_dump bufr-cli-ex2.bufr4

Результатом будет JSON, который может быть сложным для анализа. Попробуйте использовать флаг -p, чтобы вывести данные в текстовом формате (ключ=значение):

bufr_dump -p bufr-cli-ex2.bufr4

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

Вы можете использовать команду grep, чтобы отфильтровать вывод и показать только те ключи, которые не отсутствуют. Например, чтобы показать все ключи, которые не отсутствуют, используйте следующую команду:

bufr_dump -p bufr-cli-ex2.bufr4 | grep -v MISSING

Question

Какое значение давления, приведённого к среднему уровню моря, указано в BUFR-файле bufr-cli-ex2.bufr4?

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

Используйте следующую команду:

bufr_dump -p bufr-cli-ex2.bufr4 | grep -i 'pressureReducedToMeanSeaLevel'

Вы должны увидеть следующий вывод:

pressureReducedToMeanSeaLevel=105590
Это указывает, что давление, приведённое к среднему уровню моря, составляет 105590 Па (1055.90 гПа).

Question

Каков идентификатор станции WIGOS, которая предоставила данные в BUFR-файле bufr-cli-ex2.bufr4?

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

Используйте следующую команду:

bufr_dump -p bufr-cli-ex2.bufr4 | grep -i 'wigos'

Вы должны увидеть следующий вывод:

wigosIdentifierSeries=0
wigosIssuerOfIdentifier=20000
wigosIssueNumber=0
wigosLocalIdentifierCharacter="99100"

Это указывает, что идентификатор станции WIGOS — 0-20000-0-99100.

Конвертация synop2bufr

Далее рассмотрим, как преобразовать данные FM-12 SYNOP в формат BUFR с использованием модуля synop2bufr. Модуль synop2bufr используется для преобразования данных FM-12 SYNOP в формат BUFR. Этот модуль установлен в контейнере wis2box-api и может быть использован из командной строки следующим образом:

synop2bufr data transform \
    --metadata <station-metadata.csv> \
    --output-dir <output-directory-path> \
    --year <year-of-observation> \
    --month <month-of-observation> \
    <input-fm12.txt>

Аргумент --metadata используется для указания файла метаданных станции, который предоставляет дополнительную информацию для кодирования в BUFR-файле. Аргумент --output-dir используется для указания директории, куда будут записаны преобразованные BUFR-файлы. Аргументы --year и --month используются для указания года и месяца наблюдения.

Модуль synop2bufr также используется в wis2box-webapp для преобразования данных FM-12 SYNOP в формат BUFR с использованием веб-формы.

Следующие упражнения продемонстрируют, как работает модуль synop2bufr и как его использовать для преобразования данных FM-12 SYNOP в формат BUFR.

Просмотр примера сообщения SYNOP

Изучите пример файла сообщения SYNOP для этого упражнения synop_message.txt:

cd /root/data-conversion-exercises
more synop_message.txt

Question

Сколько отчетов SYNOP содержится в этом файле?

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

Вывод показывает следующее:

AAXX 21121
15015 02999 02501 10103 21090 39765 42952 57020 60001=
15020 02997 23104 10130 21075 30177 40377 58020 60001 81041=
15090 02997 53102 10139 21075 30271 40364 58031 60001 82046=

В файле содержится 3 отчета SYNOP, соответствующих 3 различным станциям (идентифицированным по 5-значным традиционным идентификаторам станций: 15015, 15020 и 15090). Обратите внимание, что конец каждого отчета обозначен символом =.

Просмотр списка станций

Аргумент --metadata требует CSV-файл с предопределённым форматом. Рабочий пример предоставлен в файле station_list.csv:

Используйте следующую команду, чтобы просмотреть содержимое файла station_list.csv:

more station_list.csv

Question

Сколько станций указано в списке станций? Каковы идентификаторы станций WIGOS?

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

Вывод показывает следующее:

station_name,wigos_station_identifier,traditional_station_identifier,facility_type,latitude,longitude,elevation,barometer_height,territory_name,wmo_region
OCNA SUGATAG,0-20000-0-15015,15015,landFixed,47.7770616258,23.9404602638,503.0,504.0,ROU,europe
BOTOSANI,0-20000-0-15020,15020,landFixed,47.7356532437,26.6455501701,161.0,162.1,ROU,europe

Это соответствует метаданным для 2 станций: с идентификаторами WIGOS 0-20000-0-15015 и 0-20000-0-15020.

Преобразование SYNOP в BUFR

Далее используйте следующую команду для преобразования сообщения FM-12 SYNOP в формат BUFR:

synop2bufr data transform --metadata station_list.csv --output-dir ./ --year 2024 --month 09 synop_message.txt

Question

Сколько BUFR-файлов было создано? Что означает сообщение WARNING в выводе?

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

Вывод показывает следующее:

[WARNING] Station 15090 not found in station file

Если вы проверите содержимое вашей директории с помощью команды ls -lh, вы увидите, что было создано 2 новых BUFR-файла: WIGOS_0-20000-0-15015_20240921T120000.bufr4 и WIGOS_0-20000-0-15020_20240921T120000.bufr4.

Сообщение WARNING указывает, что станция с традиционным идентификатором 15090 не была найдена в файле списка станций station_list.csv. Это означает, что отчет SYNOP для этой станции не был преобразован в формат BUFR.

Question

Проверьте содержимое BUFR-файла WIGOS_0-20000-0-15015_20240921T120000.bufr4 с помощью команды bufr_dump.

Можете ли вы подтвердить, что информация, предоставленная в файле station_list.csv, присутствует в BUFR-файле?

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

Вы можете использовать следующую команду, чтобы проверить содержимое BUFR-файла:

bufr_dump -p WIGOS_0-20000-0-15015_20240921T120000.bufr4 | grep -v MISSING

Вы увидите следующий вывод:

wigosIdentifierSeries=0
wigosIssuerOfIdentifier=20000
wigosIssueNumber=0
wigosLocalIdentifierCharacter="15015"
blockNumber=15
stationNumber=15
stationOrSiteName="OCNA SUGATAG"
stationType=1
year=2024
month=9
day=21
hour=12
minute=0
latitude=47.7771
longitude=23.9405
heightOfStationGroundAboveMeanSeaLevel=503
heightOfBarometerAboveMeanSeaLevel=504

Обратите внимание, что это включает данные, предоставленные файлом station_list.csv.

Форма SYNOP в wis2box-webapp

Модуль synop2bufr также используется в wis2box-webapp для преобразования данных FM-12 SYNOP в формат BUFR с использованием веб-формы ввода.
Чтобы протестировать это, перейдите по адресу http://YOUR-HOST/wis2box-webapp и выполните вход.

Выберите SYNOP Form из меню слева и скопируйте содержимое файла synop_message.txt:

AAXX 21121
15015 02999 02501 10103 21090 39765 42952 57020 60001=
15020 02997 23104 10130 21075 30177 40377 58020 60001 81041=
15090 02997 53102 10139 21075 30271 40364 58031 60001 82046=

Вставьте его в текстовое поле SYNOP message:

synop-form

Question

Удалось ли вам отправить форму? Каков результат?

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

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

Если вы предоставите недействительный токен, вы увидите:

  • Результат: Unauthorized, please provide a valid 'processes/wis2box' token

Если вы предоставите действительный токен, вы увидите "WARNINGS: 3". Нажмите на "WARNINGS", чтобы открыть выпадающий список, который покажет:

  • Station 15015 not found in station file
  • Station 15020 not found in station file
  • Station 15090 not found in station file

Чтобы преобразовать эти данные в формат BUFR, вам нужно настроить соответствующие станции в вашем wis2box и убедиться, что станции связаны с темой вашего набора данных.

Note

В упражнении ingesting-data-for-publication вы загрузили файл "synop_202412030900.txt", и он был преобразован в формат BUFR с помощью модуля synop2bufr.

В автоматизированном рабочем процессе в wis2box год и месяц автоматически извлекаются из имени файла и используются для заполнения аргументов --year и --month, необходимых для synop2bufr, в то время как метаданные станции автоматически извлекаются из конфигурации станции в wis2box.

Преобразование csv2bufr

Note

Убедитесь, что вы все еще находитесь в контейнере wis2box-api и в каталоге /root/data-conversion-exercises. Если вы вышли из контейнера в предыдущем упражнении, вы можете войти снова следующим образом:

cd ~/wis2box
python3 wis2box-ctl.py login wis2box-api
cd /root/data-conversion-exercises

Теперь давайте рассмотрим, как преобразовать данные CSV в формат BUFR с использованием модуля csv2bufr. Модуль установлен в контейнере wis2box-api и может быть использован из командной строки следующим образом:

csv2bufr data transform \
    --bufr-template <bufr-mapping-template> \
    <input-csv-file>

Аргумент --bufr-template используется для указания файла шаблона сопоставления BUFR, который предоставляет соответствие между входными данными CSV и выходными данными BUFR, указанными в JSON-файле. Шаблоны сопоставления по умолчанию установлены в каталоге /opt/csv2bufr/templates в контейнере wis2box-api.

Просмотр примера файла CSV

Просмотрите содержимое примерного файла CSV aws-example.csv:

more aws-example.csv

Question

Сколько строк данных содержится в файле CSV? Каков идентификатор станции WIGOS, сообщающей данные в файле CSV?

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

Вывод показывает следующее:

wsi_series,wsi_issuer,wsi_issue_number,wsi_local,wmo_block_number,wmo_station_number,station_type,year,month,day,hour,minute,latitude,longitude,station_height_above_msl,barometer_height_above_msl,station_pressure,msl_pressure,geopotential_height,thermometer_height,air_temperature,dewpoint_temperature,relative_humidity,method_of_ground_state_measurement,ground_state,method_of_snow_depth_measurement,snow_depth,precipitation_intensity,anemometer_height,time_period_of_wind,wind_direction,wind_speed,maximum_wind_gust_direction_10_minutes,maximum_wind_gust_speed_10_minutes,maximum_wind_gust_direction_1_hour,maximum_wind_gust_speed_1_hour,maximum_wind_gust_direction_3_hours,maximum_wind_gust_speed_3_hours,rain_sensor_height,total_precipitation_1_hour,total_precipitation_3_hours,total_precipitation_6_hours,total_precipitation_12_hours,total_precipitation_24_hours
0,20000,0,60355,60,355,1,2024,3,31,1,0,47.77706163,23.94046026,503,504.43,100940,101040,1448,5,298.15,294.55,80,3,1,1,0,0.004,10,-10,30,3,30,5,40,9,20,11,2,4.7,5.3,7.9,9.5,11.4
0,20000,0,60355,60,355,1,2024,3,31,2,0,47.77706163,23.94046026,503,504.43,100940,101040,1448,5,25.,294.55,80,3,1,1,0,0.004,10,-10,30,3,30,5,40,9,20,11,2,4.7,5.3,7.9,9.5,11.4
0,20000,0,60355,60,355,1,2024,3,31,3,0,47.77706163,23.94046026,503,504.43,100940,101040,1448,5,298.15,294.55,80,3,1,1,0,0.004,10,-10,30,3,30,5,40,9,20,11,2,4.7,5.3,7.9,9.5,11.4

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

После строки заголовков содержатся 3 строки данных, представляющие 3 метеорологических наблюдения с одной и той же станции с идентификатором WIGOS 0-20000-0-60355 в три разных временных метки: 2024-03-31 01:00:00, 2024-03-31 02:00:00 и 2024-03-31 03:00:00.

Просмотр aws-template

wis2box-api включает набор предопределенных шаблонов сопоставления BUFR, которые установлены в каталоге /opt/csv2bufr/templates.

Проверьте содержимое каталога /opt/csv2bufr/templates:

ls /opt/csv2bufr/templates

Вы должны увидеть следующий вывод:

CampbellAfrica-v1-template.json  aws-template.json  daycli-template.json

Давайте проверим содержимое файла aws-template.json:

cat /opt/csv2bufr/templates/aws-template.json

Это вернет большой JSON-файл, предоставляющий сопоставление для 43 столбцов CSV.

Question

Какой столбец CSV сопоставлен с ключом eccodes airTemperature? Каковы допустимые минимальные и максимальные значения для этого ключа?

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

Используйте следующую команду для фильтрации вывода:

cat /opt/csv2bufr/templates/aws-template.json | grep -i airTemperature
Вы должны увидеть следующий вывод:

{"eccodes_key": "#1#airTemperature", "value": "data:air_temperature", "valid_min": "const:193.15", "valid_max": "const:333.15"},

Значение, которое будет закодировано для ключа eccodes airTemperature, будет взято из данных в столбце CSV: air_temperature.

Минимальные и максимальные значения для этого ключа составляют 193.15 и 333.15 соответственно.

Question

Какой столбец CSV сопоставлен с ключом eccodes internationalDataSubCategory? Каково значение этого ключа?

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

Используйте следующую команду для фильтрации вывода:

cat /opt/csv2bufr/templates/aws-template.json | grep -i internationalDataSubCategory
Вы должны увидеть следующий вывод:

{"eccodes_key": "internationalDataSubCategory", "value": "const:2"},

Нет столбца CSV, сопоставленного с ключом eccodes internationalDataSubCategory, вместо этого используется постоянное значение 2, которое будет закодировано во всех BUFR-файлах, созданных с использованием этого шаблона сопоставления.

Конвертация CSV в BUFR

Попробуем преобразовать файл в формат BUFR с помощью команды csv2bufr:

csv2bufr data transform --bufr-template aws-template ./aws-example.csv

Question

Сколько BUFR-файлов было создано?

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

Вывод показывает следующее:

CLI:    ... Transforming ./aws-example.csv to BUFR ...
CLI:    ... Processing subsets:
CLI:    ..... 384 bytes written to ./WIGOS_0-20000-0-60355_20240331T010000.bufr4
#1#airTemperature: Value (25.0) out of valid range (193.15 - 333.15).; Element set to missing
CLI:    ..... 384 bytes written to ./WIGOS_0-20000-0-60355_20240331T020000.bufr4
CLI:    ..... 384 bytes written to ./WIGOS_0-20000-0-60355_20240331T030000.bufr4
CLI:    End of processing, exiting.

Вывод указывает, что было создано 3 BUFR-файла: WIGOS_0-20000-0-60355_20240331T010000.bufr4, WIGOS_0-20000-0-60355_20240331T020000.bufr4 и WIGOS_0-20000-0-60355_20240331T030000.bufr4.

Чтобы проверить содержимое BUFR-файлов, игнорируя отсутствующие значения, вы можете использовать следующую команду:

bufr_dump -p WIGOS_0-20000-0-60355_20240331T010000.bufr4 | grep -v MISSING

Question

Какое значение имеет ключ eccodes airTemperature в BUFR-файле WIGOS_0-20000-0-60355_20240331T010000.bufr4? А как насчет BUFR-файла WIGOS_0-20000-0-60355_20240331T020000.bufr4?

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

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

bufr_dump -p WIGOS_0-20000-0-60355_20240331T010000.bufr4 | grep -v MISSING | grep airTemperature
Вы должны увидеть следующий вывод:

#1#airTemperature=298.15

А для второго файла:

bufr_dump -p WIGOS_0-20000-0-60355_20240331T020000.bufr4 | grep -v MISSING | grep airTemperature

Вы не получите результата, что указывает на то, что значение для ключа airTemperature отсутствует в BUFR-файле WIGOS_0-20000-0-60355_20240331T020000.bufr4. Программа csv2bufr отказалась закодировать значение 25.0 из данных CSV, так как оно выходит за пределы допустимого диапазона 193.15 и 333.15, определенного в шаблоне сопоставления.

Обратите внимание, что преобразование CSV в BUFR с использованием одного из предопределенных шаблонов сопоставления BUFR имеет ограничения:

  • файл CSV должен быть в формате, определенном в шаблоне сопоставления, то есть имена столбцов CSV должны соответствовать именам, определенным в шаблоне сопоставления
  • вы можете закодировать только ключи, определенные в шаблоне сопоставления
  • проверки качества ограничены проверками, определенными в шаблоне сопоставления

Для получения информации о том, как создавать и использовать пользовательские шаблоны сопоставления BUFR, см. следующую практическую задачу csv2bufr-templates.

Заключение

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

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

  • как получить доступ к инструментам командной строки ecCodes внутри контейнера wis2box-api
  • как использовать synop2bufr для преобразования отчетов FM-12 SYNOP в BUFR из командной строки
  • как использовать форму SYNOP в wis2box-webapp для преобразования отчетов FM-12 SYNOP в BUFR
  • как использовать csv2bufr для преобразования данных CSV в BUFR из командной строки