miércoles, 18 de marzo de 2015

Mapa de sombras y relieve de color en QGIS.

En el articulo anterior vimos como añadir un sombreado de relieve a un mapa ráster con Global Mapper, dotándole así de un aspecto tridimensional muy efectivo. En esta ocasión vamos a mostrar cómo hacerlo desde QGIS 2.8, y ya puestos, también algunas herramientas más que podemos utilizar a partir de un MDT o DEM (Modelo Digital del Terreno): relieve de color, mapa de pendientes y mapa de orientaciones. Usaremos para todo ello los mismos archivos del artículo anterior: MTN50 hoja 157, y MDT05 de la misma hoja, disponibles como siempre recuerdo en el Centro de Descargas del CNIG.

1.- Sombreado de relieve.
Para conseguir aplicar un sombreado de relieve a un mapa en QGIS lo primero que debemos hacer es conseguir un mapa de sombras a partir del MDT. Abrimos el MDT en QGIS y con él seleccionado en el panel de capas procedemos a extraer el mapa de sombras (hillshade). Menú Ráster/Análisis de terreno/Mapa de sombras.
En la ventana de opciones tenemos la capa de altitud (el MDT sobre el que vamos a trabajar), la capa de salida (el destino y el nombre del archivo de sombras que vamos a generar), el formato de salida (de entre los muchos que hay recomendamos GeoTIFF), el Factor Z (es la exageración de las alturas, lo dejamos por defecto en 1), Añadir resultado al proyecto (lo dejamos seleccionado para que la nueva capa de sombras se nos añada a la ventana de QGIS) y dos campos bajo el epígrafe Iluminación: Azimuth es el ángolo desde el que el sol ilumina la escena (lo dejamos por defecto en los 300 grados, o sea, Noroeste); y Ángulo vertical que es la altura a la que el sol se encuentra respecto al horizonte (también lo dejamos por defecto en 40). Por supuesto podéis variar estos parámetros para ir observando los resultados, pues siempre lo recomiendo y es una de las mejores formas de aprender. Pulsamos Aceptar.
Tras unos segundos de trabajo del programa la capa Sombreado (o el nombre que le hayamos dado como capa de salida) se nos carga en QGIS añadiéndose a nuestro MDT original.
Abrimos ahora en QGIS nuestro archivo de mapa correspondiente a la hoja 157 del MTN50; lo colocamos el primero en la lista de capas de forma que sea lo primero visible (simplemente arrastrando la capa sobre las demás se consigue). Una vez cargado hacemos doble click sobre su nombre (o botón derecho/Propiedades) para que se nos abra la ventana de Propiedades de capa.
En dicha ventana seleccionamos la pestaña Estilo, y en el marco Renderizado de color (destacado en amarillo) tenemos todas las opciones a modificar. De nuevo podéis jugar con el brillo, la saturación o el contraste para ir aprendiendo y visualizando los cambios hasta estar a nuestro gusto. Pero lo básico por ahora es que en la pestaña Modo de mezcla (destacada en naranja) seleccionemos Multiplicar. Aplicamos los cambios si queremos previsualizarlos y los aceptamos si los creemos definitivos.
Nuestro mapa plano del MTN50 queda fusionado con el mapa de sombras extraído del MDT
 generando la sensación de relieve que buscábamos.
2.- Relieve de color.
Otra variante muy interesante al mapa de sombras es generar un relieve coloreado en función, normalmente, de las altitudes del terreno. Podemos seguir en el punto en el que estábamos. Apagamos las capas del mapa MTN50 y del sombreado, y seleccionando el MDT original en la lista de capas, vamos al menú Ráster/Análisis del terreno/Relieve...
En la ventana de opciones de nuevo seleccionamos el MDT como Capa de altitud, seleccionamos un nombre y un destino para la Capa de salida, dejamos el formato como GeoTIFF, el Factor Z en 1, y marcada la casilla Añadir resultado al proyecto para que nuestra capa se cargue al terminar. Pulsamos el botón Crear automáticamente para que el programa nos genere una rampa de colores que representen las altitudes por defecto del terreno (tarda un poco). Esta escala de colores puede modificarse importando una ya hecha o eliminando algunas bandas, cambiándolas de lugar, etc... pero de momento nos vale con lo que QGIS hace por defecto. Si el programa no importara correctamente el rango de alturas del MDT para asignar a cada banda de color, podemos introducirlas manualmente haciendo doble click sobre el valor de altura y de esta forma redistribuir uniformemente los límites de altura de cada banda de color. Pulsamos Aceptar.
Nuestra nueva capa relievecolor se añade a la lista de capas en pantalla.
Como ya tenemos nuestra capa de la hoja 157 del MTN50 retocada con el efecto Multiplicar que le dimos en las Propiedades de capa, sólo tenemos que encenderla para que ese mismo efecto se aplique sobre nuestro relieve de color que está debajo de ella en la lista. El resultado es espectacular.

