Saltar al contenido (presiona la tecla Intro)
Javier Ladino

Javier Ladino

{Data/Design/Engineer}

  • Inicio
  • Portfolio
  • Sobre mí
  • EN 🇺🇸
  • FR 🇫🇷
DataViz

🗺️ 30 días de mapas — #30DayMapChallenge 2025

Un mes, 30 mapas, 30 historias. Cada día un tema diferente. Cada mapa, una nueva forma de explorar los datos, el territorio y la creatividad.

Durante el mes de noviembre, la comunidad cartográfica de todo el mundo participa en el #30DayMapChallenge, un reto que invita a crear una visualización geográfica diferente cada día.

Mi objetivo: experimentar con datos abiertos, explorar herramientas como Python, Folium y GeoPandas, y narrar visualmente cómo los datos pueden contar historias sobre nuestras ciudades.

Este artículo se irá actualizando cada día con los resultados de los nuevos retos.
📅 Acompáñame en este recorrido de 30 días entre mapas, datos y diseño.

📍 Día 1 — Points: Restaurantes del Pays de la Loire

Para el primer día mapeé la oferta turísitica gastronómica de #paysdelaloire (Francia) 🍷🥖
Cada punto representa un restaurante, coloreado según las 10 categorías más comunes del dataset.
Un vistazo sabroso a la geografía del gusto 😋✨

Data source: https://data.nantesmetropole.fr/
Offre touristique : restaurants en Pays de la Loire

🧩 Herramientas : Python, GeoPandas, Matplotlib
🎨 Tema : Points


🚋 Día 2 — Lines: Circuitos del transporte Naolib

Rutas de autobuses, tranvías y NaviBus (Ferry) de Nantes Métropole.
Cada medio de transporte está representado por un color y una línea distintos. Exploramos las rutas de la red de transporte NAOLIB en Nantes Métropole (Francia) 🇫🇷

🧩 Herramientas : Python, GeoPandas, Matplotlib
🎨 Tema : Lines


🏙️ Día 3 — Polygons: Zonificación urbana (PLUm)

Exploramos el Plan Local de Ordenación Urbana (PLUm) de #nantes Métropole 🇫🇷 🗺️

Cada polígono representa una zona urbana diferente, reflejando la forma en que la ciudad se organiza y se desarrolla a través de sus usos del suelo 🌆

Los colores indican las diferentes categorías del PLUm, ofreciendo una visión general del equilibrio entre vivienda, industria, naturaleza y servicios públicos.

🧩 Herramientas : GeoPandas, Contextily
🎨 Tema : Polygons


💚 Día 4 — My Data: La Ligne Verte del Voyage à Nantes

Seguimos el recorrido de la Línea Verde de Nantes 🇫🇷, ese trazo que invita a descubrir arte, arquitectura y cultura caminando por la ciudad.
Un mapa personal recreado a partir del trazado oficial de Le Voyage à Nantes, usando Python, Folium y OpenStreetMap 🗺️

Cada curva es un fragmento del viaje, una historia urbana que se cruza con los pasos de miles de visitantes cada año. 🚶‍♀️🌿

🧩 Herramientas : Python, Folium
🎨 Tema : My Data


🌍 Día 5 — Earth: Relieve y elevación del territorio Nantes

Para el #30DayMapChallenge, me centré en lo sólido bajo nuestros pies: la elevación de Nantes!

Este mapa topográfico de elevación se generó a partir de datos de un Modelo Digital de Terreno. Cada línea de contorno revela los patrones geológicos sutiles que dan forma a la ciudad, desde las orillas del Loira hasta los puntos más altos.

Usé Python (Pandas + Plotly) para interpolar los miles de puntos de altitud y crear esta cuadrícula de relieve. ¡Un poco de ciencia de datos para encontrar las formas terrestres!

🧩 Herramientas : Python, Pandas, Plotly
🎨 Tema : Earth


🔷 Jour 6 — Dimensiones : Scatter plot 3D de elevación à Nantes.

