Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

171 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

    _                      _                     
   / \   __ _ _ __ ___    | |    ___ _ __  ___ 
  / _ \ / _` | '__/ _ \   | |   / _ \ '_ \/ __|
 / ___ \ (_| | | | (_) |  | |__|  __/ | | \__ \
/_/   \_\__, |_|  \___/   |_____\___|_| |_|___/
        |___/                                  

      Satellite Intelligence for Agriculture

AgroLens

Plataforma web de inteligencia satelital para analisis de lotes agropecuarios

Monitoreo remoto, analisis historico e indicadores interpretables para decisiones agronomicas basadas en datos.

AgroLens integra imagenes Sentinel-2, datos climaticos de NASA POWER, modelos de machine learning y herramientas GIS para transformar informacion satelital compleja en informacion accionable para productores, asesores y tecnicos.

Desarrollado como parte del Proyecto Final de Carrera de Ingenieria en Sistemas de Informacion de la Universidad Nacional del Sur (UNS).

El objetivo del proyecto es estimar salud estructural, potencial productivo y evolucion edafica sin depender de inspecciones presenciales permanentes, permitiendo un analisis remoto, historico y comparable entre lotes.

Home de AgroLens

Problema que resuelve

El analisis tradicional de lotes suele depender de recorridas a campo, observaciones manuales y experiencia individual. Eso dificulta comparar ambientes de forma objetiva, reconstruir su evolucion historica y detectar patrones de largo plazo.

AgroLens propone una plataforma integrada para:

  • gestionar campos y lotes con geometria geografica;
  • importar archivos KML/KMZ;
  • construir series temporales satelitales;
  • calcular indices espectrales;
  • clasificar fenologia dominante;
  • estimar indicadores interpretables;
  • visualizar resultados en mapas y dashboards.

Alcance del proyecto

Actualmente AgroLens incluye:

  • registro y autenticacion de usuarios;
  • gestion de campos y lotes;
  • carga geografica desde poligonos y KML/KMZ;
  • analisis satelital automatico;
  • historial de analisis;
  • integracion con datos climaticos;
  • clasificacion fenologica;
  • calculo del Indice de Salud Estructural (ISE);
  • estimacion de trayectoria edafica;
  • pruebas automatizadas del backend.

Como funciona

Pipeline general de procesamiento:

  1. Carga del lote.
  2. Validacion de geometria.
  3. Obtencion de imagenes Sentinel-2.
  4. Filtrado por nubosidad.
  5. Calculo de indices espectrales.
  6. Construccion de series temporales.
  7. Aplicacion de modelos de machine learning.
  8. Generacion de indicadores.
  9. Persistencia de resultados.
  10. Visualizacion en la plataforma.

Diagrama resumido del flujo:

+--------------------+    +----------------------+    +---------------------+    +----------------------+
| Lote y geometria   | -> | Datos satelitales    | -> | Modelos e           | -> | Resultados en        |
| carga + validacion |    | Sentinel-2 + clima   |    | indicadores         |    | mapas y dashboard    |
+--------------------+    | filtros + indices    |    | series + ML + ISE   |    | persistencia histor. |
                          +----------------------+    +---------------------+    +----------------------+

Indicadores y modelos

Indices espectrales utilizados:

  • NDVI: vigor vegetal.
  • SAVI: vigor con correccion por influencia del suelo.
  • EVI: sensibilidad mejorada en alta biomasa.
  • NDMI: humedad de la vegetacion y estres hidrico.
  • BSI: exposicion de suelo y senales de degradacion o recuperacion.

Modelos y salidas principales:

  • Random Forest para clasificacion fenologica.
  • K-Means para agrupamiento y patronizacion de lotes.
  • ISE como indicador propio de AgroLens, en escala interpretable de 0 a 100.
  • Trayectoria edafica estimada a partir de la evolucion temporal del BSI.

Fenologias contempladas:

  • fina;
  • gruesa;
  • doble cultivo.

Stack tecnologico

  • Backend: FastAPI
  • Frontend: React, Vite, TypeScript
  • Base de datos: PostgreSQL + PostGIS
  • Fuentes de datos: Sentinel-2 y NASA POWER
  • Machine Learning: Random Forest y K-Means

Estructura del repositorio

AgroLens/
├── backend/
├── frontend/
├── data/
├── docs/
├── models/
├── notebooks/
└── README.md
  • backend/: API, servicios, modelos de datos, migraciones y tests.
  • frontend/: aplicacion web en React/Vite.
  • models/: artefactos entrenados y serializados.
  • notebooks/: trabajo exploratorio y antecedentes de investigacion.
  • docs/: arquitectura, metodologia y documentacion del proyecto.
  • data/: datos locales y salidas intermedias.

Capturas de la plataforma

Home

Home de AgroLens

Login

Pantalla de inicio de sesion

Gestion de campos

Vista de campos y lotes

Historial de analisis

Historial de analisis por campo y lote

Resultado de analisis

Vista completa de analisis de lote

Inicio rapido

Requisitos

  • Python 3.12
  • Node.js 18+
  • Docker y Docker Compose

Importante: el stack cientifico del backend no esta preparado para Python 3.14.

1. Clonar el repositorio

git clone <URL_DEL_REPO>
cd AgroLens

2. Configurar el backend

Crear entorno virtual e instalar dependencias:

python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt

Crear el archivo de entorno:

cp backend/.env.example backend/.env

Levantar la base de datos:

docker compose up -d

Aplicar migraciones:

python -m alembic -c backend/alembic.ini upgrade head

Iniciar la API:

uvicorn backend.app.main:app --reload

La API queda disponible en:

  • http://127.0.0.1:8000/health
  • http://127.0.0.1:8000/docs
  • http://127.0.0.1:8000/api/v1/system/info

3. Configurar el frontend

En otra terminal:

cd frontend
npm install
cp .env.example .env
npm run dev

Por defecto el frontend usa:

  • VITE_API_BASE_URL=http://127.0.0.1:8000

4. Datos de desarrollo opcionales

Para cargar datos mock de desarrollo:

python -m backend.scripts.seed_dev

5. Ejecutar tests

python -m pytest backend/tests

Variables de entorno relevantes

En backend/.env:

  • DATABASE_URL
  • GOOGLE_CLIENT_ID
  • JWT_SECRET_KEY
  • COPERNICUS_CLIENT_ID
  • COPERNICUS_CLIENT_SECRET
  • NASA_POWER_BASE_URL
  • PHENOLOGY_MODEL_PATH
  • CLUSTERING_KMEANS_PATH
  • CLUSTERING_SCALER_PATH
  • CLUSTERING_PCA_PATH

En frontend/.env:

  • VITE_API_BASE_URL
  • VITE_GOOGLE_CLIENT_ID

Diferencial de AgroLens

AgroLens busca ubicarse entre las herramientas cientificas complejas y las plataformas comerciales cerradas, priorizando:

  • transparencia metodologica;
  • indicadores interpretables;
  • arquitectura reproducible;
  • analisis historico de largo plazo;
  • facilidad de uso para usuarios no tecnicos.

About

Plataforma de análisis satelital para monitoreo de suelos agrícolas · Procesamiento de imágenes multiespectrales, índices de vegetación y modelos predictivos.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages