Análisis de agricultura y recursos hídricos en Sonora (1999–2021)
Este proyecto integra, procesa y analiza datos oficiales de agricultura y recursos hídricos del estado de Sonora, con el objetivo de comprender su evolución, los cultivos más relevantes y la relación entre la actividad agrícola y los ciclos de disponibilidad de agua.
Incluye un pipeline ETL completo, una base de datos DuckDB, un EDA reproducible, y dos reportes:
- un informe técnico,
- y un artículo narrativo tipo Medium.
sonora-agrodata/
├── etl/ # Extract, Transform, Load
│ ├── extract.py
│ ├── transform.py
│ └── load.py
├── scripts/ # Configuración y utilidades
│ ├── config.py
│ └── utils.py
├── data/
│ ├── raw/ # Datos descargados
│ ├── interim/
│ └── processed/ # CSV + GeoJSON + DuckDB
├── nb/ # Notebooks del EDA
├── plots/ # Gráficos generados
├── report/ # Reportes técnico y Medium
├── figures/ # Portada del proyecto
├── main.py # Orquestador del pipeline completo
├── Makefile
├── Dockerfile
├── docker-compose.yml
└── pyproject.toml
Fuente: Gobierno del Estado de Sonora https://datos.sonora.gob.mx/dataset/Agricultura%20Sonora
- Superficie sembrada
- Superficie cosechada
- Volumen de producción
- Valor económico
- Cultivos, variedades, DDR, municipio
Diccionario: references/diccionario-agricultura.md
Fuente: Gobierno del Estado de Sonora https://datos.sonora.gob.mx/dataset/Recursos%20H%C3%ADdricos
- Registros mensuales por presa
- Almacenamiento en
$\text{hm}^3$
Diccionario: references/diccionario-recursos-hídricos.md
Fuente: INEGI — Marco Geoestadístico https://www.inegi.org.mx
- Límites municipales del estado de Sonora
Este proyecto usa Python 3.13 y el gestor de dependencias uv.
python --versionDebe ser 3.12 o superior.
pip install uvuv sync --frozenEsto crea un entorno virtual y sincroniza exactamente las dependencias del proyecto.
Puedes usar el Makefile.
O bien ejecutar cada módulo con uv run.
Al ejecutar el pipeline, se generan tres productos principales:
Descargados desde las fuentes oficiales: agricultura, recursos hídricos y geometría municipal.
Archivos limpios y estandarizados utilizados para análisis:
agricultura_processed.csvhidricos_processed.csvpresas_processed.csvmpios_processed.geojson
El pipeline carga automáticamente todos los datos procesados en DuckDB, creando tablas listas para consulta y análisis.
make etlInternamente ejecuta:
make extract
make transform
make loaduv run python -m etl.extract
uv run python -m etl.transform
uv run python -m etl.loaduv run python main.pydocker compose builddocker compose up etldocker compose up jupyterAccede en tu navegador a:
http://localhost:8888
docker compose logs -fLos análisis se encuentran en los notebooks:
nb/01_1-eda-agricultura.ipynbnb/01_2-eda-hidricos.ipynbnb/02-eda.ipynb(EDA global utilizado para los reportes)
Puedes abrirlos localmente:
make run_jupytero, en Docker:
docker compose up jupyterEl análisis muestra una fuerte conexión entre la superficie sembrada y la disponibilidad de agua en presas, especialmente en los ciclos de sequía 2002–2004 y 2019–2021.
Gráfico destacado: plots/disponibilidad_agua_sup_sembrada.png
Este gráfico cruza almacenamiento total en presas y superficie sembrada, mostrando que las caídas agrícolas coinciden con mínimos hídricos pronunciados.
report/reporte.md
(versión final publicada en Medium)
La imagen utilizada en la portada del proyecto:
“Wheat fields at CIMMYT's CENEB (Ciudad Obregón) experiment station” por International Maize and Wheat Improvement Center (CIMMYT), bajo licencia CC BY-NC 2.0.
https://creativecommons.org/licenses/by-nc/2.0/
Este proyecto está publicado bajo la licencia MIT.

