R Markdown

# Instalar paquetes necesarios si no están instalados
if (!require("raster")) install.packages("raster")
## Loading required package: raster
## Loading required package: sp
if (!require("terra")) install.packages("terra")
## Loading required package: terra
## terra 1.7.71
if (!require("mapview")) install.packages("mapview")
## Loading required package: mapview
## Warning: package 'mapview' was built under R version 4.3.3
# Cargar las bibliotecas
library(raster)
library(terra)
library(mapview)
# Definir rutas de los archivos ZIP
zip_temp <- "C:/Users/Daniel Restrepo/Desktop/Datos espaciales y geograficos/temperatura.zip"
zip_prec <- "C:/Users/Daniel Restrepo/Desktop/Datos espaciales y geograficos/precipitacion.zip"

# Ruta de extracción
ruta_extraccion <- "C:/Users/Daniel Restrepo/Desktop/Datos espaciales y geograficos/"

# Extraer los archivos
unzip(zip_temp, exdir = ruta_extraccion)
unzip(zip_prec, exdir = ruta_extraccion)
# Cargar bibliotecas necesarias
library(raster)
library(terra)

# Listar archivos .tif
temp_files <- list.files(ruta_extraccion, pattern = "tavg.*\\.tif$", full.names = TRUE)
prec_files <- list.files(ruta_extraccion, pattern = "prec.*\\.tif$", full.names = TRUE)

# Crear un stack para los archivos de temperatura y precipitación
temp_stack <- stack(temp_files)
prec_stack <- stack(prec_files)

# Visualizar un ejemplo
plot(temp_stack[[1]], main="Temperatura - Enero")

plot(prec_stack[[1]], main="Precipitación - Enero")

Inicialmente, generamos mapas globales de temperatura y precipitación para enero, visualizando las condiciones climáticas en diferentes regiones del mundo. La temperatura se muestra en una escala de color que va desde tonos verdes (temperaturas cálidas) hasta tonos rosados (temperaturas frías), mientras que la precipitación muestra valores desde 0 mm hasta 800 mm. Esto proporciona una referencia inicial de los rangos climáticos en distintas áreas, permitiendo identificar visualmente regiones que podrían cumplir con los criterios óptimos de temperatura (22.5 a 28 °C) y precipitación (125 a 290 mm mensuales)

# Crear filtros de aptitud climática
aptitud_temp <- calc(temp_stack, fun = function(x) { x >= 22.5 & x <= 28 })
aptitud_prec <- calc(prec_stack, fun = function(x) { x >= 125 & x <= 290 })

# Multiplicar los filtros para obtener el mapa combinado de aptitud climática
aptitud_climatica <- aptitud_temp * aptitud_prec

# Visualizar el mapa de aptitud climática
plot(aptitud_climatica, main="Mapa de Aptitud Climática para Caña de Azúcar")

A continuación, se generarán mapas de aptitud climática específicos para el cultivo de caña de azúcar, basados en los criterios de temperatura y calentamiento identificados. Estos mapas muestran en verde las zonas que cumplen con los rangos óptimos para el cultivo a nivel mundial, destacando principalmente regiones tropicales y subtropicales. La superposición de estos mapas sobre los límites de países nos permitió aislar y analizar mejor las áreas aptas por país, enfocándonos en zonas específicas que podrían presentar alto potencial para el cultivo de caña de azúcar.

# Ruta del archivo ZIP de shapes
zip_shp <- "C:/Users/Daniel Restrepo/Desktop/Datos espaciales y geograficos/country_shapes.zip"

# Ruta de extracción para el shapefile
ruta_extraccion_shp <- "C:/Users/Daniel Restrepo/Desktop/Datos espaciales y geograficos/"

