Saltar a contenido

Descargando datos de WIS2 usando wis2downloader

Resultados de aprendizaje

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

  • usar el "wis2downloader" para suscribirte a notificaciones de datos de WIS2 y descargar datos en tu sistema local
  • visualizar el estado de las descargas en el panel de Grafana
  • aprender cómo configurar el wis2downloader para suscribirte a un broker no predeterminado

Introducción

En esta sesión aprenderás cómo configurar una suscripción a un WIS2 Broker y descargar automáticamente datos en tu sistema local utilizando el servicio "wis2downloader" incluido en el wis2box.

Sobre wis2downloader

El wis2downloader también está disponible como un servicio independiente que puede ejecutarse en un sistema diferente al que publica las notificaciones de WIS2. Consulta wis2downloader para más información sobre cómo usar el wis2downloader como un servicio independiente.

Si deseas desarrollar tu propio servicio para suscribirte a notificaciones de WIS2 y descargar datos, puedes usar el código fuente de wis2downloader como referencia.

Preparación

Antes de comenzar, inicia sesión en tu VM de estudiante y asegúrate de que tu instancia de wis2box esté funcionando correctamente.

Conceptos básicos de wis2downloader

El wis2downloader está incluido como un contenedor separado en wis2box, tal como se define en los archivos Docker Compose. El contenedor Prometheus en wis2box está configurado para recopilar métricas del contenedor wis2downloader, y estas métricas pueden visualizarse en un panel de Grafana.

Visualizando el panel de wis2downloader en Grafana

Abre un navegador web y navega al panel de Grafana de tu instancia de wis2box accediendo a http://YOUR-HOST:3000.

Haz clic en dashboards en el menú de la izquierda:

selección de panel de grafana

y luego selecciona el panel de wis2downloader:

opciones de panel de grafana, seleccionar wis2downloader

Deberías ver el siguiente panel:

panel de wis2downloader

Este panel se basa en métricas publicadas por el servicio wis2downloader y te mostrará el estado de las descargas que están actualmente en progreso.

En la esquina superior izquierda puedes ver las suscripciones que están activas en ese momento.

Mantén este panel abierto, ya que lo usarás para monitorear el progreso de las descargas en el siguiente ejercicio.

Revisando la configuración de wis2downloader

El servicio wis2downloader en wis2box puede configurarse utilizando las variables de entorno definidas en tu archivo wis2box.env.

Las siguientes variables de entorno son utilizadas por el wis2downloader:

- DOWNLOAD_BROKER_HOST: El nombre del host del broker MQTT al que conectarse. Por defecto es globalbroker.meteo.fr
- DOWNLOAD_BROKER_PORT: El puerto del broker MQTT al que conectarse. Por defecto es 443 (HTTPS para websockets)
- DOWNLOAD_BROKER_USERNAME: El nombre de usuario para conectarse al broker MQTT. Por defecto es everyone
- DOWNLOAD_BROKER_PASSWORD: La contraseña para conectarse al broker MQTT. Por defecto es everyone
- DOWNLOAD_BROKER_TRANSPORT: websockets o tcp, el mecanismo de transporte para conectarse al broker MQTT. Por defecto es websockets
- DOWNLOAD_RETENTION_PERIOD_HOURS: El período de retención en horas para los datos descargados. Por defecto es 24
- DOWNLOAD_WORKERS: El número de trabajadores de descarga a utilizar. Por defecto es 8. Determina el número de descargas paralelas.
- DOWNLOAD_MIN_FREE_SPACE_GB: El espacio libre mínimo en GB que se debe mantener en el volumen que aloja las descargas. Por defecto es 1.

Para revisar la configuración actual del wis2downloader, puedes usar el siguiente comando:

cat ~/wis2box/wis2box.env | grep DOWNLOAD

Revisar la configuración de wis2downloader

¿Cuál es el broker MQTT predeterminado al que se conecta el wis2downloader?

¿Cuál es el período de retención predeterminado para los datos descargados?

Haz clic para revelar la respuesta

El broker MQTT predeterminado al que se conecta el wis2downloader es globalbroker.meteo.fr.

El período de retención predeterminado para los datos descargados es de 24 horas.

Actualizando la configuración de wis2downloader

Para actualizar la configuración de wis2downloader, puedes editar el archivo wis2box.env. Para aplicar los cambios, puedes volver a ejecutar el comando de inicio para el stack de wis2box:

python3 wis2box-ctl.py start

Verás que el servicio wis2downloader se reinicia con la nueva configuración.

Puedes mantener la configuración predeterminada para el próximo ejercicio.

