Cómo trabajar con raster en QGIS (hillshades, curvas de nivel, perfiles topográficos y 3D)

En este tutorial vamos a explicar paso a paso:

  • Cómo trabajar con archivos .asc en QGIS.
  • Cómo convertir en otros formatos.
  • Cómo crear curvas de nivel y sombreados
  • Cómo crear visualizaciones en 3D.
  • Por último te enseñaremos cómo crear un perfil topográfico en QGIS.

QGIS tiene fantásticas herramientas y complementos para el procesamiento de datos del terreno o elevaciones y para su visualización. Ante la pregunta:

Tengo un archivo .asc y quiero importarlo  a QGIS. ¿Cómo lo hago?

La respuesta es que no necesitas realizar ningún tipo de conversión previa. QGIS lee perfectamente los archivos .asc (Arc/Info ASCII Grid) gracias al uso de la librería GDAL para leer y escribir formatos de datos raster, incluyendo Arc/Info Binary Grid, GeoTIFF, Erdas Imagine y muchos más. La librería GDAL soporta más de 100 formatos raster.

Obtener datos del terreno

Desde el Centro de Descargas del IGN podemos descargar un MDT200 (Modelo digital del terreno con paso de malla de 200 m.) de la provincia de León. Utilizaremos este ráster para realizar los ejercicios planteados en este tutorial.

Para poder realizar la descarga es necesario registrarse en el sitio. Una vez realizada la descarga tendremos un archivo llamado MDT200-LEON-H30.asc

Añadiendo datos raster en QGIS

Podemos añadir el raster arrastrando el archivo directamente a QGIS o a través del menú superior Capa > Añadir capa raster…

Una vez añadida la capa veremos los datos del terreno en QGIS. Cada píxel del raster representa la elevación media en metros en ese lugar. Los píxeles oscuros representan las zonas de baja altitud y píxeles más claros representan áreas con alta altitud.

Convertir a otro formato raster

Para convertir un archivo raster a otro formato debemos ir al menú superior Ráster  > Conversión > Traducir (Convertir formato)

convertir

Haciendo uso de la librería GDAL, QGIS es capaz de convertir prácticamente cualquier formato en otro, la lista es muy amplia: .SID, . TIFF, . IMG, HDR.ADF, .DT0, .DT1, .DT2, . JPG, . PNG, .BMP, .TER, .ASC, .SQLITE, .E00, .MBTILES, etc. Consulta la lista de formatos raster de GDAL.

Extraer las curvas de nivel

Para extraer las curvs de nivel del modelo digital del terreno seleccionamos la herramienta Curvas de nivel del menú superior Ráster  > Extracción > Curvas de nivel.

menu_curvas

  • En el cuadro de diálogo Curvas de nivel, seleccionamos MDT200-LEON-H30 como  archivo de entrada.
  • Como nombre del archivo de salida de las curvas de nivel mdt200_leon_curvas100.shp.
  • Vamos a generar las curvas de nivel en intervalos de 100 metros, por lo que ponemos 100 como el intervalo entre las curvas de nivel.

Clic en Aceptar.

Una vez finalizado el proceso, verá las curvas de nivel cargadas en QGIS. Cada línea de esta capa representa una elevación. Todos los puntos a lo largo de estas líneas estarían a la misma altura. Y cuanto más próximas estén las líneas más pronunciada será la pendiente.

Crear un hillshade (mapa de sombras)

Ahora vamos a crear un sombreado del relieve del ráster original. Seleccionamos Ráster > Análisis > Mapa de sobras (Hillshade).

Como puedes ver en la imagen anterior, la herramienta Raster > Análisis también nos permite crear mapas de:

  • Pendientes.
  • Orientación.
  • Irregularidad (escabrosidad).

La creación de un hillshade es muy sencillo, en la ventana Mapa de sombras(Hillshade), seleccionamos MDT200-LEON-H30 como archivo de entrada y como nombre del archivo de salida del sombreado MDT200-LEON_hillshade:

Clic en Aceptar.

hillshade_qgis

Jugando con la transparencia del hillshade y cambiando la rampa de colores del MDT original este puede ser el resultado:

hillshade_mdt

Mostrando datos del terreno en 3D