# Extraer el shapefile
unzip(zip_shp, exdir = ruta_extraccion_shp)
# Cargar el shapefile utilizando sf
library(sf)
## Warning: package 'sf' was built under R version 4.3.3
## Linking to GEOS 3.11.2, GDAL 3.8.2, PROJ 9.3.1; sf_use_s2() is TRUE
# Asume que el shapefile tiene el nombre "country_shapes.shp" después de extraerlo (ajusta el nombre si es necesario)
shapefile_path <- file.path(ruta_extraccion_shp, "country_shapes.shp")
paises <- st_read(shapefile_path)
## Reading layer `country_shapes' from data source 
##   `C:\Users\Daniel Restrepo\Desktop\Datos espaciales y geograficos\country_shapes.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 252 features and 7 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -180 ymin: -90 xmax: 180 ymax: 83.6236
## Geodetic CRS:  WGS 84
# Verifica que el shapefile esté cargado correctamente
print(paises)
## Simple feature collection with 252 features and 7 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -180 ymin: -90 xmax: 180 ymax: 83.6236
## Geodetic CRS:  WGS 84
## First 10 features:
##              cntry_name            join_name iso2_2 iso_a2 iso2 cou_iso3_co
## 1                Brunei               Brunei   <NA>     BN   BN         BRN
## 2        Czech Republic           Czech Rep.   <NA>   <NA>   NA          NA
## 3            Guadeloupe           Guadeloupe     GP   <NA>   GP         GLP
## 4                  Laos              Lao PDR   <NA>   <NA>   NA          NA
## 5                 Libya                Libya   <NA>     LY   LY         LBY
## 6            Montserrat           Montserrat     MS   <NA>   MS         MSR
## 7                 Malta                Malta     MT   <NA>   MT         MLT
## 8        Norfolk Island       Norfolk Island     NF   <NA>   NF         NFK
## 9  United Arab Emirates United Arab Emirates   <NA>     AE   AE         ARE
## 10               Tuvalu               Tuvalu     TV   <NA>   TV         TUV
##    iso3                       geometry
## 1   BRN MULTIPOLYGON (((114.0951 4....
## 2    NA MULTIPOLYGON (((18.14528 49...
## 3   GLP MULTIPOLYGON (((-61.54187 1...
## 4    NA MULTIPOLYGON (((104.257 17....
## 5   LBY MULTIPOLYGON (((25.00123 27...
## 6   MSR MULTIPOLYGON (((-62.17139 1...
## 7   MLT MULTIPOLYGON (((14.51972 35...
## 8   NFK MULTIPOLYGON (((167.965 -29...
## 9   ARE MULTIPOLYGON (((56.28047 24...
## 10  TUV MULTIPOLYGON (((177.2903 -6...
# Utilizar el shapefile para enmascarar el mapa de aptitud climática
aptitud_climatica_paises <- mask(aptitud_climatica, paises)

# Visualizar el mapa de aptitud con límites de países
plot(aptitud_climatica_paises, main="Mapa de Aptitud Climática con Límites de Países")

# Crear una capa binaria única de aptitud (1 = apto, 0 = no apto)
aptitud_climatica_unica <- calc(aptitud_climatica, fun = function(x) ifelse(all(x == 1), 1, 0))

# Visualizar la capa binaria
plot(aptitud_climatica_unica, main = "Mapa Binario de Aptitud Climática")

# Convertir la capa binaria a un objeto poligonal
aptitud_vect <- rasterToPolygons(aptitud_climatica_unica, dissolve = TRUE)

# Convertir a un objeto `sf` para trabajar con geometría espacial y aplicar intersecciones
aptitud_vect_sf <- st_as_sf(aptitud_vect)

# Intersección con los límites de países
aptitud_paises <- st_intersection(aptitud_vect_sf, paises)
## Warning: attribute variables are assumed to be spatially constant throughout
## all geometries
# Visualizar los países con zonas de alto potencial
plot(st_geometry(paises), col = "lightgrey", main = "Zonas de Alto Potencial por País")
plot(st_geometry(aptitud_paises), col = "green", add = TRUE)

# Coordenadas de puntos de interés en el Valle del Cauca
coords <- matrix(c(-76.5, 3.5, -76.3, 3.6, -76.4, 3.7), ncol=2, byrow=TRUE)
colnames(coords) <- c("lon", "lat")

# Extraer series de tiempo de temperatura y precipitación para los puntos seleccionados
temp_vals <- extract(temp_stack, coords)
prec_vals <- extract(prec_stack, coords)

# Graficar las series de tiempo de temperatura para los puntos
par(mfrow = c(1, 2))  # Panel de gráficos de 1x2
matplot(temp_vals, type = "l", col = 1:3, lty = 1, main = "Temperatura en el Valle del Cauca", xlab = "Mes", ylab = "Temperatura (°C)")
legend("topright", legend = paste("Punto", 1:3), col = 1:3, lty = 1)

# Graficar las series de tiempo de precipitación para los puntos
matplot(prec_vals, type = "l", col = 1:3, lty = 1, main = "Precipitación en el Valle del Cauca", xlab = "Mes", ylab = "Precipitación (mm)")
legend("topright", legend = paste("Punto", 1:3), col = 1:3, lty = 1)