Hemos tomado los datos del Modelo Numérico de Terreno de Nantes Métropole y los hemos transformado en un Modelo 3D Interactivo de elevación. El resultado es una simulación de la vista de la topografía de Nantes, utilizando la Altitud como nuestra tercera dimensión clave.

Es increíble cómo una simple capa de datos puede revelar un paisaje urbano completamente nuevo. ¿Ves dónde están los puntos más altos?

🧩 Herramientas : Python, Plotly, Numpy
🎨 Tema : Dimensions


🚍 Día 7 — Accessibility: Movilidad y accesibilidad en Nantes

Hoy visualizamos cómo Nantes se mueve.
Buses, tranvías y ferris del sistema Naolib recorren la ciudad francesa en una coreografía urbana donde la movilidad se convierte en accesibilidad. 🌍

El mapa muestra la circulación real de cada línea, destacando cómo el transporte público conecta barrios, personas y oportunidades.
Un flujo constante que representa la vida de la ciudad y la importancia de diseñar espacios más accesibles para todos. ♿💚

🧩 Outils : Python, Folium + TimeDimension
🎨 Thème : Accessibility


🏙️ Día 8 — Urban: Día Mundial del Urbanismo

Uso de Python, GeoPandas y Folium para dar vida al Plan Local d’Urbanisme Métropolitain (PLUm) de Nantes.

Cada color representa una categoría de zonificación, una instantánea visual de cómo está planificada y organizada la ciudad.

🧩 Herramientas: Python, GeoPandas, Folium
🎨 Tema: Urban


✏️ Día 9 — Analog: Mapa hecho a mano

¡Hoy tocó dejar la pantalla y ensuciarse las manos con pintura! 💧
Este es mi mapa hecho a mano de Nantes, inspirado en el estilo acuarela de The Legend of Zelda. 🏰🌿
Nada como el trazo del pincel para darle vida a un mapa 💛

🧩 Herramientas: Tinta, Papel, Acuarela (Analógico)
🎨 Tema: Analog

✏️ Día 9 — Analog: Mapa hecho a mano

🌬️ Día 10 — Air: Mapear la atmósfera

Hoy visualizo lo invisible: las concentraciones diarias de partículas PM10 en el aire de Pays de la 🌫️

Cada punto y color representa cómo cambian los niveles de contaminación a lo largo del último año.
Un mapa que respira, hecho con datos, código y curiosidad 💨

📍Datos: Mesures des concentrations dans l’air
🧩 Herramientas: Python, Folium, Pandas
🎨 Tema: Air


⚪ Día 11 — Minimal Map

El reto de hoy consistía en representar un territorio utilizando el mínimo número de elementos posibles — y seguir transmitiendo información útil.

Este mapa muestra las bibliotecas y mediatecas del departamento de Loire-Atlantique (Francia), con un enfoque puramente visual:
🟩 Bibliotecas
🟦 Mediatecas

Usando OSMnx, GeoPandas y Folium, se trazó únicamente el contorno del departamento y los puntos culturales dentro de él.
Sin etiquetas, sin colores extra, sin ruido: solo forma y significado.

👉 A veces, el diseño más simple es el que mejor comunica.

🧩 Herramientas: OSMnx, GeoPandas y Folium,
🎨 Tema: Minimal Map


🔮 Día 12 — Map from 2125

Imaginemos cómo se verá el mundo dentro de 100 años.
Este mapa especulativo proyecta la población global hacia el año 2125, explorando qué países podrían concentrar la mayor cantidad de habitantes según tendencias actuales y escenarios de crecimiento continental.

🧭 Basado en datos de población estimada y tasas de crecimiento diferenciadas por región, el ejercicio busca visualizar el futuro desde la cartografía, no como una predicción exacta, sino como una forma de reflexión sobre cómo el cambio demográfico transformará nuestras geografías humanas.

💡 Los diez países más poblados en 2125 muestran un desplazamiento del eje demográfico hacia regiones con fuerte dinamismo poblacional y urbano.

📊 Creado con Python, GeoPandas y Folium, combinando análisis de datos, proyecciones y visualización interactiva.

