El pasado 2 de noviembre tuvo lugar la entrega de premios a los ganadores de la V edición del Concurso de Datos Abiertos de Castilla y León. Esta competición, organizada por la Consejería de Transparencia, Ordenación del Territorio y Acción Exterior de la Junta de Castilla y León, reconoce la realización de proyectos que suministran ideas, estudios, servicios, sitios web o aplicaciones móviles, utilizando para ello conjuntos de datos de su Portal de Datos Abiertos.
El acto ha contado con la participación de Francisco Igea, Vicepresidente de la Junta de Castilla y León, y Joaquín Meseguer, Director General de Transparencia y Buen Gobierno de la misma, encargados de otorgar los galardones a los premiados.

De las 37 candidaturas recibidas, un jurado de expertos en la materia ha elegido 8 proyectos que se han alzado como ganadores en las diversas categorías.
Categoría Ideas
En esta categoría se premian propuestas para desarrollar estudios, servicios, sitios web o aplicaciones para dispositivos móviles.
- El primer premio, de 1.500€, fue para APP SOLAR-CYL, una herramienta web de dimensionamiento óptimo de instalaciones de autoconsumo solar fotovoltaico. Dirigida tanto a ciudadanos como a gestores energéticos de la Administración Pública, la solución busca ser un apoyo para el análisis de la viabilidad técnica y económica de este tipo de sistemas. La idea fue presentada por profesores del Área de Ingeniería Eléctrica, integrantes del grupo de investigación ERESMA (Energy Resources’ Smart Management) de la Universidad de León: Miguel de Simón Martín, Ana María Díez Suárez, Alberto González Martínez, Álvaro de la Puente Gil y Jorge Blanes Peiró.
- El segundo premio, de 500€, recayó en Donde Te Esperan: Recomendador de municipios de España, de Mario Varona Bueno. Gracias a esta herramienta, los usuarios podrán buscar cuál es el mejor lugar para vivir en base a sus preferencias o incluso el azar.
Categoría Productos y Servicios
Esta categoría se diferencia de la anterior en que ya no se premian ideas, sino proyectos accesibles para toda la ciudadanía vía web mediante una URL.
- Repuéblame se alzó con el primer premio, que en esta ocasión consistía en 2.500€. Presentado por Guido García Bernardo y Javier García Bernardo, consiste en una web para redescubrir los mejores lugares en los que vivir o teletrabajar. La aplicación cataloga los municipios castellanoleoneses en base a una serie de indicadores numéricos, de elaboración propia, relacionados con la calidad de vida.
- El segundo premio, de 1.500€, fue para Plagrícola: Avisos de Plagas Agrícolas CyL, de José María Pérez Ramos. Se trata de una app móvil que informa a los agricultores de las alertas sobre plagas publicadas por el Instituto Tecnológico Agrario de Castilla y León (Itacyl), para que puedan llevar a cabo las medidas preventivas y curativas necesarias.
- Completa el pódium disCAPACIDAD.es [web], que se hizo con el tercer premio de 500 €. Su creador, Luis Hernández Fuentevilla, ha desarrollado una web que centraliza ofertas y ayudas relacionadas con el empleo para personas con discapacidad en Castilla y León.
- Esta categoría incluía también un premio dirigido a estudiantes de 1.500 €. El galardonado fue Ruta x Ruta x Castilla y León, presentado por Adrián Arroyo Calle. Esta aplicación web permite a los usuarios consultar rutas de todo tipo, así como los puntos de interés situados en sus proximidades, como monumentos, restaurantes o eventos. La solución también permite a los usuarios compartir sus tracks (grabaciones GPS).
Además, se ha otorgado una mención de honor a las candidaturas presentadas por estudiantes “APP BOCYL Boletín Oficial Castilla y León”, de Nicolás Silva Brenes y "COVID CyL" presentada por Silvia Pedrón Hermosa. Con ello se busca incentivar que los estudiantes trabajen con datos y presenten sus proyectos a convocatorias futuras.
Categoría Periodismo de Datos
Esta categoría está pensada para premiar piezas periodísticas relevantes publicadas o actualizadas en cualquier soporte, ya sea escrito o audiovisual.
- MAPA COVID-19: consulta cuántos casos de coronavirus hay y cómo está la ocupación de tu hospital de la Asociación Maldita contra la desinformación obtuvo el primer premio de 1.500€. Tras un trabajo de recopilación de todos los datos disponibles que los Gobiernos autonómicos publican sobre los hospitales, Maldita ha creado un mapa para consultar cuántos casos de coronavirus hay y cómo está la ocupación de los distintos hospitales. En algunos hospitales también se incluye información sobre la ocupación de las UCI.
- El segundo premio, de 1.000€, ha sido para De cero a 48.000 euros: quién cobra cuánto en las alcaldías de Castilla y León. Explorador de las retribuciones anuales. A través de diversas visualizaciones, su creadora, Laura Navarro Soler, da a conocer información disponible en el sistema de Información Salarial Puestos de la Administración (ISPA). Esta información se cruza con otro tipo de datos como el número de habitantes de cada región o el nivel de dedicación (exclusiva, parcial o sin dedicación).
La categoría “Recurso Didáctico” ha sido declarada desierta. El jurado ha considerado que las candidaturas presentadas no cumplían con los criterios recogidos en las bases.
En total, los 8 proyectos premiados han recibido 10.500 euros. También tendrán la opción de participar en una asesoría en materia de desarrollo empresarial.
¡Enhorabuena a todos los premiados!
Estas infografías recogen ejemplos de uso de datos abiertos en determinados sectores, así como datos de estudios relativos a su impacto. Se irán publicando nuevos contenidos de manera periódica.
1. Ciencia abierta y ciencia ciudadana: el binomio que transforma la investigación
![]() |
Publicado: Julio 2025 Planificar la publicación de datos abiertos desde el inicio de un proyecto de ciencia ciudadana es clave para garantizar la calidad y la interoperabilidad de los datos generados, facilitar su reutilización y maximizar el impacto científico y social del proyecto. |
2. Datos abiertos y gestión urbana: casos de uso innovadores
![]() |
Publicado: Julio 2024 La innovación municipal a través del uso de datos abiertos presenta una oportunidad significativa para mejorar la accesibilidad y eficiencia de los servicios municipales. En esta infografía, recogemos ejemplos de aplicaciones que contribuyen a la mejora de sectores urbanos como transporte y movilidad, organización de servicios públicos básicos, medioambiente y sostenibilidad y servicios a los ciudadanos. |
3. Datos abiertos para la construcción de ciudades sostenibles
![]() |
Publicado: Agosto 2023 Los beneficios del uso de los datos abiertos son amplios y su variedad va de la mano de la innovación tecnológica: cada día surgen más oportunidades para emplear datos abiertos en el desarrollo de soluciones innovadoras. Ejemplo de ello puede ser el desarrollo urbanístico alineado con los valores de sostenibilidad que defiende la Organización de las Naciones Unidas (ONU). |
4. Datos abiertos de educación: ejemplos de reutilización
![]() |
Publicado: Mayo 2023 Los datos abiertos se constituyen como una herramienta fundamental para el fortalecimiento y progreso de la educación y no podemos olvidar que la educación es un derecho universal y una de las principales herramientas para el progreso de la humanidad. En esta infografía se recogen las ventajas y casos de uso de los datos abiertos en el ámbito educativo. |
5. LegalTech: Potencial transformador de los servicios jurídicos
![]() |
Publicado: Agosto 2022 El concepto LegalTech se refiere al uso de nuevos procesos y herramientas tecnológicas para ofrecer servicios jurídicos más eficientes. Para que todas estas herramientas funcionen correctamente, es necesario contar con datos valiosos. En este sentido, los datos abiertos son una gran oportunidad. Descubra más información en este inforgráfico. |
6. ¿Cómo se utilizan los datos abiertos en el sector salud y bienestar?
![]() |
Publicada: septiembre 2021 Los datos de salud abiertos son fundamentales para la gestión y toma de decisiones por parte de nuestros gobernantes, pero también son fundamentales como base de soluciones que ayuden tanto a pacientes como a médicos. En esta infografía se muestran varios ejemplos, tanto de aplicaciones que recopilan servicios de salud, como de herramientas para la previsión y diagnóstico de enfermedades, entre otros. |
7. ¿Cómo pueden los datos abiertos impulsar mejoras en el medio ambiente?
![]() |
Publicada: noviembre 2020 Esta infografía interactiva muestra la situación estratégica, normativa y política que afecta al mundo de los datos abiertos en España y Europa. En ella se recogen los principales puntos de la Estrategia Europea de Datos, el Reglamento sobre Gobernanza de los datos en Europa o el plan España Digital 2025, entre otros. |
8. El papel de la administración pública en la reutilización de la información
![]() |
Publicada: agosto 2020 Las administraciones públicas tienen un papel relevante en el ecosistema de datos abiertos, tanto como proveedores de información como consumidores. En esta infografía se recogen una serie de ejemplos de casos de éxito y buenas prácticas, recopilados en el informe “Las Administraciones Públicas ante la reutilización de la información pública” del Observatorio Nacional de las Telecomunicación y de la Sociedad de la Información (ONTSI). |
9. La importancia de abrir los datos culturales
![]() |
Publicada: junio 2020 ¿Sabías que el 90% del patrimonio cultural a nivel mundial aún no ha sido digitalizado? Descubre en esta infografía los beneficios de abrir datos culturales, así como ejemplos de los productos que se pueden crear a través de su reutilización, y casos de éxito de museos que comparten colecciones en abierto. |
10. Impacto de los datos abiertos en la economía
![]() |
Publicada: marzo 2020 Esta infografía muestra los resultados del estudio “El impacto económico de los datos abiertos: oportunidades de creación de valor en Europa”, realizado por el Portal Europeo de Datos. Descubre cuál es la tasa de crecimiento anual prevista, tanto a nivel de cifra de negocio como de puestos de trabajo. |
En los últimos meses, la estrategia de la iniciativa de datos de Canarias se ha focalizado en la centralización, con el objetivo de facilitar a la ciudadanía el acceso a la información pública a través de un único punto de acceso. Con este motivo pusieron en marcha una nueva versión de su portal de datos abiertos, datos.canarias.es, y han continuado desarrollando proyectos que muestran los datos de una manera sencilla y unificada. Un ejemplo es el Organigrama del Gobierno que han publicado recientemente.
Datos de interés sobre la estructura orgánica y los responsables políticos en un único portal
El Organigrama del Gobierno de Canarias es un portal web que ofrece en abierto información de interés relacionada tanto con la estructura orgánica como con los y las representantes políticos en el Gobierno de Canarias. Su lanzamiento ha corrido a cargo de la Dirección General de Transparencia y Participación Ciudadana, dependiente de la Consejería de Administraciones Públicas, Justicia y Seguridad del Gobierno de Canarias.
Desde el principio, el Organigrama ha sido diseñado pensando en la apertura de datos por defecto, en la accesibilidad y la usabilidad. La herramienta consume datos publicados en el portal de datos abiertos de Canarias, como las retribuciones de los cargos públicos y el personal eventual, mediante su API. También incluye numerosos apartados con información sobre organismos autónomos, entidades públicas, entidades públicas empresariales, sociedades mercantiles, fundaciones públicas, consorcios u órganos colegiados, extraída de forma automática de la herramienta corporativa Directorio de Unidades Administrativas y Oficinas de Registro y Atención a la Ciudadanía (DIRCAC).
Todo el contenido del Organigrama se publica, a su vez, de forma automatizada y periódica, en el portal de datos abiertos de Canarias. Los datos del Organigrama se publican en el portal de datos abiertos de Canarias, al igual que las retribuciones, la estructura orgánica o las oficinas de registro y de atención ciudadana. Se actualizan automáticamente, una vez al mes, tomando los datos de los sistemas de información y publicándolos en el portal de datos abiertos. Esta configuración es totalmente parametrizable pudiendo ser adecuada a la frecuencia que se considere necesaria.
Desde el propio organigrama se pueden descargar todos los datos tanto en formato abierto y editable (ODT) como en un formato que permite su visualización en cualquier dispositivo (PDF).
¿Qué información hay disponible en el Organigrama?
Gracias al Organigrama, la ciudadanía puede conocer quiénes forman parte del Gobierno autonómico. La información aparece dividida en base a once áreas principales: Presidencia y las diez consejerías.
En el Organigrama están disponibles los currículos, las retribuciones y las declaraciones de bienes de todos los altos cargos que conforman el Gobierno, además del personal eventual que trabaja con ellos. Así mismo, también se muestran los correos electrónicos, la dirección de sus oficinas y las páginas webs de cada área. Toda esta información se actualiza constantemente, reflejando cualquier cambio que se produzca.
Con respecto a las agendas para la transparencia de la actividad pública, que son accesibles desde cada una de las fichas de los cargos públicos del Organigrama, se ha de indicar que, gracias a los esfuerzos, se ha logrado:
- Actualizar la aplicación para que las agendas puedan ser gestionadas desde cualquier dispositivo (móvil, tablet, PC, …), mejorando con ello su uso por parte de las personas responsables.
- Categorizar los eventos que, además, se destacan visualmente mediante un código de colores, facilitando con ello, su localización por parte de la ciudadanía.
- Publicar de forma inmediata, y automáticamente, todos los cambios que se realicen en las agendas en el Organigrama.
- Incorporar más información, como la ubicación de los eventos o los datos de los asistentes.
- Descargar los datos de las agendas en formatos abiertos como CSV o JSON, o bien, en formato ICAL, lo que permitirá añadir estos eventos a otras agendas.
- Publicar toda la información de las agendas en el portal de datos abiertos de Canarias, incluyendo una API para su consumo directo.
Por el momento, se han publicado las agendas de los miembros del Consejo de Gobierno, de los Viceconsejeros y de las Viceconsejeras, pero está previsto que se incorporen, de forma progresiva, las agendas del resto de los cargos públicos del Gobierno de Canarias.
El Organigrama fue presentado en el Congreso Internacional de Transparencia, celebrado el pasado mes de septiembre en Alicante, como un ejemplo no solo de apertura y reutilización de datos, sino también de transparencia y rendición de cuentas. Se ha desarrollado por un equipo de personas comprometido con la transparencia, la rendición de cuentas y la apertura de datos, principios todos ellos del Gobierno Abierto, con el fin de ofrecer mejores servicios a la ciudadanía.
1. Introducción
La visualización de datos es una tarea vinculada al análisis de datos que tiene como objetivo representar de manera gráfica información subyacente de los mismos. Las visualizaciones juegan un papel fundamental en la función de comunicación que poseen los datos, ya que permiten extraer conclusiones de manera visual y comprensible permitiendo, además, detectar patrones, tendencias, datos anómalos o proyectar predicciones, entre otras funciones. Esto hace que su aplicación sea transversal a cualquier proceso en el que intervengan datos. Las posibilidades de visualización son muy amplias, desde representaciones básicas, como puede ser un gráfico de líneas, barras o sectores, hasta visualizaciones complejas configuradas desde dashboards interactivos.
Antes de lanzarnos a construir una visualización efectiva, debemos realizar un tratamiento previo de los datos, prestando atención a la obtención de los mismos y validando su contenido, asegurando que no contienen errores y se encuentran en un formato adecuado y consistente para su procesamiento. Un tratamiento previo de los datos es esencial para abordar cualquier tarea de análisis de datos que tenga como resultado visualizaciones efectivas.
Se irán presentando periódicamente una serie de ejercicios prácticos de visualización de datos abiertos disponibles en el portal datos.gob.es u otros catálogos similares. En ellos se abordarán y describirán de manera sencilla las etapas necesarias para obtener los datos, realizar las transformaciones y análisis que resulten pertinentes para la creación de visualizaciones interactivas, de las que podamos extraer la máxima información resumida en unas conclusiones finales. En cada uno de los ejercicios prácticos se utilizarán sencillos desarrollos de código que estarán convenientemente documentados, así como herramientas de uso libre y gratuito. Todo el material generado estará disponible para su reutilización en el repositorio Laboratorio de datos en Github.

