Tutorial: Importación de datos tabulares en QGIS

Sitio: OpenCourseWare for GIS
Curso: QGIS para Aplicaciones Hidrológicas
Libro: Tutorial: Importación de datos tabulares en QGIS
Imprimido por: Guest user
Día: lunes, 30 de diciembre de 2024, 17:19

1. Introducción

Frecuentemente, nuestros datos se encuentran en un formato tabular, por ejemplo en hojas de cálculo o archivos CSV. Algunas ocasiones los datos estan en dos tablas, una de ellas con las coordenadas y la otra con los atributos requeridos para el análsis que deseamos hacer.
En este ejemplo, importaremos la tabla con la temperatura diaria promedio en el día 1 de septiembre de 2013 en varias estaciones meteorológicas en Holanda. Los datos son descargados desde el Centro de datos KNMI Data Centre (KNMI, the Royal Netherlands Meteorological Institute), pero reformateados para el propósito del ejercicio.




2. Teoría

Primero, revisemos la teoría necesaria para este ejercicio en algunos videos.
Repasa cada video cuidadosamente y contestas las preguntas abajo del video.

2.1. Modelo de datos ráster en un SIG

Revisa este video acerca del Modelos de datos ráster en un SIG.


3. Verifica las hojas de cálculo

Es una buena practica revisar el contenido de las hojas de cálculo o archivos CVS antes de importarlos a cualquier software. Para archivos CVS, por ejemplo, es importante conocer los separadores de columna.

Por favor, abre los archivos KNMI_20130901_tday.xls y KNMI_stations.xls en algún programa que lea hojas de cálculo y revisa el contenido.

  • ¿Cuál hoja de cálculo contiene las coordenadas? ¿Qué proyección fue utilizada?
  • ¿Cuál es la columna en común que puede coincidir entre las dos hojas de cálculo?


4. Importar hojas de cálculo

Hay diferentes formas de importar datos tabulares dentro de QGIS:

  • Add delimited text layer buttonLayer | Add Layer | Add delimited text layer. Esta es la forma estándard que nos permite la importación de archivos de texto delimitados CSV.
  • add spreadsheet layer buttonLayer | Add Layer | Add spreadsheet layer. Esta herramienta puede cargar hojas de cálculo (*.ods, *.xls, *.xlsx) como una capa con opciones como utilizar la primera línea como encabezado, ignorar renglones y cargar capas de geometría desde campos X y Y.

Aquí, utilizaremos la segunda opción, por ello, requerimos instalar el complemento (Spreadsheet Layers plugin).
1. Ejecuta  QGIS Desktop. Asegurate de iniciar un nuevo proyecto en vez del proyecto anterior.

2. Desde el menú principal, dirígete hacia  Plugins | Manage and Install Plugins y verifica si el complemento Spreadsheet Layers plugin se encuentra instalado, en caso contrario, instalalo ahora.

Los complementos (Plugins) son desarrollados por la comunidad para agregar funcionalidades extras a QGIS, por ejemplo, el complemento Spreadsheet Layers plugin importa y exporta hojas de cálculo Excel.

Spreadsheet Layers plugin


3. Ahora selecciona Layer | Add Layer | Add spreadsheet layer  desde el menú principal.

add spreadsheet layer


4. En la ventana de diálogo, explorar al archivo donde se encuentran el archivo con los datos de las estaciones meteorológicas (KNMI_stations.xls).

5. Llena los campos como se muestra en la figura inferior. Asegurate que las opciones Geometry Fields y   Reference system son elegidos. También indica los tipos de datos correctos para los campos. Por ejemplo,  STN son los números de estaciones y deben importarse como Integer, mientras ALT(m) debe importarse como número Real .

Create layer from a spreadsheet file

6. Así, da un click en el botón OK, aparecerá un mapa con las estaciones meteorológicas.

7. Si no observas los mapas, probablemente requieres ajustar la extensión (extent) del mapa. Da un click derecho sobre la capa KNMI stations table y selecciona Acercar a la capa (Zoom to layer).

8. Agrega la tabla con los datos de temperatura de la misma forma, debido a que no tiene coordenadas en la tabla, deshabilita el checkbox. 

Create layer without geometry

Ahora, haz importado ambas hojas de cálculo dentro de QGIS!

5. Convertir una hoja de cálculo a una capa vectorial

Ahora, la capa KNMI stations table es guardada como una capa virtual temporal. Para futuros procesamientos, requerimos convertir esta a una capa vectorial, en este caso, convertiremos la capa a un archivo shapefile.