#DataViz #Cartography #GIS #Population #FutureMaps #DataScience #Geospatial #MappingTheFuture #30DayMapChallenge2025

🧩 Herramientas: Python, GeoPandas y Folium
🎨 Tema: Map from 2125


⏱️ Día 13 — 10 Minute Map

Hoy tocó velocidad: un mapa creado en menos de 10 minutos usando datos abiertos de Nantes, Python, y un pequeño ícono SVG personalizado.
Un ejercicio perfecto para recordar que a veces la clave no es la perfección… sino comunicar claro y simple.

🔍 Dataset: Toilettes publiques – Nantes Métropole
🗺️ Herramientas: OSMnx + GeoPandas + Google Colab
🎨 Extra: Marcadores hechos con un icono SVG

¿Lo mejor? Ver cómo un conjunto de puntos cobra vida cuando le das un contexto y un diseño propio.

#30DayMapChallenge #10MinuteMap #Reto13 #DataViz #Cartography #PythonMaps #OSM #Geodata #MapDesign #Nantes #OpenData #GeoPython

🧩 Herramientas: OSMnx + GeoPandas + Google Colab
🎨 Tema: 10 Minute Map


🗺️ Día 14 — Data Challenge: OpenStreetMap

Para el reto de hoy, dedicado a OpenStreetMap (OSM), trabajé con uno de mis lugares favoritos para explorar datos urbanos: Nantes.

Usando la librería prettymaps, extraje las huellas de los edificios directamente desde OSM y las proyecté al sistema RGF93 / Lambert-93 (EPSG:2154) para construir una visualización basada en un mosaico geométrico.

Este tipo de ejercicios no solo permite apreciar la morfología urbana desde un ángulo distinto, sino también experimentar con nuevas formas de representar datos espaciales de manera creativa y accesible.

🧩 Herramientas: OSMnx, Python, PrettyMaps
🎨 Tema: OpenStreetMap


🔥 Día 15 — Fire: Energía y transformación

Hoy exploré la energía en el territorio: las bornes de recarga para vehículos eléctricos en Pays de la Loire.

A partir de un dataset GeoJSON construí un mapa de calor donde cada punto aporta intensidad según su potencia nominal (kW), usando una escala continua Viridis para revelar los focos energéticos más potentes de la región.

El resultado: una visualización que muestra cómo se distribuye la infraestructura de carga y dónde se concentran los puntos de mayor capacidad. 🔥🔌

🗺️ Herramientas: Python, GeoPandas, Folium, Branca
🔋 Tema: Energía / Heat / Fire


🧬 Día 16 — Cell

Para este reto trabajé con la malla vial de Bogotá, explorando cómo la red de calles revela patrones urbanos cuando se observa desde una perspectiva basada en celdas espaciales.

Tomé el dataset oficial del portal de datos abiertos y lo integré en un flujo ETL en Python:

  • limpieza y proyección en un CRS métrico,
  • generación de una cuadrícula de celdas de 1 km²,
  • cálculo de la longitud total de vías por celda,
  • y visualización final con una escala continua Viridis.

🔍 ¿Qué muestra el mapa?
Un patrón muy claro de densidad urbana:

  • zonas centrales y nororientales con mayor concentración de vías,
  • áreas periféricas con poca estructura vial,
  • y una transición espacial que describe bastante bien la morfología de Bogotá.

Este enfoque de “cell mapping” permite simplificar datasets urbanos complejos y resaltar contrastes territoriales que normalmente pasan desapercibidos cuando se trabaja solo con líneas.

Dataset: Malla Vial Bogotá (Datos Abiertos)

🧩 Herramientas: Python · GeoPandas · Shapely · Folium/Matplotlib · ETL geoespacial
🎨 Tema: Cell


🧠 Día 17 — A New Tool

Para el reto de hoy quise explorar una herramienta que nunca había utilizado en profundidad: kepler.gl, una plataforma interactiva para análisis geoespacial desarrollada por Uber.
El objetivo fue visualizar y comprender mejor un proyecto social muy valioso en Bogotá: los Paraderos para Libros para Parques (PLP).