Para profundizar en la caracterización climática de Colombia, se seleccionaron tres puntos al azar dentro del Valle del Cauca , extrayendo series de tiempo de temperatura y precipitación durante los primeros tres meses del año. Los gráficos muestran una tendencia general de temperaturas entre 21,5 °C y 23,5 °C, y precipitaciones que oscilan entre 50 mm y 200 mm. Estas series proporcionan una referencia local que permite evaluar qué tan similares son otras regiones en comparación con el clima característico del Valle del Cauca.

# Calcular las medias de los valores de temperatura y precipitación de referencia
temp_ref_mean <- rowMeans(temp_vals, na.rm = TRUE)
prec_ref_mean <- rowMeans(prec_vals, na.rm = TRUE)

# Calcular la similaridad para cada stack de manera separada y combinar
similaridad_temp <- calc(temp_stack, fun = function(x) (x - temp_ref_mean)^2)
similaridad_prec <- calc(prec_stack, fun = function(x) (x - prec_ref_mean)^2)

# Sumar las diferencias cuadradas y calcular la raíz cuadrada (distancia euclidiana)
similaridad_global <- sqrt(similaridad_temp + similaridad_prec)

# Visualizar el mapa de similaridad climática
plot(similaridad_global, main = "Mapa de Similaridad Climática Global")

# Filtrar el shapefile para obtener el área de Colombia usando `cntry_name`
colombia <- paises[paises$cntry_name == "Colombia", ]

# Verificar si se encontró alguna geometría para Colombia
if (nrow(colombia) == 0) {
  stop("No se encontraron geometrías para Colombia. Verifica los valores en el shapefile.")
}

# Reparar geometría si es necesario
if (!st_is_valid(colombia)) {
  colombia <- st_make_valid(colombia)
}

# Visualizar el área de Colombia
plot(st_geometry(colombia), col = "lightgrey", main = "Área de Colombia")

# Aplicar la máscara de Colombia al mapa de aptitud climática
aptitud_climatica_colombia <- mask(aptitud_climatica, colombia)

# Visualizar el mapa de aptitud climática recortado a Colombia
plot(aptitud_climatica_colombia, main = "Mapa de Aptitud Climática en Colombia")

Para un análisis detallado, se recortaron los mapas de aptitud climática específicamente para Colombia . Esta visualización se centra en identificar las áreas dentro del país que cumplen con los criterios de aptitud climática. La mayoría de las zonas aptas se encontraron en las regiones cálidas y húmedas del país, especialmente en áreas cercanas al Valle del Cauca, una región conocida por su alta producción de caña de azúcar. Este enfoque permite identificar las zonas en Colombia con condiciones óptimas, lo que es útil para planificar y expandir cultivos en territorios con características similares.

# Aplicar la máscara de Colombia al mapa de similaridad climática
similaridad_climatica_colombia <- mask(similaridad_global, colombia)

# Visualizar el mapa de similaridad climática recortado a Colombia
plot(similaridad_climatica_colombia, main = "Mapa de Similaridad Climática en Colombia")

##Conclusiones

Identificación de Zonas Óptimas en Colombia : Los mapas de aptitud climática muestran que Colombia cuenta con diversas zonas aptas para el cultivo de caña de azúcar, especialmente en áreas cálidas y húmedas como el Valle del Cauca y algunas partes de la región Caribe y el suroeste. Esto respalda el potencial del país para expandir sus cultivos en áreas con condiciones adecuadas para maximizar la producción.

Referencias Climatológicas del Valle del Cauca : Las series de tiempo extraídas para tres puntos del Valle del Cauca confirman que esta región tiene condiciones ideales de temperatura y precipitación para el cultivo de caña de azúcar. Estos datos sirven como una referencia local valiosa para identificar otras zonas con condiciones similares, tanto en Colombia como en otras partes del mundo.

Similitud Climática con el Valle del Cauca : El análisis de similitud climática mostró que existen otras regiones, dentro y fuera de Colombia, que presentan condiciones climáticas análogas a las del Valle del Cauca. Esto sugiere que podría ser factible introducir el cultivo de caña de azúcar en nuevas áreas que compartan estas características, lo cual sería ventajoso en términos de diversificación y expansión agrícola.

Comparación Global y Potencial de Expansión : A nivel global, los mapas de aptitud climática identifican regiones tropicales y subtropicales en países de Asia, África y América Latina como zonas de alto potencial para el cultivo de caña de azúcar. Esta información es útil para establecer comparaciones internacionales y entender el contexto global del cultivo.