# 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.