Estas estaciones de lectura ubicadas en parques públicos buscan fomentar la lectura, acercar los libros a la ciudadanía y generar espacios de encuentro comunitario.
Trabajar con este dataset fue una oportunidad para combinar análisis territorial con iniciativas culturales que transforman la ciudad.

🔎 ¿Qué hice hoy?

  • Exploré por primera vez la interfaz y capacidades de kepler.gl
  • Importé y mapeé los puntos de los PLP desde datos abiertos
  • Probé diferentes estilos de visualización, escala de colores, interacción y capas
  • Generé una vista clara del despliegue de estos puntos de lectura en Bogotá

Data: GeoJSON desde Datos Abiertos Bogotá

🧩 Herramientas: Kepler.gl
🎨 Tema: A New Tool


🪐 Día 18 — Out of This World

Para el reto de hoy decidí salir de la Tierra y mapear los desplazamientos más recientes del rover Perseverance en el cráter Jezero, en Marte.

Usando los datos públicos de localización de la NASA, proyecté la ruta del rover sobre un mosaico HiRISE/CTX del cráter y construí una animación en Python que muestra su recorrido sol a sol a través del paisaje marciano.

Este ejercicio ha sido especialmente enriquecedor: mezcla ciencia planetaria, cartografía, ingeniería de datos y narrativa visual en un solo flujo de trabajo.

🔧 Herramientas y datos
• Dataset Mars 2020 PLACES (NASA)
• Mosaico HiRISE/CTX (Cráter Jezero)
• Colormap personalizado inspirado en Marte
• Transformación de coordenadas al sistema marciano (ESRI:103885)

Cada día de este reto invita a explorar nuevas formas de visualizar el espacio, los datos y las historias que podemos contar con ellos.

🔴 Explorando Marte, sol a sol.

🧩 Herramientas: Python, Rasterio, matplotlib, numpy
🎨 Tema: Out of This World


🌐 Día 19 — Projections (GIS Day)

Para el día 19 del #30DayMapChallenge —Proyecciones (Día del SIG)— exploré cómo puede cambiar drásticamente un mapa dependiendo de la proyección que se utilice.

Utilizando los datos abiertos oficiales de Bogotá (Parques POT), visualicé los parques de la ciudad en dos proyecciones muy diferentes:

🔹 Web Mercator (EPSG:3857): el estándar habitual para los mapas web.
🔹 Lambert Azimuthal Equal Area centrada en Europa (EPSG:3035): una proyección totalmente inadecuada para Bogotá.

¿El resultado? Una distorsión sorprendente que pone de relieve una verdad fundamental de la cartografía:

Todos los mapas mienten… pero comprender cómo mienten es lo que permite realizar un buen análisis espacial.

Este experimento nos recuerda que las proyecciones no son solo detalles técnicos, sino que dan forma a la percepción, la escala y la interpretación. Elegir la incorrecta puede distorsionar por completo la historia que cuenta tu mapa.

Agradecemos las iniciativas de datos abiertos como Datos Abiertos Bogotá, que hacen posibles estas exploraciones.

¡Feliz #GISDay! 🌍

#Geoespacial #Cartografía #DatosAbiertos #Bogotá #PensamientoEspacial

🧩 Herramientas: Python, contextily, matplotlib
🎨 Tema: Proyecciones


💧 Día 20 — Water

Para el reto de hoy trabajé con la red hídrica que atraviesa y rodea Bogotá, utilizando el dataset oficial y un mapa base minimalista generado con OSMnx.

El objetivo fue visualizar cómo los ríos, quebradas y canales estructuran el territorio.

Trabajar con datos hídricos urbanos siempre permite revelar otra forma de leer la ciudad: desde sus flujos, sus pendientes y sus rutas naturales.

🧩 Herramientas: Python, GeoPandas, Matplotlib
🎨 Tema: Water


🧭 Día 21 — Icons

Para este reto quise darle un toque más lúdico y visual a la cartografía: en lugar de marcadores tradicionales, utilicé iconos personalizados para mapear la ubicación de las agencias de viajes en Bogotá. ✈️🌍

