Taller 2

Karen Marcela Rosero Ramos

2024-05-17

Zonas óptimas cultivo de caña de azucar

El estudio se enfoca en identificar las regiones globales más propicias para el cultivo de la caña de azúcar, considerando ciertos factores restrictivos:

La temperatura promedio ideal oscila entre 22.5 y 28 grados centígrados, con una precipitación anual de 1500 a 3500 milímetros y una precipitación mensual de 125 a 290 milímetros.

  1. Utilizando los datos de clima de línea base a nivel global, genere un código en R que permita construir mapas de aptitud en términos climáticos para la caña de azúcar (con base en los rangos óptimos). Grafique los mapas con una escala de colores adecuada.

Para lo anterior, se adjunta la base de datos tipo raster del clima del año 2020 para precipitación y temperatura descargada de la plataforma worldClim

options(repos = c(CRAN = "https://cran.rstudio.com"))
# Cargar las librerías necesarias
library(raster)
## Loading required package: sp
library(sp)

# Especifica el directorio donde se encuentran tus archivos TIF
directorio <- "C:/Users/karen/Downloads/datostemp"

# Lista todos los archivos TIF en el directorio especificado
archivos <- list.files(directorio, pattern = "\\.tif$", full.names = TRUE)

# Carga los archivos TIF como un stack de raster
temp_avg <- stack(archivos)

# Asigna los nombres de los meses a las capas del stack
names(temp_avg) <- month.name

# Grafica el stack de rasters
plot(temp_avg)

# Cargar las librerías necesarias
library(raster)
library(sf)
## Linking to GEOS 3.11.2, GDAL 3.7.2, PROJ 9.3.0; sf_use_s2() is TRUE
# Especifica el nuevo directorio donde se encuentran tus archivos TIF
directorio_prec <- "C:/Users/karen/Downloads/datospreci"

# Lista todos los archivos TIF en el nuevo directorio especificado
archivos_prec <- list.files(directorio_prec, pattern = "\\.tif$", full.names = TRUE)

# Imprime la lista de archivos encontrados para verificación
print(archivos_prec)
##  [1] "C:/Users/karen/Downloads/datospreci/wc2.1_10m_prec_01.tif"
##  [2] "C:/Users/karen/Downloads/datospreci/wc2.1_10m_prec_02.tif"
##  [3] "C:/Users/karen/Downloads/datospreci/wc2.1_10m_prec_03.tif"
##  [4] "C:/Users/karen/Downloads/datospreci/wc2.1_10m_prec_04.tif"
##  [5] "C:/Users/karen/Downloads/datospreci/wc2.1_10m_prec_05.tif"
##  [6] "C:/Users/karen/Downloads/datospreci/wc2.1_10m_prec_06.tif"
##  [7] "C:/Users/karen/Downloads/datospreci/wc2.1_10m_prec_07.tif"
##  [8] "C:/Users/karen/Downloads/datospreci/wc2.1_10m_prec_08.tif"
##  [9] "C:/Users/karen/Downloads/datospreci/wc2.1_10m_prec_09.tif"
## [10] "C:/Users/karen/Downloads/datospreci/wc2.1_10m_prec_10.tif"
## [11] "C:/Users/karen/Downloads/datospreci/wc2.1_10m_prec_11.tif"
## [12] "C:/Users/karen/Downloads/datospreci/wc2.1_10m_prec_12.tif"
# Comprueba si se encontraron archivos antes de proceder
if (length(archivos_prec) == 0) {
  stop("No se encontraron archivos TIF en el directorio especificado.")
}

# Carga los archivos TIF como un stack de raster
prec_avg <- stack(archivos_prec)

# Asigna los nombres de los meses a las capas del stack
names(prec_avg) <- month.name

# Grafica el stack de rasters
plot(prec_avg)

Raster para temperatura año 2020

archivo=list.files("C:/Users/karen/Downloads/datostemp", full.names = TRUE)
temp_avg=stack(archivo)
names(temp_avg)=month.name
plot(temp_avg)

Raster para precipitación año 2020

archivo_prec=list.files("C:/Users/karen/Downloads/datospreci", full.names = TRUE)
prec_avg=stack(archivo_prec)
names(prec_avg)=month.name
plot(prec_avg)

También se procede a importar el archivo shapefile que incluye la división político-administrativa a nivel mundial, el cual contiene datos actualizados hasta el 31 de marzo de 2014 y fue descargado de la plataforma ArcGIS Hub.

