Saltar a contenido

Herramientas de Conversión de Datos

Resultados de Aprendizaje

Al final de esta sesión práctica, podrás:

  • Acceder a las herramientas de línea de comandos de ecCodes dentro del contenedor wis2box-api
  • Usar la herramienta synop2bufr para convertir informes FM-12 SYNOP a BUFR desde la línea de comandos
  • Activar la conversión synop2bufr a través de la aplicación web wis2box-webapp
  • Usar la herramienta csv2bufr para convertir datos CSV a BUFR desde la línea de comandos

Introducción

Los datos publicados en WIS2 deben cumplir con los requisitos y estándares definidos por las diversas comunidades de expertos en disciplinas/sistemas terrestres. Para reducir las barreras en la publicación de datos de observaciones superficiales terrestres, wis2box proporciona herramientas para convertir datos al formato BUFR. Estas herramientas están disponibles a través del contenedor wis2box-api y pueden ser utilizadas desde la línea de comandos para probar el proceso de conversión de datos.

Las principales conversiones actualmente soportadas por wis2box son informes FM-12 SYNOP a BUFR y datos CSV a BUFR. Los datos FM-12 son compatibles porque todavía se utilizan ampliamente y se intercambian en la comunidad de la OMM, mientras que los datos CSV son compatibles para permitir el mapeo de datos producidos por estaciones meteorológicas automáticas al formato BUFR.

Sobre FM-12 SYNOP

Los informes meteorológicos de estaciones terrestres históricamente se han reportado cada hora o en las horas principales (00, 06, 12 y 18 UTC) y las horas intermedias (03, 09, 15, 21 UTC). Antes de la migración a BUFR, estos informes se codificaban en texto plano utilizando el formato de código FM-12 SYNOP. Aunque la migración a BUFR estaba programada para completarse en 2012, aún se intercambia una gran cantidad de informes en el formato heredado FM-12 SYNOP. Más información sobre el formato FM-12 SYNOP se puede encontrar en el Manual de Códigos de la OMM, Volumen I.1 (OMM-No. 306, Volumen I.1).

Sobre ecCodes

La biblioteca ecCodes es un conjunto de bibliotecas de software y utilidades diseñadas para decodificar y codificar datos meteorológicos en los formatos GRIB y BUFR. Es desarrollada por el Centro Europeo de Predicción Meteorológica a Medio Plazo (ECMWF), consulta la documentación de ecCodes para más información.

El software wis2box incluye la biblioteca ecCodes en la imagen base del contenedor wis2box-api. Esto permite a los usuarios acceder a las herramientas de línea de comandos y bibliotecas desde dentro del contenedor. La biblioteca ecCodes se utiliza dentro de wis2box-stack para decodificar y codificar mensajes BUFR.

Sobre csv2bufr y synop2bufr

Además de ecCodes, wis2box utiliza los siguientes módulos de Python que trabajan con ecCodes para convertir datos al formato BUFR:

  • synop2bufr: para soportar el formato heredado FM-12 SYNOP utilizado tradicionalmente por observadores manuales. El módulo synop2bufr depende de metadatos adicionales de estaciones para codificar parámetros adicionales en el archivo BUFR. Consulta el repositorio synop2bufr en GitHub
  • csv2bufr: para habilitar la conversión de extractos CSV producidos por estaciones meteorológicas automáticas al formato BUFR. El módulo csv2bufr se utiliza para convertir datos CSV al formato BUFR utilizando una plantilla de mapeo que define cómo los datos CSV deben ser mapeados al formato BUFR. Consulta el repositorio csv2bufr en GitHub

Estos módulos pueden ser utilizados de forma independiente o como parte de wis2box-stack.

Preparación

