Análisis de evolución de casos de COVID-19 con la Plataforma: ingesta y carga en Portal Open Data

Introducción

En esta entrada vamos a ver como ingestar datos en la Plataforma para añadirlos al Open Data Portal de Onesait que acabamos de integrar. Utilizaremos como fuente de datos el portal de Datos Abiertos del Gobierno de España. Los pasos a realizar serán:

  • Modelado de la Ontología.
  • Flujo de ingesta en Plataforma usando el FlowEngine.
  • Creación de Dataset y ecursos en CKAN.
  • Visualización de los datos y creación de vistas.

Modelado de la Ontología

Antes de nada, debemos modelar el formato de los datos que queremos ingestar en la Onesait Platform.

Nos interesa saber cómo han evolucionado los casos de COVID-19 en todo España. En este primer tutorial usaremos únicamente la web de Datos Abiertos del Gobierno para representar la evolución en la población de Alcobendas. En la segunda parte cruzaremos el número total de casos y altas por Comunidad Autónoma a partir de los datos de datadista.

Catálogo de datos epidemiológicos referidos al COVID-19 del portal de Datos Abiertos.

Tenemos por un lado los datos en distintos tipos de formatos, y un shapefile con los datos geográficos de cada zona referenciada. Hemos decidido utilizar el formato CSV para realizar la ingesta, pero podemos trabajar con el formato que queramos. El fichero CSV tiene el siguiente aspecto:

Estructura del CSV descargado.

La primera línea del fichero contiene los nombres de cada campo, separados por comas. Con esto tenemos todo lo necesario para la definición de nuestra Ontología.

Utilizaremos la herramienta de la Plataforma de creación de Ontologías Creation step by step, y seleccionaremos la opción Empty Base, tras haber rellenado los metadatos de la Ontología.

Detalle del gestor de creación de Ontologías.

Definimos los nombres de los campos y el tipo de dato correspondiente:

Descripción de los campos a crear.

A continuación, pincharemos en la opción Update Schema para visualizar el esquema generado. Si pinchamos en la opción Generate Instance podremos ver un ejemplo de instancia.

Estructura del esquema generado para la Ontología.
Ejemplo de instancia generada.

Tras pinchar en NEW, ya tendremos nuestra Ontología creada y lista para ser utilizada en nuestros flujos de ingesta.

Flujo de ingesta

A continuación realizaremos el flujo de ingesta para disponibilizar los datos públicos en la Platforma, con el formato definido en el punto anterior. El flujo es el siguiente:

Flujo de FlowEngine definido para la importación de datos.
Pantalla de configuración del bloque de HTTP Request.
  • CSV: convierte el mensaje en formato CSV, un array de objetos para su procesado posterior. Le indicamos la coma como separador de campo(,), activamos el check para procesar la primera línea como nombres de los campos, y especificamos que queremos a la salida un mensaje con un array con todos los datos.
Pantalla de configuración del bloque de nodo CSV.
  • Function: aquí le damos el formato a cada registro de datos de acuerdo al esquema de Ontología definido en el primer punto.
Pantalla de configuración del bloque de nodo de función.
  • Join: esta caja sirve para agrupar registros, de forma que podamos realizar operaciones bulk en vez de persistir cada registro de manera individual. Tenemos que indicar el campo del mensaje que queremos agrupar (payload), el formato destino (array), así como el límite de registros que se pueden añadir, o un timeout en caso de no llegar al límite superior.
Pantalla de configuración del bloque de nodo de unión.
  • onesaitplatform-insert: sirve para ingestar datos en una Ontología de la Plataforma. Debemos indicarle la Ontología destino.
Pantalla de configuración del bloque de nodo de inserción.

Ahora solo nos queda ejecutar el flujo para persistir los registros en la base de datos. Una vez lo ejecutemos, podremos ver en la pestaña de debug el resultado de la operación de inserción. Como podemos observar, persistimos los registros de 100, que es nuestro límite superior de agrupación.

Pantalla de depuración del flujo.

Creación del Dataset y recurso de CKAN

Por último, para poder visualizar los datos en el portal, debemos crear el recurso correspondiente en CKAN. Si no tenemos un dataset donde guardar el recurso, deberemos crearlo:

Formulario de creación de un Dataset.

Ahora ya podremos crear nuestro recurso y asignarlo al Dataset recién creado.

Gestor de creación de recursos.

En la pantalla de creación definimos el nombre del recurso, el Dataset al que pertenece, la Ontología origen y la consulta a realizar.

Una vez se haya subido el recurso a CKAN, ya tendremos los datos disponibles en nuestro portal.

Visualización de datos y creación de vistas

Al acceder al portal (/opendata), podremos ver el Dataset que hemos creado así como sus recursos:

Pantalla de Datasets del entorno OpenData de Plataforma.
Detalle del recurso generado previamente.

Y podremos hacer uso del datastore CKAN para la consulta y filtrado de datos en tiempo real.

Vista del dataset con el CSV ingestado.

También podemos definir nuevas vistas para la representación de los datos.

Detalle de visualización de los datos.

Crearemos una vista de tipo gráfico como ejemplo. Para ello, se accederá a New View > Chart Builder.

Formulario de generación de nuevo tipo de visualización de datos.

Seleccionamos como claves de datos la tasa total, la tasa en los últimos 14 días y los casos totales, que representaremos con su correspondiente zona, codigo_gis y fecha.

Detalle del selector de datos a mostrar.

Pulsamos en Preview para visalizar la renderización del gráfico:

Gráfica de resultado con la información filtrada.

En último lugar, añadiremos el fichero shapefile para la visualización de las distintas zonas del distrito dentro del mismo Dataset.

De momento no tenemos integrado en Onesait Platform la creación de este tipo de recursos, pero lo podemos añadir como recurso externo en el mismo CKAN. Para ello, únicamente tenemos que crear el recurso correspondiente (formato SHP).

Una vez se ha subido al datastore, podemos visualizarlo con el plugin de shapefile.

Como hemos visto, no resulta complicado la integración de datos externos en nuestro Open Data. También se han facilitado servicios para la creación de recursos a partir de ficheros, así como recursos de la Plataforma (GIS, Dashboards, etc). Esto convierte al CKAN de Onesait Platform en una herramienta muy potente para la integración y visualización de datos abiertos.

¡Esperamos que os haya gustado! Y cualquier duda que os surja, dejadnos un comentario.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *