sábado, 13 de agosto de 2022

Perspectiva aérea desde mapa de elevaciones con R

La perspectiva aérea o atmosférica consiste en la pérdida de contraste y color percibida en los objetos más alejados de un observador por efecto de la atmósfera. Se ha usado durante siglos en pintura y también es muy frecuente encontrarla en fotografía de paisaje. En este ejercicio vamos a recrear esta sensación de profundidad en un skyline geográfico partiendo de la información de altitudes y distancias de un mapa de elevaciones.



En el mapa de elevaciones tenemos toda la información necesaria para construir la perspectiva aérea:

  • Las altitudes están informadas de forma explícita.
  • El coloreado de cada zona de la perspectiva aérea lo da la distancia al observador de cada accidente geográfico visible desde la dirección de observación.

La detección de los puntos visibles y su distancia (axonométrica) al observador se obtienen de una forma vectorizada que ya he usado alguna que otra vez: en lugar de recorrer con un bucle el mapa de elevaciones de entrada, vectorizamos para cada posible altitud de salida el cálculo que devuelve la menor distancia encontrada (mayor valor de X) en el mapa para esa altitud:


Solo con lo anterior las imágenes resultan con algunos huecos (altitudes no encontradas) o información directamente errónea (altitudes ocultas al observador). Para corregir estos fallos corremos un bucle adicional poco elegante, pero a estas alturas no me apetecía rehacer la rutina inicial que cumple su cometido.

~~~

Aplicamos el cálculo a los datos DEM de la Sierra de Guadarrama descargados desde el Centro Nacional de Información Geográfica del Ministerio de Transportes, que para una vista desde el sur (Madrid capital) resultan así (hacer clic para visualizar en alta resolución):



Haciendo zoom en una zona vemos mejor el efecto sfumato que pretendíamos lograr:


Las altitudes se han escalado por un factor 2 para hacer más evidente la orografía. Las escalas de grises resultantes se colorean en Photoshop con una versión adaptada de la paleta 'viridis'.

Aplicando el mismo procedimiento a una vista desde el sur de Tenerife tenemos (hacer clic para alta resolución):



Repetimos con la sierra de Alicante. Para no desvirtuar la forma del imponente Puig Campana con 1.406m (pronunciado /puch campana/), al que tengo mucho cariño, esta vez no se ha escalado el eje de altitud de modo que se muestran las proporciones reales del relieve (hacer clic para alta resolución):



Rotamos en sentido horario 45º + 90º el mapa de elevaciones de la Sierra de Guadarrama para obtener de manera sencilla, sin modificar el código, una vista del Valle del Lozoya desde Lozoya (clic para alta resolución):




La perspectiva aérea casa perfectamente con una fotografía tomada desde Lozoya en la misma dirección, salvo por el hecho de que es una vista axonométrica mientras la foto es una perspectiva cónica, lo cual grava las altitudes más lejanas haciéndolas parecer menores por efecto de la fuga.

Rotamos del mismo modo para obtener la siguiente vista perpendicular al macizo de la Montaña de Montserrat en Barcelona vista desde la cara sur, respetando la escala en altura como hicimos con la sierra de Alicante. La resolución del mapa de elevaciones usado es de 2m/píxel lo que nos permite distinguir cualquier peñasco de tamaño superior a 2m (clic para verla en todo su esplendor):



Y una vista suroeste (desde la Playa de San Juan) del Puig Campana en Alicante, también en resolución de 2m/píxel (clic para alta resolución):



~~~

Repositorio con el código R: GitHub.

No hay comentarios:

Publicar un comentario

Por claridad del blog, por favor trata de utilizar una sintaxis lo más correcta posible y no abusar del uso de emoticonos, mayúsculas y similares.