Requisitos Previos

  • Asegúrate de que tu wis2box ha sido configurado e iniciado
  • Asegúrate de haber configurado un conjunto de datos y al menos una estación en tu wis2box
  • Conéctate al broker MQTT de tu instancia de wis2box usando MQTT Explorer
  • Abre la aplicación web wis2box (http://YOUR-HOST/wis2box-webapp) y asegúrate de haber iniciado sesión
  • Abre el panel de control de Grafana para tu instancia accediendo a http://YOUR-HOST:3000

Para usar las herramientas de línea de comandos BUFR, necesitarás iniciar sesión en el contenedor wis2box-api. A menos que se especifique lo contrario, todos los comandos deben ejecutarse en este contenedor. También necesitarás tener MQTT Explorer abierto y conectado a tu broker.

Primero, conéctate a tu máquina virtual de estudiante a través de tu cliente SSH y copia los materiales del ejercicio al directorio "/wis2box-api" dentro del contenedor wis2box-api:

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

Luego inicia sesión en el contenedor wis2box-api y cambia al directorio donde se encuentran los materiales del ejercicio:

cd ~/wis2box
python3 wis2box-ctl.py login wis2box-api

Confirma que las herramientas están disponibles, comenzando con ecCodes:

bufr_dump -V

Deberías obtener la siguiente respuesta:

ecCodes Version 2.44.1

A continuación, verifica la versión de synop2bufr:

synop2bufr --version

Deberías obtener la siguiente respuesta:

synop2bufr, version 0.7.0

Finalmente, verifica csv2bufr:

csv2bufr --version

Deberías obtener la siguiente respuesta:

csv2bufr, version 0.8.6

Herramientas de línea de comandos ecCodes

La biblioteca ecCodes incluida en el contenedor wis2box-api proporciona una serie de herramientas de línea de comandos para trabajar con archivos BUFR. Los siguientes ejercicios demuestran cómo usar bufr_ls y bufr_dump para verificar el contenido de un archivo BUFR.

bufr_ls

Asegúrate de estar en el directorio /wis2box-api/data-conversion-exercises:

cd /wis2box-api/data-conversion-exercises

En este primer ejercicio, usarás el comando bufr_ls para inspeccionar los encabezados de un archivo BUFR y determinar el tipo de contenido del archivo.

Usa el siguiente comando para ejecutar bufr_ls en el archivo bufr-cli-ex1.bufr4:

bufr_ls bufr-cli-ex1.bufr4

Deberías ver la siguiente salida:

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

Se pueden pasar varias opciones a bufr_ls para cambiar tanto el formato como los campos de encabezado impresos.

Question

¿Cuál sería el comando para listar la salida anterior en formato JSON?

Puedes ejecutar el comando bufr_ls con el flag -h para ver las opciones disponibles.

Haz clic para revelar la respuesta

Puedes cambiar el formato de salida a JSON usando el flag -j, es decir:

bufr_ls -j bufr-cli-ex1.bufr4

Al ejecutarlo, deberías obtener la siguiente salida:

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

La salida impresa representa los valores de algunas de las claves de encabezado en el archivo BUFR.

Por sí sola, esta información no es muy informativa, ya que solo proporciona información limitada sobre el contenido del archivo.

Al examinar un archivo BUFR, a menudo queremos determinar el tipo de datos contenidos en el archivo y la fecha/hora típica de los datos en el archivo. Esta información se puede listar usando el flag -p para seleccionar los encabezados a imprimir. Se pueden incluir múltiples encabezados usando una lista separada por comas.

Puedes usar el siguiente comando para listar la categoría de datos, subcategoría, fecha típica y hora típica:

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

Question

Ejecuta el comando anterior e interpreta la salida usando Common Code Table C-13 para determinar la categoría de datos y subcategoría.

¿Qué tipo de datos (categoría de datos y subcategoría) contiene el archivo? ¿Cuál es la fecha y hora típica de los datos?

Haz clic para revelar la respuesta
{ "messages" : [
  {
    "dataCategory": 2,
    "internationalDataSubCategory": 4,
    "typicalDate": 20231002,
    "typicalTime": "000000"
  }
]}

De esto, vemos que:

  • La categoría de datos es 2, lo que indica datos de "Sondeos verticales (distintos de satélite)".
  • La subcategoría internacional es 4, lo que indica datos de "Informes de temperatura/humedad/viento en niveles superiores desde estaciones terrestres fijas (TEMP)".
  • La fecha y hora típicas son 2023-10-02 y 00:00:00z, respectivamente.

bufr_dump

El comando bufr_dump puede utilizarse para listar y examinar el contenido de un archivo BUFR, incluyendo los datos en sí.

Intenta ejecutar el comando bufr_dump en el segundo archivo de ejemplo bufr-cli-ex2.bufr4:

bufr_dump bufr-cli-ex2.bufr4

Esto genera un JSON que puede ser difícil de analizar. Intenta usar el flag -p para mostrar los datos en texto plano (formato clave=valor):

bufr_dump -p bufr-cli-ex2.bufr4

Verás un gran número de claves como salida, muchas de las cuales están ausentes. Esto es típico en datos del mundo real, ya que no todas las claves de eccodes están pobladas con datos reportados.

Puedes usar el comando grep para filtrar la salida y mostrar solo las claves que no están ausentes. Por ejemplo, para mostrar todas las claves que no están ausentes, puedes usar el siguiente comando:

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

Question

¿Cuál es la presión reducida al nivel medio del mar reportada en el archivo BUFR bufr-cli-ex2.bufr4?

Haz clic para revelar la respuesta

Usando el siguiente comando:

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

Deberías ver la siguiente salida:

pressureReducedToMeanSeaLevel=105590
Esto indica que la presión reducida al nivel medio del mar es 105590 Pa (1055.90 hPa).

Question

¿Cuál es el identificador de estación WIGOS de la estación que reportó los datos en el archivo BUFR bufr-cli-ex2.bufr4?

Haz clic para revelar la respuesta

Usando el siguiente comando:

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

Deberías ver la siguiente salida:

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

Esto indica que el identificador de estación WIGOS es 0-20000-0-99100.

Conversión synop2bufr

A continuación, veamos cómo convertir datos FM-12 SYNOP al formato BUFR utilizando el módulo synop2bufr. El módulo synop2bufr se utiliza para convertir datos FM-12 SYNOP al formato BUFR. El módulo está instalado en el contenedor wis2box-api y puede utilizarse desde la línea de comandos de la siguiente manera:

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

El argumento --metadata se utiliza para especificar el archivo de metadatos de la estación, que proporciona información adicional para ser codificada en el archivo BUFR.
El argumento --output-dir se utiliza para especificar el directorio donde se escribirán los archivos BUFR convertidos. Los argumentos --year y --month se utilizan para especificar el año y mes de la observación.

El módulo synop2bufr también se utiliza en la wis2box-webapp para convertir datos FM-12 SYNOP al formato BUFR utilizando un formulario web.

Los próximos ejercicios demostrarán cómo funciona el módulo synop2bufr y cómo usarlo para convertir datos FM-12 SYNOP al formato BUFR.

Revisar el mensaje SYNOP de ejemplo

Inspecciona el archivo de mensaje SYNOP de ejemplo para este ejercicio synop_message.txt:

cd /wis2box-api/data-conversion-exercises
more synop_message.txt

Question

¿Cuántos informes SYNOP hay en este archivo?

Haz clic para revelar la respuesta

La salida muestra lo siguiente:

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=

Hay 3 informes SYNOP en el archivo, correspondientes a 3 estaciones diferentes (identificadas por los identificadores tradicionales de estación de 5 dígitos: 15015, 15020 y 15090).
Nota que el final de cada informe está marcado por el carácter =.

Revisar la lista de estaciones

El argumento --metadata requiere un archivo CSV que utilice un formato predefinido. Un ejemplo funcional se proporciona en el archivo station_list.csv:

Usa el siguiente comando para inspeccionar el contenido del archivo station_list.csv:

more station_list.csv

Question

¿Cuántas estaciones están listadas en la lista de estaciones? ¿Cuáles son los identificadores de estación WIGOS de las estaciones?

Haz clic para revelar la respuesta

La salida muestra lo siguiente:

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

Esto corresponde a los metadatos de estación para 2 estaciones: para los identificadores de estación WIGOS 0-20000-0-15015 y 0-20000-0-15020.

Convertir SYNOP a BUFR

A continuación, utiliza el siguiente comando para convertir el mensaje FM-12 SYNOP al formato BUFR:

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

Question

¿Cuántos archivos BUFR se crearon? ¿Qué significa el mensaje de WARNING en la salida?

Haz clic para revelar la respuesta

La salida muestra lo siguiente:

[WARNING] Station 15090 not found in station file

Si verificas el contenido de tu directorio con el comando ls -lh, deberías ver que se crearon 2 nuevos archivos BUFR: WIGOS_0-20000-0-15015_20240921T120000.bufr4 y WIGOS_0-20000-0-15020_20240921T120000.bufr4.

El mensaje de advertencia indica que la estación con el identificador tradicional de estación 15090 no se encontró en el archivo de lista de estaciones station_list.csv. Esto significa que el informe SYNOP para esta estación no se convirtió al formato BUFR.

Question

Verifica el contenido del archivo BUFR WIGOS_0-20000-0-15015_20240921T120000.bufr4 utilizando el comando bufr_dump.

¿Puedes confirmar que la información proporcionada en el archivo station_list.csv está presente en el archivo BUFR?

Haz clic para revelar la respuesta

Puedes usar el siguiente comando para verificar el contenido del archivo BUFR:

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

Notarás la siguiente salida:

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

Nota que esto incluye los datos proporcionados por el archivo station_list.csv.

Formulario SYNOP en wis2box-webapp

El módulo synop2bufr también se utiliza en la wis2box-webapp para convertir datos FM-12 SYNOP al formato BUFR mediante un formulario web.
Para probar esto, accede a http://YOUR-HOST/wis2box-webapp e inicia sesión.

Selecciona el formulario SYNOP Form desde el menú de la izquierda y copia el contenido del archivo 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=

En el área de texto SYNOP message:

synop-form

Question

¿Puedes enviar el formulario? ¿Cuál es el resultado?

Haz clic para revelar la respuesta

Necesitas seleccionar un conjunto de datos y proporcionar el token para "processes/wis2box" que creaste en el ejercicio anterior para enviar el formulario.

Si proporcionas un token inválido, verás:

  • Resultado: No autorizado, por favor proporciona un token válido para 'processes/wis2box'

Si proporcionas un token válido, verás "WARNINGS: 3". Haz clic en "WARNINGS" para abrir el desplegable que mostrará:

  • Estación 15015 no encontrada en el archivo de estaciones
  • Estación 15020 no encontrada en el archivo de estaciones
  • Estación 15090 no encontrada en el archivo de estaciones

Para convertir estos datos al formato BUFR necesitarás configurar las estaciones correspondientes en tu wis2box y asegurarte de que las estaciones estén asociadas al tema de tu conjunto de datos.

Note

En el ejercicio de ingesting-data-for-publication ingresaste el archivo "synop_202412030900.txt" y fue convertido al formato BUFR por el módulo synop2bufr.

En el flujo de trabajo automatizado en la wis2box, el año y el mes se extraen automáticamente del nombre del archivo y se utilizan para completar los argumentos --year y --month requeridos por synop2bufr, mientras que los metadatos de la estación se extraen automáticamente de la configuración de estaciones en la wis2box.

Conversión csv2bufr

Note

Asegúrate de que sigues conectado al contenedor wis2box-api y en el directorio /wis2box-api/data-conversion-exercises. Si saliste del contenedor en el ejercicio anterior, puedes iniciar sesión nuevamente de la siguiente manera:

cd ~/wis2box
python3 wis2box-ctl.py login wis2box-api
Y cambia al directorio del ejercicio:

cd /wis2box-api/data-conversion-exercises

Ahora veamos cómo convertir datos CSV al formato BUFR utilizando el módulo csv2bufr. El módulo está instalado en el contenedor wis2box-api y puede utilizarse desde la línea de comandos de la siguiente manera:

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

El argumento --bufr-template se utiliza para especificar el archivo de plantilla de mapeo BUFR, que proporciona el mapeo entre los datos de entrada en formato CSV y los datos de salida en formato BUFR, especificado en un archivo JSON. Las plantillas de mapeo predeterminadas están instaladas en el directorio /opt/csv2bufr/templates dentro del contenedor wis2box-api.

Revisar el archivo CSV de ejemplo

Revisa el contenido del archivo CSV de ejemplo aws-example.csv:

more aws-example.csv

Question

¿Cuántas filas de datos hay en el archivo CSV? ¿Cuál es el identificador de estación WIGOS de las estaciones que reportan en el archivo CSV?

Haz clic para revelar la respuesta

La salida muestra lo siguiente:

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

La primera fila del archivo CSV contiene los encabezados de las columnas, que se utilizan para identificar los datos en cada columna.

Después de la fila de encabezados, hay 3 filas de datos, que representan 3 observaciones meteorológicas de la misma estación con el identificador de estación WIGOS 0-20000-0-60355 en tres marcas de tiempo diferentes: 2024-03-31 01:00:00, 2024-03-31 02:00:00 y 2024-03-31 03:00:00.

Revisar la plantilla aws-template

El contenedor wis2box-api incluye un conjunto de plantillas de mapeo BUFR predefinidas que están instaladas en el directorio /opt/csv2bufr/templates.

Revisa el contenido del directorio /opt/csv2bufr/templates:

ls /opt/csv2bufr/templates
Deberías ver la siguiente salida:

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

Revisemos el contenido del archivo aws-template.json:

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

Esto devuelve un archivo JSON extenso, que proporciona el mapeo para 43 columnas CSV.

Question

¿Qué columna CSV está mapeada a la clave eccodes airTemperature? ¿Cuáles son los valores mínimos y máximos válidos para esta clave?

Haz clic para revelar la respuesta

Utiliza el siguiente comando para filtrar la salida:

cat /opt/csv2bufr/templates/aws-template.json | grep -i airTemperature
Deberías ver la siguiente salida:

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

El valor que se codificará para la clave eccodes airTemperature se tomará de los datos en la columna CSV: air_temperature.

Los valores mínimos y máximos para esta clave son 193.15 y 333.15, respectivamente.

Question

¿Qué columna CSV está mapeada a la clave eccodes internationalDataSubCategory? ¿Cuál es el valor de esta clave?

Haz clic para revelar la respuesta

Utiliza el siguiente comando para filtrar la salida:

cat /opt/csv2bufr/templates/aws-template.json | grep -i internationalDataSubCategory
{"eccodes_key": "internationalDataSubCategory", "value": "const:2"},

No hay ninguna columna CSV asignada a la clave eccodes internationalDataSubCategory, en su lugar se utiliza el valor constante 2 y será codificado en todos los archivos BUFR producidos con esta plantilla de mapeo.

convertir CSV a BUFR

Intentemos convertir el archivo al formato BUFR utilizando el comando csv2bufr:

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

Question

¿Cuántos archivos BUFR se crearon?

Haz clic para revelar la respuesta

La salida muestra lo siguiente:

CLI:    ... Transformando ./aws-example.csv a BUFR ...
CLI:    ... Procesando subconjuntos:
CLI:    ..... 384 bytes escritos en ./WIGOS_0-20000-0-60355_20240331T010000.bufr4
#1#airTemperature: Valor (25.0) fuera del rango válido (193.15 - 333.15).; Elemento configurado como faltante
CLI:    ..... 384 bytes escritos en ./WIGOS_0-20000-0-60355_20240331T020000.bufr4
CLI:    ..... 384 bytes escritos en ./WIGOS_0-20000-0-60355_20240331T030000.bufr4
CLI:    Fin del procesamiento, saliendo.

La salida indica que se crearon 3 archivos BUFR: WIGOS_0-20000-0-60355_20240331T010000.bufr4, WIGOS_0-20000-0-60355_20240331T020000.bufr4 y WIGOS_0-20000-0-60355_20240331T030000.bufr4.

Para verificar el contenido de los archivos BUFR ignorando los valores faltantes, puedes usar el siguiente comando:

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

Question

¿Cuál es el valor de la clave eccodes airTemperature en el archivo BUFR WIGOS_0-20000-0-60355_20240331T010000.bufr4? ¿Y en el archivo BUFR WIGOS_0-20000-0-60355_20240331T020000.bufr4?

Haz clic para revelar la respuesta

Para filtrar la salida, puedes usar el siguiente comando:

bufr_dump -p WIGOS_0-20000-0-60355_20240331T010000.bufr4 | grep -v MISSING | grep airTemperature
Deberías ver la siguiente salida:

#1#airTemperature=298.15

Mientras que para el segundo archivo:

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

No obtienes ningún resultado, lo que indica que el valor para la clave airTemperature está ausente en el archivo BUFR WIGOS_0-20000-0-60355_20240331T020000.bufr4. El csv2bufr se negó a codificar el valor 25.0 del archivo CSV ya que está fuera del rango válido de 193.15 y 333.15 definido en la plantilla de mapeo.

Ten en cuenta que convertir CSV a BUFR utilizando una de las plantillas de mapeo BUFR predefinidas tiene limitaciones:

  • el archivo CSV debe estar en el formato definido en la plantilla de mapeo, es decir, los nombres de las columnas CSV deben coincidir con los nombres definidos en la plantilla de mapeo
  • solo puedes codificar las claves definidas en la plantilla de mapeo
  • los controles de calidad están limitados a las verificaciones definidas en la plantilla de mapeo

Para obtener información sobre cómo crear y usar plantillas de mapeo BUFR personalizadas, consulta el siguiente ejercicio práctico csv2bufr-templates.

Conclusión

¡Felicidades!

En esta sesión práctica has aprendido:

  • cómo acceder a las herramientas de línea de comandos ecCodes dentro del contenedor wis2box-api
  • cómo usar synop2bufr para convertir informes FM-12 SYNOP a BUFR desde la línea de comandos
  • cómo usar el formulario SYNOP en la wis2box-webapp para convertir informes FM-12 SYNOP a BUFR
  • cómo usar csv2bufr para convertir datos CSV a BUFR desde la línea de comandos