En QGIS 3 ya podemos crear fácilmente visualizaciones en 3D de nuestros datos geográficos.

Simplemente desde el menú superior Ver > Nueva vista de mapa 3D.

La configuración 3D podemos modificar la escala vertical para exagerar la elevación y hacer la visualización más atractiva:

Crear perfiles topográficos con QGIS

profileIcon_14

Para crear perfiles topográficos en QGIS necesitamos utilizar el complemento Profile Tool.

  • Seleccionamos la capa raster MDT200-LEON-H30
  • Pinchamos en el icono del plugin y trazamos una línea simulando el curso de un río (también podemos seleccionar una capa de polilíneas para realizar la operación)
  • Finalizamos haciendo doble clic

De este modo obtenemos el perfil topográfico:

perfil topográfico

Como resultado vemos que no hemos trazado demasiado bien el curso del río. 😉

Para finalizar podemos exportar el perfil a PDF, PNG, SVG o PS.

Cómo utilizar la calculadora ráster en QGIS

La calculadora ráster es una herramienta que permite realizar operaciones matemáticas sobre los valores de los píxeles existentes en un ráster, lo que es útil para la conversión y manipulación de dichos datos.

Podemos dividir la calculadora ráster en tres partes:

Raster_calculator

  1. Bandas ráster. Contiene todas las capas ráster cargadas en la interfaz de QGIS y que pueden ser utilizadas para la realización de cálculos sobre las mismas.
  2. Capa resultado. Lugar donde definimos la capa de salida. Además, podemos indicar la extensión de la zona de cálculo para establecer la resolución de la capa de salida.
  3. Contiene todos los operadores disponibles para añadir a la caja de expresiones de la herramienta. Cuenta con operadores matemáticos y funciones trigonométricas.

Los resultados de dichas operaciones se muestran en una nueva capa ráster en un formato admitido por la librería GDAL.

En este tutorial te mostramos cómo modificar los valores de un ráster a partir de una máscara con la calculadora ráster de QGIS.

Si quieres aprender a trabajar con raster en QGIS, apúntate ya a nuestro curso online de QGIS o QGIS avanzado.

