Codea Blog  

Blog Details

Comparación de Folium y Plotly para la creación de mapas geológicos interactivos

Contar con la capacidad de crear mapas en Python de manera rápida y automatizada representa una ventaja considerable en todos los aspectos. La posibilidad de visualizar información geográfica en mapas de manera sencilla y más veloz que con un sistema de información geográfica (GIS) tradicional simplifica las tareas para un amplio grupo de expertos. Esto adquiere un valor particularmente relevante cuando es necesario visualizar una gran cantidad de datos de manera repetitiva o simplemente cuando deseamos examinar nuestros datos de forma más ágil.


COMPARACIÓN: PLOTY Y FOLIUM

Para la comparación de ambas librerías se tomará el ejemplo tomado de un artículo donde se hará un mapa de coropletas, para realizar este tipo de mapas se requiere dos tipos de datos en segundo plano, uno de los cuales son datos geoespaciales, límites geográficos para poblar el mapa (generalmente un archivo vectorial .shp(Shapefile) o GeoJSON) y dos puntos de datos en cada cuadrado del mapa para codificar el mapa con colores según los datos en sí.


La biblioteca de Geo Pandas es útil cuando necesita obtener datos en el formato requerido. El ejemplo utiliza el archivo GeoJSON de los estados de la India. Puede comenzar con cualquier Shapefile público o GeoJSON.

 

1. PLOTY

La biblioteca de trazado de Plotly Python genera mapas listos para publicar con muchas características interactivas y personalizables.
Hay disponibles configuraciones de mapas base personalizados de Mapbox, OSM y otras opciones de estilo, así como una implementación simple con Plotly Express y una amplia documentación. Esto convierte a Plotly en una de las opciones preferidas para crear mapas interactivos.

 

Fragmento de código:

Importando Shapefile:

Creando una capa base y agregando partes del mapa:

El código anterior debería representar un mapa interactivo con visualización de información sobre herramientas y función de zoom, como se puede ver en la siguiente imagen:

Figura 01. Mapa interactivo con Ploty

Esta implementación incluye muchas otras características, que se describen con más detalle aquí.

Tabla 01. Pros y Contras de Ploty


 

Conoce como crear mapas interactivos con Ploty

 

 

2.FOLIUM

Folium combina la facilidad de uso del ecosistema Python con las fortalezas de mapeo de la biblioteca leaflet.js. Le permite renderizar mapas de coropletas interactivos, receptivos y personalizables, así como transferir visualizaciones HTML, ráster y vectoriales ricas como marcadores en el mapa.

 

La biblioteca tiene varios conjuntos integrados de mosaicos de mapas de OpenStreetMap, Mapbox y Stamen, y también admite conjuntos personalizados a través de las API Mapbox o Cloudmade. Se admiten imágenes, videos, GeoJSON y TopoJSON.

 

Fragmento de código:

Importando shapefile:

Adición de capa base y capas de coropletas:

El código anterior debe mostrar un mapa de coropletas interactivo con una sugerencia de desplazamiento, haga clic para acercar y una ventana emergente personalizada al hacer clic.

Figura 01. Mapa interactivo con Folium

Esta implementación incluye muchas otras características, que se describen con más detalle aquí.

Tabla 01. Pros y Contras de Folium

Conoce como crear mapas detallados con Folium

 

 

 


MAPAS GEOLÓGICOS INTERACTIVOS

Como pudimos ver tanto plotly como folium son dos bibliotecas muy versátiles para crear mapas interactivos en Python. Desde el punto de vista geológico ambos nos permiten visualizar y analizar datos geológicos de manera efectiva. Algunos ejemplos de tipos de mapa que podemos crear son:

 

• Mapas de distribución geológica: Utiliza puntos para representar ubicaciones de muestras geológicas, fósiles o características específicas del terreno. Cada punto puede estar vinculado a información adicional como la edad, el tipo de roca o el contexto geológico.

• Mapas de formaciones geológicas: Crea polígonos coloreados que representen diferentes formaciones geológicas en un área. Puedes asignar colores diferentes a cada formación y agregar información emergente para describir sus características.

