jueves, 12 de mayo de 2016

QGIS: uniendo tablas de datos.

A menudo queremos representar en un mapa algún archivo vectorial pero nos encontramos con que su tabla de atributos es escasa en datos o no contiene aquellos que necesitamos. Y también a menudo sucede que esa información que necesitamos la tenemos en una base de datos aparte. Es entonces cuando debemos fusionar ambos archivos de alguna forma que nos permita disponer de toda la información en aquel archivo con el que deseamos trabajar. En este caso práctico vamos a ver lo que para mi es uno de los procesos más básicos e imprescindibles a la hora de crear nuestros mapas: enriquecer la información de un archivo vectorial con una tabla de datos externa, lo que nos ampliará las posibilidades de representación.
Vamos a utilizar para ello los polígonos de los municipios de España en formato vectorial shp (incluido en la descarga Líneas Límite Municipales) y la base de datos del Nomenclátor Geográfico de Municipios y Entidades de Población en formato mdb Access, ambos disponibles en la sección Equipamiento Geográfico de Referencia Nacional del Centro de Descargas del IGN.

Una vez descargados ambos archivos, los abrimos en QGIS. La base de datos mdb, al constar de varias tablas, nos preguntará cuál de ellas queremos abrir en QGIS: con abrir la tabla municipios nos basta para este caso.
El vectorial shp de polígonos municipales que hemos utilizado es el correspondiente al datum ETRS89.
Ambos abiertos en QGIS y consultando sus correspondientes tablas de atributos tenemos lo siguiente:
Apreciamos rápidamente que ambas tablas comparten como columna de valores comunes el nombre del municipio (llamado NOMBRE en la tabla del vectorial, y NOMBRE_ACTUAL en la tabla mdb). Podríamos haber tenido suerte y que el campo del Código INE fuera también idéntico, pero inexplicablemente está formado por distinto número de dígitos en cada tabla con lo que no es utilizable.
A continuación debemos unir ambas tablas. Para ello abrimos las propiedades de la capa vectorial (que es a la que queremos añadir los campos) y en la pestaña Uniones creamos una nueva unión según se ve en la siguiente imagen:
Creamos una nueva unión desde el símbolo +. En Unir capa obviamente seleccionamos la tabla mdb; en Unir campo y Campo objetivo seleccionamos el campo común de cada una de las dos tablas. Podemos elegir si unir la tabla entera o sólo algunas de las columnas (zona verde) y también el prefijo que distinguirá a las nuevas columnas añadidas (en azul). Pulsamos en Aceptar.
La nueva unión queda añadida a la lista de uniones mostrando sus parámetros básicos. Aplicamos y aceptamos.
Ahora nuestra capa vectorial de polígonos cuenta en su tabla de atributos, además de con sus datos originales, con los nuevos campos que le hemos añadido desde la tabla de datos mdb.
Columnas o campos nuevos añadidos (en amarillo) con el nombre de campo predefinido en el prefijo (verde).
Por lo que, y esto es lo importante, cuando vayamos a modificar el estilo de la capa (graduado, categorizado, etc...) las nuevas columnas de datos están ya disponibles para poder utilizarse en la simbología de capa.
La unión de datos hasta este momento es sólo virtual y se pierde si cerramos alguna tabla, por lo que conviene guardar la capa vectorial como un nuevo archivo shp que mantenga la nueva estructura de la tabla de datos de forma permanente. Simplemente botón derecho sobre la capa y Guardar como...

¿Qué hemos conseguido con esto? Que donde había una tabla de datos con escasa información que apenas podíamos clasificar por ningún dato relevante, tenemos ahora algunos de los datos más importantes para cualquier simbología que queramos aplicar a los municipios: población, superficie, perímetro, altitud...

Jugando ahora con nuestra nueva tabla de datos integrada en el vectorial y el magnífico QGIS nos será muy fácil elaborar interesantes mapas sobre la base de los municipios españoles. Para muestra tres ejemplos:


El origen y formato de la tabla de datos que queremos unir al archivo vectorial puede ser diverso, pero sirva este artículo de idea global sobre las posibilidades de este proceso. Un saludo.

1 comentario :

  1. En Mac (o al menos yo no lo consigo) no es posible abrir archivos .mdb, pero el proceso se puede hacer con otro formato como .csv
    Enhorabuena por el trabajo.

    ResponderEliminar