# visualizacion-geospacial-avanzada-con-geopandas
Visualización Geospacial Avanzada con GeoPandas
Volver a la portada del cursoProyecto 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,clipydissolvebien 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.