paises = shapefile("C:/Users/karen/Downloads/mapas/Mapa_paises_mundo.shp")
plot(paises)

  1. Identifique 2 o 3 países con áreas de alto potencial para la caña de azúcar y realice un corte para estas zonas con el shape global. Grafique los mapas con una escala de colores adecuada.

Rangos óptimos de temperatura

Inicialmente, se determinan los intervalos óptimos potenciales de temperatura para el cultivo de caña de azúcar, los cuales se sitúan dentro del rango de 22.5 a 28 grados centígrados.

temp_optima=temp_avg>=22.5 & temp_avg<=28
temp_indicador=sum(temp_optima)
plot(temp_indicador)

En el mapa de temperatura en formato raster, siguiendo los rangos definidos en el estudio, se nota que la región central, próxima a la línea ecuatorial, satisface este criterio.

Ahora se requiere transformar la temperatura a porcentajes, ya que esto ofrece una comprensión relativa más clara sobre cuántos países tienen una temperatura promedio dentro del rango deseado en relación con el total de países evaluados.

#Se ajusta el indicador para presentarlo como porcentaje
temp_indicador2=temp_indicador/12*100
plot(temp_indicador2)

Al transformar el número de países que tienen una temperatura ideal en porcentaje, se facilita la comprensión de la proporción de países que cumplen con el criterio definido en comparación con el total de países evaluados situados en las proximidades de la línea ecuatorial.

Rangos óptimos de precipitación

Por otro lado, se identifican los rangos óptimos potenciales del cultivo de caña de azúcar por precipitación mensual entre 125 y 290 mm.

prec_optima=prec_avg>=125 & prec_avg<=290
indicador_prec=sum(prec_optima)
plot(indicador_prec)

En lo referente a la precipitación, se nota que países como Venezuela, Brasil, Ecuador y Perú, cercanos a Colombia, exhiben patrones de precipitación favorables para el cultivo, al igual que varias naciones en África central y Asia.

Después, se requiere transformar los datos de precipitación en porcentaje, lo cual facilita una comprensión más clara de cuántos países presentan niveles mensuales de precipitación dentro del rango deseado en comparación con el total de países evaluados.

indicador_prec2=indicador_prec/12*100
plot(indicador_prec2)

Al convertir la cantidad de países con una precipitación óptima en un porcentaje, se puede visualizar de manera más clara la proporción de países que cumplen con el criterio establecido en relación con el total de países evaluados.

con base en lo anterior, se selecciona los países que cuenran con los criterios anteriormente planteados, para lo que es vital elegir los países que cuentan con una temperatura óptima.

no_optimos_t=which(temp_indicador2[]<75)
temp_indicador2[no_optimos_t]=NA

plot(temp_indicador2)

De la misma manera, se realizar la elección de países que cuentan con criterios adecuados de precipitación

no_optimos_p=which(indicador_prec2[]<75)
indicador_prec2[no_optimos_p]=NA

plot(indicador_prec2)

Al final, se reúnen los criterios que determinan las áreas ideales para tomar la decisión definitiva sobre los países donde se pueden establecer cultivos de caña de azúcar con rendimientos óptimos.

lugares_optimos= (temp_indicador2+indicador_prec2)/2
plot(paises, main="Area con los mejores resultados para el cultivo de cana de azucar")
plot(lugares_optimos, add=T, col="green")

Según el estudio efectuado, se sugiere que las áreas idóneas para la producción de caña de azúcar, en términos de temperatura y precipitación, son Colombia, Brasil, la República del Congo y el sur de Asia.

  1. Identificar algunos puntos (2 o 3) al azar en la región del valle del cauca (use google maps) y extraer la información de clima. Grafique las series de tiempo de temperatura y precipitación.

Identificación de puntos en el Valle del Cauca

Para este ejercicio se opta por 3 puntos uno es cercano al Ingenio Castilla, el segundo al Ingenio la Carmelita y el tercero el Ingenio Manuelita. Cabe resaltar que en estos se cultiva y procesa la caña de azucar, es decir que, se encuentran acompañados de procesos productivos que se destacan en la agroindustria de la región.

Primer punto. Ingenio Castilla

