{
  "schema_version": "ecotech-output-v1",
  "product_version": "RUSLE-GIS v0.3",
  "product_stage": "operativo_para_priorizacion_pendiente_R_local_ESDAC_y_validacion_campo",
  "territory": {
    "name": "La Ronca",
    "slug": "la-ronca",
    "municipality": "Escalona",
    "province": "Toledo",
    "country": "ES",
    "boundary_geojson": "/Users/blanca/Documents/New project/territorium-knowledge/examples/la-ronca-visitor-kit-map/data/la-ronca-drawn-areas.geojson"
  },
  "analysis_profile": {},
  "config_path": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/config.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."
    },
    "rainfall_erosivity": {
      "provider": "esdac_r_factor_or_local_path",
      "path": null,
      "url": null,
      "citation": "ESDAC/JRC Rainfall Erosivity in Europe R-factor o raster local equivalente; si no se aporta, el motor usa Open-Meteo proxy 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": 830.806,
  "rendered_maps": {
    "slope": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/slope.png",
    "surface_moisture": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/surface_moisture.png",
    "vegetation_change": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/vegetation_change.png",
    "groundwater_recharge": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/groundwater_recharge.png",
    "rusle_proxy": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/rusle_proxy.png",
    "rusle_ls_factor": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/rusle_ls_factor.png",
    "rusle_c_factor": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/rusle_c_factor.png",
    "rusle_p_factor": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/rusle_p_factor.png",
    "rusle_complete": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/rusle_complete.png",
    "sar_erosion": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/sar_erosion.png",
    "sar_loss_detection": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/sar_loss_detection.png",
    "susceptibility": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/susceptibility.png"
  },
  "reference_maps": {
    "mosaic": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/reference_mosaic.png",
    "groundwater_recharge": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/reference_groundwater_recharge.png",
    "surface_moisture": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/reference_surface_moisture.png",
    "rusle": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/reference_rusle.png",
    "sar_erosion": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/reference_sar_erosion.png",
    "susceptibility": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/reference_susceptibility.png",
    "slope": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/reference_slope.png",
    "geology": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/reference_geology.png",
    "vegetation_change": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/reference_vegetation_change.png"
  },
  "closure_docs": {
    "rusle": {
      "scientific_status": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/rusle_closure/scientific_status.md",
      "executive_summary": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/rusle_closure/executive_summary.md",
      "next_action_plan": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/rusle_closure/next_action_plan.md"
    },
    "recharge": {
      "scientific_status": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/recharge/closure/scientific_status.md",
      "executive_summary": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/recharge/closure/executive_summary.md"
    },
    "moisture": {
      "scientific_status": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/moisture/closure/scientific_status.md",
      "executive_summary": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/moisture/closure/executive_summary.md"
    },
    "historic": {
      "scientific_status": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/historic/closure/scientific_status.md",
      "executive_summary": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/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-ronca/inputs/dem_cnig_mdt05.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": 417915,
        "mean": 6.8327,
        "min": 0.0,
        "max": 52.7996,
        "p20": 0.0,
        "p80": 9.3221
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/rasters/slope.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/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-ronca/inputs/ndmi_dry.tif, /Users/blanca/Documents/New project/outputs/ecotech/la-ronca/inputs/ndwi_dry.tif, /Users/blanca/Documents/New project/outputs/ecotech/la-ronca/inputs/sar_vv_dry.tif",
      "limitations": "Indice satelital relativo; no sustituye humedad de suelo medida en campo.",
      "stats": {
        "valid_pixels": 425335,
        "mean": 0.5042,
        "min": 0.1522,
        "max": 0.9559,
        "p20": 0.4068,
        "p80": 0.5985
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/rasters/surface_moisture.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/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-ronca/inputs/ndvi_wet.tif; /Users/blanca/Documents/New project/outputs/ecotech/la-ronca/inputs/ndvi_dry.tif",
      "limitations": "Detecta cambio espectral, no causa. Debe interpretarse con manejo, cultivo y clima.",
      "stats": {
        "valid_pixels": 432648,
        "mean": 0.0323,
        "min": 0.0,
        "max": 0.4144,
        "p20": 0.0088,
        "p80": 0.0497
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/rasters/vegetation_change.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/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": 414711,
        "mean": 0.4227,
        "min": 0.1104,
        "max": 0.9246,
        "p20": 0.3424,
        "p80": 0.4999
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/rasters/groundwater_recharge.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/groundwater_recharge.png"
    },
    {
      "key": "rusle_proxy",
      "title": "RUSLE / riesgo de erosion hidrica",
      "status": "AUDITADO_CON_LIMITACIONES",
      "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": 417527,
        "mean": 0.3254,
        "min": 0.0265,
        "max": 0.645,
        "p20": 0.2472,
        "p80": 0.4062
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/rasters/rusle_proxy.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/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-ronca/inputs/dem_cnig_mdt05.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": 417915,
        "mean": 1.3111,
        "min": 0.0,
        "max": 24.3599,
        "p20": 0.0,
        "p80": 1.9748
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/rasters/rusle_ls_factor.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/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-ronca/inputs/ndvi_dry.tif",
      "limitations": "NDVI captura cobertura/vigor, no practicas de manejo ni rugosidad del suelo.",
      "stats": {
        "valid_pixels": 432648,
        "mean": 0.6042,
        "min": 0.0577,
        "max": 0.9638,
        "p20": 0.4988,
        "p80": 0.7069
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/rasters/rusle_c_factor.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/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": 417527,
        "mean": 0.8435,
        "min": 0.65,
        "max": 1.0,
        "p20": 0.65,
        "p80": 1.0
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/rasters/rusle_p_factor.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/rusle_p_factor.png"
    },
    {
      "key": "rusle_complete",
      "title": "RUSLE completo v0.2",
      "status": "AUDITADO_CON_LIMITACIONES",
      "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-ronca/inputs/dem_cnig_mdt05.tif, /Users/blanca/Documents/New project/outputs/ecotech/la-ronca/inputs/ndvi_dry.tif, /Users/blanca/Documents/New project/outputs/ecotech/la-ronca/inputs/rainfall_erosivity_open_meteo_proxy.tif, /Users/blanca/Documents/New project/outputs/ecotech/la-ronca/inputs/soil_erodibility_k_soilgrids.tif, rusle_management config: base_practice_p, contour_farming, cover_crop, practice_p_values, runoff_lines, terraces, zones_all_touched, zones_geojson",
      "limitations": "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": 417527,
        "mean": 5.8917,
        "min": 0.0,
        "max": 139.1695,
        "p20": 0.0001,
        "p80": 9.2887
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/rasters/rusle_complete.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/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-ronca/inputs/ndvi_dry.tif, /Users/blanca/Documents/New project/outputs/ecotech/la-ronca/inputs/sar_vv_dry.tif, /Users/blanca/Documents/New project/outputs/ecotech/la-ronca/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": 424213,
        "mean": 0.4884,
        "min": 0.0,
        "max": 1.0,
        "p20": 0.3445,
        "p80": 0.6392
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/rasters/sar_erosion.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/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-ronca/inputs/dem_cnig_mdt05.tif, /Users/blanca/Documents/New project/outputs/ecotech/la-ronca/inputs/ndvi_dry.tif, /Users/blanca/Documents/New project/outputs/ecotech/la-ronca/inputs/sar_vv_dry.tif, /Users/blanca/Documents/New project/outputs/ecotech/la-ronca/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": 409569,
        "mean": 0.0918,
        "min": 0.0,
        "max": 1.0,
        "p20": 0.0,
        "p80": 0.0,
        "detected_pixel_pct": 9.18
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/rasters/sar_loss_detection.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/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-ronca/inputs/dem_cnig_mdt05.tif",
      "limitations": "Modelo relativo de priorizacion; no sustituye estudio geotecnico ni inventario de movimientos en masa.",
      "stats": {
        "valid_pixels": 417527,
        "mean": 0.3754,
        "min": 0.1376,
        "max": 0.9008,
        "p20": 0.2786,
        "p80": 0.4415
      },
      "geotiff": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/rasters/susceptibility.tif",
      "png": "/Users/blanca/Documents/New project/outputs/ecotech/la-ronca/maps/susceptibility.png"
    }
  ]
}