IronViz #1 2017: Conectando Tableau a Shapefiles

Primer concurso IronViz del año, y a diferencia de los del año pasado donde cada uno tuvo una temática diferente – comida, música y política – esta vez la temática concreta de la visualización ha sido libre, con el único requisito de utilizar una de las nuevas funcionalidades de Tableau 10.2: la conexión a archivos geoespaciales (.shp, .kml, .geojson…).

El primer reto, y tal vez el más complicado, fue encontrar archivos geoespaciales Y datos adicionales para aportar valor a la visualización. En este sentido, mi primera idea era utilizar los archivos disponibles en la página web http://www.iucnredlist.org/ sobre especies amenazadas. El tema me parecía súmamente interesante, pero aparte de los mapas, la página web u otras páginas que he consultado no disponen de datos que sustenten la visualización. Varios intentos más de buscar archivos espaciales + datos de apoyo corrieron la misma suerte, así que decidí cambiar el enfoque de la visualización e ir hacia algo de primeras más sencillo en cuanto a la búsqueda de información, pero con el suficiente nivel de detalle como para que resultara interesante.

Así que finalmente me decidí por centrarme en un tema en el que supiera seguro que podría encontrar shapefiles y datos que aportasen valor adicional. El Instituto de Estadística de la Comunidad de Madrid permite la descarga de shapefiles con las delimitaciones territoriales de toda la Comunidad Autónoma, y la web del Ayuntamiento de Madrid ofrece información demográfico y de estructura de la población a nivel tanto de distrito y de barrio ¿Por qué no combinar ambas fuentes y crear una visualización de Madrid distrito a distrito y barrio a barrio?

Tras decidir el tema vino el segundo reto, y es la general mala estructura de archivos de datos en España. La información por barrio viene en un archivo diferente para cada distrito. Es decir en total 21 archivos con el siguiente aspecto:

Así que lo primero de todo había que hacer una aburrida labor de organización y limpieza de los diferentes archivos. La cual realicé parcialmente de forma manual y en parte utilizando Alteryx. Además, decidí que no era sólo interesante mostrar la información barrio a barrio, sino permitir al usuario cambiar la visualización para ver toda la información por barrio o distrito cambiando entre ambas vistas a través de un parámetro, con lo cual decidí utilizar un segundo archivo geoespacial y incluirlo como una conexión adicional. Este es el aspecto de las distintas bases de datos que he utilizado y como las he unido en Tableau:

Tercer reto: problemas en la unión de los datos generales con el shapefile de distritos debido a varios acentos en el nombre del distrito. Por alguna razón Tableau no identificaba correctamente algunos caracteres (cuando normalmente si lo hace, tal vez sea un problema sólo con shapefiles que se solucione en el futuro). Así que en lugar de utilizar el nombre del distrito, y ante la falta de un identificador numérico en el archivo global de datos para cada distrito, utilicé un cálculo en la unión para crear dicho campo con la función CASE:

Debido a la utilización de distintos archivos de datos de la web del Ayuntamiento de Madrid y al unir toda la información sin poder dedicar demasiado tiempo a la estructura del archivo de datos que era más adecuada, la visualización contiene multitud de campos calculados para obtener en cada caso la información necesaria para cada gráfico.

Tal vez la parte que pueda resultar algo más compleja es la central, con las pirámides de población. Que cuenta con un filtro contextual para separar los distritos y barrios del este de los del oeste. Dos campos calculados para separar de forma dinámica las pirámides de población utilizando small multiples que son los siguientes:

Column = (INDEX()-1)%ROUND(SQRT(SIZE()))                               Row = INT((INDEX()-1)/ROUND(SQRT(SIZE())))

Ambos además calculados en base a un campo calculado adicional enlazado a un parámetro para seleccionar entre distritos o barrios. He utilizado además un cálculo LOD para fijar la distribución de la población total del municipio de Madrid y mostrarla a modo de referencia utilizando líneas. De todas formas toda la visualización se puede descargar desde Tableau Public.

 

Este es el resultado final. Haz click en la imagen para ver la versión dinámica.

6 Comentarios

  1. Luis

    Buenos días Pablo,

    Tu artículo me ha parecido muy interesante y no sé si tú podrías ayudarme. Soy estudiante de un máster de Data Science y estoy haciendo un proyecto de análisis de datos en el que necesito disponer de la representación gráfica de los distritos de Madrid, sin embargo al tratar de cargar el fichero .shp que proporciona el Instituto de Estadística de la Comunidad de Madrid me muestra el siguiente mensaje de error:

    «Ocurrió un error durante la comunicación con la fuente de datos.

    Conexión incorrecta: Tableau no ha podido conectarse a la fuente de datos. Es posible que el error deba resolverse mediante cambios en la configuración local en el lado de Tableau.
    Tableau ha encontrado un error mientras intentaba cargar un archivo espacial.

    Se recomienda que incluya el archivo .prj de soporte. Tableau podría no reconocer la definición de datos de algún conjunto de datos, incluso con la información de referencia espacial incluida. Debido a que Tableau asume que los datos subyacentes están en WGS84, se podrían notificar algunas coordenadas como «fuera del intervalo» para los datos proyectados o se podría producir un error de transformación de la coordenada.»

    ¿Podrías indicarme si tuviste que realizar alguna modificación sobre el fichero original o si tuviste que cambiar alguna configuración en Tableau para poder visualizarlo?

    Muchas gracias

    Un saludo

    1. Pablo Sáenz de Tejada

      Hola Luis, te diría que lo primero que podrías comprobar es que dispones no sólo del archivo SHP, sino de todos los archivos de soporte adicionales en la misma carpeta. Cuando te descargas un fichero SHP suele venir con otra serie de ficheros que son necesarios para capturar toda la información del SHP.

      1. Luis

        Muchas gracias Pablo por tu respuesta. El problema es el que tu indicas, al parecer no estaba incluido el archivo prj que permite a Tableau identificar la proyección utilizada. Para solventar este problema he copiado el prj de uno de los ficheros de puntos de interés del Instituto del Estadística de la Comunidad de Madrid (que si incluyen este archivo) y lo he renombrado.

Deja un comentario

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