# Instalar el paquete leaflet 
install.packages("leaflet")
## Installing package into 'C:/Users/karen/Downloads/Taller 2 estadística geoespacial/renv/library/R-4.3/x86_64-w64-mingw32'
## (as 'lib' is unspecified)
## package 'leaflet' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\karen\AppData\Local\Temp\Rtmpei2vWR\downloaded_packages
# Cargar la librería leaflet
library(leaflet)
## Warning: package 'leaflet' was built under R version 4.3.3
# Crear el mapa con marcadores de círculo
leaflet() %>% 
  addTiles() %>% 
  addCircleMarkers(lng = -76.26667, lat = 3.36671)
punto1 <- data.frame(
  longitude = c(-76.26667), 
  latitude = c(3.36671)   
)
temp_punto1=as.data.frame( extract(temp_avg,punto1))
prec_punto1= as.data.frame( extract(prec_avg,punto1))
temp_punto1
##    January February    March   April   May   June   July   August September
## 1 22.39325  22.5095 22.65275 22.3665 22.29 22.272 22.586 22.74975   22.5825
##    October November December
## 1 22.02425  21.8485   22.063
Punto1_temp=ts(as.numeric(temp_punto1[1,]))
plot(Punto1_temp, main= "Temperatura - Punto 1", col="purple")

prec_punto1
##   January February March April May June July August September October November
## 1      99      109   143   181 154  108   53     68       107     203      179
##   December
## 1      128
Punto1_prec=ts(as.numeric(prec_punto1[1,]))
plot(Punto1_prec, main= "Precipitacion - Punto 1", col="blue")

Segundo Punto. Ingenio la Carmelita

require(leaflet)
leaflet() %>% addTiles() %>% addCircleMarkers(lng =-76.334641 ,lat =4.071176)
punto2 <- data.frame(
  longitude = c(-76.334641), 
  latitude = c(4.071176)        
)
temp_punto2=as.data.frame( extract(temp_avg,punto2))
prec_punto2= as.data.frame( extract(prec_avg,punto2))
temp_punto2
##   January February    March  April      May     June    July August September
## 1  17.467   17.601 17.75725 17.587 17.57075 17.46775 17.6365 17.556   17.4915
##    October November December
## 1 17.01025   16.995 17.34175
Punto2_temp=ts(as.numeric(temp_punto2[1,]))
plot(Punto2_temp, main= "Temperatura - Punto 2", col="red")

prec_punto2
##   January February March April May June July August September October November
## 1     105      110   143   207 182  132   87    107       131     242      203
##   December
## 1      148
Punto2_prec=ts(as.numeric(prec_punto2[1,]))
plot(Punto2_prec, main= "Precipitacion - Punto 2", col="green")

Tercer Punto. Ingenio Manuelita

require(leaflet)
leaflet() %>% addTiles() %>% addCircleMarkers(lng =-76.30749588236598 ,lat =3.5830462652466983)
punto3 <- data.frame(
  longitude = c(-76.30749588236598), 
  latitude = c(3.5830462652466983) 
)
temp_punto3=as.data.frame( extract(temp_avg,punto3))
prec_punto3= as.data.frame( extract(prec_avg,punto3))
temp_punto3
##    January February    March    April     May   June    July   August September
## 1 22.50275  22.6155 22.73675 22.44175 22.3585 22.328 22.6225 22.74675  22.57575
##    October November December
## 1 22.02075 21.88275 22.14775
Punto3_temp=ts(as.numeric(temp_punto3[1,]))
plot(Punto3_temp, main= "Temperatura - Punto 3", col="brown")

prec_punto3
##   January February March April May June July August September October November
## 1      92      102   132   172 146  112   61     73       105     195      173
##   December
## 1      121
Punto3_prec=ts(as.numeric(prec_punto3[1,]))
plot(Punto3_prec, main= "Precipitacion - Punto 3", col="brown")

Mapa de similaridad en las ubicaciones seleccionadas

Primer Punto. Ingenio Castilla

require(RColorBrewer)
## Loading required package: RColorBrewer
require(rasterVis)
## Loading required package: rasterVis
## Loading required package: lattice
require(lattice)
# Instalar los paquetes necesarios si no están instalados
if (!requireNamespace("raster", quietly = TRUE)) {
  install.packages("raster")
}
if (!requireNamespace("ggplot2", quietly = TRUE)) {
  install.packages("ggplot2")
}
if (!requireNamespace("RColorBrewer", quietly = TRUE)) {
  install.packages("RColorBrewer")
}

# Cargar las librerías necesarias
library(raster)
library(ggplot2)
library(RColorBrewer)
diferencia <- sqrt(sum((temp_avg - as.numeric(Punto1_temp))^2))
plot(diferencia, main ="Zonas similares a Castilla en temperatura")

