🌍

GeoMaster — Análisis Geoespacial Agrícola

Teledetección Sentinel-2 · Estrés Hídrico · Clasificación de Cultivos
AgroSmart Analytics SL · Ribera Baixa, Valencia
Campaña verano 2025 · Junio – Agosto · Procesado: 14 Jun 2026
Pipeline activo — 3 pasadas Sentinel-2/semana
🍊
Comarca Ribera Baixa — l'Albufera / Citrícolas
BBox: [-0.45, 39.10, -0.20, 39.30] · EPSG:32630 (UTM 30N) · Resolución: 10 m/px
Sentinel-2 L2A 347 parcelas 2.841 ha analizadas 23 parcelas en alerta
🚨
ALERTA CRÍTICA: Estrés hídrico severo detectado en sector naranjos Norte
12 parcelas de naranjos (zonas POLID-0041 a POLID-0052) presentan NDWI medio de −0.31, indicando déficit hídrico severo. NDVI cayó un 18% en los últimos 14 días. Se recomienda riego de emergencia en las próximas 48h para evitar pérdida de cosecha estimada en 340 t.
NDVI Medio Global
0.61
Zona: 0.42 – 0.79
🌿
Parcelas Saludables
289
83.3% del total
Estrés Moderado
35
NDWI: −0.10 a −0.25
⚠️
Estrés Severo
23
NDWI < −0.25
🔴
Imágenes Procesadas
47
Nube <15% · 78 días
🛰️
🗺️ Mapa NDVI — Ribera Baixa (Sentinel-2, 10 jun 2025)
🛰️ S2A_MSIL2A_20250610
☁️ Nubosidad: 4.2%
📐 10 m/px
🌡️ EPSG:32630
l'Albufera 0.74 0.71 0.52 0.48 0.28 0.31 0.24 ⚠ ZONA CRÍTICA — SECTOR NORTE 2 km N 39.10°N 39.30°N
NDVI alto (0.65–0.85) — Saludable
NDVI medio (0.40–0.65) — Moderado
NDVI bajo (<0.40) — Estrés severo
Agua (Albufera)
Urbano
📈 Serie Temporal NDVI — Naranjos (Jun–Ago 2025)
0.7 0.5 0.3 1 Jun 15 Jun 1 Jul 15 Jul 1 Ago 15 Ago 31 Ago Inicio caída Saludable Mod. estrés Zona crítica
📊 Índices Espectrales — Media zonal (10 jun)
NDVI
0.61
Rango: −1 a 1
NDWI
−0.18
Umbral: <−0.10
EVI
0.44
Enhan. vegetal
SAVI
0.53
Suelo ajustado
🏷️ Clasificación de Uso del Suelo (Random Forest, 94.2% acc.)
2.841 hectáreas
Naranjos / Cítricos
1.477 ha · 189 parc.
52%
Arrozales
795 ha · 82 parc.
28%
Huerta hortícola
341 ha · 58 parc.
12%
Urbano / Caminos
228 ha
8%
Rendimiento del modelo RF (100 árboles)
Exactitud global
94.2%
Kappa Cohen
0.91
F1 Naranjos
0.96
F1 Arrozales
0.93
💻 Pipeline Python — Detección Estrés Hídrico
# GeoMaster · AgroSmart Analytics — Ribera Baixa import rasterio, numpy as np import geopandas as gpd from rasterio.features import zonal_stats from sklearn.ensemble import RandomForestClassifier # 1. Cargar imagen Sentinel-2 (L2A) with rasterio.open('S2A_20250610_ribera.tif') as src: B03 = src.read(3).astype(float) # Verde B04 = src.read(4).astype(float) # Rojo B08 = src.read(8).astype(float) # NIR B11 = src.read(11).astype(float) # SWIR # 2. Calcular índices espectrales eps = 1e-8 ndvi = (B08 - B04) / (B08 + B04 + eps) ndwi = (B03 - B08) / (B03 + B08 + eps) evi = 2.5 * (B08-B04)/(B08+6*B04-7.5*B03+1) # 3. Cargar parcelas catastrales + alinear CRS parcelas = gpd.read_file('parcelas_ribera.gpkg') if parcelas.crs.to_epsg() != 32630: parcelas = parcelas.to_crs(32630) assert parcelas.geometry.is_valid.all() # 4. Estadísticas zonales por parcela stats_ndvi = zonal_stats(parcelas, ndvi, stats='mean std min max') stats_ndwi = zonal_stats(parcelas, ndwi, stats='mean') parcelas['ndvi_mean'] = [s['mean'] for s in stats_ndvi] parcelas['ndwi_mean'] = [s['mean'] for s in stats_ndwi] # 5. Clasificar nivel de estrés hídrico parcelas['estres'] = pd.cut( parcelas['ndwi_mean'], bins=[-1, -0.25, -0.10, 0, 1], labels=['severo', 'moderado', 'leve', 'ok'] ) # 6. Clasificacion uso suelo (RF pre-entrenado) rf = RandomForestClassifier(n_estimators=100, n_jobs=-1) rf.fit(X_train, y_train) # acc=0.942, kappa=0.91 # 7. Exportar alertas críticas alertas = parcelas[parcelas['ndwi_mean'] < -0.25] alertas.to_file('alertas_criticas.gpkg')
rasterio 1.4 geopandas 1.0 scikit-learn 1.5 EPSG:32630 COG-ready
🚨 Ranking Parcelas Críticas — Zona Norte (Naranjos, NDWI < −0.10)
ID Parcela Propietario Cultivo Ha NDVI (jun 10) Tendencia 14d NDWI Medio Prod. Estimada Alerta Acción
POLID-0047 Coop. Ribera Sud 🍊 Naranjo Valencia 14.2
0.24
↓ −23% −0.38 142 t 🔴 CRÍTICO Riego urgente <24h
POLID-0041 Manuel Pons Vidal 🍊 Clementina 8.7
0.28
↓ −19% −0.34 87 t 🔴 CRÍTICO Riego urgente <24h
POLID-0052 SAT l'Arrossar 🍊 Naranjo Navel 22.1
0.31
↓ −18% −0.31 221 t 🔴 CRÍTICO Riego urgente <48h
POLID-0038 Coop. Alzira Nord 🍊 Naranjo Valencia 11.4
0.40
↓ −11% −0.22 108 t 🟠 ALERTA Monitorizar 48h
POLID-0029 Rosa Marí Tarazona 🌾 Arroz Bomba 6.3
0.46
↓ −8% −0.18 38 t 🟡 AVISO Verificar en campo
POLID-0015 Coop. Sollana 🍊 Mandarina 18.9
0.71
↑ +3% +0.04 198 t ✅ OK Sin acción
POLID-0007 Pedro Esteve Llopis 🌿 Pimiento 3.2
0.74
→ 0% +0.06 32 t ✅ OK Sin acción
🛰️ Fuentes de Datos Satelitales
Sentinel-2 L2A
47 img
DEM (SRTM 30m)
1 cap.
Catastro GeoJSON
347 par
Met. AEMET (ETo)
8 est.
Acceso cloud vía STAC · Planetary Computer
Bandas usadas: B02 B03 B04 B08 B11 B12
Resolución: 10 m (visual) · 20 m (SWIR)
Frecuencia revisita: 5 días (2 satélites)
⚙️ Stack Técnico GeoMaster
rasterio + GDALI/O raster
geopandas + shapelyVectorial
xarray + rioxarraySeries temp.
pystac-clientSTAC API
scikit-learn RFClasificación
Google Earth EngineGEE API
PostGIS + PostgreSQLAlmacén
QGIS + foliumVisualización
Procesado: COG + Dask — Chunks 1024×1024 px · ~18 min/pasada completa
💧 Resumen Campaña Verano 2025
🔴 Parcelas con intervención urgente
12
179.4 ha · Pérdida potencial: ~340 t
🟠 Parcelas en monitorización
35
421 ha · Revisión en 48–72h
✅ Parcelas saludables
289
2.241 ha · Sin intervención requerida