23 comentarios en “Cómo trabajar con raster en QGIS (hillshades, curvas de nivel, perfiles topográficos y 3D)”

  1. Buenas tardes Aurelio:
    Estoy intentando hacer un estudio y no lo consigo, te comento….
    Tengo una serie de puntoS en una capa .shp en concreto estaciones de medición, por otro lado una capa raster con la altura z.
    Me gustaría saber como vincular la altura del raster con la capa shp y obtener la altura a la que se encuentra capa punto extraída del raster.
    Gracias y enhorabuena por los cursos y la divulgación en GIS

    • Hola RAfael,
      Gracias por tu comentario.
      Para resolver tu problema hay varias opciones: desde utilizar herramientas de SAGA como «Add grid values to points» o utilizar el plugin de QGIS «Point Sampling Tool», hasta convertir el raster a vectorial y realizar una intersección posterior entre las dos capas. Saludos!

    • Hola Alberto,
      En QGIS puedes generar todas las curvas de nivel, después puedes crear una columna nueva en la tabla de atributos para indicar qué curvas quieres que sean maestras y cuales secundarias. Con este paso previo ya puedes realizar una simbología categorizada, para representar las curvas maestras de un color y las secundarias de otro. Un saludo!

  2. Buen día Amigo. Una duda para obtener las Pendientes: Cuando genero mi archivo (en formato .tif), luego de que quiero dar formato a éste clasificando las pendientes que se supone serán generadas, éste me indica que el único dato obtenido es de 89.9 (tanto min. como max.), por lo que no puedo hacer ninguna clasificación y mi mapa aparece de un solo color. Estaré haciendo algún proceso mal?

    • Hola Alonso, Me temo que el TIFF que tienes no se ha generado bien ya que los píxeles no contienen información. Prueba a generar de nuevo un TIFF con valores en sus celdillas. Saludos

  3. hola a todos,

    alguien sabe como se puede imprimir a escalas las secciones topográficas realizadas con las herramientas de qgis (qprof, VoGis profile tool). Necesito para realizar secciones geológicas.

    gracias

  4. Hola Aurelio, estoy empezando a usar Q GIS y necesito corregir un DEM que debido a la presencia de vegetación me impide realizar buenos análisis hidrológicos, vos que me recomendarias?. Por ultimo me gustaría poder utilizar la herramienta para escabado de cauces de SAGA pero me dice el programa que las capas no tienen la misma extensión de cuadricula, a que hace referencia? Desde ya muchas gracias!

    • Hola Ramiro, Como paso previo a los análisis hidrológicos será necesario corregir el DEM. Hay que realizar un quemado (burn) con una capa de ríos para indicar por donde irá el curso de agua. Puedes utilizar SAGA. Lo que debes hacer es tener amabas capas, la raster y la vectorial en el mismo sistema de referencia espacial.
      Un saludo!

  5. Hola,

    Lo primero, enhorabuena por la web y gracias por compartir tanta información. Estoy utilizando Qgis y he realizado un mapa de relieve, a partir de un MDT y sus curvas de nivel, y he modificado la rampa de colores por tramos de altitud (de 0 a 100, 100 a 200 m., etc) para que quede lo más visual posible.

    Mi duda es si hay alguna forma de poder mostrar dichos tramos por separado, y así poder mostrar sólo los tramos de altitud que interesen, en vez de todo en conjunto asociado al ráster de origen, como si fueran capas independientes. Lo he intentado recortando el ráster, pero necesito un shape poligonal para poder hacer el recorte, la capa de curvas de nivel es lineal y al intentar transformarla a poligonal, me da error.

    Quizá sea alguna opción desde el mismo archivo ráster que permita visualizar por separado, pero de momento no doy con ello.

    Gracias de antemano y un saludo.

    • Hola Antonio,
      Muchas gracias por el comentario!
      Creo que lo que necesitas es reclasificar el raster, tienes un algoritmo de GDAL que se denomina r.reclass que te permite realizarlo. Te creará una capa nueva con los valores categorizados, así te permitirá hacer filtros… Un saludo!

  6. Podrían decir como suavizar curvas de nivel, ya que al realizarlas salen con muchas esquinas en qgis, gracias un saludo

  7. Hola,

    No soy capaz de encontrar una herramienta que me de el siguiente resultado:

    Tomando como base un MDT y dos puntos de coordenadas, necesitaría una herramienta que me diera la línea con mínima pendiente entre ambas coordenadas. Todo ello enfocado al diseño de senderos y caminos en orografía acusada.

    Alguien podría orientarme?

    Gracias y un saludo.

    PD:Soy usuario tanto de ArcGIS como QGIS y Global Mapper

  8. Hola, Aurelio. Una duda respecto a QGIS y su Profile Tools:

    Como bien has indicado en tu entrada,
    una vez creado el perfil longitudinal, podemos exportarlo a varios formatos ( PDF, PNG, SVG o PS ), pero ¿y si lo que nos interesa es obtener un listado, CSV por ejemplo, con la distancia y altitud Z del perfil?

    El objetivo de todo esto es obtener un listado que me aporte la distancia (abscisa) y la altitud (ordenada) de una serie de senderos, partiendo de lo que tenemos: el track de los senderos y un MDE. Cómo obtener la representación de ese perfil está claro, como hemos visto y tú mismo comentas en tu entrada, pero lo que no logro resolver es cómo obtener desde QGIS ese listado en formato texto para poder manejarlo en otras aplicaciones.

    Lo tengo resuelto vía aplicaciones externas, por ejemplo con TCX Converter, que me permite a partir del track calcular la Z y guardar el resultado en un fichero tipo csv. Pero lo que me gustaria es hacerlo desde el propio GIS, QGIS, gvSIG o ArcGIS.

    Por tanto, la pregunta es: ¿Conoces alguna forma de obtener desde QGIS, gvSIG o ArcGIS el listado Dis/Z (Distancia/Altitud) de un eje, partiendo del TRACK (XY) y de un MDE (que es lo que nos aporta la Z)?

    Gracias y un saludo

    • Resuelto: Con el algoritmos de SAGA «Profiles from lines», accesible desde la Caja de Herramientas de Procesado de QGIS, se puede obtener la salida tabulada que buscaba teniendo como datos de partida el TRACK y el MDE

Los comentarios están cerrados.