Interfaz de línea de comandos de wis2downloader

Para acceder a la interfaz de línea de comandos de wis2downloader dentro de wis2box, puedes iniciar sesión en el contenedor wis2downloader usando el siguiente comando:

python3 wis2box-ctl.py login wis2downloader

Usa el siguiente comando para listar las suscripciones que están activas actualmente:

wis2downloader list-subscriptions

Este comando devuelve una lista vacía, ya que aún no se han configurado suscripciones.

Descargar datos GTS usando un WIS2 Global Broker

Si mantuviste la configuración predeterminada de wis2downloader, actualmente está conectado al WIS2 Global Broker alojado por Météo-France.

Configurar la suscripción

Usa el siguiente comando cache/a/wis2/de-dwd-gts-to-wis2/#, para suscribirte a los datos publicados por el gateway GTS-to-WIS2 alojado por DWD, disponible a través de los Global Caches:

wis2downloader add-subscription --topic cache/a/wis2/de-dwd-gts-to-wis2/#

Luego, sal del contenedor wis2downloader escribiendo exit:

exit

Verificar los datos descargados

Revisa el panel de wis2downloader en Grafana para ver la nueva suscripción añadida. Espera unos minutos y deberías ver que comienzan las primeras descargas. Pasa al siguiente ejercicio una vez que hayas confirmado que las descargas están comenzando.

El servicio wis2downloader en wis2box descarga los datos en el directorio 'downloads' dentro del directorio que definiste como WIS2BOX_HOST_DATADIR en tu archivo wis2box.env. Para ver el contenido del directorio de descargas, usa el siguiente comando:

ls -R ~/wis2box-data/downloads

Ten en cuenta que los datos descargados se almacenan en directorios nombrados según el tema en el que se publicó la notificación de WIS2.

Ver los datos descargados

¿Qué directorios ves en el directorio de descargas?

¿Puedes ver algún archivo descargado en estos directorios?

Haz clic para revelar la respuesta

Deberías ver una estructura de directorios que comienza con cache/a/wis2/de-dwd-gts-to-wis2/, debajo de la cual verás más directorios nombrados según los encabezados de los boletines GTS de los datos descargados.

Dependiendo de cuándo comenzaste la suscripción, es posible que veas o no archivos descargados en este directorio. Si aún no ves archivos, espera unos minutos más y verifica nuevamente.

Consulta el panel de wis2downloader en Grafana para ver el progreso de las descargas. Verás la suscripción que añadiste en la esquina superior izquierda del panel y el número de descargas aumentando a medida que se descargan los datos:

panel de wis2downloader con suscripción activa

Eliminar la suscripción y los datos descargados

Vamos a limpiar la suscripción y los datos descargados antes de pasar al siguiente ejercicio.

Vuelve a iniciar sesión en el contenedor wis2downloader:

python3 wis2box-ctl.py login wis2downloader

y elimina la suscripción que configuraste en wis2downloader usando el siguiente comando:

wis2downloader remove-subscription --topic cache/a/wis2/de-dwd-gts-to-wis2/#

Visita el panel de Grafana para confirmar que la suscripción ha sido eliminada y que las descargas se han detenido. Deberías ver que la suscripción desaparece de la esquina superior izquierda del panel.

Espera unos minutos hasta que el panel muestre que las descargas se han detenido.

Finalmente, puedes eliminar los datos descargados usando el siguiente comando en el contenedor wis2downloader:

