Ejemplos: Otros Datos + Mapas

Esta sección combina datos de fuentes externas con visualizaciones geográficas. El patrón general es: agregar los microdatos con pandas, luego hacer merge con la geometría. Para el merge se necesita que los datos estén al nivel de departamento o municipio, por código o nombre.

Tip

Regla clave: Siempre agregue primero (con pandas en Python, con dplyr en R), luego haga merge de la geometría sobre las filas resumen. Nunca use geometry= directamente en microdatos grandes — agrega un polígono a cada fila y es muy lento.


Índice de Alfabetismo Proyectado en 2024 para Guatemala

En este ejemplo trabajaremos con el conjunto de datos público de CONALFA con las proyecciones de alfabetismo y analfabetismo para 2024. El archivo se puede descargar en este enlace. En la primera hoja “DEPARTAMENTO” se encuentran las proyecciones a nivel departamental. En la primera columna se encuentra el nombre de los departamentos. Se utilizarán los nombres de los departamentos para hacer el merge con los datos geográficos de los departamentos en GeoQuetzal.

import geoquetzal as gq
import pandas as pd

# Datos CONALFA
xlsx = pd.ExcelFile("PROYECCION-ANALFABETISMO-POR-DEPARTAMENTO-Y-MUNICIPIO-GALP-2024.xlsx")
proyecciones_df = xlsx.parse('DEPARTAMENTO', skiprows=5, usecols="A,C")
proyecciones_df.columns = ['Nombre_Depto', 'Porcentaje_Alfabetismo']

# Límites administrativos — carga instantánea, sin internet
deptos = gq.departamentos()

# Unir con geometría y visualizar
resultado = deptos.merge(proyecciones_df, left_on="departamento", right_on="Nombre_Depto")

resultado.explore(
    column="Porcentaje_Alfabetismo",
    cmap="YlGnBu",
    tooltip=["departamento", "Porcentaje_Alfabetismo"],
    tooltip_kwds={"aliases": ["Departamento", "% Alfabetismo"]},
    tiles="CartoDB positron",
    style_kwds={"weight": 1, "color": "white", "fillOpacity": 0.8},
)
Make this Notebook Trusted to load map: File -> Trust Notebook
library(geoquetzal)
library(readxl)
library(mapview)

# Datos CONALFA
proyecciones_df <- read_excel(
  "PROYECCION-ANALFABETISMO-POR-DEPARTAMENTO-Y-MUNICIPIO-GALP-2024.xlsx",
  sheet     = "DEPARTAMENTO",
  skip      = 5,
  col_names = FALSE
)[, c(1, 3)]
names(proyecciones_df) <- c("Nombre_Depto", "Porcentaje_Alfabetismo")

# Límites administrativos — carga instantánea, sin internet
deptos <- departamentos()

# Unir con geometría y visualizar
resultado <- merge(deptos, proyecciones_df,
                   by.x = "departamento", by.y = "Nombre_Depto")

mapview(resultado,
        zcol        = "Porcentaje_Alfabetismo",
        col.regions = RColorBrewer::brewer.pal(9, "YlGnBu"),
        layer.name  = "% Alfabetismo",
        map.types   = "CartoDB.Positron",
        label       = "departamento")

Como se puede observar, esta flexibilidad de trabajar con datos de otras fuentes amplía el potencial de GeoQuetzal en los escenarios que es capaz de manejar. El único requerimiento es que los nombres o códigos de los departamentos y municipios de la fuente de datos externos deben coincidir con los nombres y códigos de departamentos y municipios manejados por el INE.