diferencia2=sqrt(sum((prec_avg-as.numeric(Punto1_prec))^2))
plot(diferencia2, main = "Zonas similares a Castilla en precipitación")

filtro_temp<-diferencia
filtro_temp[(filtro_temp >24)] <- NA
filtro_prec<-diferencia2
filtro_prec[(filtro_prec >240)] <- NA

Castilla<-filtro_prec & filtro_temp
opar <- par()
par(mar = c(0,0, 0, 0))
plot(paises)
plot(Castilla,add=T, col="purple",breaks=c(1,1.1),legend=FALSE)

El grafico anterior señala la superposición de los datos y la ubicacion espacial para el primer punto y las zonas resaltadas representan las áreas en las que se genera interseccion entre los puntos de temperatura y precipitación filtrados, los cuales en su gran mayoría se encuentran en Uruguay.

Segundo Punto. Ingenio la Carmelita

diferencia3 <- sqrt(sum((temp_avg - as.numeric(Punto2_temp))^2))
plot(diferencia3, main ="Zonas similares a Carmelita en temperatura")

diferencia4=sqrt(sum((prec_avg-as.numeric(Punto2_prec))^2))
plot(diferencia4, main = "Zonas similares a Carmelita en precipitación")

filtro_temp1<-diferencia3
filtro_temp1[(filtro_temp1 >20)] <- NA
filtro_prec1<-diferencia4
filtro_prec1[(filtro_prec1 >240)] <- NA

carmelita<-filtro_prec1 & filtro_temp1
opar <- par()
par(mar = c(0,0, 0, 0))
plot(paises)
plot(carmelita,add=T, col="magenta",breaks=c(1,1.1),legend=FALSE)

Con el grafico anterior es posible encontrar la superposicion de los datos y la ubicación espacial para el punto en observacion, donde las zonas resaltadas representan las areas en las que hay intersección entre los datos de temperatura y precipitación filtrados, en gran parte se encuentra en Uruguay.

Tercer Punto. Ingenio Manuelita

Al igual que en los puntos anteriores, se prosigue a calcular la diferencia de temperaturas para el tercer punto cercano al Ingenio Manuelita en el Valle del Cauca

diferencia5 <- sqrt(sum((temp_avg - as.numeric(Punto3_temp))^2))
plot(diferencia5, main ="Zonas similares a Manuelita en temperatura")

diferencia6=sqrt(sum((prec_avg-as.numeric(Punto3_prec))^2))
plot(diferencia6, main = "Zonas similares a manuelita en precipitación")

filtro_temp1<-diferencia5
filtro_temp1[(filtro_temp1 >20)] <- NA
filtro_prec1<-diferencia5
filtro_prec1[(filtro_prec1 >240)] <- NA

carmelita<-filtro_prec1 & filtro_temp1
opar <- par()
par(mar = c(0,0, 0, 0))
plot(paises)
plot(carmelita,add=T, col="blue",breaks=c(1,1.1),legend=FALSE)

La imagen anterior establece la coincidencia de los datos y la disposición espacial para el punto 3, con áreas resaltadas en azul que indican la intersección entre los datos de temperatura y precipitación filtrados. Mayormente, estas áreas se localizan en Brasil, la República Democrática del Congo, Centroamérica y el Sur de Asia.

Conclusiones

El análisis de las condiciones atmosféricas, particularmente la temperatura y la lluvia, ha permitido determinar los lugares más idóneos para el cultivo de caña de azúcar en todo el mundo, basándose en registros históricos obtenidos. Este examen facilita una delimitación geográfica más precisa en las zonas potenciales donde se pueden lograr condiciones óptimas de eficacia, eficiencia, rentabilidad y productividad agrícola, reduciendo así posibles pérdidas tanto en la producción como en los aspectos económicos para los agricultores.

El estudio de datos espaciales brinda una comprensión más minuciosa y precisa de las condiciones que propician el éxito en la agricultura. Esta evaluación puede aplicarse a otros cultivos y procedimientos productivos con el fin de minimizar los riesgos vinculados a la actividad agrícola. Estas investigaciones cobran aún mayor importancia en el escenario actual, caracterizado por las oscilaciones climáticas relacionadas con el cambio climático global, lo cual ha incrementado la demanda de análisis que contribuyan a atenuar los riesgos de pérdida de cosechas debido a la volatilidad climática.