{
  "schema_version": "ecotech-output-v1",
  "product_version": "RUSLE-GIS v0.3",
  "product_stage": "operativo_para_priorizacion_pendiente_R_ESDAC_y_validacion_campo",
  "territory": {
    "name": "LA TORRE",
    "slug": "la-torre",
    "municipality": "",
    "province": "",
    "country": "ES",
    "boundary_geojson": "/Users/blanca/Documents/New project/wildsquare_ecotech/configs/boundaries/la-torre_boundary.geojson"
  },
  "config_path": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/config.gee.resolved.json",
  "raster_sources": {
    "dem": {
      "provider": "cnig_mdt",
      "resolution_m": 5,
      "pad_degrees": 0.002,
      "citation": "CNIG/IGN WCS Modelo Digital del Terreno de España MDT05, derivado de PNOA-LiDAR clase terreno. Para fincas fuera de España, sustituir por DEM oficial local."
    },
    "rainfall_erosivity": {
      "provider": "esdac_r_factor_or_local_path",
      "path": null,
      "url": null,
      "citation": "ESDAC/JRC Rainfall Erosivity R-factor o raster local equivalente. Si no se aporta, el motor usa proxy Open-Meteo con limitaciones."
    },
    "soil_erodibility": {
      "provider": "esdac_k_factor_or_local_path",
      "path": null,
      "url": null,
      "citation": "ESDAC/JRC K-factor o raster local equivalente. Si no se aporta, el motor usa SoilGrids + EPIC K."
    }
  },
  "area_ha": 1570.105,
  "rendered_maps": {
    "slope": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/slope.png",
    "surface_moisture": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/surface_moisture.png",
    "vegetation_change": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/vegetation_change.png",
    "groundwater_recharge": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/groundwater_recharge.png",
    "rusle_proxy": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/rusle_proxy.png",
    "rusle_ls_factor": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/rusle_ls_factor.png",
    "rusle_c_factor": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/rusle_c_factor.png",
    "rusle_p_factor": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/rusle_p_factor.png",
    "rusle_complete": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/rusle_complete.png",
    "sar_erosion": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/sar_erosion.png",
    "sar_loss_detection": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/sar_loss_detection.png",
    "susceptibility": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/susceptibility.png"
  },
  "reference_maps": {},
  "closure_docs": {
    "rusle": {
      "scientific_status": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/rusle_closure/scientific_status.md",
      "executive_summary": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/rusle_closure/executive_summary.md",
      "next_action_plan": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/rusle_closure/next_action_plan.md"
    },
    "recharge": {
      "scientific_status": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/recharge/closure/scientific_status.md",
      "executive_summary": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/recharge/closure/executive_summary.md"
    },
    "moisture": {
      "scientific_status": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/moisture/closure/scientific_status.md",
      "executive_summary": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/moisture/closure/executive_summary.md"
    },
    "historic": {
      "scientific_status": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/historic/closure/scientific_status.md",
      "executive_summary": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/historic/closure/executive_summary.md"
    }
  },
  "models": [
    {
      "key": "slope",
      "title": "Pendiente",
      "status": "AUDITADO_CON_LIMITACIONES",
      "method": "Derivada espacial del DEM: arctan de gradiente x/y.",
      "formula": "slope_deg = atan(sqrt((dz/dx)^2 + (dz/dy)^2))",
      "source": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/inputs/dem_gee_nasadem.tif",
      "limitations": "Depende de la resolucion y preprocesado del DEM; si el DEM procede de MDT/LiDAR oficial, queda pendiente revisar microrelieve, caminos y cortes artificiales en campo.",
      "stats": {
        "valid_pixels": 21483,
        "mean": 2.8321,
        "min": 0.0,
        "max": 11.1638,
        "p20": 1.5526,
        "p80": 4.0047
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/rasters/slope.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/slope.png"
    },
    {
      "key": "surface_moisture",
      "title": "Humedad superficial",
      "status": "AUDITADO_CON_LIMITACIONES",
      "method": "Combinacion normalizada de humedad optica y radar cuando esta disponible.",
      "formula": "H = 0.40*NDWI_norm + 0.35*NDMI_norm + 0.25*SAR_norm",
      "source": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/inputs/ndmi_dry.tif, /Users/blanca/Documents/New project/outputs/ecotech/la-torre/inputs/ndwi_dry.tif, /Users/blanca/Documents/New project/outputs/ecotech/la-torre/inputs/sar_vv_dry.tif",
      "limitations": "Indice satelital relativo; no sustituye humedad de suelo medida en campo.",
      "stats": {
        "valid_pixels": 22435,
        "mean": 0.4655,
        "min": 0.126,
        "max": 0.8547,
        "p20": 0.382,
        "p80": 0.553
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/rasters/surface_moisture.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/surface_moisture.png"
    },
    {
      "key": "vegetation_change",
      "title": "Cambio vegetacional",
      "status": "AUDITADO_CON_LIMITACIONES",
      "method": "Magnitud absoluta de cambio NDVI entre periodo humedo y seco.",
      "formula": "M = abs(NDVI_humedo - NDVI_seco)",
      "source": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/inputs/ndvi_wet.tif; /Users/blanca/Documents/New project/outputs/ecotech/la-torre/inputs/ndvi_dry.tif",
      "limitations": "Detecta cambio espectral, no causa. Debe interpretarse con manejo, cultivo y clima.",
      "stats": {
        "valid_pixels": 22435,
        "mean": 0.1184,
        "min": 0.0,
        "max": 0.666,
        "p20": 0.0379,
        "p80": 0.1874
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/rasters/vegetation_change.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/vegetation_change.png"
    },
    {
      "key": "groundwater_recharge",
      "title": "Potencial de recarga hidrica",
      "status": "ORIENTATIVO",
      "method": "Superposicion ponderada de permeabilidad, pendiente inversa, humedad, flujo acumulado y vegetacion.",
      "formula": "PR = G*wG + inv(P)*wP + H*wH + FA*wFA + V*wV",
      "source": "derived from configured raster inputs",
      "limitations": "Modelo multicriterio relativo. Requiere validacion hidrogeologica y piezometria para decisiones oficiales.",
      "stats": {
        "valid_pixels": 21483,
        "mean": 0.3784,
        "min": 0.0596,
        "max": 0.8297,
        "p20": 0.2998,
        "p80": 0.4512
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/rasters/groundwater_recharge.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/groundwater_recharge.png"
    },
    {
      "key": "rusle_proxy",
      "title": "RUSLE / riesgo de erosion hidrica",
      "status": "ORIENTATIVO",
      "method": "Proxy RUSLE normalizado. Version completa debe usar A=R*K*LS*C*P.",
      "formula": "A_proxy = R*wR + K*wK + LS*wLS + inv(C)*wC + inv(P)*wP",
      "source": "derived from configured raster inputs",
      "limitations": "No publicar como toneladas de suelo. Sin R y K locales es riesgo relativo, no RUSLE completo.",
      "stats": {
        "valid_pixels": 21483,
        "mean": 0.4651,
        "min": 0.0909,
        "max": 0.9091,
        "p20": 0.3421,
        "p80": 0.5803
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/rasters/rusle_proxy.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/rusle_proxy.png"
    },
    {
      "key": "rusle_ls_factor",
      "title": "RUSLE factor LS",
      "status": "AUDITADO_CON_LIMITACIONES",
      "method": "Factor topografico LS con pendiente del DEM, acondicionamiento hidrologico priority-flood y acumulacion de flujo D8.",
      "formula": "LS = (flow_length_D8_filled/22.13)^0.4 * (sin(slope)/0.0896)^1.3",
      "source": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/inputs/dem_gee_nasadem.tif",
      "limitations": "D8 auditable con relleno priority-flood basico; faltan breach de caminos/cortes artificiales, validacion de vaguadas/carcavas y ajuste hidrologico fino para RUSLE oficial.",
      "stats": {
        "valid_pixels": 21483,
        "mean": 0.7407,
        "min": 0.0,
        "max": 7.8047,
        "p20": 0.2277,
        "p80": 1.1354
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/rasters/rusle_ls_factor.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/rusle_ls_factor.png"
    },
    {
      "key": "rusle_c_factor",
      "title": "RUSLE factor C",
      "status": "AUDITADO_CON_LIMITACIONES",
      "method": "Factor de cobertura derivado de NDVI con formulacion exponencial tipo Van der Knijff.",
      "formula": "C = exp(-alpha*NDVI/(beta-NDVI)); alpha=2, beta=1 por defecto",
      "source": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/inputs/ndvi_dry.tif",
      "limitations": "NDVI captura cobertura/vigor, no practicas de manejo ni rugosidad del suelo.",
      "stats": {
        "valid_pixels": 22435,
        "mean": 0.5187,
        "min": 0.0293,
        "max": 0.8241,
        "p20": 0.3382,
        "p80": 0.7347
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/rasters/rusle_c_factor.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/rusle_c_factor.png"
    },
    {
      "key": "rusle_p_factor",
      "title": "RUSLE factor P",
      "status": "AUDITADO_CON_LIMITACIONES",
      "method": "Factor de practicas de conservacion. Usa raster P si existe; si no, aplica reglas declaradas de manejo sobre pendiente, NDVI y escorrentia D8.",
      "formula": "P = min(base, cubierta, curvas_nivel, terrazas); P vuelve a 1 en lineas de escorrentia desnudas si se declaran.",
      "source": "rusle_management config: base_practice_p, contour_farming, cover_crop, practice_p_values, runoff_lines, terraces, zones_all_touched, zones_geojson",
      "limitations": "P parametrico desde configuracion de manejo. Debe validarse con laboreo real, cubiertas, terrazas, caminos y lineas de escorrentia observadas en finca.",
      "stats": {
        "valid_pixels": 21483,
        "mean": 0.9549,
        "min": 0.78,
        "max": 1.0,
        "p20": 0.78,
        "p80": 1.0
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/rasters/rusle_p_factor.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/rusle_p_factor.png"
    },
    {
      "key": "rusle_complete",
      "title": "RUSLE completo v0.2",
      "status": "ORIENTATIVO",
      "method": "Modelo RUSLE factoral. Calcula A=R*K*LS*C*P; usa rasters trazables cuando estan disponibles y constantes documentadas solo para factores ausentes.",
      "formula": "A = R * K * LS * C * P",
      "source": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/inputs/dem_gee_nasadem.tif, /Users/blanca/Documents/New project/outputs/ecotech/la-torre/inputs/ndvi_dry.tif, rusle_management config: base_practice_p, contour_farming, cover_crop, practice_p_values, runoff_lines, terraces, zones_all_touched, zones_geojson",
      "limitations": "Faltan factores raster: R, K. R y K son trazables si proceden de raster de entrada, pero R proxy y LS D8 no bastan para toneladas oficiales sin validacion de campo, EI30 local y DEM hidrologico completo.",
      "stats": {
        "valid_pixels": 21483,
        "mean": 5.4054,
        "min": 0.0,
        "max": 62.0115,
        "p20": 1.4557,
        "p80": 8.2763
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/rasters/rusle_complete.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/rusle_complete.png"
    },
    {
      "key": "sar_erosion",
      "title": "Patrones de erosion / perdida de suelo",
      "status": "AUDITADO_CON_LIMITACIONES",
      "method": "Cruce de cambio Sentinel-1 RTC SAR y baja cobertura vegetal como senal de suelo expuesto/alterado.",
      "formula": "E_sar = 0.55*abs(SAR_humedo-SAR_seco)_norm + 0.45*inv(NDVI)_norm",
      "source": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/inputs/ndvi_dry.tif, /Users/blanca/Documents/New project/outputs/ecotech/la-torre/inputs/sar_vv_dry.tif, /Users/blanca/Documents/New project/outputs/ecotech/la-torre/inputs/sar_vv_wet.tif",
      "limitations": "Proxy radar/espectral; ahora usa SAR real, pero necesita calibrar umbral de deteccion y validarse con campo, ortofoto o inventario de carcavas.",
      "stats": {
        "valid_pixels": 22435,
        "mean": 0.3614,
        "min": 0.0,
        "max": 1.0,
        "p20": 0.1828,
        "p80": 0.5254
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/rasters/sar_erosion.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/sar_erosion.png"
    },
    {
      "key": "sar_loss_detection",
      "title": "Detección SAR de pérdida de suelo",
      "status": "ORIENTATIVO",
      "method": "Detección discreta de posibles pérdidas/alteraciones: cambio SAR alto, baja cobertura vegetal y pendiente.",
      "formula": "detect = score>=0.70; score=0.55*SAR_change + 0.30*inv(NDVI) + 0.15*slope",
      "source": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/inputs/dem_gee_nasadem.tif, /Users/blanca/Documents/New project/outputs/ecotech/la-torre/inputs/ndvi_dry.tif, /Users/blanca/Documents/New project/outputs/ecotech/la-torre/inputs/sar_vv_dry.tif, /Users/blanca/Documents/New project/outputs/ecotech/la-torre/inputs/sar_vv_wet.tif",
      "limitations": "Primera capa de detección. Requiere calibrar umbral con puntos de campo/ortofoto y separar laboreo, suelo desnudo agrícola y erosión real.",
      "stats": {
        "valid_pixels": 21483,
        "mean": 0.0573,
        "min": 0.0,
        "max": 1.0,
        "p20": 0.0,
        "p80": 0.0,
        "detected_pixel_pct": 5.73
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/rasters/sar_loss_detection.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/sar_loss_detection.png"
    },
    {
      "key": "susceptibility",
      "title": "Susceptibilidad geomorfologica",
      "status": "ORIENTATIVO",
      "method": "Indice multicriterio con pendiente, humedad topografica, energia de escorrentia y suelo descubierto.",
      "formula": "S = Pn*wP + TWI*wTWI + SPI*wSPI + bare*wB",
      "source": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/inputs/dem_gee_nasadem.tif",
      "limitations": "Modelo relativo de priorizacion; no sustituye estudio geotecnico ni inventario de movimientos en masa.",
      "stats": {
        "valid_pixels": 21483,
        "mean": 0.3821,
        "min": 0.1357,
        "max": 0.9195,
        "p20": 0.263,
        "p80": 0.4998
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/rasters/susceptibility.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-torre/maps/susceptibility.png"
    }
  ]
}