• Mapas de estratigrafía: Visualiza la secuencia de capas geológicas utilizando líneas y colores. Puedes mostrar las diferentes unidades estratigráficas y sus relaciones en el tiempo.

• Mapas de estructuras geológicas: Representa características como fallas, pliegues y otros rasgos estructurales utilizando líneas y curvas. Puedes agregar información emergente para describir la orientación y naturaleza de estas estructuras.

• Mapas de recursos y depósitos geológicos: Visualiza la distribución de recursos naturales como minerales, minas, depósitos de petróleo, gas y más. Los marcadores y las formas pueden indicar la ubicación y la cantidad de estos recursos.

• Mapas de peligros geológicos: Crea mapas que muestren áreas con riesgos geológicos, como terremotos, volcanes activos, deslizamientos de tierra y zonas de inundación. Puedes usar colores o patrones para indicar diferentes niveles de riesgo.

 

Hay que tener en cuenta que para proyectos que requieran características más complejas, visualizaciones 3D o interactividad más avanzada, Plotly podría ser una mejor opción. Algunas ventajas que da Plotly son:

 

• Mapas 3D interactivos: Tiene una sólida capacidad para crear visualizaciones en 3D, lo que puede ser útil para representar formaciones geológicas, estratos y estructuras de manera tridimensional

• Visualizaciones de datos complejos: Permite la creación de visualizaciones más complejas y personalizadas. Puedes superponer diferentes tipos de trazados como líneas, marcadores, áreas y mapas de calor, en un solo gráfico interactivo.

• Animaciones y transiciones: Tiene capacidad para crear animaciones y transiciones interactivas. Esto podría ser útil para mostrar cambios a lo largo del tiempo en una secuencia geológica o para demostrar procesos geológicos.

• Interpolación y gráficos de contorno: Ofrece funciones para la creación de mapas de calor y gráficos de contorno, que puede ser útiles para visualizar datos geológicos que se distribuyan de manera continua.

• Visualización de perfiles geológicos: Es capaz de crear gráficos de perfiles en 2D y 3D, lo que podría ser útil para visualizar la estructura geológica en profundidad y a lo largo de un perfil específico.

• Estilos y personalización avanzada: Ofrece un alto grado de personalización en términos de diseño, colores, estilos de línea y detalles de la visualización. Esto puede ser especialmente útil si deseas crear mapas geológicos con un aspecto visual particular.

 

Dicho esto, Folium sigue siendo una excelente opción para la creación de mapas interactivos en general, y su enfoque en la simplicidad y facilidad de uso puede ser más adecuado para proyectos más sencillos o cuando la necesidad de características avanzadas no es tan alta.

 

CONCLUSIÓN

Para la elaboración de mapas geológicos interactivos tanto Plotly como Folium son muy útiles, la elección entre uno de ellos dependerá de tus objetivos específicos, nivel de experiencia y preferencias personales en términos de funcionalidad y estilo de programación. Mientras que Folium es ideal para crear mapas geológicos interactivos simples y directos que satisfacen las necesidades básicas de visualización geoespacial, Plotly ofrece herramientas para proyectos que requieran características complejas, visualizaciones 3D o interactividad más avanzada.


REFERENCIAS

1. Breuss, M (2023) Python Folium: Create Web Maps From Your Data. Real Python.

2. McDonald, A. (2023). Plotly and Python: Creating Interactive Heatmaps for Petrophysical & Geological Data. Medium.

3. Ali, M. (2023). Step-by-Step Guide to Making Map in Python using Plotly Library. Datacamp.

4.  Cómo hacer un mapa interactivo usando Python y bibliotecas de código abierto (s.f.). Tech.

5. Estévez, R. (2023). Plotly: visualizando datos espaciales y mapas con Python. Geomapik.

6. Mavuduru, A. (2023). How to Generate Interactive Maps with Folium. Medium.

 

Comentarios

Registrate o Inicia Sesión para comentar y obtener Cursos de pago gratis

function loadurl(){ var val1 = document.getElementById("valor3").value; console.log(val1); if(val1){ window.location = "/comunidad/blog/filtrar/"+val1+"/"} }