viernes, 20 de febrero de 2015

Importar tabla de datos en QGIS.

Sigamos con otra de las funciones básicas que utilizaremos muy a menudo a la hora de generar nuestros mapas y de la que tampoco habíamos hablado: importar una tabla de datos y representarla como puntos sobre el terreno. Esto es de tremenda importancia, pues no siempre encontramos los datos en formato shape .shp y a menudo los formatos clásicos de la mayoría de datos estadísticos son .csv o tablas Excel .xls o simple texto plano, y nos interesa muy mucho transformar esas tablas en una representación gráfica de las coordenadas.
QGIS posee la herramienta Añadir capa de texto delimitado, pensada para importar estos formatos de tablas de texto, siempre que contengan al menos los datos básicos de coordenadas geográficas entre sus columnas de datos. No siempre los ficheros que podamos encontrar tendrán la estructura correcta necesaria, aunque siempre podemos corregir dicha estructura con un editor (excel o de texto) antes de proceder a la importación.
Para este ejemplo utilizaremos el archivo 202311-0-colegios-publicos.csv que relaciona los Colegios Públicos de Enseñanza Primaria de la ciudad de Madrid, descargado directamente de la web de datos abiertos del Gobierno de España. Si abrimos el archivo en un simple editor de texto (bloc de notas por ejemplo) vemos la información que contiene:
Como vemos resaltado en amarillo los campos de coordenadas X e Y están presentes en el texto, por lo que en principio el archivo es válido y procedemos a cargarlo en QGIS:
Menú para carga de archivo de texto delimitado, o botón lateral de atajo.
Se nos abre la ventana de opciones a configurar para que QGIS sea capaz de entender y estructurar correctamente la información y representarla espacialmente. En principio QGIS detectará automáticamente la mayoría de los parámetros; si no es así procurad que la ventana esté como figura en la siguiente captura para el ejemplo dado:
En amarillo la ruta a nuestro archivo mediante el botón Explorar... En naranja el nombre que queramos para la capa en QGIS. En Codificación podéis cambiarlo si veis que los textos no reconocen algunos caracteres y no salen correctamente escritos (UTF-8 o System son las más comunes). En Coordenadas mirad que tenga el nombre del campo que efectivamente contiene cada coordenada.
Una vez todo OK pulsamos en Aceptar (QGIS nos pregunta el sistema de coordenadas a emplear) y aparecen en nuestra pantalla los puntos que representan a cada colegio del listado, con su tabla de atributos con toda la información completa:
Ahora sólo tenemos que guardar la capa como un vectorial shape .shp para tenerlo siempre disponible y en un formato realmente universal y que pueden manejar todos los programas de cartografía. Botón derecho sobre la capa:

Y eso es todo. Pensad que incluso podemos elaborar nosotros mismos una tabla de datos básica que contenga las coordenadas de cada punto e importarla sin mayor problema. Ejemplo: hemos hecho en el bloc de notas en un minuto la siguiente tabla separando las palabras con tabuladores:
La importamos en QGIS...
Y ya veis cómo ha reconocido perfectamente las cabeceras y los datos de la tabla colocando cada cosa en su sitio. Si la fuente de datos está en una hoja de cálculo Excel .XLS debemos primero guardar el archivo desde Excel al formato .csv. De esta forma podremos representar espacialmente como puntos vectoriales cualquier conjunto de datos del que tengamos la información de sus coordenadas. Un saludo y a practicar, que merece la pena.

2 comentarios:

  1. Hola,

    Me gustaría representar por puntos los portales que hay en la ciudad de Bilbao sobre el mapa.

    He creado una capa OpenStreetMap, creado un fichero csv con las coordenadas de cada portal de la ciudad y, al representar los puntos, estos están más juntos que los portales en el mapa. Es decir, la distancia entre portales del mapa es mayor la distancia entre puntos (que representan portales).

    El SRC es en ambos el mismo(3857 WSG 84). Llevo varios días intentando solucionarlo y no hay manera. ¿Alguna idea?

    ResponderEliminar
  2. Si te ha leído el CSV bien y te los sitúa más o menos en su lugar (parece que de proyección tampoco es) yo casi pensaría que una de las dos fuentes (OSM o el conjunto de datos) es algo diferente de la otra y que no tienen los datos de coordenadas sincronizados. Prueba sobre una ortofoto o sobre Cartociudad a ver si coinciden mejor... Saludos!

    ResponderEliminar