Saltar al contenido

# visualizacion-geospacial-avanzada-con-geopandas

Visualización Geospacial Avanzada con GeoPandas

Volver a la portada del curso
Proyecto

Proyecto Final de GeoPandas

Sección 6 · Proyecto Final

Proyecto final de GeoPandas

El proyecto final reúne el curso en un entregable realista: un atlas urbano de México que combina lectura y limpieza de datos, operaciones espaciales, mapas temáticos con Matplotlib y un mapa interactivo. El caso propuesto usa los estados y las ciudades de Natural Earth, pero puedes aplicar la misma receta a otro país cambiando el filtro iso_a2.

Qué debes entregar

Un notebook que corra de principio a fin sin errores y que genere:

  • Una coropleta (PNG) de densidad de población urbana por estado (habitantes por km²), con un esquema de clasificación justificado, leyenda con unidades y las principales ciudades encima.
  • Un mapa de áreas de influencia (PNG): buffers de 100 km alrededor de las cinco ciudades más pobladas, unidos y recortados al país, con el porcentaje del territorio que cubren.
  • Una tabla por franjas de latitud (norte, centro y sur) hecha con dissolve, con población, área y densidad.
  • Un mapa interactivo (HTML) hecho con explore().
  • Conclusiones: tres a cinco frases, cada una respaldada por un número o una figura, y una frase sobre las limitaciones de los datos.

Datos

Estados: ne_10m_admin_1_states_provinces. Ciudades: ne_10m_populated_places_simple. Ambos se leen con gpd.read_file desde la URL de Natural Earth, con where para filtrar el país. Recuerda limpiar el registro sin nombre, renombrar «Distrito Federal» a Ciudad de México y proyectar a EPSG:6372 antes de medir.

Estructura sugerida

Organiza el notebook en seis secciones: datos, unión espacial, coropleta, áreas de influencia, franjas y conclusiones. Define al inicio las constantes que se repiten para cambiarlas en un solo lugar:

import geopandas as gpd

NE = "https://naciscdn.org/naturalearth/10m/cultural/"
PAIS = "MX"
CRS_METROS = 6372            # Mexico ITRF2008 / LCC
RADIO_M = 100_000            # 100 km
N_CIUDADES = 5

estados = gpd.read_file(NE + "ne_10m_admin_1_states_provinces.zip",
                        where=f"iso_a2 = '{PAIS}'", columns=["name", "iso_a2"])
print(estados["name"].isna().sum(), "registros sin nombre por limpiar")

Criterios de evaluación

  • Preparación de datos: limpieza documentada, CRS proyectado para medir y nombres coherentes entre tablas.
  • Operaciones espaciales: sjoin, buffer, union_all, clip y dissolve bien aplicados, sin dobles conteos.
  • Visualización: coropleta de una tasa (no de un total), esquema de clases adecuado, paleta legible y leyendas con unidades.
  • Comunicación: títulos que dicen la conclusión y conclusiones apoyadas en números, incluidas las limitaciones.
  • Reproducibilidad: el notebook corre completo tras reiniciar el kernel.

Cómo autoevaluar antes de entregar

Comprueba que la suma de la población por estado coincide con la suma de pop_max de todas las ciudades: si no coincide, alguna ciudad quedó fuera del sjoin. Verifica que la superficie total ronda 1.95 millones de km². Muestra la coropleta a alguien y pregúntale qué estado es el más denso después de la capital: si no puede responder, cambia el esquema de clases. Por último, reinicia el kernel y ejecuta todo.

Errores comunes en la entrega

  • Medir áreas o hacer buffers en grados (EPSG:4326).
  • Usar una escala continua donde un solo estado aplasta al resto.
  • Coropletas de población total en lugar de densidad.
  • Sumar las áreas de los buffers sin unirlos antes.
  • Conclusiones genéricas, sin números ni límites de los datos.

Para ir más allá

Repite el atlas para otro país de América Latina cambiando PAIS y el CRS proyectado, o agrega la capa de ríos y mide qué proporción de la población urbana vive a menos de 20 km de un río principal.

Recursos