rm -rf app/data/downloads/*

Note

El directorio app/data/downloads en el contenedor wis2downloader está mapeado al directorio downloads en el WIS2BOX_HOST_DATADIR definido en tu archivo wis2box.env. El comando anterior elimina todos los datos descargados.

Sal del contenedor wis2downloader escribiendo exit:

exit

Verifica que el directorio de descargas en tu host esté vacío nuevamente:

ls -R ~/wis2box-data/downloads

Sobre los gateways GTS-to-WIS2

Actualmente hay dos gateways GTS-to-WIS2 que están publicando datos a través del WIS2 Global Broker y los Global Caches:

  • DWD (Alemania): centre-id=de-dwd-gts-to-wis2
  • JMA (Japón): centre-id=jp-jma-gts-to-wis2

Si en el ejercicio anterior reemplazas de-dwd-gts-to-wis2 con jp-jma-gts-to-wis2, recibirás las notificaciones y datos publicados por el gateway JMA GTS-to-WIS2.

Temas de origen vs cache

Cuando te suscribes a un tema que comienza con origin/, recibirás notificaciones con una URL canónica que apunta a un servidor de datos proporcionado por el Centro WIS que publica los datos.

Cuando te suscribes a un tema que comienza con cache/, recibirás múltiples notificaciones para los mismos datos, una por cada Global Cache. Cada notificación contendrá una URL canónica que apunta al servidor de datos del respectivo Global Cache. El wis2downloader descargará los datos desde la primera URL canónica que pueda alcanzar.

Descargar datos de ejemplo del WIS2 Training Broker

En este ejercicio, te suscribirás al WIS2 Training Broker, que publica datos de ejemplo con fines de capacitación.

Cambiar la configuración de wis2downloader

Esto demuestra cómo suscribirse a un broker que no es el broker predeterminado y te permitirá descargar algunos datos publicados desde el WIS2 Training Broker.

Edita el archivo wis2box.env y cambia DOWNLOAD_BROKER_HOST a wis2training-broker.wis2dev.io, DOWNLOAD_BROKER_PORT a 1883 y DOWNLOAD_BROKER_TRANSPORT a tcp:

# downloader settings
DOWNLOAD_BROKER_HOST=wis2training-broker.wis2dev.io
DOWNLOAD_BROKER_PORT=1883
DOWNLOAD_BROKER_USERNAME=everyone
DOWNLOAD_BROKER_PASSWORD=everyone
# download transport mechanism (tcp or websockets)
DOWNLOAD_BROKER_TRANSPORT=tcp

Verifica que los cambios realizados coincidan con lo anterior ejecutando:

cat ~/wis2box/wis2box.env | grep DOWNLOAD

Luego ejecuta el comando 'restart' para aplicar los cambios:

python3 wis2box-ctl.py restart

Revisa los registros de wis2downloader para verificar si la conexión al nuevo broker fue exitosa:

docker logs wis2downloader

Deberías ver el siguiente mensaje en los registros:

...
INFO - Connecting...
INFO - Host: wis2training-broker.wis2dev.io, port: 1883
INFO - Connected successfully

Configurar nuevas suscripciones

Ahora configuraremos una nueva suscripción al tema para descargar datos de trayectoria de ciclones desde el WIS2 Training Broker.

Inicia sesión en el contenedor wis2downloader:

python3 wis2box-ctl.py login wis2downloader

Y ejecuta el siguiente comando (copia y pega esto para evitar errores tipográficos):

wis2downloader add-subscription --topic origin/a/wis2/int-wis2-training/data/core/weather/prediction/forecast/medium-range/probabilistic/trajectory

Sal del contenedor wis2downloader escribiendo exit.

Verificar los datos descargados

Espera hasta que veas que las descargas comienzan en el panel de wis2downloader en Grafana.

Verifica que los datos se hayan descargado revisando nuevamente los registros de wis2downloader con:

docker logs wis2downloader

Deberías ver un mensaje en los registros similar al siguiente:

[...] INFO - Message received under topic origin/a/wis2/int-wis2-training/data/core/weather/prediction/forecast/medium-range/probabilistic/trajectory
[...] INFO - Downloaded A_JSXX05ECEP020000_C_ECMP_...

Revisa el contenido del directorio de descargas nuevamente:

ls -R ~/wis2box-data/downloads

Deberías ver un nuevo directorio llamado origin/a/wis2/int-wis2-training/data/core/weather/prediction/forecast/medium-range/probabilistic/trajectory que contiene los datos descargados.

Revisar los datos descargados

¿Cuál es el formato de archivo de los datos descargados?

Haz clic para revelar la respuesta

Los datos descargados están en formato BUFR, como lo indica la extensión de archivo .bufr.

A continuación, intenta agregar otras dos suscripciones para descargar anomalías mensuales de temperatura superficial y datos de pronóstico global de conjunto desde los siguientes temas:

  • origin/a/wis2/int-wis2-training/data/core/weather/prediction/forecast/medium-range/probabilistic/global
  • origin/a/wis2/int-wis2-training/data/core/climate/experimental/anomalies/monthly/surface-temperature

Espera hasta que veas que las descargas comienzan en el panel de wis2downloader en Grafana.

Revisa el contenido del directorio de descargas nuevamente:

ls -R ~/wis2box-data/downloads

Deberías ver los nuevos directorios correspondientes a los temas a los que te suscribiste, que contienen los datos descargados.

Conclusión

¡Felicidades!

En esta sesión práctica, aprendiste a:

  • usar el 'wis2downloader' para suscribirte a un WIS2 Broker y descargar datos a tu sistema local
  • ver el estado de las descargas en el panel de Grafana
  • cómo cambiar la configuración predeterminada de wis2downloader para suscribirte a un broker diferente
  • cómo ver los datos descargados en tu sistema local