DS4Bolivia

DS4Bolivia: un repositorio de ciencia de datos para estudiar el desarrollo geoespacial en Bolivia

¡Bienvenido/a a DS4Bolivia! Este proyecto reúne conjuntos de datos espaciales y socioeconómicos, paneles interactivos y flujos de trabajo computacionales centrados en los 339 municipios de Bolivia. Está diseñado para tender un puente entre el análisis espacial y los Objetivos de Desarrollo Sostenible (ODS).

Este repositorio está organizado para personas dedicadas a la investigación y a la ciencia de datos interesadas en:

  • Econometría espacial: comprender las disparidades, el crecimiento y la agrupación regionales.
  • Aprendizaje automático espacial: aprovechar las imágenes satelitales (observación de la Tierra) para el modelado predictivo.
  • Desarrollo sostenible: hacer seguimiento de los indicadores de los ODS a un nivel local granular.

🖥️ Paneles geoespaciales interactivos

Explore los datos sin escribir código. Estas aplicaciones visualizan la dinámica espacio-temporal de indicadores clave del desarrollo.


🐍 Cuadernos computacionales en la nube

Tutoriales paso a paso que le ayudan a reproducir nuestro análisis. Estos cuadernos utilizan bibliotecas de Python como GeoPandas y PySAL.


💾 Conjuntos de datos espacialmente explícitos

Conjuntos de datos curados y listos para el análisis. Estos archivos están preprocesados para ajustarse a los límites municipales de Bolivia.

  • ODS y embeddings satelitales (2017)
  • Descripción: un conjunto de datos combinado que une indicadores socioeconómicos (ODS) con vectores de características de alta dimensión extraídos de imágenes satelitales.
  • Caso de uso: entrenar modelos de aprendizaje automático para predecir índices de pobreza o de desarrollo a partir de patrones visuales desde el espacio.

📜 Cómo citar

Si utiliza este repositorio en su investigación, cítelo con los siguientes metadatos.

Formato APA

Mendez, C., Gonzales, E., Leoni, P., Andersen, L., Hendrix, P. (2024). DS4Bolivia: A Data Science Repository to Study GeoSpatial Development in Bolivia [Data set]. GitHub. https://github.com/quarcs-lab/ds4bolivia

Formato BibTeX

@misc{ds4bolivia2026,
  author = {Mendez, Carlos and Gonzales, Erick and Leoni, Pedro and Andersen, Lykke and Hendrix, Peralta},
  title = {{DS4Bolivia}: A Data Science Repository to Study GeoSpatial Development in Bolivia},
  year = {2026},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/quarcs-lab/ds4bolivia}}
}

🚀 Construya su propio conjunto de datos

Los conjuntos de datos están organizados en módulos, todos vinculados por un identificador único (asdf_id).

Categoría del conjunto de datosRuta del archivoDescripciónClave de unión
Nombres de regiones/regionNames/regionNames.csvMetadatos administrativos (nombres de municipios y de departamentos).asdf_id
Socioeconómico/sdg/sdg.csvÍndices de los Objetivos de Desarrollo Sostenible (ODS) y métricas de pobreza.asdf_id
Características satelitales/satelliteEmbeddings/satelliteEmbeddings2017.csvVectores de características (embeddings) extraídos de imágenes satelitales diurnas.asdf_id
Vector espacial/maps/bolivia339geoqueryOpt.geojsonLímites geométricos (polígonos) de todos los municipios.asdf_id

⚠️ Nota importante sobre los identificadores: > La clave principal para unir todos los conjuntos de datos de este repositorio es asdf_id.
Aunque mun_id (el código gubernamental estándar) está presente en los datos administrativos, asdf_id garantiza la coherencia entre los embeddings satelitales y los archivos de mapas optimizados que se proporcionan aquí. Asegúrese siempre de que esta columna se trate de forma coherente como int o string en ambos dataframes antes de fusionarlos.


Puede ejecutar los ejemplos de abajo de inmediato en Google Colab.

Open In Colab

Ejemplo 1: integración de datos de atributos

Este script muestra cómo fusionar los nombres administrativos, los indicadores socioeconómicos y las características de aprendizaje automático satelitales en un único dataframe analítico.

import pandas as pd