1. Con click derecho sobre  KNMI stations table y selecciona Export | Save features as...

2. En la ventana de diálogo, en el botón  Browse button navega a la carpeta correcta para guardar el archivo KNMI_stations.shp. El cambio de la proyección a una proyección local de Holanda, selecciona Amersfoort / RD New para el CRS con un click en el botónChoose projection icon. Tip: usa el campo Filter en la búsqueda del código EPSG  28992.

crs selector


Observa la ventaja del uso de códigos EPSG: nos proporcionan códigos estándards de cada proyección. Es útil en la determinación del código EPSG de la proyección que requieren en tu proyecto.

3. Da un click en el botón OK. Ahora, la ventana de diálogo luce como la figura inferior ( también verifica el ckechbox Add saved file to map y asegurate que el formato ESRI Shapefile es seleccionado).

save vector layer as


4. Para continuar haz un click en el botón OK.

5. Borra la tabla KNMI Stations Table desde lista de capas haciendo un click derecho y después seleccionar Borrar capa (Remove Layer), confirma con Click en OK, asegurate de borrar la capa correcta. Si pasas el puntero del mouse sobre la capa, se mostrará el nombre del archivo. Con la opción de Borrar capa (Remove Layer)  borrarás la capa de la lista de capas, el archivo aún reside en el disco duro.

Aunque la capa knmi_stations.shp se encuentra en la proyección EPSG:28992  (Amersfoort / RD New), el Map Canvas de QGIS aún utiliza la proyección EPSG:4326 projection (lat/lon WGS 84) y la capa knmi_stations.shp ha sido reproyectada al vuela para la visualización. La forma de visualizar todas las capas en la proyección EPSG 28992 lo realizamos desde las propiedades del proyecto en QGIS.

6. Desde el menú principal, elige Project | Properties.

7. Selecciona la pestaña Coordinate Reference System (CRS).

8. Desde la lista de sistema coordenado de referencia, escoge  EPSG:28992 and click OK.
project crs

Otra forma es indicar la proyección  CRS de la capa to that of the layer, con un click derecho sobre la capa y selecciona desde el menú contextual  Set CRS | Set Project CRS from Layer.

Considera que la proeycción es indicada en la parte inferior derecha de la pantalla: otf reprojection. Puedes verificar de esa forma si la proyección es la adecuada, también puedes dar un click al botón y dirigirte a la pestaña Project Properties | CRS  y cambia al vuelo la proyección.

6. Unión de los atributos de las tablas

La ubicación de las estaciones meteorológicas y los datos de temperatura aún se encuentra en tablas separadas. En análisis posteriores se requiere la combinación de los datos dentro de una capa vectorial. En el contexto del SIG, se llama operación Unión (join). Sólo podremos unir tablas sí estas tienen una columna en común.

