miércoles, 17 de enero de 2024

Los horizontes del Lago Michigan con R

Alguna vez de pie en la orilla de la playa te has preguntado a qué distancia quedaba el horizonte? seguramente te habrás pasado y por mucho. Depende de la estatura de cada uno, pero hay que ser muy alto para que llegue siquiera a 5km.


Calcularla asumiendo un radio constante de la Tierra es inmediato:


Vamos a calcular las distancias a las que se situaría el horizonte del lago Michigan para distintas alturas de observación. Las dimensiones del lago hacen prácticamente imposible divisar ni rastro de la orilla opuesta salvo que en ésta haya elevaciones importantes. En esta fotografía no se ve la orilla pero sí el skyline de Chicago asomando por encima del horizonte:


~~~

Con un GeoTIFF de la zona descargado de General Bathymetric Chart of the Oceans (GEBCO), recortamos el área de interés obteniendo el DEM con la altimetría:

Fuente: GEBCO


Tras realizar un recorte del DEM a 179m (altitud del lago sobre el nivel del mar), por detección de bordes obtenemos el perfil del lago:


Entonces superponemos todos los posibles círculos con centro sobre dicho contorno y radio la distancia hasta el horizonte calculado. Aquí se muestran las fracciones de estos círculos que caen sobre el agua:


Aquellos puntos que perteneciendo a alguno de los círculos estén a la vez contenidos en la lámina de agua, serán los puntos visibles desde la altura considerada y su envolvente nos permite siluetear el horizonte:



Iterando el cálculo de esta distancia se dibujan sobre el mapa del lago Michigan los puntos del mismo que serían visibles desde primera línea de costa, para alturas de observación espaciadas 20m y hasta una altura máxima de 240m (lo que vendría a ser un rascacielos de 80 plantas como las Torres de Madrid).

El algoritmo está planteado por pura fuerza bruta, así que le ha llevado al pobre R unos minutos tener las 12 curvas que definen los horizontes. Añadiendo color en Photoshop y algo de creatividad se tiene el mapa terminado (hacer clic para ver a máxima resolución):



El "área secreta" no es más que la parte del lago que no puede divisarse desde ningún punto de la orilla sin superar una altura de observación de 240m, el máximo contemplado en la escala del mapa.

En 'Plegando papel con R' aprovechamos este mapa para emular el efecto de realizar dobleces en el papel.

~~~

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.