# -----------------------------------------------------------------------------
# 1. SETUP: Define Source URLs
# We use the raw GitHub URL to stream data directly into Colab/Pandas.
# -----------------------------------------------------------------------------
REPO_URL = "https://raw.githubusercontent.com/quarcs-lab/ds4bolivia/master"

url_names = f"{REPO_URL}/regionNames/regionNames.csv"
url_sdg = f"{REPO_URL}/sdg/sdg.csv"
url_emb = f"{REPO_URL}/satelliteEmbeddings/satelliteEmbeddings2017.csv"

# -----------------------------------------------------------------------------
# 2. LOAD: Read CSVs
# -----------------------------------------------------------------------------
print("Loading datasets...")
df_names      = pd.read_csv(url_names)
df_sdg        = pd.read_csv(url_sdg)
df_embeddings = pd.read_csv(url_emb)

# -----------------------------------------------------------------------------
# 3. MERGE: Combine Dataframes
# -----------------------------------------------------------------------------
# Step A: Attach SDG data to Names
df_merged_step1 = pd.merge(df_names, df_sdg, on='asdf_id', how='inner')

# Step B: Attach Satellite Embeddings to the result
df_final = pd.merge(df_merged_step1, df_embeddings, on='asdf_id', how='inner')

# -----------------------------------------------------------------------------
# 4. VERIFY
# -----------------------------------------------------------------------------
print(f"Merge Complete.")
print(f"Original Municipalities: {len(df_names)}")
print(f"Final Merged Rows:       {len(df_final)}")
print(f"Total Columns:           {len(df_final.columns)}")

# Display the first few rows (names + first few embedding columns)
display(df_final[['mun', 'dep', 'index_sdg1', 'A00', 'A01', 'A02']].head())

Ejemplo 2: integración de datos espaciales y de atributos

Este script toma los datos fusionados del Ejemplo 1 y los une a las geometrías de los municipios (GeoJSON) para el análisis y la representación espacial.


import geopandas as gpd
import matplotlib.pyplot as plt

# -----------------------------------------------------------------------------
# 1. LOAD SPATIAL DATA
# We load the optimized GeoJSON file containing municipality boundaries.
# -----------------------------------------------------------------------------
geojson_url = f"{REPO_URL}/maps/bolivia339geoqueryOpt.geojson"
print("Loading GeoJSON map...")
gdf_boundaries = gpd.read_file(geojson_url)

# -----------------------------------------------------------------------------
# 2. SPATIAL DATA PREPARATION
# GeoJSON often loads IDs as objects/strings, while CSVs load as integers.
# -----------------------------------------------------------------------------
# Force 'asdf_id' to integer to match the pandas dataframe
gdf_boundaries['asdf_id'] = gdf_boundaries['asdf_id'].astype(int)

# -----------------------------------------------------------------------------
# 3. ATTRIBUTE JOIN
# Merge the spatial dataframe (gdf) with the attribute dataframe (df_final).
# This creates a 'GeoDataFrame' capable of spatial operations.
# -----------------------------------------------------------------------------
gdf_bolivia = gdf_boundaries.merge(df_final, on='asdf_id', how='inner')

# -----------------------------------------------------------------------------
# 4. VISUALIZATION (Choropleth Map)
# Plot the "No Poverty" SDG Index (SDG 1)
# -----------------------------------------------------------------------------
fig, ax = plt.subplots(1, 1, figsize=(12, 10))

gdf_bolivia.plot(
    column='index_sdg1',    # Variable to map
    cmap='viridis',         # Color palette (perceptually uniform)
    linewidth=0.1,          # Border width
    edgecolor='white',      # Border color
    legend=True,
    legend_kwds={'label': "SDG 1 Index (No Poverty)", 'orientation': "horizontal"},
    ax=ax
)

ax.set_title("Bolivia: SDG 1 Index by Municipality", fontsize=15)
ax.set_axis_off()           # Turn off lat/lon axis numbers for cleaner look
plt.show()

Fuentes de datos

🤝 Cómo contribuir

¡Las contribuciones son bienvenidas! Si va a corregir un problema con el sistema de referencia de coordenadas (CRS), añadir un nuevo modelo espacial o subir datos nuevos, envíe un Pull Request.

Carlos Mendez
Carlos Mendez
Profesor Asociado de Economía del Desarrollo

Mi investigación se centra en integrar la economía del desarrollo, la ciencia de datos espaciales y la econometría para comprender e informar mejor el proceso de desarrollo sostenible entre regiones.