1. Revisa la tabla de atributos KNMI_stations (click derecho sobre la capa KNMI_stations y selecciona Abrir tabla de atributos (Open Attribute
Table
) y de la misma forma, revisa la tabla KNMI Temperatures Table.

2. Verifica que los campos STN tienen valores clave comunes entre dos tablas como habíamos concluido antes con las hojas de cálculo originales.

Después, identifica la columna común que podemos emparejar con los datos de la tabla KNMI Temperatures Table a los atributos de nuestro  shapefile KNMI_stations.shp.

3. Primero, cierra la tabla de atributos.

4. Luego, un click derecho sobre la capa KNMI_stations y escoge Propiedades (Properties).

5. Desde la ventana de diálogo, elige la opción Uniones ( Joins) join icon.

6. Haz un click en el botón plus buttony verifica la ventana de diálogo que luce como en la figura inferior.

add vector join

El campo en común es STN (the station number). Uniremos el campo de temperatura e indicaremos el prefijo Temp_.

7. Hacemos click en el botón OK.

8. Ahora click en OK para realizar la operación de unión Join.

9. Después, verifica nuevamente la tabla de atributos de KNMI_stations. ¿Qué sucedio?

7. Edición de la tabla de atributos emparejados

La tabla de atributos emparejados requiere dos correciones: (1) los objetos con datos perdidos requieren borrarse y (2) las temperaturas  deben convertirse a las unidades correctas.

1. Con un Click sobre los renglones con nulos (NULL) o sin valores (no values) para los datos de temperatura, mientras mantienes oprimida la tecla Ctrl.

Así, la tabla de atributos luce como la figura inferior.

select nodata

2. En la tabla de atributos, haz un click sobre el icono Toggle editing buttonarriba de la tabla, que alterna el modo de edición.

3. Da un Click en el icono delete selected button  (en la barra de herramientas, en la parte superior de la tabla de atributos) para borrar dos registros con datos faltantes, después guarda la tabla de atributos haciendo un click en el icono Save layer edits.

El único problema ahora es que los datos de temperatura de la tabla tienen valores alrededor en 0.1 °C. Requerimos convertir los valores a grados centígrados (°C).

4. Con un Click al botón nuevo campo (New field) add new fieldagrega una nueva columna a la tabla. Llena los valores de la ventana  Agregar campo (Add Field)  como se muestra en la figura inferior.
add field

Length es el número de dígitos, Precision es el número de lugares decimales.

5. Da Click en el botón OK para proceder.

Ahora la tabla de atributos muestra una columna extra con valores Nulos (NULL).

6. Ahora, el cálculo de los valores correctos con el icono field calculator buttonarriba de la tabla para abrir la ventana de expresiones  (No lo confundas con el botón de Selección por expresión (Select by expression) que luce ligeramente diferente). Introduce la caja de expresiones como se muestra en la imagen inferior. Para evitar errores, la mejor practica es con un doble click sobre el nombre del campo en la mitad de la ventana, después click en el botón *  después teclea 0.1 así la ecuación es "TEMP_T(0.1C)" * 0.1. Finalmente da un Click sobre el botón OK para ejecutar el proceso.

expression dialog

Asegurate que la tabla de atributos se observa como en la figura inferior. Por favor considera que T(C) debe seleccionarse como la columna, en la cual, los valores calculados serán asigandos!

field calculator

7. Haz un Click en Actualizar todos (Update All) que realiza el proceso para todos los registros.

Ahora, revisa los resultados en la tabla de atributos.

8. Con un Click sobre el icono  Toggle editing button deshabilitas el modo de edición. Con un Click en Guardar (Save) salva los cambios cuando pregunte y cierra la tabla de atributos. Si tienes algún error, no guardes, en su lugar elige descartar los cambios hasta la última modificación.

9. Ahora borra la tabla KNMI Temperatures Table desde la lista de capas y verifica el checkbox de la tabla de atributos de KNMI_stations.

  • ¿Qué columnas observas ahora?
  • ¿Qué concluyes acerca de la función Unión (join)?

Considera que puedes guardar la tabla completa de KNMI_stations hacia un nuevo shapefile utilizando la función Export | Save Features As.

8. Interpolación de la capa de puntos a una capa ráster

La tarea final es la interpolación de los valores de temperatura a una capa ráster.

1. Desde el menú principal, selecciona Raster | Analysis | Grid (Nearest Neighbor).

grid nearest neighbor

2. En la ventana de diálogo especifica el archivo de salida: tday_NN.tif, utiliza el explorador de archivos y especifica el formato .tif 

3. Selecciona T(C) como el valor Z desde el campo (Z value from field), el cual se interpolará con el método llamado Thiessen polygons.

4. Habilita el checkbox Abrir el archivo de salida después del proceso (Open output file after running algorithm).

Para el resto de los parámetros dejalos por default. La ventana debería lucir como en la figura inferior.

grid nearest neighbor dialog

Observa que la sección de la ventana aparece el comando  GDAL empleado en el geoprocesamiento. Esta herramienta es esencialmente una interfaz gráfica (GUI) para la herramienta en línea de comando gdal_grid.

5. Da un Click en el botón Run para ejecutar.

6. Da un Click en el botón Close que cierra la ventana de diálogo.

7. Ahora repite la interpolación siguiendo la siguiente ruta Raster | Analysis | Grid (Inverse Distance to a Power) algoritmo (IDW) . Por favor, nombra al archivo resultado como tday_IDW.tif.

9. Estilización de los resultados

Con el estilizado de las capas, las interpolaciones tienen mayor sentido.

1. Arrastra la capa KNMI_stations arriba de ambas capas ráster T_NN and T_IDW en el panel de capas (Layers Panel).

Proporcionar un contexto, primero agrega un mapa base utilizando el complemento QuickMapServices.

2. Desde el menú principal, selecciona Web | QuickMapServices | OSM | OSM Standard.

3. Abre el panel de estilizado (Layer Styling panel)

haciendo click en el botón  Open layer styling panel button. Indica como la capa objetivo a KNMI_stations.

4. Selecciona el componente  marcador simple (Simple marker) e indica el color de relleno (Fill color)  a  negro (black) y el tamaño (Size) a 2.8.

5. Cambia a la pestaña de Etiquetas (Labels) styling dock labelsdel panel de estilizado (Layer Styling Panel) de sin etiquetas (No Labels) a etiquetas únicas (Single labels).

6. En la opción de etiquetar con (Label with), indica el campo NAME .

Los nombres están en mayúsculas, entonces las convertirás a mayúsculas y minúsculas.


7. Haz un Click en el botón de expresión (Expression) expression button que abre la ventana de expresiones Expression Dialog . Usa la ventana de búsqueda (Search) para buscar la función title(). Agrega el nombre del campo NAME a la cadena de la expresión que se utilizará con la función. Tu expresión será: title( "NAME" ).

8. Para agregar más información al mapa, ahora etiqueta el campo de la temperatura. Nuevamente, da un  click en el botón de expresión (Expression) expression button . Como haz hecho en ejercicios previos, utiliza el operador de concatenación (String Concatenation)concatenation operatory ahora el operador de una nueva línea (New line) new line operatorpara agregar el campo T(C)  en la segunda línea de la etiqueta. Ahora, agregaremos el símbolo de grados utilizando la función char() , que retornará el carácter asociado con el código unicode code. La expresión del etiquetado debería lucir así: title("NAME") || '\\n' || "T(C)" || char(0176) || ' C'.

9. Para centrar la etiqueta, cambia a la pestaña formato (Formatting) label formatting tab e indica la alineación  (Alignment) a centro (Center).

10. Coloca la fuente (Font) a Calibri con un estilo (Style) de negritas (Bold) y tamaño (Size) de 10 puntos.

11. Cambia a la pestaña de  Label buffer  label buffer tab y verifica la opción del checkbox  Dibujar buffer de texto (Draw text buffer). La opacidad (Opacity) a 50%.


12. En el caso, de una mayor separación entre etiquetas y el icono del objeto, cambia la ubicación de la etiqueta en la pestaña ubicación de la etiqueta (Label placement )label placement tab icone indica la distancia (Distance) a 2 mm.

Si las etiquetas se cortan en los bordes del mapa, revisa el ejercicio previo, como utilizar la configuración de ubicación automática (Automated placement settings) que soluciona esto.

Ahora, enfoquemonos en las dos capas ráster interpoladas.

13. Inicia, haciendo la capa T_NN como capa obejtivo en el panel  de estilizado (Layer Styling Panel).

14. Cambia el renderizado desde el formato por default Singleband gray a Singleband pseudocolor.

En el caso de las capas ráster continuos, utilizaremos el rendereo Singleband pseudocolor . Aunque  Thiessen polygons en la capa T_NN parece información discreta, los pixeles tienen números reales, lo cual no es posible en capas rásters discretas .

15. Para la rampa de colores (Color ramp) escoge Spectral. Da un Click en Classify. Por default, esta rampa de colores es habilitada con los valores mínimos en color rojo y las valores mayores en color azul. Esto es contrario a lo instuitivo. Estos valores representan la temperatura con valores altos deberían representarse con colores cálidos o rojos y valores menores con colores fríos y azules. Lograremos esto, con un click derecho sobre la rampa de colores y selecciona Invert Color Ramp desde el menú contextual. Así, ver el mapa base, aplicaremos el modo de mezclado (Blending mode). En la sección de rendereo de la capa  (Layer rendering) escoge  Multiply para el modo de mezclado Blending mode.

Tu mapa debe parecerse como la figura inferior.

 the T_NN layer


16. A continuación, deshabilita la capa T_NN y habilita la capa T_IDW. Utiliza el panel de estilizado Layer Styling Panel para elegir el rendereado Singleband pseudocolor con la misma rampa de colores invertida. En esta parte, cambia el modo (Mode) a Quantile. También aplica el modo de mezclado  (Multiply Blending mode) a este ráster.

Ahora, tu mapa debería parecerse a la figura inferior.

stations idw styled

10. Conclusiones

En esta lección, haz aprendido a:

  • importar datos tabulares (import tabular data) dentro un SIG
  • salvar tablas con campos de geometría a un formato SIG
  • unir tablas de atributos (join attribute tables)
  • editar tabla de atributos (edit attribute tables)
  • interpolar  capas de puntos a capas ráster
  • estilizar y etiquetar capa de puntos
  • estilizar capas de ráster continuos
Te recomendamos el siguiente webinar que describe el procedimiento completo: