Analisis sembrado de caña en Colombia

Para el analisis se descargan datos climáticos globales para Colombia usando el paquete geodata y worldclim_country. Se obtienen dos variables clave: precipitación mensual (prec) y temperatura media mensual (tavg). Estos datos se enmascaran con el límite político de Colombia usando un shapefile de rnaturalearth, creando así rasters específicos para el país (prec_col y tavg_col). Este paso asegura que el análisis se centre exclusivamente en el territorio colombiano.

Las imagenes muestran la distribución espacial de la precipitación mensual y la temperatura media mensual en Colombia durante los doce meses del año, representada en una serie de mapas donde los colores indican la cantidad de lluvia en milímetros (de tonos oscuros para baja precipitación a tonos claros para alta) y en temperatura en grados celcius. Se observa que las mayores precipitaciones ocurren en el occidente del país, especialmente en la región del Pacífico, y en algunos sectores de la Amazonía y los Andes, siendo los meses de mayo, septiembre, octubre y noviembre los más lluviosos, lo cual concuerda con los dos periodos de lluvias típicos del clima bimodal colombiano. En contraste, los meses de enero, febrero y julio muestran menores niveles de precipitación, con regiones del norte y oriente del país presentando condiciones más secas. Estos patrones reflejan la variabilidad climática anual del país y son útiles para la planificación agrícola, manejo del agua y análisis de riesgos climáticos.

|---------|---------|---------|---------|=========================================                                          
|---------|---------|---------|---------|=========================================                                          

En la siguientes imagenes se indican las zonas aptas (en amarillo) e inapropiadas (en morado) para ciertas condiciones climáticas, según los dos criterios: precipitación y temperatura promedio. Los mapas marcados como prec_apto muestran las regiones donde la precipitación mensual cumple con ciertos umbrales definidos como adecuados, mientras que los mapas tempavg_apto hacen lo mismo con la temperatura promedio mensual. Se observa que, en general, las condiciones de temperatura son más ampliamente aptas a lo largo del año en comparación con la precipitación, que presenta una distribución más variable y restringida según el mes, especialmente en los primeros y últimos meses del año. Esta información es clave para evaluar la viabilidad climática de actividades como la agricultura, según el mes y la ubicación geográfica.

|---------|---------|---------|---------|=========================================                                          |---------|---------|---------|---------|=========================================                                          |---------|---------|---------|---------|=========================================                                          
|---------|---------|---------|---------|=========================================                                          |---------|---------|---------|---------|=========================================                                          |---------|---------|---------|---------|=========================================                                          

En la Siguiente imagen se representan la aptitud climática agregada para precipitación y temperatura, expresada en una escala de 0 a 100, donde los valores más altos (amarillo) indican mayor aptitud y los más bajos (morado) menor aptitud. En el mapa de precipitación se destacan como más aptas (valores más altos) las regiones del suroccidente, la Amazonía y algunas zonas del norte, mientras que gran parte del oriente y centro presenta menor aptitud. En contraste, el mapa de temperatura muestra alta aptitud en extensas zonas del sur, oriente y Caribe, mientras que los Andes centrales presentan valores bajos, probablemente por su menor temperatura media anual. Estos mapas son útiles para identificar regiones con condiciones climáticas favorables para actividades como la agricultura o la planificación territorial.

Indicador de aptitud mediante función trapezoidal

Se implementa una función de aptitud trapezoidal (calc_aptitud) que asigna valores entre 0 (no apto) y 1 (óptimo) según la proximidad a los rangos ideales. Para temperatura, el rango óptimo es 22.5-28°C (límites absolutos: 15-35°C). Para precipitación: 125-290 mm/mes (límites: 50-400 mm). Esta función se aplica a cada celda de los rasters mensuales mediante app(), generando dos stacks: aptitud_temp_mes y aptitud_prec_mes con valores de aptitud mensual por variable.

La imagen presenta dos mapas de Colombia que resumen la aptitud climática general del país para un uso específico (como la agricultura), con base en un índice compuesto. El mapa de la izquierda muestra el Índice de Aptitud en una escala continua de 0 a 1, donde los valores más altos (verde oscuro) representan condiciones más favorables, y los más bajos (rojo) indican zonas no aptas. El mapa de la derecha clasifica esta información en categorías cualitativas: “No apta”, “Marginal”, “Moderada”, “Alta” y “Óptima”, representadas por una gradación de colores desde el rojo hasta el verde claro. Se observa que las regiones con mejores condiciones climáticas (alta y óptima aptitud) se concentran en el sur, oriente y algunas zonas del Caribe, mientras que la región andina central y ciertas zonas del norte presentan limitaciones marcadas, lo que refleja la influencia de factores como la altitud y la variabilidad de temperatura y precipitación. Esta clasificación es fundamental para orientar decisiones en planificación agrícola, ordenamiento territorial y gestión de recursos naturales.

# 3. Función de aptitud trapezoidal mejorada
calc_aptitud <- function(x, opt_min, opt_max, abs_min, abs_max) {
  ifelse(
    x < abs_min | x > abs_max, 0,
    ifelse(
      x >= opt_min & x <= opt_max, 1,
      ifelse(
        x < opt_min, (x - abs_min) / (opt_min - abs_min),
        (abs_max - x) / (abs_max - opt_max)
      )
    )
  )
}

# 4. Parámetros para caña de azúcar
params_temp <- list(opt_min = 22.5, opt_max = 28, abs_min = 15, abs_max = 35)
params_prec <- list(opt_min = 125, opt_max = 290, abs_min = 50, abs_max = 400)

# 5. Calcular aptitud mensual
aptitud_temp2 <- app(tavg_col, fun = function(x) {
  calc_aptitud(x, params_temp$opt_min, params_temp$opt_max, 
               params_temp$abs_min, params_temp$abs_max)
})
|---------|---------|---------|---------|=========================================                                          
aptitud_prec2 <- app(prec_col, fun = function(x) {
  calc_aptitud(x, params_prec$opt_min, params_prec$opt_max, 
               params_prec$abs_min, params_prec$abs_max)
})
|---------|---------|---------|---------|=========================================                                          
# 6. Combinar aptitudes usando media geométrica
aptitud_combinada <- sqrt(aptitud_temp2 * aptitud_prec2)
|---------|---------|---------|---------|=========================================                                          |---------|---------|---------|---------|=========================================                                          
# 7. Aptitud anual (promedio de todos los meses)
aptitud_anual <- app(aptitud_combinada, mean, na.rm = TRUE)

# 8. Clasificación de aptitud (CORRECCIÓN CLAVE)
# Primero crear un raster numérico de categorías
clasificar_aptitud_num <- function(x) {
  ifelse(x >= 0.8, 4,  # Óptima
         ifelse(x >= 0.6, 3,  # Alta
                ifelse(x >= 0.4, 2,  # Moderada
                       ifelse(x >= 0.2, 1, 0)))) # Marginal/No apta
}

aptitud_categorias_num <- app(aptitud_anual, clasificar_aptitud_num)

# 9. Convertir a raster categórico (MÉTODO CORRECTO)
# Definir tabla de categorías
categorias <- data.frame(
  id = 0:4,
  categoria = c("No apta", "Marginal", "Moderada", "Alta", "Óptima")
)

# Asignar categorías usando levels<-
levels(aptitud_categorias_num) <- categorias

# 10. Visualización con terra
par(mfrow = c(1, 2))
plot(aptitud_anual, 
     main = "Índice de Aptitud (0-1)",
     col = hcl.colors(100, "RdYlGn"))

# Usar el raster categórico directamente
plot(aptitud_categorias_num, 
     main = "Categorías de Aptitud",
     col = c("red", "orange", "yellow", "greenyellow", "green3"),
     type = "classes")

La aptitud combinada se calcula usando media geométrica (sqrt(aptitud_temp_mes * aptitud_prec_mes)), que penaliza valores bajos en cualquier variable. Luego, se promedian los 12 meses para obtener un raster anual de aptitud (aptitud_anual). Este indicador continuo (0-1) se clasifica en 5 categorías mediante una función escalonada: Óptima (>0.8), Alta (0.6-0.8), Moderada (0.4-0.6), Marginal (0.2-0.4) y No apta (<0.2). La clasificación considera que valores altos requieren cumplir simultáneamente con ambos factores climáticos.

La imagen muestra un mapa de Colombia con la clasificación de la aptitud climática para el cultivo de caña de azúcar, según cinco categorías: no apta, marginal, moderada, alta y óptima, representadas en una escala de colores del rojo al verde. Se observa que las zonas con condiciones óptimas (verde oscuro) para este cultivo se concentran principalmente en el Valle del Cauca y los Llanos Orientales, regiones con clima cálido y condiciones agroclimáticas favorables. En contraste, las zonas andinas y montañosas presentan limitaciones severas (en rojo), debido principalmente a factores como la altitud y la temperatura. Esta clasificación permite identificar las regiones más adecuadas para el desarrollo eficiente de este cultivo y orientar la planificación agrícola y territorial.

# 11. Visualización mejorada con ggplot2
ggplot() +
  geom_spatraster(data = aptitud_categorias_num) +
  scale_fill_manual(
    name = "Aptitud",
    values = c("No apta" = "red", 
               "Marginal" = "orange", 
               "Moderada" = "yellow", 
               "Alta" = "greenyellow", 
               "Óptima" = "green3"),
    na.translate = FALSE,
    labels = categorias$categoria
  ) +
  labs(title = "Aptitud para Caña de Azúcar en Colombia",
       subtitle = "Zonas óptimas: Valle del Cauca, Llanos Orientales",
       caption = "Fuente: WorldClim v2.1") +
  theme_minimal()

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.