En este breve artículo vamos a explicar cómo cargar un CSV en QGIS para importar sus datos como una capa GIS.
Se trata de una funcionalidad tremendamente útil en multitud de ocasiones cuando no tratamos directamente con archivos puramente espaciales como Shapefile, GeoJSON, GeoPackage, KML…
En este sentido, QGIS nos lo pone realmente fácil. Tan sólo deberemos conocer de antemano la estructura de nuestro archivo CSV para poder cargarlo satisfactoriamente.
¿Qué es un archivo CSV?
Bien, para quien no conozca el formato CSV a pesar de su uso generalizado, se trata de un tipo de archivo de formato abierto que sirve para representar datos en formato de tabla.
Los datos contenidos en la tabla se almacenan en el archivo CSV en formato plano, cuyos valores quedan separados mediante comas. De ahí su nombre en inglés: comma-separated values.
No obstante, ese mismo archivo puede configurarse para que los valores de la tabla estén separados por medio de distintos delimitadores. Los casos más habituales son la coma (“,”), el punto y coma (“;”) o el tabulador.
Características del formato CSV: ventajas y desventajas
La posibilidad de modificar el tipo de delimitador entre atributos se debe a que el formato CSV no está estandarizado. A pesar de que esta característica permite mayor flexibilidad, esta es quizás una de las desventajas de este formato.
En ocasiones nos podemos encontrar con datos contenidos en una tabla que contengan ese tipo de caracteres delimitadores dentro de una cadena de texto, por ejemplo, o como delimitador numérico de millares o decimales, según países.
Sin embargo, el formato CSV tiene ventajas y por ello es uno de los formatos más utilizados para compartir datos. De hecho, se trata de uno de los formatos preferidos por organismos que publican y difunden OpenData.
Una de sus grandes ventajas es, sin duda, su ligereza y sencillez al guardar la información directamente en un archivo de texto.
Además, cuenta con una gran interoperabilidad entre programas. Mover información en formato CSV de un programa a otro es fácil y común, y también lo es entre miembros de una organización o equipo precisamente por eso: la capacidad de ser leído, abierto o interpretado por multitud de software.
En cualquier caso, estas características lo convierte en un gran candidato para compartir información estructurada en formato tabular, sin grandes pretensiones ni especificidades.
CSV para datos espaciales y GIS
Como hemos visto, un CSV no es un archivo estándar orientado a la información espacial (ni mucho menos) pero permite incorporar datos con referencia espacial.
El ejemplo más claro pueden ser dos campos específicos de latitud y longitud que almacenen unas coordenadas en formato alfanumérico.
Estas coordenadas nos servirán para que QGIS o cualquier otro Sistema de Información Geográfica sea capaz de localizar en el espacio los datos asociados al registro que contiene esas coordenadas.
Por supuesto, existen otras opciones…
Quizás la más rebuscada sería el uso de un campo (o múltiples campos) con direcciones estandarizadas o topónimos que podamos geolocalizar mediante algún servicio específico de geocodificación para que nos devuelva esos mismos datos con una referencia espacial válida.
Por otro lado, y quizás la manera más limpia, pasa por la opción de incorporar un campo en formato WKT (del inglés Well Known Text) que almacene en un sólo campo la denominación geométrica (punto, línea, polígono…), las coordenadas de esa geometría y su sistema de coordenadas.
En este post puedes revisar en qué se basan las geometrías WKT – Well Known Text y cómo pueden leerse y generarse en QGIS fácilmente.
De ese modo no nos vemos limitados a coordenadas de punto (latitud y longitud), pudiendo establecer su uso para geometrías más complejas.
Cómo cargar un CSV en QGIS
Para poder cargar archivos CSV en QGIS nos dirigiremos al menú superior Capa > Texto delimitado. En este panel deberemos establecer los parámetros de lectura del archivo, seleccionando el origen dentro del directorio de archivos, la codificación de los datos y toda una serie de opciones que permitan a QGIS entender la estructura del CSV.
Como ejemplo vamos a utilizar un CSV referente a puntos limpios en la ciudad de Barcelona. Este dataset contiene múltiples campos que nos podrían llegar a servir para localizar los datos. Por ejemplo:
- Campos de tipo de vía, nombre de calle y número de portal : podríamos construir la dirección completa para geocodificar esa dirección y conocer la localización exacta del equipamiento.
- Campos de código y nombre de barrio y distrito: podríamos asignar los valores mediante un join espacial a los polígonos correspondientes.
- Códigos postales donde se encuentran: ídem, si conocemos o tenemos una capa que permita una unión espacial.
- Campos latitud y longitud: coordenadas geográficas en SRC WGS84, evidentemente para localizarlos en base a esas dos variables.
- Campos X_ETRS89 e Y_ETRS89: exactamente igual pero en SRC UTM ETRS89 31N, correspondiente al área de Barcelona, al este de la península ibérica.
- Campos X_ED50 e Y_ED50: igual, utilizando las coordenadas de latitud y longitud en SRC ED50.
Así pues, dependiendo del tipo de conjunto de datos existirán más o menos maneras de geolocalizar o geocodificar una localización concreta.
Volviendo a la definición de parámetros del diálogo de QGIS para importar CSV, entre otros deberemos definir:
- Si se trata de un CSV separado por comas, delimitado por una expresión regular o por otros caracteres delimitadores. En nuestro caso, el archivo se separa mediante comas así que deberemos indicarlo así.
- Si nuestro archivo contiene nombres de campos en primera fila. Habitualmente los archivos CSV mantienen los nombre del campo de tabla (columnas) como la primera fila del archivo. Deberemos indicarlo a QGIS para que no lea esa primera fila como datos, sino como nombres de campo para confeccionar la capa.
- Deberemos definir qué campo o campos nos dan las coordenadas. En la imagen podemos ver cómo QGIS admite la utilización de campos WKT que hemos comentado anteriormente.
- El Sistema de Referencia de Coordenadas (SRC) de la geometría.
- Otras opciones como la indexación espacial, sólo en caso de CSV con una cantidad alta de registros. En este caso es totalmente prescindible.
Si hemos definido correctamente los parámetros de lectura nuestro archivo CSV debería ser leído y mostrado en QGIS como una capa, no como una tabla. Eso indicaría que ha sido capaz de leer los valores de localización espacial dados.
Si las coordenadas y el SRC son correctos, los puntos deberían mostrarse en los lugares correspondientes sobre el lienzo del mapa. Ya podremos inspeccionar nuestros datos, analizarlos y transformarlos desde QGIS libremente.
Evidentemente, este es un ejemplo sencillo que utiliza coordenadas para objetos puntuales. De hecho, nos vemos altamente limitados a ese tipo de geometría de tipo punto si no utilizamos formatos más complejos como el anteriormente mencionado WKT, que también puede ir embebido dentro de un CSV.