Visualización sobre la accidentalidad de tráfico ocurrida en la ciudad de Madrid, por distrito y tipo de vehículo
2. Objetivos
El objetivo principal de este post es aprender a realizar una visualización interactiva partiendo de datos abiertos disponibles en este portal. Para este ejercicio práctico hemos escogido un conjunto de datos que abarca una amplio periodo temporal y que contiene información relevante sobre el registro de accidentes de tráfico que ocurren en la ciudad de Madrid. A partir de estos datos observaremos cuál es el tipo de accidentes más comunes en Madrid y la incidencia que en ellos tiene algunas variables como la edad, el tipo de vehículo o la lesividad que produce el accidente.
3. Recursos
3.1. Conjuntos de datos
Para este análisis se ha seleccionado un conjuntos de datos sobre los accidentes de tráfico ocurridos en la ciudad de Madrid publicados por el Ayuntamiento de Madrid y que se encuentra disponible en datos.gob.es. Este conjunto de datos contiene una serie temporal que abarca el periodo 2010 hasta 2021 con diferentes desagregaciones que facilitan el análisis de las características que presentan los accidentes de tráfico ocurridos, entre otras, las condiciones ambientales en las que se produjo cada siniestro o el tipo de accidente. La información de la estructura de cada archivo de datos está disponible en documentos que abarcan el periodo 2010-2018 y 2019 en adelante. Cabe destacar que existen inconsistencias en los datos antes y después del año 2019, ya que la estructura de datos varía. Esta es una situación bastante habitual a la que deben enfrentarse los analistas de datos a la hora de abordar las tareas de preprocesamiento de los datos con los que se trabajará posteriormente, derivada de la carencia de una estructura homogénea de los datos a lo largo del tiempo. Por ejemplo, alteración del número de variables, modificación del tipo de variables o cambios a diferentes unidades de medida. Esta es una razón de peso que justifica la necesidad de acompañar cada conjunto de datos abiertos de un completo documento que explique su estructura.
3.2. Herramientas
Para la realización del tratamiento previo de los datos (entorno de trabajo, programación y redacción del mismo) se ha utilizado R (versión 4.0.3) y RStudio con el complemento de RMarkdown.
R es un lenguaje de programación open source orientado a objetos e interpretado, creado inicialmente para la computación estadística y la creación de representaciones gráficas. En la actualidad, es una herramienta muy poderosa para todo tipo de procesamiento y manipulación de datos que está permanentemente actualizada. Además dispone de un entorno de programación, RStudio, también open source.
Para la creación de la visualización interactiva se ha utilizado la herramienta Kibana.
Kibana es una herramienta open source que forma parte del paquete de productos Elastic Stack (Elasticsearch, Beats, Logstash y Kibana) que permite la creación de visualización y la exploración de datos indexados sobre el motor de analítica Elasticsearch.
Si quieres saber más sobre estas herramientas u otras que puedan ayudarte en el procesado de datos y la creación de visualizaciones interactivas, puedes consultar el informe \"Herramientas de procesado y visualización de datos\".
4. Tratamiento de datos
Para la realización de los análisis y visualizaciones posteriores, es necesario preparar los datos de una forma adecuada, para que los resultados obtenidos sean consistentes y efectivos. Debemos realizar un análisis exploratorio de los datos (EDA, por sus siglas en inglés), con el fin de conocer y comprender los datos con los cuales queremos trabajar. El objetivo principal de este pre-procesamiento de los datos es detectar posibles anomalías o errores que pudieran afectar a la calidad de los resultados posteriores e identificar patrones de información contenidos en los datos.
Para favorecer el entendimiento de los lectores no especializados en programación, el código en R que se incluye a continuación, al que puedes acceder haciendo click en el botón de \"Código\" de cada sección, no está diseñado para maximizar su eficiencia, sino para facilitar su comprensión, por lo que es posible que lectores más avanzados en este lenguaje consideren forma alternativas más eficientes para codificar algunas funcionalidades. El lector podrá reproducir este análisis si lo desea, ya que el código fuente está disponible en la cuenta de Github de datos.gob.es. La forma de proporcionar el código es a través de un documento de texto plano, que una vez cargado en el entorno de desarrollo podrá ejecutarse o modificarse de manera sencilla si se desea.
4.1. Instalación y carga de librerías
Para el desarrollo de este análisis necesitamos instalar una serie de paquetes de R adicionales a la distribución base, incorporando al entorno de trabajo las funciones y objetos definidos por ellas. Hay muchos paquetes disponibles en R pero las más adecuadas para trabajar con este conjunto de datos son: tidyverse, lubridate y data.table. tidyverse es una colección de paquetes de R (contiene a su vez otros paquetes como dplyr, ggplot2, readr, etc) diseñados específicamente para trabajar en Data Science, que facilitar la carga y tratamiento de datos, y las representaciones gráficas, entre otras funcionalidades esenciales para el análisis de datos, pero que requiere un conocimiento progresivo para obtener el máximo partido de los paquetes que integra. Por otro lado, el paquete lubridate lo usaremos para el manejo de variables tipo fecha y por último el paquete data.table permite realizar una gestión más eficiente de conjuntos de datos grandes. Estos paquetes será preciso descargarlos e instalarlos en el entorno de desarrollo.
#Lista de librerías que queremos instalar y cargar en nuestro entorno de desarrollo librerias <- c(\"tidyverse\", \"lubridate\", \"data.table\")#Descargamos e instalamos las librerías en nuestros entorno de desarrollo package.check <- lapplay (librerias, FUN = function(x) { if (!require (x, character.only = TRUE)) { install.packages(x, dependencies = TRUE) library (x, character.only = TRUE } }4.2. Carga y limpieza de datos
a. Carga de datasets
Los datos que vamos a utilizar en la visualización se encuentran divididos por anualidades en ficheros CSV. Como queremos realizar un análisis de varios años debemos descargar y cargar en nuestro entorno de desarrollo todos los conjuntos de datos que nos interesen.
Para ello, generamos el directorio de trabajo \"datasets\", donde descargaremos todos los conjuntos de datos. Usamos dos listas, una con todas las URLs donde se encuentran localizados los datasets y otra con los nombres que asignamos a cada fichero guardado en nuestra maquina, con ello facilitamos posteriores referencias a estos ficheros.
#Generamos una carpeta en nuestro directorio de trabajo para guardar los datasets descargadosif (dir.exists(\".datasets\") == FALSE)#Nos colocamos dentro de la carpetasetwd(\".datasets\")#Listado de los datasets que nos interese descargardatasets <- c(\"https://datos.madrid.es/egob/catalogo/300228-10-accidentes-trafico-detalle.csv\", \"https://datos.madrid.es/egob/catalogo/300228-11-accidentes-trafico-detalle.csv\", \"https://datos.madrid.es/egob/catalogo/300228-12-accidentes-trafico-detalle.csv\", \"https://datos.madrid.es/egob/catalogo/300228-13-accidentes-trafico-detalle.csv\", \"https://datos.madrid.es/egob/catalogo/300228-14-accidentes-trafico-detalle.csv\", \"https://datos.madrid.es/egob/catalogo/300228-15-accidentes-trafico-detalle.csv\", \"https://datos.madrid.es/egob/catalogo/300228-16-accidentes-trafico-detalle.csv\", \"https://datos.madrid.es/egob/catalogo/300228-17-accidentes-trafico-detalle.csv\", \"https://datos.madrid.es/egob/catalogo/300228-18-accidentes-trafico-detalle.csv\", \"https://datos.madrid.es/egob/catalogo/300228-19-accidentes-trafico-detalle.csv\", \"https://datos.madrid.es/egob/catalogo/300228-21-accidentes-trafico-detalle.csv\", \"https://datos.madrid.es/egob/catalogo/300228-22-accidentes-trafico-detalle.csv\")#Descargamos los datasets de interésdt <- list()for (i in 1: length (datasets)){ files <- c(\"Accidentalidad2010\", \"Accidentalidad2011\", \"Accidentalidad2012\", \"Accidentalidad2013\", \"Accidentalidad2014\", \"Accidentalidad2015\", \"Accidentalidad2016\", \"Accidentalidad2017\", \"Accidentalidad2018\", \"Accidentalidad2019\", \"Accidentalidad2020\", \"Accidentalidad2021\") download.file(datasets[i], files[i]) filelist <- list.files(\".\") print(i) dt[i] <- lapply (filelist[i], read_delim, sep = \";\", escape_double = FALSE, locale = locale(encoding = \"WINDOWS-1252\", trim_ws = \"TRUE\") }b. Creación de la tabla de trabajo
Una vez que tenemos todos los conjuntos de datos cargados en nuestro entorno de desarrollo, creamos una única tabla de trabajo que integra todos los años de la serie temporal.
Accidentalidad <- rbindlist(dt, use.names = TRUE, fill = TRUE)Una vez generada la tabla de trabajo, debemos solucionar uno de los problemas más comunes en todo preprocesamiento de datos: la inconsistencia en el nombre de las variables en los diferentes ficheros que componen la serie temporal. Esta anomalía produce variables con nombres diferentes, pero sabemos que representan la misma información. En este caso porque está explicado en el diccionario de datos descrito en la documentación de los archivos, si no fuese así, es necesario recurrir a la observación y exploración descriptiva de los archivos. En este caso, la variable \"RANGO EDAD\" que presenta datos desde 2010 hasta 2018 y la variable \"RANGO DE EDAD\" que presenta los mismos datos pero desde el año 2019 hasta 2021 son diferentes. Para solucionar esta problemática debemos unificar las variables que presentan esta anomalía en una única variable.
#Con la función unite() unimos ambas variables. Debemos indicarle el nombre de la tabla, el nombre que queremos asignarle a la variable y la posición de las variables que queremos unificar. Accidentalidad <- unite(Accidentalidad, LESIVIDAD, c(25, 44), remove = TRUE, na.rm = TRUE)Accidentalidad <- unite(Accidentalidad, NUMERO_VICTIMAS, c(20, 27), remove = TRUE, na.rm = TRUE)Accidentalidad <- unite(Accidentalidad, RANGO_EDAD, c(26, 35, 42), remove = TRUE, na.rm = TRUE)Accidentalidad <- unite(Accidentalidad, TIPO_VEHICULO, c(20, 27), remove = TRUE, na.rm = TRUE)Una vez que tenemos la tabla con la serie temporal completa, generamos una nueva tabla contiendo únicamente las variables que nos interesan para realizar la visualización interactiva que queremos desarrollar.
Accidentalidad <- Accidentalidad %>% select (c(\"FECHA\", \"DISTRITO\", \"LUGAR ACCIDENTE\", \"TIPO_VEHICULO\", \"TIPO_PERSONA\", \"TIPO ACCIDENTE\", \"SEXO\", \"LESIVIDAD\", \"RANGO_EDAD\", \"NUMERO_VICTIMAS\") c. Transformación de variables
A continuación, examinamos el tipo de variables y valores para transformar los tipos que sea necesario para poder realizar futuras agregaciones, gráficos o diferentes análisis estadísticos.
#Re-ajustar la variable tipo fechaAccidentalidad$FECHA <- dmy (Accidentalidad$FECHA #Re-ajustar el resto de variables a tipo factor Accidentalidad$'TIPO ACCIDENTE' <- as.factor(Accidentalidad$'TIPO.ACCIDENTE')Accidentalidad$'Tipo Vehiculo' <- as.factor(Accidentalidad$'Tipo Vehiculo')Accidentalidad$'TIPO PERSONA' <- as.factor(Accidentalidad$'TIPO PERSONA')Accidentalidad$'Tramo Edad' <- as.factor(Accidentalidad$'Tramo Edad')Accidentalidad$SEXO <- as.factor(Accidentalidad$SEXO)Accidentalidad$LESIVIDAD <- as.factor(Accidentalidad$LESIVIDAD)Accidentalidad$DISTRITO <- as.factor (Accidentalidad$DISTRITO)d. Generación de nuevas variables
Vamos a dividir la variable \"FECHA\" en una jerarquía de variables de tipo fecha, \"Año\", \"Mes\" y \"Día\". Esta acción es muy común en la analítica de datos, ya que en muchas ocasiones interesa analizar otros rangos de tiempo, por ejemplo, años, meses, semanas y cualquier otra unidad de tiempo, o necesitamos generar agregaciones a partir del día de la semana.
#Generación de la variable AñoAccidentalidad$Año <- year(Accidentalidad$FECHA)Accidentalidad$Año <- as.factor(Accidentalidad$Año) #Generación de la variable MesAccidentalidad$Mes <- month(Accidentalidad$FECHA)Accidentalidad$Mes <- as.factor(Accidentalidad$Mes)levels (Accidentalidad$Mes) <- c(\"Enero\", \"Febrero\", \"Marzo\", \"Abril\", \"Mayo\", \"Junio\", \"Julio\", \"Agosto\", \"Septiembre\", \"Octubre\", \"Noviembre\", \"Diciembre\") #Generación de la variable DiaAccidentalidad$Dia <- month(Accidentalidad$FECHA)Accidentalidad$Dia <- as.factor(Accidentalidad$Dia)levels(Accidentalidad$Dia)<- c(\"Domingo\", \"Lunes\", \"Martes\", \"Miercoles\", \"Jueves\", \"Viernes\", \"Sabado\")e. Detección y tratamiento de datos perdidos
La detección y tratamiento de datos perdidos (NAs) es esencial para poder procesar de manera adecuada las variables que contiene la tabla, ya que la ausencia de datos puede ocasionar problemas a la hora de realizar agregaciones, gráficos o análisis estadísticos.
A continuación analizaremos la ausencia de datos (detección de NAs) en la tabla:
#Suma de todos los NAs que presenta el datasetsum(is.na(Accidentalidad))#Porcentaje de NAs en cada una de las variablescolMeans(is.na(Accidentalidad))Una vez detectados los NAs que presenta el dataset, debemos tratarlos de alguna forma. En este caso, como todas las variables de interés, son categóricas, vamos a completar los valores ausentes por un valor de \"No asignado\", para no perder tamaño muestral e información relevante.
#Sustituimos los NAs de la tabla por el valor \"No asignado\"Accidentalidad [is.na(Accidentalidad)] <- \"No asignado\"f. Asignaciones de niveles en las variables
Una vez que tenemos en la tabla las variables de interés, podemos realizar un examen más exhaustivo de los datos y categorías que presenta cada una de las variable. Si analizamos cada una de manera independiente, podemos observar que algunas de ellas presentan categorías repetidas, simplemente por uso de tildes, caracteres especiales o mayúsculas. Para que las futuras visualizaciones o análisis estadísticos se construyan de manera eficiente y sin errores, vamos a reasignar los niveles a las variables que lo requieran.
Por razones de espacio, en este post solo mostraremos un ejemplo con la variable \"LESIVIDAD\". Esta variable estaba tipificada hasta 2018 con una serie de categorías (IL, HL, HG, MT), mientras que a partir de 2019 se usaron otras categorías (valores del 0 al 14). Afortunadamente esta tarea resulta fácilmente abordable dado que está documentada en la información sobre la estructura que acompaña cada dataset, cuestión, como hemos comentado con anterioridad que no siempre ocurre, lo que dificulta enormemente este tipo de transformaciones de datos.
#Comprobamos las categorías que presenta la variable \"LESIVIDAD\"levels(Accidentalidad$LESIVIDAD)#Asignamos las nuevas categoríaslevels(Accidentalidad$LESIVIDAD)<- c(\"Sin asistencia sanitaria\", \"Herido leve\", \"Herido leve\", \"Herido grave\", \"Fallecido\", \"Herido leve\", \"Herido leve\", \"Herido leve\", \"Ileso\", \"Herido grave\", \"Herido leve\", \"Ileso\", \"Fallecido\", \"No asignado\")#Comprobamos de nuevo las catergorías que presenta la variablelevels(Accidentalidad$LESIVIDAD)4.3. Resumen del dataset
Veamos que variables y estructura presenta el nuevo conjunto de datos tras las transformaciones realizadas:
str(Accidentalidad)summary(Accidentalidad)La salida de estos comandos la omitiremos para simplificar lectura. Las principales características que presenta el conjunto de datos son:
- Está compuesto por 14 variables: 1 variable tipo fecha y 13 variables de tipo categórico.
- El rango temporal abarca desde 01-01-2010 hasta el 31-06-2021 (la fecha final puede variar, ya que el dataset del año 2021 se esta actualizando periódicamente).
- Por cuestiones de espacio en este post, no todas las variables disponibles se han tenido en cuenta para el análisis y la visualización.
4.4. Guardar el dataset generado
Una vez que tenemos el conjunto de datos con la estructura y variables que nos interesan para realizar la visualización de los datos, lo guardaremos como archivo de datos en formato CSV para posteriormente realizar otros análisis estadísticos o utilizarlo en otras herramientas de procesado o visualización de datos como la que abordamos a continuación. Es importante guardarlo con una codificación UTF-8 (Formato de Transformación Unicode) para que los caracteres especiales sean identificados de manera correcta por cualquier software.
write.csv(Accidentalidad, file = Accidentalidad.csv\", fileEncoding=\"UTF-8\")5. Creación de la visualización sobre los accidentes de tráfico que ocurren en la ciudad de Madrid usando Kibana
Para la realización de esta visualización interactiva se ha usado la herramienta Kibana en su versión gratuita sobre nuestro entorno local. Antes de poder realizar la visualización es necesario tener instalado el software y para ello hemos seguido los pasos del tutorial de descarga e instalación proporcionado por la compañía Elastic.
Una vez instalado el software de Kibana, procedemos a desarrollar la visualización interactiva. A continuación se incluyen dos vídeo tutoriales, en los cuales se muestra el proceso de realización de la visualización interactiva y la interacción con la misma.
En este primer vídeo tutorial, se muestra el proceso de desarrollo de la visualización realizando los pasos que se indican a continuación:
- Carga de datos en Elasticsearch, generación de un índice en Kibana que nos permita interactuar con los datos prácticamente en tiempo real e interacción con las variables que presenta el conjunto de datos.
- Generación de las siguientes representaciones gráficas:
- Gráfico de líneas para representar la serie temporal sobre los accidentes de tráfico ocurridos en la ciudad de Madrid.
- Gráfico de barras horizontales mostrando el tipo de accidente más común.
- Mapa temático, mostraremos el número de accidentes que ocurren en cada una de los distritos de la ciudad de Madrid. Para la creación de este visual es necesario la descarga del \"conjunto de datos que contiene los distritos georreferenciados en formato GeoJSON\".
- Construcción del dashboard integrando los visuales generados en el paso anterior.
En este segundo vídeo tutorial mostraremos la interacción con la visualización que acabamos de crear:
6. Conclusiones
Observando la visualización de los datos sobre los accidentes de tráfico ocurridos en la ciudad de Madrid desde 2010 hasta junio de 2021, se pueden obtener, entre otras, las siguientes conclusiones:
- El número de accidentes que ocurren en la ciudad de Madrid es estable a lo largo de los años, a excepción del año 2019 donde se observa un fuerte incremento y durante el segundo trimestre de 2020 donde se observa una significativa disminución, que coincide con el período del primer estado de alarma a causa de la pandemia del COVID-19.
- Todos los años se observa una disminución del número de accidentes durante el mes de agosto.
- Los hombres suelen tener un número significativamente mayor de accidentes que las mujeres.
- El tipo de accidente más común es la colisión doble, seguido del atropello a un animal y la colisión múltiple.
- Alrededor del 50% de los accidentes no ocasionan daños a las personas implicadas.
- Los distritos con mayor concentración de accidentes son: el distrito de Salamanca, el distrito de Chamartín y el distrito Centro.
La visualización de datos es una de los mecanismos más potentes para explotar y analizar de manera autónoma el significado implícito de los datos, independientemente del grado del conocimiento tecnológico del usuario. Las visualizaciones nos permiten construir significado sobre los datos y la creación de narrativas basadas en la representación gráfica.
Si quieres aprender cómo realizar una predicción sobre la siniestralidad futura de accidentes de tráfico utilizando técnicas de Inteligencia Artificial a partir de estos datos, consulta el post sobre \"Tecnologías emergentes y datos abiertos: Analítica Predictiva\".
Esperamos que os haya gustado este post y volveremos para mostraros nuevas reutilizaciones de datos. ¡Hasta pronto!
La vida ocurre en tiempo real y buena parte de nuestra vida, hoy, discurre en el mundo digital. Los datos, nuestros datos, son la representación de cómo vivimos experiencias híbridas entre lo físico y lo virtual. Si queremos saber lo que ocurre a nuestro alrededor, debemos de analizar los datos en tiempo real. En este post, te explicamos cómo.
Introducción
Imaginemos la siguiente situación: entramos en nuestra tienda online favorita, buscamos un producto que queremos y nos sale un mensaje en la pantalla que dice que el precio del producto mostrado es de hace una semana y no tenemos información del precio actual del mismo. Alguien encargado de los procesos de datos de esa tienda online, podría decir que este es el comportamiento esperado puesto que las cargas de la base de datos de precios desde el sistema central hacia los e-commerce son semanales. Afortunadamente, esta experiencia online es impensable hoy en día en una e-commerce, pero lejos de lo que podría pensarse, es una situación habitual en muchos otros procesos de las empresas y organizaciones. A todos nos habrá pasado que estando dados de alta en alguna base de datos de algún comercio, cuándo acudimos a una tienda diferente a nuestra tienda habitual, opps!, resulta que no figuramos cómo clientes. De nuevo, esto se debe a que el procesamiento de los datos (en este caso la base de datos de clientes) se encuentra centralizada y las cargas hacia sistemas periféricos (servicio post-venta, distribuidores, canal comercial) se hacen en modo por lotes o batch. Esto, en la práctica, significa que la actualización de datos puede tardar días o incluso semanas.
En el ejemplo anterior, el pensamiento en modo por lotes o batch de los datos, puede arruinar, sin saberlo, la experiencia de un cliente o un usuario. El pensamiento en batch puede ocasionar graves consecuencias cómo: la pérdida de un cliente, el empeoramiento de la imagen de marca o la fuga de los mejores empleados.
Beneficios de usar datos en tiempo real
Existen situaciones en las que simplemente, los datos son en tiempo real o no lo son. Un ejemplo muy reconocible es el caso de las transacciones, bancarias o de cualquier otro tipo. No podemos imaginarnos que el pago en un comercio no se produzca en tiempo real (aunque a veces los terminales de pago se queden sin cobertura y esto origine molestas situaciones en los comercios físicos). Tampoco puede (o debe) ocurrir, que al paso por un peaje en una autopista, la barrera no se abra a tiempo (aunque probablemente todos hayamos vivido alguna situación rocambolesca en este contexto).
Sin embargo, en muchos procesos y situaciones puede ser razón de debate y discusión si implementar una estrategia de datos en tiempo real o simplemente seguir aproximaciones convencionales, intentando tener un decalaje en los tiempos de análisis (de datos) y respuesta lo más bajos posible. A continuación, listamos algunos de los beneficios más importantes de implementar estrategias de datos en tiempo real:
- Reacción inmediata ante un error. Los errores ocurren y con los datos no es diferente. Si disponemos de un sistema de monitorización y alertas en tiempo real, reaccionaremos antes de que sea demasiado tarde ante un error.
- Mejora drástica de la calidad del servicio. Cómo hemos comentado, no disponer de la información adecuada en el momento en que se necesita, puede arruinar la experiencia de nuestro servicio y con ello la pérdida de clientes o potenciales clientes. Si nuestro servicio falla, debemos de conocerlo inmediatamente para poder enmendarlo y solucionarlo. Esto es lo que marca la diferencia entre las organizaciones que se han adaptado a la transformación digital y las que no.
- Incrementar las ventas. No disponer de los datos en tiempo real, puede hacerte perder mucho dinero y rentabilidad. Imaginemos el siguiente ejemplo, que veremos con más detalle en la sección práctica. Si tenemos un negocio en el que el servicio que prestamos depende de una capacidad limitada (una cadena de restaurantes, hoteles o un parking, por ejemplo) nos interesa disponer de nuestros datos de ocupación en tiempo real, puesto que eso implica que podamos vender de forma más dinámica nuestra capacidad de servicio disponible.
La parte tecnológica del tiempo real.
Durante años, los análisis de datos se plantearon desde el origen en modo batch. Cargas de datos históricos, cada cierto tiempo, en procesos que se ejecutan solo bajo ciertos condicionantes. La razón es que existe cierta complejidad tecnológica debajo de la posibilidad de capturar y consumir datos en el mismo momento en el que estos se generan. Los almacenamientos de datos tradicionales, las bases de datos (relacionales), por ejemplo, tienen ciertas limitaciones para trabajar con transacciones rápidas y para ejecutar operaciones sobre los datos en tiempo real. Existe una cantidad ingente de documentación a este respecto y sobre cómo las soluciones tecnológicas han ido incorporando tecnología para superar estas barreras. No es el objetivo de este post entrar en los detalles técnicos de las tecnologías para alcanzar el objetivo de capturar y analizar datos en tiempo real. Sin embargo, comentaremos que existen dos paradigmas claros para construir soluciones de tiempo real que no tienen por qué ser excluyentes.
- Las soluciones basadas en mecanismos y flujos clásicos de captura, almacenamiento (persistencia) y exposición de datos a canales de consumo concretos (cómo una página web o un API).
- Las soluciones basadas en mecanismos de disponibilización de eventos, en los que el dato, se genera y se publica con independencia de quién y cómo lo vaya a consumir.
Un ejemplo práctico
Cómo acostumbramos a hacer en este tipo de posts, tratamos de ilustrar el tema del post con un ejemplo práctico con el que el lector pueda interactuar. En este caso, vamos a utilizar un conjunto de datos abiertos del catálogo de datos.gob.es. En particular, vamos a utilizar un conjunto de datos que contiene información sobre la ocupación de plazas de aparcamientos públicos en el centro de la ciudad de Málaga. El conjunto de datos se encuentra disponible en este enlace y se puede explorar en profundidad a través de este enlace. Los datos son accesibles a través de este API. En la descripción del conjunto de datos se indica que la frecuencia de actualización es cada 2 minutos. Cómo hemos comentado anteriormente, este es un buen ejemplo en el que disponer de los datos en tiempo real[1] tiene importantes ventajas tanto para el prestador del servicio cómo para los usuarios del mismo. No hace muchos años era difícil pensar en disponer de esta información en tiempo real y nos conformábamos con información agregada a final de semana o mes sobre la evolución de la ocupación de las plazas de aparcamiento.
A partir del conjunto de datos hemos construido una app interactiva donde el usuario puede observar en tiempo real el nivel de ocupación mediante unas visualizaciones gráficas. El lector tiene a su disposición el código del ejemplo para reproducirlo en cualquier momento.


En este ejemplo, hemos visto cómo, desde el momento en que los sensores de ocupación comunican su estado (libre u ocupado) hasta que nosotros consumimos los datos en una aplicación web, estos mismos datos han pasado por varios sistemas e incluso han tenido que ser convertidos a un fichero de texto para exponerlos al público. Un sistema mucho más eficiente sería publicar los datos en un broker de eventos al que poder suscribirse con tecnologías de tiempo real. En cualquier caso, a través de esta API somos capaces de capturar estos datos en tiempo real y representarlos en una aplicación web lista para su consumo y todo esto con menos de 150 líneas de código. ¿Te animas a probarlo?
Concluyendo, la importancia de los datos en tiempo real es fundamental ya en la mayoría de procesos, no solo la gestión de espacios o el comercio online. A medida que el volumen de datos en tiempo real aumenta, es necesario modificar nuestra forma de pensar desde una perspectiva batch o por lotes hacia un mindset real-time first. Es decir, pensemos directamente que los datos han de estar disponibles para su consumo en tiempo real desde el momento en el que se generan intentando minimizar el número de operaciones que hacemos con ellos antes de poder consumirlos.
[1] El término tiempo real puede ser ambiguo en determinados casos. En el contexto de este post, podemos considerar que tiempo real es el tiempo de actualización de datos característico que sea relevante en el dominio particular en el que estemos trabajando. Por ejemplo, en este caso de uso una frecuencia de actualización de 2 min es suficiente y puede considerarse tiempo real. Si estuviéramos analizando un caso de uso de cotizaciones de bolsa el concepto de tiempo real sería del orden de segundos.
Contenido elaborado por Alejandro Alija,experto en Transformación Digital e Innovación.
Los contenidos y los puntos de vista reflejados en esta publicación son responsabilidad exclusiva de su autor.
1. Introducción
La visualización de datos es una tarea vinculada al análisis de datos que tiene como objetivo representar de manera gráfica información subyacente de los mismos. Las visualizaciones juegan un papel fundamental en la función de comunicación que poseen los datos, ya que permiten extraer conclusiones de manera visual y comprensible permitiendo, además, detectar patrones, tendencias, datos anómalos o proyectar predicciones, entre otras funciones. Esto hace que su aplicación sea transversal a cualquier proceso en el que intervengan datos. Las posibilidades de visualización son muy amplias, desde representaciones básicas, como puede ser un gráfico de líneas, barras o sectores, hasta visualizaciones complejas configuradas desde dashboards interactivos.
Antes de lanzarnos a construir una visualización efectiva, debemos realizar un tratamiento previo de los datos, prestando atención a la obtención de los mismos y validando su contenido, asegurando que no contienen errores y se encuentran en un formato adecuado y consistente para su procesamiento. Un tratamiento previo de los datos es esencial para abordar cualquier tarea de análisis de datos que tenga como resultado visualizaciones efectivas.
Se irán presentando periódicamente una serie de ejercicios prácticos de visualización de datos abiertos disponibles en el portal datos.gob.es u otros catálogos similares. En ellos se abordarán y describirán de manera sencilla las etapas necesarias para obtener los datos, realizar las transformaciones y análisis que resulten pertinentes para la creación de visualizaciones interactivas, de las que podamos extraer la máxima información resumida en unas conclusiones finales. En cada uno de los ejercicios prácticos se utilizarán sencillos desarrollos de código que estarán convenientemente documentados, así como herramientas de uso libre y gratuito. Todo el material generado estará disponible para su reutilización en el repositorio Laboratorio de datos en Github.

Visualización del personal docente de Castilla y León clasificados por Provincia, Localidad y Especialidad docente
2. Objetivos
El objetivo principal de este post es aprender a tratar un conjunto de datos desde su descarga hasta la creación de uno o varios gráficos interactivos. Para ello se han utilizado conjuntos de datos que contienen información relevante sobre los docentes y alumnos matriculados en los centros públicos de Castilla y León durante el año académico 2019-2020. A partir de estos datos se realizan análisis de varios indicadores que relacionan docentes, especialidades y alumnado matriculado en los centros de cada provincia o localidad de la comunidad autónoma.
3. Recursos
3.1. Conjuntos de datos
Para este estudio se han seleccionado conjuntos de datos de la temática Educación publicados por la Junta de Castilla y León, disponibles en el portal de datos abiertos datos.gob.es. Concretamente:
- Dataset de las plantillas jurídicas de los centros públicos de Castilla y León de todos los cuerpos de profesorado, a excepción de los maestros, durante el curso académico 2019-2020. Este dataset se encuentra desagregado por especialidad del docente, centro educativo, localidad y provincia.
- Dataset de las matriculaciones de alumnos en centros educativos durante el curso académico 2019-2020. Este conjunto de datos se obtiene a través de una consulta que admite diferentes parámetros de configuración. Las instrucciones para realizarla se encuentran disponibles en el mismo punto de descarga del dataset. El conjunto de datos se encuentra desagregado por centro educativo, localidad y provincia.
3.2. Herramientas
Para la realización de este análisis (entorno de trabajo, programación y redacción del mismo) se ha utilizado el lenguaje de programación Python (versión 3.7) y JupyterLab (versión 2.2), herramientas que encontrarás integradas en Anaconda, una de las plataformas más populares para instalar, actualizar o administrar software para trabajar con Data Science. Todas estas herramientas son abiertas y están disponibles de forma gratuita.
JupyterLab es una interfaz de usuario basada en web que proporciona un entorno de desarrollo interactivo donde el usuario puede trabajar con los denominados cuadernos Jupyter sobre los que podrás integrar y compartir fácilmente texto, código fuente y datos.
Para la creación de la visualización interactiva se ha usado la herramienta de Kibana (versión 7.10).
Kibana es una aplicación de código abierto que forma parte del paquete de productos Elastic Stack (Elasticsearch, Logstash, Beats y Kibana) que proporciona capacidades de visualización y exploración de datos indexados sobre el motor de analítica Elasticsearch.
Si quieres conocer más sobre estas herramientas u otras que pueden ayudarte en el tratamiento y la visualización de datos, puedes ver el informe \"Herramientas de procesado y visualización de datos\", actualizado recientemente.
4. Tratamiento de datos
Como primer paso del proceso es necesario realizar un análisis exploratorio de los datos (EDA) con el fin de interpretar adecuadamente los datos de partida, detectar anomalías, datos ausentes o errores que pudieran afectar a la calidad de los procesos posteriores y resultados. Un tratamiento previo de los datos es esencial para garantizar que los análisis o visualizaciones creados posteriormente a partir de ellos son consistentes y confiables.
Debido al carácter divulgativo de este post y para favorecer el entendimiento de los lectores no especializados, el código no pretende ser el más eficiente, sino facilitar su comprensión por lo que posiblemente se te ocurrirán muchas formas de optimizar el código propuesto para lograr fines similares. ¡Te animamos a que lo hagas! Podrás reproducir este análisis, ya que el código fuente está disponible en nuestra cuenta de Github. La forma de proporcionar el código es a través de un documento realizado sobre JupyterLab que una vez cargado en el entorno de desarrollo podrás ejecutar o modificar de manera sencilla.
4.1. Instalación y carga de librerías
Lo primero que debemos hacer es importar las librerías para el pre-procesamiento de los datos. Hay muchas librerías disponibles en Python pero una de las más populares y adecuada para trabajar con estos conjuntos de datos es Pandas. La librería Pandas es una librería muy popular para manipular y analizar conjuntos de datos.
import pandas as pd 4.2. Carga de datasets
En primer lugar descargamos los conjuntos de datos del catálogo de datos abiertos datos.gob.es y los cargamos en nuestro entorno de desarrollo como tablas para explorarlos y realizar algunas tareas básicas de limpieza y procesado de datos. Para la carga de los datos recurriremos a la función read_csv(), donde le indicaremos la url de descarga del dataset, el delimitador (\";\" en este caso) y, para que interprete correctamente los caracteres especiales como las letras con tildes o \"ñ\" presentes en las cadenas de texto del conjunto de datos, le añadimos el parámetro \"encoding\" que ajustamos al valor \"latin-1\".
#Cargamos el dataset de las plantillas jurídicas de los centros públicos de Castilla y León de todos los cuerpos de profesorado, a excepción de los maestros url = \"https://datosabiertos.jcyl.es/web/jcyl/risp/es/educacion/plantillas-centros-educativos/1284922684978.csv\"docentes = pd.read_csv(url, delimiter=\";\", header=0, encoding=\"latin-1\")docentes.head(3)#Cargamos el dataset de los alumnos matriculados en los centros educativos públicos de Castilla y León alumnos = pd.read_csv(\"matriculaciones.csv\", delimiter=\",\", names=[\"Municipio\", \"Matriculaciones\"], encoding=\"latin-1\") alumnos.head(3)La columna \"Municipio\" de la tabla \"alumnos\" está compuesta por el código del municipio y el nombre del mismo. Debemos dividir esta columna en dos, para que su tratamiento sea más eficiente.
columnas_Municipios = alumnos[\"Municipio\"].str.split(\" \", n=1, expand = TRUE)alumnos[\"Codigo_Municipio\"] = columnas_Municipios[0]alumnos[\"Nombre_Munipicio\"] = columnas_Munipicio[1]alumnos.head(3)4.3. Creación de una nueva tabla
Una vez que tenemos ambas tablas con las variables de interés, creamos una nueva tabla resultado de su unión. La variables de unión serán: \"Localidad\" en la tabla de \"docentes\" y \"Nombre_Municipio\" en la de \"alumnos\".
docentes_alumnos = pd.merge(docentes, alumnos, left_on = \"Localidad\", right_on = \"Nombre_Municipio\")docentes_alumnos.head(3)4.4. Exploración del conjunto de datos
Una vez que disponemos de la tabla que nos interesa, debemos dedicar un tiempo a explorar los datos e interpretar cada variable. En estos casos es de enorme utilidad disponer del diccionario de datos que siempre debe acompañar a cada dataset descargado para conocer todos sus detalles, pero en esta ocasión no disponemos de esta esencial herramienta. Observando la tabla, además de interpretar las variables que lo integran (tipos de datos, unidades, rangos de valores), podemos detectar posibles errores como variables mal tipificadas o la presencia de valores perdidos (NAs) que pueden restar capacidad de análisis.
docentes_alumnos.info()En la salida de esta sección de código, podemos observar las principales características que presenta la tabla:
- Contiene un total de 4.512 registros
- Está compuesto de 13 variables, 5 variables numéricas (de tipo entero) y 8 variables de tipo categórico (tipo \"object\")
- No hay ausencia de valores.
Una vez que conocemos la estructura y contenido de la tabla, debemos rectificar errores, como es el caso de la transformación de algunas de las variables que no están tipificadas de manera adecuada, por ejemplo, la variable que alberga el código del centro (\"Código.centro\").
docentes_alumnos.Codigo_centro = data.Codigo_centro.astype(\"object\")docentes_alumnos.Codigo_cuerpo = data.Codigo_cuerpo.astype(\"object\")docentes_alumnos.Codigo_especialidad = data.Codigo_especialidad.astype(\"object\")Una vez que tenemos la tabla libre de errores, obtenemos una descripción de las variables numéricas, \"Plantilla\" y \"Matriculaciones\", que nos ayudará a conocer detalles importantes. En la salida del código que presentamos a continuación observamos la media, la desviación estándar, el número máximo y mínimo, entre otros descriptores estadísticos.
docentes_alumnos.describe()4.5. Guardar el dataset
Una vez que tenemos la tabla libre de errores y con las variables que nos interesa graficar, lo guardaremos en una carpeta de nuestra elección para usarla posteriormente en otras herramientas de análisis o visualización. Lo guardaremos en formato CSV codificada como UTF-8 (Formato de Transformación Unicode) para que los caracteres especiales sean identificados de manera correcta por cualquier herramienta que usemos posteriormente.
df = pd.DataFrame(docentes_alumnos)filname = \"docentes_alumnos.csv\"df.to_csv(filename, index = FALSE, encoding = \"utf-8\")5. Creación de la visualización sobre los docentes de los centro educativos públicos de Castilla y León usando la herramienta Kibana
Para la realización de esta visualización hemos usado la herramienta Kibana en nuestro entorno local. Para realizarla es necesario tener instalado y en funcionamiento Elasticsearch y Kibana. La compañía Elastic nos pone a disposición toda la información sobre la descarga e instalación en este tutorial.
A continuación se adjuntan dos vídeo tutoriales, donde se muestra el proceso de realización de la visualización y la interacción con el dashboad generado.
En este primer vídeo, podrás ver la creación del cuadro de mando (dashboard) mediante la generación de diferentes representaciones gráficas, siguiendo los siguientes pasos:
- Cargamos la tabla de datos previamente procesados en Elasticsearch y generamos un índice que nos permita interactuar con los datos desde Kibana. Este índice permite la búsqueda y gestión de datos, prácticamente en tiempo real.
- Generación de las siguientes representaciones gráficas:
- Gráfico de sectores donde mostrar la plantilla docente por provincia, localidad y especialidad.
- Métricas del número de docentes por provincia.
- Gráfico de barras, donde mostraremos el número de matriculaciones por provincia.
- Filtro por provincia, localidad y especialidad docente.
- Construcción del dashboard.
En este segundo vídeo, podrás observa la interacción con el cuadro de mando (dashboard) generado anteriormente.
6. Conclusiones
Observando la visualización de los datos sobre el número de docentes de los centros educativos públicos de Castilla y León, en el curso académico 2019-2020, se pueden obtener, entre otras, las siguientes conclusiones:
- La provincia de Valladolid es la que posee el mayor número de docentes e igualmente, el mayor número de alumnos matriculados. Mientras que Soria es la provincia con menor número de docentes y menor número de alumnos matriculados.
- Como era de esperar, las localidades que presentan mayor número de docentes son las capitales de provincia.
- En todas las provincias, la especialidad con mayor número de alumnos es Inglés, seguida de Lengua Castellana y Literatura y Matemáticas.
- Llama la atención, que la provincia de Zamora, aunque posee un número bajo de alumnos matriculados, está en quinta posición en el número de docentes.
Esta sencilla visualización nos ha ayudado a sintetizar una gran cantidad de información y a obtener una serie de conclusiones a golpe de vista, y si fuera necesario tomar decisiones en función de los resultados obtenidos. Esperamos que os haya resultado útil este nuevo post y volveremos para mostraros nuevas reutilizaciones de datos abiertos. ¡Hasta pronto!
En los últimos meses se han producido una serie de importantes anuncios relacionados con la construcción y explotación de infraestructuras y conjuntos de datos relacionados con la investigación en salud. Estas iniciativas pretenden convertir los datos en una parte vital de un sistema sanitario que en la actualidad no está extrayendo el máximo valor posible de los mismos.
El panorama de la política de datos sobre salud, en el mundo en general y en Europa en particular, presenta una elevada fragmentación y una alta inconsistencia regulatoria que dificulta la innovación. Si bien al menos en Europa existen garantías adecuadas para proteger los datos sensibles, la confianza en todo el ecosistema de datos es en general aún débil. Como consecuencia de ello la voluntad de compartir datos a todos los niveles suele ser baja. Pero esta situación parece estar cambiando a gran velocidad, como parece demostrar el elevado número de iniciativas que estamos viendo nacer o desarrollarse en 2021.
Reino Unido pretende posicionarse como líder mundial
Por ejemplo, siendo consciente de las limitaciones que hemos descrito en el ecosistema de datos, el gobierno británico ha publicado en junio de 2021 el borrador de su nueva estrategia "Los datos salvan vidas: remodelando la atención sanitaria y social con datos", que tiene como objetivo capitalizar el trabajo realizado durante la pandemia para mejorar los servicios de salud y atención.
Aunque se trata aún de un borrador -y que ha sido criticado por expertos en privacidad y grupos de salvaguarda de los derechos de pacientes por no aclarar quién tendrá acceso a los datos-, no oculta la ambición de convertir al Reino Unido en líder mundial en innovación en salud a través del uso de datos. La estrategia pretende favorecer que las personas tengan el control de sus propios datos, al tiempo que apoya al sistema público de salud (NHS) en la creación de un sistema modernizado adecuado para el siglo XXI que sea capaz de abrir y aprovechar sus ingentes activos de datos.
Otra interesante iniciativa es el trabajo que está realizando en 2021 el Open Data Institute (ODI) como parte de un proyecto de investigación más amplio encargado por la compañía farmacéutica Roche. ODI está mapeando el uso de estándares de datos sanitarios en toda la región europea con el fin de diseñar un "Manual de estrategias de gobernanza de datos para proyectos de atención médica basados en datos", que pueda utilizarse y compartirse a nivel mundial.
En Julio de 2021 también se ha realizado el anuncio de la puesta en funcionamiento de la que se ha convertido en la supercomputadora más potente del Reino Unido (y la número 41 en la clasificación mundial), el Cambridge-1. Estará dedicada a las ciencias de la salud y a facilitar la resolución de problemas relacionados con la atención médica. Con una inversión de 100 millones de dólares por parte de la empresa estadounidense Nvidia, sus creadores esperan que contribuya a que el proceso de prevención, diagnóstico y tratamiento de enfermedades sea mejor, más rápido y más económico.

Se sabe por ejemplo que la farmacéutica GSK está ya trabajando con Nvidia para poner sus ingentes conjuntos de datos a acelerar la investigación de nuevos medicamentos y vacunas. GSK utilizará Cambridge-1 para ayudar a descubrir nuevas terapias más rápidamente mediante la combinación de datos genéticos y clínicos.
El uso de datos y de inteligencia artificial en el ámbito de la salud está viviendo un momento de gran crecimiento en el Reino Unido que sin duda se verá acelerado con estas nuevas iniciativas. Algunos de estos conjuntos de datos masivos de pacientes como el UK Biobank no son nuevos, ya que fue fundado en 2012 pero cobra un protagonismo renovado en este contexto. El UK Biobank, a disposición de investigadores de todo el mundo, incluye registros anónimos médicos y de estilo de vida de medio millón de pacientes británicos de mediana edad y se aumenta periódicamente con datos adicionales.
Estados Unidos cuenta con las innovaciones del sector privado
Estados Unidos cuenta con una potente innovación en materia de datos abiertos proveniente del sector privado que también se hace patente en lo referente a los datos de salud. Vemos como por ejemplo el conocido proyecto Data for Good, que Facebook puso en marcha en 2017, ha dado una gran importancia a la respuesta a la pandemia en sus actividades. Por ejemplo, mediante mapas sobre el movimiento de la población han contribuido a una mejor comprensión de la crisis del coronavirus, siempre con un enfoque que pretende preservar la privacidad de las personas. En este tipo de proyectos en los que los datos de partida son muy sensibles tiene una gran importancia la implementación adecuada de tecnologías de mejora de la privacidad de los usuarios.
La Unión Europea anuncia importantes pasos
La Unión Europea en cambio sí está dando importantes pasos, como son los avances en el Espacio Europeo de Datos Sanitarios, una de las prioridades de la Comisión para el período 2019-2025. Recordamos que el espacio común europeo de datos sanitarios promoverá un mejor intercambio y acceso a diferentes tipos de datos sanitarios (historias clínicas electrónicas, datos genómicos, datos de los registros de pacientes, etc.), no solo para apoyar la prestación de asistencia sanitaria sino también para la investigación sanitaria y la elaboración de políticas en el ámbito de la salud.
La consulta pública que pretende garantizar que se tengan en cuenta todos los puntos de vista posibles en el diseño de un nuevo marco jurídico para un espacio europeo de datos sanitarios - y garantizar la transparencia y la rendición de cuentas- cerró hace tan sólo unas semanas y se espera que en el último trimestre se publiquen los resultados, así como la propuesta de legislación comunitaria al respecto. Se espera que esta nueva legislación suponga un impulso decisivo dentro de la Unión Europea para la publicación de nuevos conjuntos de datos de salud.
Por el momento está disponible la propuesta de Reglamento relativo a la gobernanza europea de datos (Data Governance Act) donde se abordan cuestiones tan relevantes y delicadas como son la cesión de datos del sector público para su reutilización, el intercambio de datos entre empresas a cambio de remuneración o la cesión de datos con fines altruistas. Aclarar el marco regulatorio para todas estas cuestiones sin duda contribuirá a fomentar la innovación en el ámbito de la salud.
España también se incorpora a impulsar el uso de datos sanitarios
En España, aunque con algo de retraso también comienzan a moverse importantes iniciativas cuyos frutos veremos en los próximos años. Dentro de las inversiones que el Gobierno de España llevará a cabo gracias al Plan de Recuperación, Transformación y Resiliencia por ejemplo, se ha anunciado recientemente la creación de un data lake sanitario con el objetivo de facilitar el desarrollo e implantación de proyectos de procesamiento masivo de datos.
En algunos casos son los servicios de salud autonómicos, como es el caso de Andalucía, los que están ya trabajando en la implantación de novedosas técnicas de analítica avanzada para casos de uso reales. Así, en el proyecto de implantación de una solución corporativa de analítica avanzada el Sistema de Salud de Andalucía prevé desplegar, entre otros, motores de recomendación para optimizar las listas de espera, técnicas de visión computacional para asistir en el cribado de cáncer de mama o técnicas de segmentación sobre pacientes crónicos.
Uno de los efectos positivos que nos dejará la pandemia mundial causada por la Covid-19 es que se ha amplificado la sensibilidad hacia la necesidad de un ecosistema de datos abiertos y confiable que beneficie la salud de todos. La convergencia del conocimiento médico, la tecnología y la ciencia de datos tiene el potencial para revolucionar la atención al paciente y la pandemia quizá suponga un impulso definitivo a la apertura datos de salud. Por el momento, tal y como recoge el estudio “Análisis del estado actual de apertura de datos en salud a nivel autonómico a través de los portales de datos abiertos” y a pesar de lo retos pendientes, los avances registrados en apertura de datos de salud, sobre todo en las regiones más avanzadas, son prometedores.
Contenido elaborado por Jose Luis Marín, Senior Consultant in Data, Strategy, Innovation & Digitalization.
Los contenidos y los puntos de vista reflejados en esta publicación son responsabilidad exclusiva de su autor.
1. Introducción
La visualización de datos es una tarea vinculada al análisis de datos que tiene como objetivo representar de manera gráfica información subyacente de los mismos. Las visualizaciones juegan un papel fundamental en la función de comunicación que poseen los datos, ya que permiten extraer conclusiones de manera visual y comprensible permitiendo, además, detectar patrones, tendencias, datos anómalos o proyectar predicciones, entre otras funciones. Esto hace que su aplicación sea transversal a cualquier proceso en el que intervengan datos. Las posibilidades de visualización son muy amplias, desde representaciones básicas, como puede ser un gráfico de líneas, barras o sectores, hasta visualizaciones complejas configuradas desde dashboards interactivos.
Antes de lanzarnos a construir una visualización efectiva, debemos realizar un tratamiento previo de los datos, prestando atención a la obtención de los mismos y validando su contenido, asegurando que no contienen errores y se encuentran en un formato adecuado y consistente para su procesamiento. Un tratamiento previo de los datos es esencial para abordar cualquier tarea de análisis de datos que tenga como resultado visualizaciones efectivas.
Se irán presentando periódicamente una serie de ejercicios prácticos de visualización de datos abiertos disponibles en el portal datos.gob.es u otros catálogos similares. En ellos se abordarán y describirán de manera sencilla las etapas necesarias para obtener los datos, realizar las transformaciones y análisis que resulten pertinentes para la creación de visualizaciones interactivas, de las que podamos extraer la máxima información resumida en unas conclusiones finales. En cada uno de los ejercicios prácticos se utilizarán sencillos desarrollos de código que estarán convenientemente documentados, así como herramientas de uso libre y gratuito. Todo el material generado estará disponible para su reutilización en el repositorio Laboratorio de datos en Github.

Captura del vídeo que muestra la interacción con el dashboard de la caracterización de la demanda de empleo y la contratación registrada en España disponible al final de este artículo
2. Objetivos
El objetivo principal de este post es realizar una visualización interactiva partiendo de datos abiertos. Para ello se han utilizado conjuntos de datos que contienen información relevante sobre la evolución de la demanda de empleo en España a lo largo de los últimos años. A partir de estos datos se determina el perfil que representa la demanda de empleo en nuestro país, estudiando específicamente cómo afecta la brecha de género al colectivo y la incidencia de variables como la edad, la prestación por desempleo o la región.
3. Recursos
3.1. Conjuntos de datos
Para este análisis se han seleccionado conjuntos de datos publicados por el Servicio Público de Empleo Estatal (SEPE), coordinado por el Ministerio de Trabajo y Economía Social, que recogen series temporales de datos con diferentes desagregaciones que facilitan el análisis de las características que presentan los demandantes de empleo. Estos datasets se encuentran disponibles en datos.gob.es con las siguientes características:
- Demandantes de empleo por municipio: contiene el número de demandantes de empleo desagregado por municipio, edad y sexo, desde 2006 hasta 2020.
- Gasto de prestaciones por desempleo por Provincia: serie temporal desde 2010 hasta 2020 sobre el gasto en prestaciones por desempleo, desagregado por provincia y el tipo de prestación.
- Contratos registrados por el Servicio Público de Empleo Estatal (SEPE) por municipio: estos conjuntos de datos contienen el número de contratos registrados tanto a demandantes como a no demandantes de empleo, desagregados por municipio, sexo y tipo de contrato, desde 2006 hasta 2020.
3.2. Herramientas
Para la realización de este análisis (entorno de trabajo, programación y redacción del mismo) se ha utilizado R (versión 4.0.3) y RStudio con el complemento de RMarkdown.
RStudio es un entorno de desarrollo open source integrado para el lenguaje de programación R, dedicado al análisis estadístico y la creación de gráficos.
RMarkdown permite la realización de informes integrando texto, código y resultados dinámicos en un único documento.
Para la creación de los gráficos interactivos se ha utilizado la herramienta Kibana.
Kibana es una aplicación de código abierto que forma parte del paquete de productos Elastic Stack (Elasticsearch, Beats, Logstasg y Kibana) que proporciona capacidades de visualización y exploración de datos indexados sobre el motor de analítica Elasticsearch. Las principales ventajas de esta herramienta son:
- Presenta la información de manera visual a través de dashboards interactivos y personalizables mediante intervalos temporales, filtros facetados por rango, cobertura geoespacial, entre otros.
- Dispone de un catálogo de herramientas de desarrollo (Dev Tools) para interactuar con los datos almacenados en Elasticsearch.
- Cuenta con una versión gratuita para utilizar en tu propio ordenador y una versión enterprise que se desarrolla en un cloud propio de Elastic u otras infraestructuras en cloud como Amazon Web Service (AWS).
En la propia web de Elastic encontramos manuales de usuario para la descarga e instalación de la herramienta, o cómo crear gráficos o dashboards, entre otros. Además ofrece vídeos cortos en su canal de youtube y organiza webinars donde explican diversos aspectos relacionados con Elastic Stack.
Si quieres saber más sobre estas herramientas u otras que pueden ayudarte en el procesado de datos, puedes ver el informe \"Herramientas de procesado y visualización de datos\", actualizado recientemente.
4. Tratamiento de datos
Para la realización una visualización, es necesario preparar los datos de la forma adecuada realizando una serie de tareas que incluyen el preprocesado y el análisis exploratorio de los datos (EDA, por sus siglas en inglés), con el fin de conocer la realidad de los datos a los que nos enfrentamos. El objetivo es identificar características de los datos y detectar las posibles anomalías o errores que pudieran afectar a la calidad de los resultados. Un tratamiento previo de los datos es esencial para que los análisis o las visualizaciones que se realicen posteriormente sean consistentes y efectivas.
Para favorecer el entendimiento de los lectores no especialistas en programación, el código en R que se incluye a continuación, al que puedes acceder haciendo clik en \"Código\", no está diseñado para su eficiencia sino para su fácil comprensión, por lo que es posible que lectores más avanzados en este lenguaje de programación consideren una forma de codificar algunas funcionalidades de forma alternativa. El lector podrá reproducir este análisis si lo desea, ya que el código fuente está disponible en cuenta en Github de datos.gob.es. La forma de proporcionar el código es a través de un documento de RMarkdown. Una vez cargado en el entorno de desarrollo podrá ejecutarse o modificarse de manera sencilla si se desea.
4.1. Instalación y carga de librerías
El paquete base de R, siempre disponible desde que abrimos la consola en RStudio, incorpora un amplio conjunto de funcionalidades para cargar datos de fuentes externas, llevar a cabo análisis estadísticos y obtener representaciones gráficas. No obstante, hay multitud de tareas para las que necesitamos recurrir a paquetes adicionales incorporando al entorno de trabajo las funciones y objetos definidos en ellas. Algunos de ellos ya están instalados en el sistema, pero otros será preciso descargarlos e instalarlos.
#Instalación de paquetes \r\n #El paquete dplyr presenta una colección de funciones para realizar de manera sencilla operaciones de manipulación de datos \r\n if (!requireNamespace(\"dplyr\", quietly = TRUE)) {install.packages(\"dplyr\")}\r\n #El paquete lubridate para el manejo de variables tipo fecha \r\n if (!requireNamespace(\"lubridate\", quietly = TRUE)) {install.packages(\"lubridate\")}\r\n#Carga de paquetes en el entorno de desarrollo \r\nlibrary (dplyr)\r\nlibrary (lubridate)\r\n4.2. Carga y limpieza de datos
a. Carga de datasets
Los datos que vamos a utilizar en la visualización se encuentran divididos por anualidades en ficheros .CSV y .XLS. Debemos cargar en nuestro entorno de desarrollo todos los ficheros que nos interesan. El siguiente código muestra como ejemplo la carga de un único fichero .CSV en una tabla de datos para que la lectura de este post sea más comprensible.
Para agilizar el proceso de carga en el entorno de desarrollo, es necesario descargar en el directorio de trabajo los conjuntos de datos necesarios para esta visualización, que se encuentran disponibles en la cuenta de Github de datos.gob.es.
#Carga del datasets de demandantes de empleo por municipio de 2020. \r\n Demandantes_empleo_2020 <- \r\n read.csv(\"Conjuntos de datos/Demandantes de empleo por Municipio/Dtes_empleo_por_municipios_2020_csv.csv\",\r\n sep=\";\", skip = 1, header = T)\r\nUna vez que tenemos todos los conjuntos de datos cargados como tablas en el entorno de desarrollo, debemos unificarlos para así tener un único dataset que integre todos los años de la serie temporal, por cada una de las características relacionadas con los demandantes de empleo que se quiere analizar: número de demandantes de empleo, gasto por desempleo y nuevos contratos registrados por el SEPE.
#Dataset de demandantes de empleo\r\nDatos_desempleo <- rbind(Demandantes_empleo_2006, Demandantes_empleo_2007, Demandantes_empleo_2008, Demandantes_empleo_2009, \r\n Demandantes_empleo_2010, Demandantes_empleo_2011,Demandantes_empleo_2012, Demandantes_empleo_2013,\r\n Demandantes_empleo_2014, Demandantes_empleo_2015, Demandantes_empleo_2016, Demandantes_empleo_2017, \r\n Demandantes_empleo_2018, Demandantes_empleo_2019, Demandantes_empleo_2020) \r\n#Dataset de gasto en prestaciones por desempleo\r\ngasto_desempleo <- rbind(gasto_2010, gasto_2011, gasto_2012, gasto_2013, gasto_2014, gasto_2015, gasto_2016, gasto_2017, gasto_2018, gasto_2019, gasto_2020)\r\n#Dataset de nuevos contratos a demandantes de empleo\r\nContratos <- rbind(Contratos_2006, Contratos_2007, Contratos_2008, Contratos_2009,Contratos_2010, Contratos_2011, Contratos_2012, Contratos_2013, \r\n Contratos_2014, Contratos_2015, Contratos_2016, Contratos_2017, Contratos_2018, Contratos_2019, Contratos_2020)b. Selección de variables
Una vez que tenemos las tablas con las tres series temporales (número de demandantes de empleo, gasto por desempleo y nuevos contratos registrados), crearemos una nueva tabla que incluirá las variables que interesan de cada una de ellas.
En primer lugar, agregaremos por provincia las tablas de demandantes de empleo (“datos_desempleo”) y contratos nuevos contratos registrados (“contratos”) para facilitar la visualización y que coincidan con la desagregación por provincia de la tabla de gasto en prestaciones por desempleo (“gasto_desempleo”). En este paso, seleccionamos únicamente las variables que interesen de los tres conjuntos de datos.
#Realizamos un group by al dataset de \"datos_desempleo\", agruparemos las variables numéricas que nos interesen, en función de varias variables categóricas\r\nDtes_empleo_provincia <- Datos_desempleo %>% \r\n group_by(Código.mes, Comunidad.Autónoma, Provincia) %>%\r\n summarise(total.Dtes.Empleo = (sum(total.Dtes.Empleo)), Dtes.hombre.25 = (sum(Dtes.Empleo.hombre.edad...25)), \r\n Dtes.hombre.25.45 = (sum(Dtes.Empleo.hombre.edad.25..45)), Dtes.hombre.45 = (sum(Dtes.Empleo.hombre.edad...45)),\r\n Dtes.mujer.25 = (sum(Dtes.Empleo.mujer.edad...25)), Dtes.mujer.25.45 = (sum(Dtes.Empleo.mujer.edad.25..45)),\r\n Dtes.mujer.45 = (sum(Dtes.Empleo.mujer.edad...45)))\r\n#Realizamos un group by al dataset de \"contratos\", agruparemos las variables numericas que nos interesen en función de las varibles categóricas.\r\nContratos_provincia <- Contratos %>% \r\n group_by(Código.mes, Comunidad.Autónoma, Provincia) %>%\r\n summarise(Total.Contratos = (sum(Total.Contratos)),\r\n Contratos.iniciales.indefinidos.hombres = (sum(Contratos.iniciales.indefinidos.hombres)), \r\n Contratos.iniciales.temporales.hombres = (sum(Contratos.iniciales.temporales.hombres)), \r\n Contratos.iniciales.indefinidos.mujeres = (sum(Contratos.iniciales.indefinidos.mujeres)), \r\n Contratos.iniciales.temporales.mujeres = (sum(Contratos.iniciales.temporales.mujeres)))\r\n#Seleccionamos las variables que nos interesen del dataset de \"gasto_desempleo\"\r\ngasto_desempleo_nuevo <- gasto_desempleo %>% select(Código.mes, Comunidad.Autónoma, Provincia, Gasto.Total.Prestación, Gasto.Prestación.Contributiva)En segundo lugar, procedemos a unir las tres tablas en una que será con la que trabajemos a partir de este punto.
Caract_Dtes_empleo <- Reduce(merge, list(Dtes_empleo_provincia, gasto_desempleo_nuevo, Contratos_provincia))
c. Transformación de variables
Una vez tengamos la tabla con las variables de interés para el análisis y la visualización, debemos transformar algunas de ellas a otros tipos más adecuados para futuras agregaciones.
#Transformación de una variable fecha\r\nCaract_Dtes_empleo$Código.mes <- as.factor(Caract_Dtes_empleo$Código.mes)\r\nCaract_Dtes_empleo$Código.mes <- parse_date_time(Caract_Dtes_empleo$Código.mes(c(\"200601\", \"ym\")), truncated = 3)\r\n#Transformamos a variable numérica\r\nCaract_Dtes_empleo$Gasto.Total.Prestación <- as.numeric(Caract_Dtes_empleo$Gasto.Total.Prestación)\r\nCaract_Dtes_empleo$Gasto.Prestación.Contributiva <- as.numeric(Caract_Dtes_empleo$Gasto.Prestación.Contributiva)\r\n#Transformación a variable factor\r\nCaract_Dtes_empleo$Provincia <- as.factor(Caract_Dtes_empleo$Provincia)\r\nCaract_Dtes_empleo$Comunidad.Autónoma <- as.factor(Caract_Dtes_empleo$Comunidad.Autónoma)d. Análisis exploratorio
Veamos qué variables y estructura presenta el nuevo conjunto de datos.
str(Caract_Dtes_empleo)\r\nsummary(Caract_Dtes_empleo)La salida de esta porción de código se omite para facilitar la lectura. Las características principales que presenta el conjunto de datos son:
- El rango temporal abarca desde enero de 2010 hasta diciembre de 2020.
- El número de columnas (variables) es de 17.
- Presenta dos variables categóricas (“Provincia” y “Comunidad.Autónoma”), una variable tipo fecha (“Código.mes”) y el resto son variables numéricas.
e. Detección y tratamiento de datos perdidos
Seguidamente analizaremos si el dataset presenta valores perdidos (NAs). El tratamiento o la eliminación de los NAs es esencial, ya que si no es así no será posible procesar adecuadamente las variables numéricas.
any(is.na(Caract_Dtes_empleo)) \r\n#Como el resultado es \"TRUE\", eliminamos los datos perdidos del dataset, ya que no sabemos cual es la razón por la cual no se encuentran esos datos\r\nCaract_Dtes_empleo <- na.omit(Caract_Dtes_empleo)\r\nany(is.na(Caract_Dtes_empleo))4.3. Creación de nuevas variables
Para realizar la visualización, vamos a crear una nueva variable a partir de dos variables que se encuentran en la tabla de datos. Esta acción es muy común en el análisis de datos ya que en ocasiones interesa trabajar con datos calculados (por ejemplo, la suma o la media de diferentes variables) en lugar de los datos de origen. En este caso vamos a calcular el gasto medio en prestaciones por desempleo para cada demandante de empleo. Para ello utilizaremos las variables de gasto total por prestación (“Gasto.Total.Prestación”) y el total de demandantes de empleo (“total.Dtes.Empleo”).
Caract_Dtes_empleo$gasto_desempleado <-\r\n (1000 * (Caract_Dtes_empleo$Gasto.Total.Prestación/\r\n Caract_Dtes_empleo$total.Dtes.Empleo))4.4. Guardar el dataset
Una vez que tenemos la tabla con las variables que nos interesan para los análisis y las visualizaciones, la guardaremos como archivo de datos en formato CSV para posteriormente realizar otros análisis estadísticos o utilizarlo en otras herramientas de procesado o visualización de datos. Es importante utilizar la codificación UTF-8 (Formato de Transformación Unicode) para que los caracteres especiales sean identificados de manera correcta por cualquier herramienta.
write.csv(Caract_Dtes_empleo,\r\n file=\"Caract_Dtes_empleo_UTF8.csv\",\r\n fileEncoding= \"UTF-8\")5. Creación de la visualización sobre la caracterización de la demanda de empleo en España usando Kibana
El desarrollo de esta visualización interactiva se ha realizado usando Kibana en nuestro entorno local. Tanto para la descarga del software, como para la instalación del mismo, hemos recurrido al tutorial realizado por la propia compañía, Elastic.
A continuación se adjunta un vídeo tutorial donde se muestra todo el proceso de realización de la visualización. En el vídeo podrás ver la creación de un cuadro de mando (dashboard) con diferentes indicadores interactivos mediante la generación de representaciones gráficas de diferentes tipos. Los pasos para obtener el dashboard son los siguientes:
- Cargamos los datos en Elasticsearch y generamos un índice que nos permita interactuar con los datos desde Kibana. Este índice permite la búsqueda y gestión de datos en los archivos cargados, prácticamente en tiempo real.
- Generación de las siguientes representaciones gráficas:
- Gráfico de líneas para representar la serie temporal sobre los demandantes de empleo en España desde 2006 hasta 2020.
- Gráfico de sectores de los demandantes de empleo desagregados por Provincia y Comunidad Autónoma.
- Mapa temático, mostrando el número de contratos nuevos registrados en cada Provincia del territorio. Para la creación de este visual es necesaria la descarga de un dataset de la georeferenciación de las Provincias publicado en el portal de datos abiertos Open Data Soft.
- Construcción del dashboard.
Seguidamente mostraremos un vídeo tutorial interactuando con la visualización que acabamos de crear:
6. Conclusiones
Observando la visualización de los datos sobre el perfil de los demandantes de empleo en España en el periodo 2010 hasta 2020, se pueden obtener, entre otras, las siguientes conclusiones:
- Existen dos incrementos significativos en el número de demandantes de empleo. El primero aproximadamente en 2010, que coincide con la crisis económica. El segundo, mucho más pronunciado en 2020, que coincide con la crisis derivada de la pandemia.
- Se observa que existe una brecha de género en el colectivo de demandantes de empleo: el número de mujeres demandantes de empleo es mayor a lo largo de toda la serie temporal, principalmente en los grupos de edad de mayores de 25.
- A nivel regional, Andalucía, seguida de Cataluña y Comunidad Valenciana, son las Comunidades Autónomas con mayor número de demandantes de empleo. En contraste, Andalucía, es la Comunidad Autónoma con menor gasto por desempleo, mientras que Cataluña, es la que presenta mayor gasto por desempleo.
- Los contratos de tipo temporal son los prioritarios y las provincias que generan mayor número de contratos son Madrid y Barcelona, que coinciden con las provincias con mayor número de habitantes, mientras que en el lado opuesto, las provincias que menos número de contratos realizan son Soria, Ávila, Teruel o Cuenca, que coincide con las zonas más despobladas de España.
Esta visualización nos ha ayudado a sintetizar gran cantidad de información y darle sentido pudiendo obtener unas conclusiones y si fuera necesario tomar decisiones en función de los resultados. Esperemos que os haya gustado este nuevo post y volveremos para mostraros nuevas reutilizaciones de datos abiertos. ¡Hasta pronto!
En el último año, hemos visto como las decisiones en materia de salud marcaban la agenda política, social y económica de nuestro país, debido a la situación de pandemia mundial fruto de la COVID-19. Decisiones tomadas en base a datos públicos sobre incidencia acumulada, ocupación de camas en hospitales o tasa de vacunación han marcado nuestro día a día.
Este hecho pone de manifiesto la importancia de los datos de salud abiertos para la gestión y toma de decisiones por parte de nuestros gobernantes, pero también son fundamentales como base de soluciones que ayuden tanto a pacientes como a médicos.
Los tipos de datos utilizados en el ámbito de la salud y bienestar son numerosos: resultados de estudios e investigaciones médicas, registros anonimizados de pacientes, datos sobre sus hábitos (como el ejercicio que realizamos o las horas que dormimos) o datos vinculados a los servicios y la gestión sanitaria. Todos estos datos esconden un gran valor que puede ser aprovechado tanto por los profesionales y proveedores de servicios de salud como por los ciudadanos.
¿Cómo han venido utilizando los datos abiertos los servicios de salud?
Según el estudio “The Open Data Impact Map”, un proyecto de Open Data for Development Network (OD4D), las organizaciones relacionadas con la salud utilizan los datos abiertos principalmente con el objetivo de optimizar su gestión y la organización de recursos. De las 124 organizaciones entrevistadas en 2018, solo 19 indicaron que aprovechan los datos abiertos para el desarrollo de productos y servicios sanitarios, y únicamente 13 para investigación. El mismo estudio indica que los datos abiertos más utilizados son aquellos relacionados directamente con la salud, y que son muy pocas las organizaciones que los combinan con conjuntos de datos de otras temáticas - principalmente geoespaciales o indicadores demográficos o sociales- para generar un conocimiento más profundo y detallado.
Sin embargo, las oportunidades en este campo son muy amplias, como se muestra a continuación.
Haz clic aquí para ver la infografía en tamaño completo y en su versión accesible
Ejemplos de servicios basados en datos abiertos de salud y bienestar
La situación parece que está cambiando y cada vez hay un mayor impulso para la puesta en marcha de aplicaciones, servicios o proyectos basados en datos en este campo. En Europa se apuesta por la creación de espacios de datos centrados en el ámbito de la salud, dentro de su estrategia de construcción de una nube europea, mientras que el gobierno de España ha incluido el impulso de soluciones de Salud Digital dentro de su estrategia de España Digital 2025. Entre las acciones contempladas por nuestro país está la agilización de los sistemas de información para permitir una mejor compartición de datos e interoperabilidad.
Aplicaciones que recopilan servicios de salud
Cuando hablamos de aplicaciones de salud, las más habituales son aquellas que ayudan a la ciudadanía a encontrar proveedores de atención sanitaria locales que satisfagan sus necesidades. Un ejemplo Farmacias de guardia en Tudela y la Ribera o el buscador de centros de salud de la comunidad de Madrid. Gracias a ellas los pacientes pueden saber dónde se ubican los centros y conocer información de interés, como el horario. Algunas aplicaciones, incluyen servicios adicionales, como Salud Responde, de la Junta de Andalucía, que permite la solicitud y modificación de citas médicas, mejorando la eficiencia del sistema.
Pero este tipo de servicios también pueden proporcionar una información importante a la hora de gestionar de una manera más eficiente los recursos, sobre todo cuando se cruza con otros conjuntos de datos. Por ejemplo, Farmacias, Centros Sanitarios y Zonas de Salud del Gobierno de Cantabria, desarrollada por Esri, incluye información sobre la ordenación territorial de los recursos sanitarios en función de factores geográficos, demográficos, epidemiológicos, socio-económicos, laborales, culturales, climatológicos y de transporte. Su objetivo principal no es solo facilitar el acceso de la ciudadanía a esta información, si no que “la prestación de servicios sanitarios se realice en las mejores condiciones de accesibilidad, eficiencia y calidad”.
Por su parte, el Atlas de salud, medioambiental y socioeconómico de Euskadi por áreas pequeñas muestra una serie de mapas con el objetivo de “monitorizar las desigualdades geográficas en indicadores de salud, socioeconómicos y medioambientales en Euskadi, teniendo en cuenta la perspectiva de género”. Información de gran utilidad de cara a los gestores de servicios para tratar de impulsar una mayor equidad en el acceso a la sanidad.
Herramientas para la prevención de enfermedades
En el mercado también encontramos aplicaciones destinadas a la prevención de enfermedades, como ZaraHealth, una aplicación web que muestra en tiempo real los datos de la calidad del agua, el estado del aire, y los niveles de polen de la ciudad de Zaragoza. El usuario puede establecer una serie de umbrales para los niveles de polen y de contaminación, de tal forma que se emita un aviso cuando se alcancen. De esta forma podrá evitar salir al aire libre o realizar ejercicio en las zonas que no se ajusten a sus necesidades. En la misma línea se mueve APCYL: Alergia al polen CyL.
Otro aspecto importante en nuestra salud es la dieta, clave en la prevención de diversas patologías como las enfermedades cardiovasculares o la diabetes. Webs como Mils, que ofrece información nutricional detallada sobre los alimentos pueden ayudarnos a llevar una dieta más saludable.
Servicios para el diagnóstico y tratamiento de enfermedades
Los datos abiertos pueden ayudar a evaluar los resultados sanitarios, desarrollar tratamientos más eficaces y predecir brotes de enfermedades.
En el campo de la salud mental, por ejemplo, encontramos Mentalcheck, una aplicación que permite realizar evaluaciones psicológicas y auto-registros mediante dispositivos móviles. Su objetivo es mejorar la Evaluación e Intervención Ecológica Momentánea (EMA y EMI en sus siglas en inglés). La aplicación incorpora datos abiertos sobre medicamentos y servicios de salud mental de la Administración de Alimentos y Medicamentos de EEUU (FDA, Food and Drug Administration). También permite integrar datos psicológicos y fisiológicos, para generar correlaciones.
Otro ejemplo es Qmenta, empresa centrada en el análisis de datos cerebrales, utilizando resonancias magnéticas y los datos clínicos relacionados. En los últimos meses también han incorporado datos abiertos relacionados con la COVID-19 en algunos de sus trabajos. A través de algoritmos de procesamiento de imágenes médicas, buscan acelerar el desarrollo de nuevas terapias para enfermedades neurológicas.
Información actualizada sobre enfermedades o necesidades del sistema
Otro campo donde los datos abiertos pueden impulsar mejoras es a la hora de informar de determinadas situaciones. Esto ha cobrado especial importancia en el contexto de pandemia mundial en el que nos encontramos y donde la ciudadanía demanda información constante y actualizada. En este sentido, encontramos el cuadro de mando del Ministerio de Sanidad a nivel estatal y distintas iniciativas regionales, como Curva en Aragón: Evolución del Coronavirus en Aragón o Evolución del coronavirus en Castilla y León. Se trata solo de un par de ejemplos, pero cabe resaltar que existen numerosos esfuerzos en este ámbito, como recoge el Ministerio de Sanidad en su web.
También es importante hacer transparente la información sobre medicamentos, tanto para médicos como para pacientes, facilitando las comparativas. En este sentido, el Nomenclátor de medicamentos muestra más de 20.000 medicamentos comercializados en España con cobertura de la Seguridad Social, ofreciendo información sobre su precio, presentación, enlace al prospecto, notas de seguridad o principios activos, entre otros.
Por último, también es importante informar sobre las necesidades de recursos, por ejemplos, las plazas de médicos o el estado de las reservas de sangre.
Los datos en general han impulsado importantes avances para mejorar los resultados sanitarios, desde un mayor acceso a la atención hasta la investigación médica y el diagnóstico. Los datos abiertos son un ingrediente fundamental que puede ayudar a enriquecer aún más esas soluciones con nuevas variables. Por ello es fundamental que se vayan abriendo cada vez más datos de salud y bienestar, siguiendo una serie de pautas y normas que garanticen la privacidad y seguridad de los pacientes. En este sentido, el informe “Datos abiertos y sanidad: contexto tecnológico, actores implicados y marco jurídico” incluye información sobre qué tipos de datos se pueden abrir y qué dice el marco jurídico al respecto.
¿Conoces más casos de uso de datos abiertos aplicados al sector de la sanidad y bienestar? Déjanos un comentario o escríbenos a dinamizacion@datos.gob.es.
Contenido elaborado por el equipo de datos.gob.es.
Los datos abiertos suponen una fuente de información para el desarrollo de servicios inteligentes, así como para la toma de decisiones y la formulación de políticas. Por ello, no es de extrañar que cada vez más organismos públicos, además de abrir datos - para que otros los reutilicen y por motivos de rendición de cuentas y transparencia-, también sean reutilizadores de sus propios datos con distintos fines.
En este sentido, el auge de las plataformas de gestión en smart cities está fomentando que muchos ayuntamientos y comunidades autónomas desarrollen aplicaciones y herramientas inteligentes que aprovechan el uso de los datos y las técnicas de analítica para innovar y mejorar los servicios públicos que ofrecen a los ciudadanos. A continuación, te mostramos varios ejemplos.
Optimización de recursos
Los datos abiertos pueden ser utilizados por organismos públicos para conocer cómo se están gestionando los recursos públicos, además de fomentar acciones que permitan realizar una gestión más eficiente y conseguir un ahorro económico, por ejemplo, en materia de consumo energético o impulsando una gestión de recursos más eficiente.
Cuadro de mando de consumo energético. Junta de Castilla y León.
Este datahub energético desarrollado por la iniciativa de datos abiertos de la Junta de Castilla y León, ofrece información detallada y visual sobre el consumo de energía en los centros gestionados por la Junta, como centros educativos, centros de salud, oficinas administrativas u hospitales, entre otros.
Se trata de un cuadro de mando que recoge información de más de 1.500 centros de consumo, ofreciendo diferentes tipos de representaciones gráficas que facilitan al lector la comprensión de los datos. A través de este enlace se puede consultar la fuente de datos utilizada para el desarrollo de esta plataforma.
La herramienta facilita el análisis desagregado por tipo de energía y por localización geográfica. Una información que pueden ser de interés para los ciudadanos, pero también para los propios gestores de la junta. Gracias a esta plataforma, la Junta ahorró entre 2015 e inicios de 2020 más de 12 millones de euros en electricidad.
Además, la Junta cuenta con un cuadro eléctrico centrado exclusivamente en el consumo eléctrico de los hospitales de Castilla y León por horas. Los datos se relacionan con la información meteorológica, de tal forma que se pueden estimar los costes futuros y optimizar el uso de la calefacción. Los datos utilizados para desarrollar este cuadro se pueden consultar aquí.
Gestión de residuos sólidos orgánicos. Ayuntamiento de Santiago de Compostela.
El Ayuntamiento de Santiago de Compostela ha puesto en marcha, dentro de la iniciativa Smartiago, un proyecto que persigue realizar una gestión sostenible e inteligente de residuos sólidos urbanos (RSU). El objetivo principal de esta herramienta es diseñar, desarrollar y construir contenedores inteligentes de superficie para la caracterización de residuos sólidos orgánicos, basados en el uso de tecnologías abiertas de IoT, la aplicación de algoritmos de aprendizaje automático y el uso de datos abiertos como fuentes para el enriquecimiento de modelos de predicción de compostaje comunitario. Con ello se busca alcanzar el objetivo del 50% de preparación para la reutilización y el reciclaje, partiendo del 13% actual. El proyecto, en base de desarrollo, también contará con una app de gamificación para incentivar buenas prácticas en materia de sostenibilidad.
Mejora de la prestación de servicios
Gracias a los datos abiertos también es posible crear herramientas para que los profesionales de servicios sociales puedan ofrecer una mejor respuesta y atención a las necesidades de la ciudadanía. Veamos un par de ejemplos:
Mapa de protección civil. Generalitat de Catalunya.
Este mapa interactivo muestra los principales recursos del sistema de protección civil de Cataluña. El mapa de protección civil permite ver donde se encuentran los distintos riesgos (tecnológicos, ambientales…) y la situación de los equipos para planificar mejor las respuestas. Aquí se puede consultar la principal fuente de datos que utiliza esta herramienta.
Guía Farmacológica. Junta de Andalucía.
Esta aplicación ha sido diseñada por la Junta de Andalucía para ofrecer a los profesionales sanitarios una consulta más rápida y eficiente de los principales fármacos que se utilizan en la atención a las urgencias y emergencias en Andalucía. Se trata de un instrumento de trabajo útil para aquellos sanitarios que prestan asistencia en situaciones críticas ya que incluye información en permanente actualización y contrastada acerca de las principales indicaciones, dosis, contraindicaciones e interacciones de los fármacos que más se utilizan.
Toma de decisiones y formulación de políticas
Los datos abiertos proporcionan un mayor conocimiento sobre lo que está sucediendo a nuestro alrededor, lo cual nos permite poder tomar mejores decisiones. Se trata de un instrumento muy útil para que los organismos públicos puedan elaborar políticas que respondan a las necesidades reales de la ciudadanía. Durante el último año, hemos visto como las medidas para evitar la propagación de la COVID-19 se tomaban en base a los datos relativos a la evolución de la enfermedad. Otros ejemplos son:
El Mapa de ruido. Ayuntamiento de Valladolid.
El Ayuntamiento de Valladolid cuenta con un Mapa de Ruido que organiza la información relativa a la contaminación acústica. Este mapa ha sido desarrollado para utilizarse de forma obligatoria en la ejecución de los cálculos previstos en las diferentes normas reguladoras, así como en el código técnico de la edificación y que aplicarán tanto a edificios residenciales, o dotacionales, institucionales e industriales, así como en el código técnico de la edificación y que aplicarán tanto a edificios residenciales, o dotacionales, institucionales e industriales.
Plataforma de gestión turística inteligente. Ayuntamiento de Conil.
En el marco de las convocatorias de Ciudades, Territorios e Islas Inteligentes de Red.es cada vez encontramos más propuestas que incluyen el desarrollo de plataformas de gestión de datos que impulsan una toma de decisiones eficiente. Un ejemplo es el Ayuntamiento de Conil de la Frontera, que trabaja con una plataforma de gestión turística inteligente para ampliar el conocimiento de los turistas, a través de la agregación y centralización de datos relativas a la procedencia del turista, movilidad y zonas más visitadas, lugares preferidos para visitar y pernoctar o encuestas de satisfacción, entre otros parámetros. De esta forma, desde la administración local pueden identificar patrones y llevar a cabo actuaciones que permitan adaptar y mejorar la gestión, detectar irregularidades, fomentar el desarrollo económico y empresarial o favorecer la generación de empleo en las áreas prioritarias identificadas. Estos datos también se han utilizado para estimar la población real durante la pandemia y hacer una mejor estimación de los ratios de incidencia. Aunque de momento estos datos no parecen ser públicos, el objetivo es que también se abran a través de una plataforma open data a empresas.
CitizenLab. Ayuntamiento de Madrid.
El gobierno autonómico de Madrid ha impulsado, junto a Grant Thornton, un laboratorio de datos para entender mejor el comportamiento ciudadano. El proyecto busca analizar modelos predictivos de comportamiento ciudadano mediante Big Data e Inteligencia Artificial (IA), con el objetivo de mejorar los servicios públicos en la Comunidad de Madrid en áreas como la movilidad, la atención sanitaria, el turismo y las infraestructuras. En el último año, por ejemplo, se ha utilizado para predecir la demanda de vacunas.

Sin duda, existen numerosas aplicaciones y herramientas digitales utilizadas por las administraciones públicas -y cada vez parece que serán más - que basan su funcionamiento en los datos abiertos para ofrecer más y mejores servicios a la ciudadanía. En este artículo hemos recopilado algunos ejemplos, pero si conoces alguna relacionada que pueda ser de interés, no dudes en dejar un comentario o escribirnos a nuestra dirección de correo electrónico dinamizacion@datos.gob.es.
Contenido elaborado por el equipo de datos.gob.es.