A partir del archivo avia.geojson, agregué un pequeño ícono PNG en cada punto para construir un mapa más expresivo y divertido, que refleja la distribución de la oferta turística en la ciudad.

🔍 ¿Qué muestra el mapa?

  • La concentración de agencias en zonas comerciales clave.
  • La dispersión de puntos de atención en distintos barrios.
  • Un patrón urbano que habla de movilidad, servicios y turismo local.

🛠️ Herramientas utilizadas
• Python
• GeoPandas
• Folium
• Iconos personalizados (PNG)
• Datos abiertos de Bogotá

Pequeños detalles visuales pueden transformar por completo la forma en que interpretamos un mapa. Este ejercicio demuestra cómo los íconos y símbolos pueden contar historias urbanas de manera más cercana y atractiva.


🌍 Día 22 — Data Challenge: Natural Earth

Para este reto trabajé con el dataset Natural Earth para construir un mapa mundial de densidad de población, combinando precisión geoespacial y diseño cartográfico.

El proceso incluyó:

🔹 Descarga y limpieza de datos desde Natural Earth
🔹 Cálculo de áreas reales mediante proyección Mollweide (ideal para análisis por superficie)
🔹 Cálculo de densidad (hab/km²) por país utilizando el campo POP_EST
🔹 Clasificación en rangos discretos (0–10, 10–50, 50–100, … >1000 hab/km²)
🔹 Visualización final en proyección Robinson, con una leyenda clara asociando color ↔ rango de densidad

El resultado es un mapa pequeño en escala, pero revelador en su contenido:
⬛ países de baja densidad en tonos suaves,
🟩 regiones densamente pobladas en tonos intensos,
⚪ áreas sin datos claramente diferenciadas.

🛠️ Herramientas
• Python (GeoPandas, Matplotlib)
• Natural Earth datasets
• Proyecciones Mollweide + Robinson

Este tipo de ejercicios muestra cómo, con datos públicos y herramientas abiertas, es posible generar visualizaciones globales que cuentan historias profundas sobre demografía, territorio y desigualdad espacial.


🧩 Día 23 — Process

Para el reto de “Process” decidí documentar el flujo completo detrás del mapa y la animación que hice para el Día 18 – Out of This World, donde visualicé los desplazamientos del rover Perseverance sobre un mosaico HiRISE/CTX del cráter Jezero, en Marte.

En este post comparto el proceso técnico de principio a fin: desde la descarga del dataset original hasta la exportación de la animación en GIF y MP4, todo desarrollado en Python dentro de un Jupyter Notebook.


🗺️ Día 24 — Places and Their Names

Para el Día 24 del #30DayMapChallenge — Places & Their Names, decidí mirar a Bogotá desde un ángulo muy particular:
los espacios públicos que llevan nombres de mujeres.

A partir de datos abiertos de la ciudad, unifiqué cuatro conjuntos de datos:
✔ parques
✔ colegios
✔ centros culturales
✔ centros de salud

Luego filtré todos los lugares que llevan el nombre de una mujer — figuras históricas, artistas, educadoras, lideresas comunitarias o referencias simbólicas femeninas.

El resultado es un mapa que muestra cómo la presencia de las mujeres está escrita en la ciudad: dónde son recordadas, celebradas o representadas. Una manera de recordar que la toponimia no es solo geografía: es memoria, identidad y visibilidad.

Este ejercicio evidencia cómo el análisis espacial puede descubrir patrones sociales y cómo los datos abiertos nos permiten repensar nuestras ciudades desde nuevas miradas.

Agradecido por todas las mujeres cuyos nombres forman parte del paisaje urbano de Bogotá. 💜

Data: https://datosabiertos.bogota.gov.co/

🧩 Herramientas: Python, geopandas, contextily, unidecode
🎨 Tema: Places and Their Names


🔷 Día 25 — Hexagons (Classic Challenge)

Para este reto trabajé con el dataset oficial de PM2.5 promedio anual en Bogotá (2024) y construí una visualización basada en una malla de hexágonos regulares, una técnica perfecta para identificar patrones espaciales sin depender de límites administrativos.