Para las otras herramientas disponibles en el mismo menú (Pendientes, Orientaciones o Índice de escabrosidad), y por no alargar mucho esta entrada, simplemente tenéis que proceder de la misma forma. Todas ellas como veis son operaciones que podemos ejecutar sobre un archivo MDT de relieve y que nos permiten extraer distintos parámetros para distintas funcionalidades, no necesariamente para sombrear un ráster aunque fuera el propósito de este artículo. No me digáis que no queda precioso el mapa, ¿verdad?.

PD: Quedaría pendiente cómo exportar esa imagen tan preciosa de nuestro mapa sombreado, y si no usáis QGIS seguramente estaréis preguntándoos como diablos se hace. Hasta donde yo se sólo es posible a través del Diseñador de impresión de QGIS (en el menú Proyecto) pero por desgracia es demasiado largo explicarlo en este artículo.... Si lo necesitáis dejadme comentario debajo e intento hacer una entrada al respecto. Saludos!!

36 comentarios:

  1. Hola....no tengo mucha experiencia con el programa QGIS,pues normalmente efectuo este procedimiento como tu lo explicas en el anterior articulo,con el GlobalMapper.
    Pienso que este fenomenal programa que es el QGIS,tiene muchas opciones por descubrir y el articulo en el que has descrito el procedimiento estaria incompleto sin la posibilidad de exportar nuestro mapa a un formato adecuado a las utilidades con las que trabajamos
    Darte las gracias por los articulos que compartes con todos nosotros,que somos muchos los que te seguimos a diario (ya veo los mapas de visitas) y animarte para seguir haciendolo.
    Un saludo................................Laita !!

    ResponderEliminar
    Respuestas
    1. Llevas razón Laita, pero explicarlo en el mismo artículo hubiera sido demasiado. Además cuando genero el jpeg, o el png con sus correspondientes archivos de calibración (jgw, pgw), Global Mapper no me los abre y sin embargo CompeGPS si... Y debo generar alli el IMP de Compe para que entonces Global Mapper si me los abra. Muy curioso... Voy a ver si afino eso antes de publicar. Saludos!!

      Eliminar
  2. A los buenos dias, hola Javi.
    Tengo el problema de que no puedo cargar el MDT. No me deja.....
    Empiezo todo bien, pero cuando llego a la ventana Mapa de sombras, en el box de capa de altitud, no me deja escribir la ruta del MDT, ni siquiera se abre el desplegable.
    ¿Deberia hacer algo previamente? ¿Deberia estar ese MDT en alguna carpeta en concreto?
    Saludos

    ResponderEliminar
    Respuestas
    1. Hola tajo20... El box de capa de altitud no es para buscar ninguna ruta, sólo para seleccionar la capa MDT. O sea, el MDT tiene que estar abierto en QGIS y por tanto salir en ese box, no buscarlo desde ahí fuera del programa. Es lo único que se me ocurre según lo que me escribes...

      Eliminar
    2. Solucionado....muchas gracias majo.
      Tambien aprovecho para indicar otro problema que tengo......
      Estoy intentando descargarme el Qgis 2.8, y no se me descarga bien: lo mismo me descarga 90mb que 180 que 300 que 150... el caso es que no se descarga bien y cuando intento instalar una descarga, no hace mas que salirme mensajes de error. ¿Cuantos megas deberia tener la descarga correcta?

      Eliminar
    3. Mi instalador desde su web oficial y con nombre "QGIS-OSGeo4W-2.8.1-1-Setup-x86.exe" tiene un tamaño de 332 MB (340.608 KB).

      Eliminar
    4. Ese es el que yo descargo....pero que si quieres arroz, Catalina.
      ¿Y no tendrias la descarga para colgarla un ratito por ahi?

      Eliminar
    5. Te lo he subido a Dropbox, por si quieres probarlo, aunque si lo has descargado me extraña mucho que el error sea del archivo, pero bueno... Ahí te lo dejo:
      https://dl.dropboxusercontent.com/u/12651009/QGIS-OSGeo4W-2.8.1-1-Setup-x86.exe

      Eliminar
    6. Descargado, muchisimas gracias.
      Sigo teniendo problemas..ya te contare.

      Eliminar
  3. Hola otra vez....estoy que si le pudiera morder al dichoso Qgis............bueno, al lio.
    Como una imagen vale mas que mil palabras, aqui esta el problemilla que me da el simpatico Qgis.
    http://s8.postimg.org/njfmcqvyd/Wien.jpg

    ResponderEliminar
    Respuestas
    1. Parece que ese archivo DEM no está muy allá no? Al darle al botón "Crear automáticamente" te ha sacado ese rango de alturas? Por lo que veo es el DEM de la hoja 694... Voy a descargarla y hago la prueba a ver si me pasa lo mismo...

      Eliminar
    2. Aunque ahora que me fijo en el box "capa de altitud" tienes seleccionado el mapa ráster no el MDT....
      Aún así he probado con los MDT25 y con el MDT05 de tu hoja... Con todos importa los valores de altura para asignar a las bandas de color de manera errónea. Supongo que el programa fallará en eso o yo tuve mucha suerte con el que usé... Solución: se pueden introducir los valores de altura manualmente pinchando en ellos doble click y así los distribuimos uniformemente entre el mínimo y el máximo (esos si nos salen). Ya he introducido este detalle en el artículo; gracias por desvelar esta incidencia tajo20. Saludos!!

      Eliminar
  4. Hola amigo Javi, he conseguido convertir el proyecto de Qgis a .jnx. Sin animo de meterme a mojetero......si lo quieres ver......
    http://s6.postimg.org/up7ag01k1/QGIS_BASE.jpg
    http://s6.postimg.org/5x7o8rkdd/QGIS_BASE_3_D.jpg

    ResponderEliminar
    Respuestas
    1. Jaja... Hombre pasar un mapa a JNX no es muy complicado... Otra cosa es que lo hayas hecho con el propio QGIS o que fuera JNX multicapa (para mi la mayor razón para usar JNX). Y a qué espera para contar el proceso? jaja saludos!!!

      Eliminar
    2. Hombre, claro que no es complicado pasar un mapa a .jnx. A estas alturas con lo que ha llovido......
      Lo que he hecho ha sido pasar ese MDT coloreado con Qgis a .jnx y superponerle el Topohispania en el Global Mapper.
      No he exportado el proyecto de Qgis con el mismo programa, sino con el Quantum gis, que lo he bajado de Softonic.
      Con Quantum gis he exportado el proyecto como imagen a .jpg y de hay lo he pasado a .jnx con Global Mapper (podria haberlo hecho con Ok Map, por ejemplo).
      Vuelven a abrirse infinitas posibilidades, esta vez para enredar con el aspecto de los mapas raster.
      Seguimos enredando.

      Eliminar
    3. Ok, más o menos lo que suponía.. que estaba Global Mapper por medio. Pero una cosilla... que yo sepa Quantum GIS y QGIS son lo mismo, sólo que hace un tiempo cambiaron el nombre al QGIS definitivo. Y otra cosilla... a ti Global Mapper te abre bien el jpeg generado con QGIS? Porque a mi me da problemas el archivo adjunto .jgw que se genera con el jpeg y Global Mapper no lo sabe leer.
      Así me gusta a seguir enredando, eres peor que yo... jajaja... Un abrazo!

      Eliminar
  5. No,no son igual Quantum que Qgis. Con Quantum puedes exportar el mapa como imagen, con Qgis, no.
    Quantum te exporta el mapa a .jpgw. Exportalo con Quantum, que seguro que Global Mapper lo admite sin problemas.

    ResponderEliminar
    Respuestas
    1. La verdad que ahí discrepo... Quantum GIS son versiones mas antiguas de lo que hoy es QGIS, que por supuesto que te deja exportar el mapa como imagen. He descargado Quantum GIS 1.7.4 (creo) y es evidente que es versión antigua de QGIS. Lo mismo pero más viejo; mal asunto di hay que ir para atrás. Lo investigaré mejor, pero creo que esto es así.

      Eliminar
  6. Saludos
    muchas gracias por esta información
    Tengo el siguiente problema: cuando hago el Hillshade queda horrible porque la imagen queda como demaciado pixealeada no se distinguen bien las montañas ademas que queda demaciado oscuro en algunas partes,
    Espero me puedas ayudar ya intente todo lo que habia a mi alcance
    Gracias

    ResponderEliminar
    Respuestas
    1. Hola! por lo que cuentas lo primero que se me ocurre es que estés usando un MDT con muy poca resolución para lo que buscas, o que no lo veas con el zoom apropiado. Sin verlo no sabría qué más decirte... Qué relieve estás usando?

      Eliminar
  7. Hola,

    Antes de nada, Javier, enhorabuena por el blog y gracias por compartir tanta información, y así poder echarnos un cable unos a otros. La duda que tengo a ver si alguien me puede ayudar, es si es posible mostrar cada una de las rampas de color por separado como capas independientes, en vez que aparezcan todas juntas asociadas al ráster de origen. Lo mismo es una tontería, pero sería muy útil poder mostrar las áreas de un determinado rango de altitud por separado, etc.

    saludos!


    ResponderEliminar
    Respuestas
    1. Hola Antonio... Se me ocurre así a bote pronto duplicar la capa de relieve tantas veces como se necesite y así tendremos el coloreado por alturas diferente en cada capa. Luego simplemente apagando o encendiendo la capa en cuestión se podrían comparar muy bien, o incluso fusionar varios coloreados o lo que se quisiera. Pero estoy seguro de que hay varias formas de hacer lo que pides, a ver si alguien que controle más los procesos de QGIS dice algo... Gracias por tus palabras y un saludo!!

      Eliminar
  8. Gracias Javier, estoy probandolo así y haciendo transparente los tramos de alturas que no me interesan que se muestren, y si consigo que en la leyenda sólo se muestre la etiqueta del tramo de elegido, sería una alternativa. También me han comentado de reclasificar la capa con un algoritmo, pero de momento se me escapa ya que estoy aprendiendo el programa.

    saludos!

    ResponderEliminar
  9. Finalmente lo he arreglado con la calculadora de ráster, filtrando por rangos de altitud. Pierde un poco de calidad la imagen pero también depende porque el ráster original estaba algo pixelado, pero resuelto está. saludos!

    ResponderEliminar
    Respuestas
    1. Me alegro mucho Antonio; y muchas gracias por compartir con todos la fórmula utilizada. Un saludo!!

      Eliminar
  10. Hola muy buenas,
    Una consulta, tengo una versión mas moderna de Qgis, la 3.10, y en el menu raster no sale la opcon relieve, me podrias indicar cual es en el menu de esta versión.
    Muchisimas gracias. Y gracias por este blog tan bien explicado.

    ResponderEliminar
    Respuestas
    1. Así es, esa opción desapareció de los menús hace ya bastantes versiones.... Busca en la cajita de búsqueda de la esquina inferior izquierda del programa por "relieve"; te sale algo parecido a lo que era aquello para componer una escala de colores. Otra cosa (quitando usar la simbología del propio relieve que es mucho mejor opción) no se me ocurre. Saludos y muchas gracias.

      Eliminar
  11. Buenas Javi,

    Enhorabuena por el blog y por el curro que haces.

    Queria hacerte una pregunta, estoy probando a meter sobre el MTN25 una capa de sombras de MDT25 para que el mapa me quede con algo de relieve, visualmente me parece mucho más chulo así que la ultima versión del MTN25(Si recuerdas, tienes una entrada en el blog donde comentas este cambio.. haya por enero de 2020) Pues bien, he probado a hacerlo a través del servicio WMS y no me deja crear el Hilshade Qgis.. me da un error. Comentarte que he probado a bajarme los archivos del centro de descargas del IGN y lo hace sin problema, el unico problema que tengo es que al juntar distintas hojas se ve algo la union entre ellas y no me gusta demasiado... ¿Hay alguna manera de recortar y guardarme en local la parte de la capa que me interese en Qgis a traves del WMS? o se te ocurre otra manera de hacer esto? Gracias y perdona por el tocho. Salud. Marcos.

    ResponderEliminar
    Respuestas
    1. Hola! El Hillshade no debes hacerlo del WMS del topográfico sino del archivo MDT. Luego cargas el WMS encima y le das los parámetros de transparencia y demás hasta que quede a tu gusto cómo se ve el sombreado combinado con el mapa. Entonces desde el diseñador de impresión de QGIS colocas el área del mapa que te interese sobre un tamaño de papel determinado y la exportas a una imagen JPEG o el formato que te interese. Este es el proceso normal desde el WMS a no ser que algo se me escape o no entienda del todo lo que quieres hacer...

      Eliminar
    2. Gracias por contestar Javi.

      Lo que queria hacer era justamente evitar tener que juntar varias de las hojas del MDT ya que el efecto que me queda es como de un "corte" entre las distintas hojas, por eso pensé en si había alguna manera de mediante el wms de MDT obtenerlo sin tener que juntar varias hojas:
      Fijate como me queda al juntar
      https://ibb.co/fFwYPBH

      Decir que el estilo de todas las hojas es el mismo, pero a la hora de crear el relieve de color con el Qgis me lo saca de esta forma... he tratado de editar todos los colores, poniendo todas las hojas del mismo estilo, pero no hay manera de evitar estos cortes.

      Por eso pense en si mediante el WMS, podía coger una zona especifica del MDT y así tratar de evitar estos cortes... o ¿Se te ocurre otra manera de evitarlo?

      Muchas gracias.

      Saludos

      Eliminar
    3. Ajá, pensé que hacías solo sombreado pero ya veo que haces relieve de color y que el problema es que no te mantiene la continuidad del coloreado. Solución más fácil que se me ocurre: crear primero un MDT continuo de la zona que te interese (uniendo varias hojas y/o recortando a la zona que vayas a representar) y luego aplicarle el relieve de color a todo el MDT conjunto. Así te saldrá más uniforme y sin esos cortes raros en los límites de las hojas. Hecho esto le superpones el WMS del topográfico igual que antes y listo.

      Eliminar
    4. Sí, es lo que intentaba hacer un MDT continuo y pensaba en si se podía hacer a través del servicio WMS, puesto que al hacerlo uniendo varias de las hojas MDT por mas que intento que no se vean esos cortes, al crear el relieve no soy capaz. Fijate como tengo ahora mismo el MDT, con el mismo estilo y uniforme:

      https://ibb.co/zfwsMFS
      Y ahora le aplico el Relieve y se aprecian los cortes... teniendo el mismo estilo y rango en todas las hojas:

      https://ibb.co/RvvMMs6
      Es una pena porque el acabado sería fantastico...

      Eliminar
    5. Pero yo lo que veo ahí son cuatro MDT diferentes cargados a la vez, no un único MDT fusión de esas cuatro hojas. Si generas un MDT único (o sea, un archivo con la extensión de esos cuatro MDT) no debería haber cortes en el coloreado... Escríbeme si quieres un mail a cartotienda@gmail.com con los detalles de las hojas que estás usando (aunque casi lo veo en las capturas) y generamos un MDT único de ellas al que luego le apliques el color (o mucho me equivoco o debería hacerlo uniforme...).

      Eliminar
    6. Ahí estaba la clave javi, acabo de juntarlos en uno solo mediante un tutorial de youtube con Qgis y ya funciona perfectamente el coloreado, muchisimas gracias por todo!!

      Eliminar
    7. Genial. Pues a por ello porque las imágenes que vi tenían una pinta estupenda... ;)

      Eliminar