El objetivo: mostrar cómo se distribuye la contaminación por partículas finas (PM2.5) en diferentes zonas de la ciudad, utilizando un enfoque más homogéneo y visualmente limpio.

🔍 ¿Qué hice?

  • Importé el dataset oficial de PM2.5 desde Datos Abiertos Bogotá.
  • Convertí las coordenadas a un CRS métrico para construir una grilla regular de hexágonos.
  • Generé un hexgrid bien proporcionado (hexágonos «flat-top»).
  • Calcule el promedio de PM2.5 por hexágono mediante intersecciones espaciales.
  • Visualicé el resultado con GeoPandas + Matplotlib, sobre un mapa base minimalista.

El resultado final revela zonas con mayores concentraciones y áreas donde el aire es significativamente más limpio, ofreciendo una lectura intuitiva de la calidad del aire en Bogotá.

🧩 Data: Datos abiertos de Bogotá (PM2.5)

Visualizaciones como esta facilitan diagnósticos urbanos más claros y ayudan a pensar en soluciones de salud pública y movilidad sostenible.

💨 Un mapa para entender cómo respiramos la ciudad.

🧩 Herramientas: Python, GeoPandas, Shapely, Matplotlib, Contextily
🎨 Tema: Hexagons

🔷 Día 25 — Hexagons (Classic Challenge)

🚆 Día 26 — Transport (Día Mundial del Transporte Sostenible)

Para el reto de hoy decidí enfocarme en uno de los proyectos de infraestructura más importantes de Colombia: las dos líneas del futuro Metro de Bogotá.

A partir de los archivos oficiales en formato KMZ, reconstruí los trazados y los integré sobre un mapa base completamente vectorial generado con OSMnx, lo que permite visualizar la red vial de fondo con gran detalle.

🔧 ¿Qué incluye este mapa?

  • Extracción y procesamiento de los trazados del metro (KMZ → KML → LineString)
  • Descarga de la red vial de Bogotá con OSMnx (dataset actualizado desde OpenStreetMap)
  • Visualización del contexto urbano con jerarquías viales
  • Dos trazados resaltados con identidad visual propia
  • ⭐ Una animación donde cada línea avanza con un efecto de línea punteada y un “tren” recorriendo su ruta

🎯 ¿Por qué este enfoque?
Porque la movilidad sostenible es más comprensible cuando se visualiza dentro del tejido urbano real. Ver las líneas en su contexto geoespacial ayuda a comunicar su escala, su impacto y su relación con la ciudad.

🧩 Tecnologías utilizadas
• Python
• GeoPandas
• OSMnx
• Shapely
• Matplotlib (animación)
• Fiona (lectura de KMZ/KML)

📍 Tema de hoy: Transport
Movilidad, infraestructura y ciudad… ¡todo en un solo mapa!


🧱 Día 27 — Boundaries

Para el reto de hoy quise explorar cómo distintos tipos de límites —físicos, funcionales y perceptuales— moldean la experiencia urbana.
Me enfoqué en tres lugares emblemáticos de Bogotá, cada uno con una identidad espacial muy clara y rodeado de fronteras que definen su uso y relación con la ciudad:

📚 Biblioteca Virgilio Barco
🏋️ Centro de Alto Rendimiento
🌳 Parque de los Novios

Usando Python (GeoPandas, Shapely, OSMnx, Matplotlib) y las capacidades creativas de Prettymaps, mapeé contornos, transiciones y zonas de influencia que delinean estos espacios.

🔍 ¿Qué resalta este mapa?

  • Cómo los equipamientos públicos generan envolventes espaciales particulares
  • La interacción entre vías, zonas verdes y áreas construidas
  • Los límites no solo como líneas de división, sino como zonas de interacción
  • Cómo el diseño urbano influye en el acceso, el movimiento y la percepción

Los límites son más que bordes: son interfaces donde la ciudad negocia usos, flujos e identidades.

🧩 Tecnologías utilizadas
• Python
• GeoPandas
• Shapely
• OSMnx
• Matplotlib
• Prettymaps

⚫ Día 28 — Black (Black Friday)

Para el reto de hoy quise explorar la estética de la oscuridad y el contraste.
Tomé los puntos de conectividad pública gratuita a Internet en Bogotá y los representé sobre un lienzo completamente negro, inspirado en un estilo cyberpunk: neones, halos luminosos y una sensación de ciudad hiperconectada.

El resultado es un mapa donde los puntos de acceso WiFi parecen constelaciones digitales, revelando patrones urbanos de acceso y uso tecnológico.

🔧 ¿Qué incluye este mapa?

  • Lectura del dataset oficial en formato GeoJSON
  • Conversión a coordenadas métricas (EPSG:3857)
  • Visualización multicapas para simular glow (cian + magenta + blanco)
  • Estética oscura tipo “night-tech city”

🧩 Tecnologías utilizadas
• Python
• GeoPandas
• Shapely
• Matplotlib

📍 Tema del día: Black
Explorando la ciudad desde un contraste absoluto, donde la luz surge únicamente de la información.


🧮 Día 29 — Raster (Classic Challenge)

Para el reto de hoy trabajé con uno de los insumos más potentes para comprender el territorio: el Modelo Digital de Terreno (DTM) de la zona rural de Bogotá, generado a partir de datos LiDAR y disponible en el portal de datos abiertos de la ciudad.

A partir del archivo XML del servicio WMS, accedí directamente al ráster oficial, recuperé la banda de elevación y construí un mapa en Python que muestra la topografía con detalle: valles, laderas, pendientes y formas del relieve que definen el paisaje rural bogotano.

🔧 ¿Qué incluye este trabajo?

  • Lectura automática del WMS a partir del archivo XML
  • Descarga del modelo de elevación en formato GeoTIFF
  • Procesamiento del ráster con Rasterio
  • Representación en una paleta tipo terrain (o cualquier otra deseada)
  • Exportación a imagen en alta resolución

🌄 ¿Por qué raster?
Porque los modelos digitales de terreno permiten entender mucho más que alturas: revelan patrones geomorfológicos, dinámicas hidrológicas, usos del suelo e incluso condicionantes para infraestructura y movilidad.

🧩 Tecnologías utilizadas
• Python
• Rasterio
• Matplotlib
• Requests
• Datos Abiertos Bogotá (LiDAR – DTM)

📍 Tema del día: Raster


🎨 Día 30 — Makeover

Para cerrar el #30daymapchallenge (Día 30: Makeover), decidí rediseñar un mapa clásico de puntos y darle una vuelta de tuerca interactiva.

El dataset de Open Data Nantes nos dice que existen 77 baños públicos en la ciudad. Pero ver 77 puntos en un mapa estático no nos dice mucho sobre la «accesibilidad» real en el momento en que lo necesitas.

📍 El Rediseño: Creé un sistema de visualización dinámico utilizando Python y Leaflet. En lugar de solo mostrar ubicaciones, el mapa responde al mouse del usuario:

  1. Detecta el nodo más cercano en tiempo real y muestra su nombre.
  2. Calcula isócronas visuales instantáneas: conecta mediante líneas solo aquellos baños que están a menos de 5 minutos a pie (aprox. 450 metros).

El resultado es una «red de vecinos cercanos» que comunica densidad y distancia de un solo vistazo, sin necesidad de clics.

¿Qué opinan de añadir interactividad dinámica sobre los mapas estáticos tradicionales? 👇

🧩 Herramientas: Python y Leaflet.
🎨 Tema: Makeover

Proyectos relacionados

Explorando los nombres sin género en los nacimientos de Nantes (2001-2022)

junio 21, 2023

La delincuencia en Nantes según la prensa: Análisis textual

junio 1, 2023

Del arte a la tecnología: Cómo visualizar una estatua de Nantes en nube de puntos

mayo 11, 2023
© Copyright 2026 Javier Ladino. Perfect Portfolio | Desarrollado por Rara Theme.Funciona con WordPress.