Introducción

El análisis de datos espaciales ha emergido como una herramienta fundamental para comprender los patrones y distribuciones de los fenómenos que ocurren en la superficie terrestre. Al aplicar técnicas de geoprocesamiento a imágenes satelitales, este estudio busca identificar y mapear las regiones del mundo con las condiciones climáticas óptimas para el cultivo de caña de azúcar, considerando variables como temperatura y precipitación. De igual forma, a través de una comparación detallada entre las zonas identificadas a nivel mundial y las áreas del Valle del Cauca, se pretende determinar similitudes y diferencias en sus condiciones climáticas.

Métodos

Este informe hace uso de herramientas espaciales en RStudio con base en las librerías más utilizadas para el análisis geoespacial cómo raster, terra, sp, sf, entre otras. De igual forma, se estipula abordar las siguientes etapas:

  1. Exploratorio de imagenes, realización de mapas e interpretación.
  2. Resultados y Conclusiones

1. Exploratorio de imagenes, realización de mapas e interpretación.

En este apartado, se realizará la carga de las base de datos,además de los paquetes a utilizar para el desarrollo de la actividad.

1.1 Paquete de librerías.

Consolidado de paquete de librerias a utilizar en el proyecto.

library(sp)
library(raster)
library(terra)
library(lattice)
library(rasterVis)
library(RColorBrewer)
library(gridExtra)
library(leaflet)
library(rnaturalearth)
library(sf)

1.2 Exploratorio y entendimiento de los datos

El agricultor interesado en el cultivo de la caña de azúcar, necesita identificar las regiones que cuentan con las mejores condiciones para el desarrollo de este cultivo, teniendo en cuenta los siguientes parametros óptimos:

  • Temperatura media entre 22,5 y 28 grados
  • Precipitación anual entre 1.500 y 3.500 milimetros
  • Precipitación mensual entre 125 y 290 milimetros

Precipitación promedio de enero a diciembre entre 1970 y 2000

Tenemos las imágenes de la precipitación mundial promedio para los meses de enero a diciembre entre los años 1970 y 2000, con una resolución espacial de 10 minutos (~340 km2) descargada de la pagina web WorldClim en su apéndice “Historical Climate Data”.

#Precipitación promedio de enero a diciembre entre 1970 y 2000
files = list.files(("C:/Users/gusta/OneDrive/Escritorio/Maestria_Ciencia_ Datos/2do Semestre/Georeferenciación/Modulo 1/Unidad 2/Entrega2/wc2.1_10m_prec/"), full.names = TRUE)
precip_ene_a_dic = stack(files)
names(precip_ene_a_dic) = month.name
summary(precip_ene_a_dic)
##         January February   March   April     May    June    July  August
## Min.          0        0       0       0       0       0       0       0
## 1st Qu.       0        2       5       7       8       2       7      15
## Median       12       13      18      21      24      23      34      39
## 3rd Qu.      39       37      47      48      53      63      74      75
## Max.        743      567     647     680     640    1173    1718    1329
## NA's    1521009  1521009 1521009 1521009 1521009 1521009 1521009 1521009
##         September October November December
## Min.            0       0        0        0
## 1st Qu.         5       5        2        1
## Median         29      24       17       15
## 3rd Qu.        61      56       48       43
## Max.          766     727      617      747
## NA's      1521009 1521009  1521009  1521009

Una rápida observación, permite identificar que los meses de Agosto y Julio, son los que mayor promedio de precipitación tienen alcanzando valores máximos de 1718 mm. Por su parte, diciembre, enero y febrero son los que menor precipitación tienen con un promedio cercado a los 13mm.

De igual forma, el siguiente gráfico evidencia las zonas con la mayor precipitación a lo largo de los años de análisis, ubicados en la línea ecuatorial. Y algunas precipitaciones hacia america del norte. (Se establece un limite, dado que los datos atipicos disminuyen la intensidad del mapa)

theme_precip = rasterTheme(region = brewer.pal(9,"YlGnBu"))
levelplot(precip_ene_a_dic, 
          par.settings=theme_precip,
          main = "Nivel de precipitación por mes [1970-2000]",
          at = seq(0, 800, length.out = 8))

Temperatura promedio de enero a diciembre entre 1970 a 2000

Por otra parte, de este mismo portal se descargaron las imágenes de la temperatura promedio en grados centígrados (C°) en el mismo periodo de años (1970-2000) y resolución espacios (~340 km2).

#Temperatura promedio de enero a diciembre entre 1970 a 2000
files2 = list.files(("C:/Users/gusta/OneDrive/Escritorio/Maestria_Ciencia_ Datos/2do Semestre/Georeferenciación/Modulo 1/Unidad 2/Entrega2/wc2.1_10m_tavg"), full.names = TRUE)
tempavg_ene_a_dic = stack(files2)
names(tempavg_ene_a_dic) = month.name
summary(tempavg_ene_a_dic)
##               January      February         March         April           May
## Min.        -45.47475     -44.79750     -57.90050 -6.418850e+01     -64.69050
## 1st Qu.     -24.57931     -28.10106     -28.64813 -2.704531e+01     -26.26706
## Median      -12.22363     -13.04150      -8.36775 -3.433750e-01       6.11625
## 3rd Qu.      13.87569      15.50231      18.15519  1.913725e+01      19.56606
## Max.         33.58550      32.53525      32.65400  3.419375e+01      36.22250
## NA's    1521009.00000 1521009.00000 1521009.00000  1.521009e+06 1521009.00000
##                  June          July        August     September       October
## Min.        -64.27475     -68.40000     -66.32300 -6.440525e+01 -5.585025e+01
## 1st Qu.     -26.98319     -28.64037     -29.04169 -2.679000e+01 -2.395013e+01
## Median       11.76000      14.03938      12.48688  7.517625e+00  8.053750e-01
## 3rd Qu.      21.20394      22.47563      22.34056  2.121544e+01  1.979581e+01
## Max.         38.21725      39.09800      38.07850  3.538275e+01  3.226825e+01
## NA's    1521009.00000 1521009.00000 1521009.00000  1.521009e+06  1.521009e+06
##              November      December
## Min.    -4.341875e+01     -44.22200
## 1st Qu. -2.452319e+01     -23.15637
## Median  -7.431875e+00     -10.63775
## 3rd Qu.  1.782675e+01      14.72400
## Max.     3.274175e+01      32.77875
## NA's     1.521009e+06 1521009.00000

Se puede observar, que los meses con el mayor promedio de temperatura son Junio, Julio y Agosto que coincide con el verano en los países estacionarios. Por su parte, febrero es el mes mas frio alcanzando el promedio mundial de -13°C.

theme_temp = rasterTheme(region = brewer.pal(9,"OrRd"))
levelplot(tempavg_ene_a_dic, 
          par.settings=theme_temp,
          main = "Temperatura promedio por mes [1970-2000]")

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

Se realiza un primer filtro para la precipitación, estableciendo las condiciones optimas para el cultivo el cual oscila entre los 125 y 290 mm mensuales. En esta etapa nos encontramos con la participación mayoritaria de zonas ubiscadas en la latitud cero (0) y algunas pintas mensuales hacia el norte del mapa global.

#Para la precipitación
precip_optima = precip_ene_a_dic>=125&precip_ene_a_dic<=290 #rangos optimos 
levelplot(precip_optima, 
          par.settings = theme_precip,
          main = "Precipitación óptima para la caña")

Este gráfico muestra un promedio de la precipitación de todos los meses (compilado anual), donde se puede ver buena aptitud para el cultivo la paises centroamericanos, suramericanos, centro africanos y asiáticos; también resalta la presencia de una gran franja en el sur de america, especialmente chile. En una menor medida, pero también marcados en el mapa de calor aptitudinal, alcanzan a registrarse algunas zonas europeas y norteamericanas. Existe un amplio rango circundante a los 70°W de Longitud y 0°C de latitud.

# Calculo de la precipitación óptima promedio
promedio_anual = calc(precip_optima, fun = mean)
levelplot(promedio_anual, 
          par.settings = theme_precip,
          main = "Promedio anual de precipitación [1970-2000]") #grafico 1

En el siguiente gráfico, las pintas verdes del gráfico resumen mucho mejor lo expuesto anteriormente. En términos de precipitación, resaltan zonas sudamericanas como Brasil, Perú, Chile y Argentina. En el centro de África, zonas como el Congo y Camerún y en la zona asiática de Indonesia y Papua Nueva Guinea. Adicional se evidencia una participación importante de Nueva Zelanda y algunas zonas de la Unión Europea, como Suecia y Noruega.

plot(promedio_anual, main="Promedio anual de precipitación [1970-2000]") #gráfico 2

Una vez realizado el filtro climático para un cultivo optimo (22.5 C° y 28C°), en temas de temperatura, parece haber una mayor zona de aptitud para la caña de azúcar, resaltando mucho en Sudamérica los países anteriormente mencionados al igual que zonas de Centroamérica. Alcanzan igualmente a ser visibles altitudinalmente algunas partes de Europa y circundantes al Océano Indico.

#Para la Temperatura
temp_optima = tempavg_ene_a_dic>=22.5&tempavg_ene_a_dic<=28
levelplot(temp_optima, 
          par.settings = theme_temp,
          main = "Temperatura óptima para la caña")

# Calculo de la temperatura optima promedio
temperatura_anual = calc(temp_optima, fun = mean)
levelplot(temperatura_anual, 
          par.settings = theme_temp,
          main = "Promedio anual de temperatura [1970-2000]") #grafico 1

Se conserva el mismo patrón que en la precipitación. Aunque en temas de temperatura se observa una mayor y mejor participación en los rangos circundantes a la latitud cero (0), incluyendo algunas zonas centroamericanas, africanas y asiáticas.

plot(temperatura_anual, main = "Promedio anual de temperatura [1970-2000]") #gráfico 2

A continuación, se presenta el índice de aptitud combinando los dos parámetros para el cultivo de la caña de azúcar. La tendencia se sigue marcando en las zonas mencionadas, con latitudes cercanas a los 0°C y longitudes alrederos de los 60°W y 80°W.

#Indice de aptitud combinado
# Combinar las condiciones óptimas de temperatura y precipitación
aptitud_total = temperatura_anual * promedio_anual

# Visualizar el resultado
levelplot(aptitud_total,
          main = "Zonas con condiciones óptimas para caña de azúcar [1970-2000]",
          par.settings = rasterTheme(region = brewer.pal(9,"YlGn")))

Al marcar solamente las zonas optimas, obtenemos un resultado similar a un tipo de clústerización, donde los puntos se distinguen principalmente en centro y suramerica, centro de africa y zona sur asiática.

# Identificar zonas óptimas
zonas_optimas <- aptitud_total > 0.5
plot(zonas_optimas,
     main = "Zonas óptimas para cultivo de caña",
     col = c("white", "darkgreen"))

Punto 2.

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.

paises = ne_countries(scale = "medium", returnclass = "sf")
paises_interes = paises[paises$name %in% c("Brazil", "Indonesia", "Dem. Rep. Congo"), ]

aptitud_total = rast(aptitud_total)  # Convertir el raster de aptitud a SpatRaster

# Crear función para procesar cada país
procesar_pais = function(pais_shape, aptitud_raster, nombre_pais) {
  # Recortar el raster para el país
  pais_raster = crop(aptitud_raster, pais_shape)
  pais_raster = mask(pais_raster, pais_shape)
  
  return(pais_raster)
}

# Procesar cada país
brasil_apt <- procesar_pais(paises_interes[paises_interes$name == "Brazil", ], aptitud_total, "Brasil")
indonesia_apt <- procesar_pais(paises_interes[paises_interes$name == "Indonesia", ], aptitud_total, "Indonesia")
congo_apt <- procesar_pais(paises_interes[paises_interes$name == "Dem. Rep. Congo", ], aptitud_total, "Congo")  # Cambiado a Camerún

# Paleta de colores personalizada
mi_paleta <- colorRampPalette(c("#FFFFCC", "#C2E699", "#78C679", "#31A354", "#006837"))(100)

Brasil tiene una de las mejores condiciones para el cultivo de la caña de azúcar, sin embargo, gran parte de esas zonas hacen parte del Amazonas, considerándose el pulmón del mundo y área de conservación. Se pueden resaltar otras zonas hacia el centro del país y las costas occidentales desde Natal hasta Salvador de Bahía.

plot(brasil_apt, 
     main = "Aptitud para caña de azúcar - Brasil",
     col = mi_paleta)

Indonesia es otra de las zonas con un gran potencial para el cultivo de la caña, relacionada en la mayoría por la zonas circundantes al Estrecho de Macasar y el mar de Java y Banda. De igual forma hay otra composición importante de territorio optimo como lo es la zona Celebés de la Sonda de Indonesia, ubicada entre el archipiélago de las Molucas y Borneo.

plot(indonesia_apt, 
     main = "Aptitud para caña de azúcar - Indonesia",
     col = mi_paleta)

El Centro de África también posee gran potencial en el cultivo de la caña de azúcar, incluyendo países que van al margen de la línea ecuatorial. Para el ejemplo, se eligió la República Democrática del Congo, donde las zonas nororientales representan las más beneficiosas, entretejidas en su mayoría por los ríos Congo y Tahuapa.

plot(congo_apt, 
     main = "Aptitud para caña de azúcar - R.D Congo",
     col = mi_paleta)

Punto 3

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.

A través de Google Maps obtenemos la coordenadas de uno y Leaflet lo visualizamos. Se escoge Versalles, identificado como uno de los pueblos más frios del Valle del Cauca, y por su parte la zona de Buenaventura en el litoral pacifico como una de las más caliente, para posteriormente ver el efecto que puede tener.

Versalles

En el histórico, Versalles tiene una temperatura promedio de 19.6 °C y una precipitación entre los 100 y 250 mm mensuales. Lo que evidencia una regularidad de las condiciones climatológicas.

# Versalles, Valle del Cauca
#Coordenada1 (4.574876, -76.199405)
leaflet() %>% addTiles() %>% addCircleMarkers(lng =-76.199405 ,lat = 4.574876)
# Se extrae la información correspondiente a la temperatura y precipitación
versalles = data.frame(
  longitude = c(-76.199405), 
  latitude = c(4.574876))

# Se construyen los data frame con la información.
temp_versalles =as.data.frame( extract(tempavg_ene_a_dic,versalles))
prec_versalles = as.data.frame( extract(precip_ene_a_dic,versalles))


#Temperatura
temp_versalles
##    January February    March    April      May     June     July August
## 1 19.54225 19.65425 19.84725 19.69375 19.60925 19.63675 19.86575 19.748
##   September  October November December
## 1  19.54775 19.00525 18.99775 19.36275
temp_versalles=ts(as.numeric(temp_versalles[1,]))
plot(temp_versalles, main= "Temperatura en Versalles, Valle", col="green")

#Precipitación
prec_versalles
##   January February March April May June July August September October November
## 1     115      119   138   209 203  144  101    123       146     248      216
##   December
## 1      152
prec_versalles=ts(as.numeric(prec_versalles[1,]))
plot(prec_versalles, main= "Precipitación en Versalles, Valle", col="blue")

Buenaventura, Valle

En su histórico, Buenaventura tiene una temperatura promedio de 26°C y una precipitación promedio cercana a los 500 mm mensuales, una de las zonas con mayores lluvias en el país.

# Buenaventura 
#Coordenada2 (3.888546, -77.079297)
leaflet() %>% addTiles() %>% addCircleMarkers(lng =-77.079297 ,lat = 3.888546)
# Se extrae la información correspondiente a la temperatura y precipitación
buenaventura = data.frame(
  longitude = c(-77.079297), 
  latitude = c(3.888546))

# Se construyen los data frame con la información.
temp_buenaventura =as.data.frame( extract(tempavg_ene_a_dic,buenaventura))
prec_buenaventura = as.data.frame( extract(precip_ene_a_dic,buenaventura))


#Temperatura
temp_buenaventura
##    January February    March April      May     June     July   August
## 1 26.11412 26.32794 26.47794 26.43 26.42412 26.21235 26.11971 25.96912
##   September  October November December
## 1  25.90059 25.72882 25.84118 25.87088
temp_buenaventura=ts(as.numeric(temp_buenaventura[1,]))
plot(temp_buenaventura, main= "Temperatura en Buenaventura, Valle", col="green")

#Precipitación
prec_buenaventura
##   January February March April May June July August September October November
## 1     323      265   344   396 519  445  499    520       594     679      568
##   December
## 1      478
prec_buenaventura=ts(as.numeric(prec_buenaventura[1,]))
plot(prec_buenaventura, main= "Precipitación en Buenaventura, Valle", col="blue")

Punto 4.

Por medio de alguna métrica de similaridad (ejemplo: distancia euclidiana) genere un código en R que permita identificar mapas de similaridad a nivel global para los sitios identificados en 3. Grafique los mapas con una escala de colores adecuada.

El objetivo del agricultor es encontrar regiones con condiciones climáticas similares a las del Valle del Cauca, territorio con altos rendimientos en el cultivo de la caña de azucar.

Segun su temperatura:

En los mapas, las áreas en tonos más oscuros representan las zonas del mundo con una temperatura promedio más similar a la de Versalles y Buenaventura, Valle del Cauca. Observamos que varias regiones en América del Sur, Centro América, África y Asia presentan colores oscuros, indicando que sus condiciones de temperatura son similares a las de estos dos municipios. Aparentemente, la temperatura de Buenaventura es la que mayor zona similar presenta, sobre todo en Sudamérica, Centro de África y Asia.

#VERSALLES temperatura
versalles_simulitud_temp =sqrt(sum((tempavg_ene_a_dic-as.numeric(temp_versalles))^2))

levelplot(versalles_simulitud_temp,
          par.settings=BTCTheme,
          at=seq(0,176,10), main="Zonas similares a Versalles según su Temperatura")

#BUENAVENTURA temperatura
buenaventura_simulitud_temp =sqrt(sum((tempavg_ene_a_dic-as.numeric(temp_buenaventura))^2))

levelplot(buenaventura_simulitud_temp,
          par.settings= infernoTheme,
          at=seq(0,176,10), main="Zonas similares a Buenaventura según su Temperatura")

Segun su Precipitación:

El análisis de los patrones de precipitación a nivel global indica que existen varias regiones en el mundo con características similares a las de Buenaventura. Las zonas costeras occidentales de Sudamérica, especialmente en la región del Pacífico, muestran niveles de precipitación comparables con Buenaventura asi como las zonas costeras occidentales de Europa, algunas áreas de América del Norte y Asia oriental, muestran niveles de precipitación comparables con Versalles.

#VERSALLES precipitación
versalles_simulitud_prec = sqrt(sum((tempavg_ene_a_dic-as.numeric(prec_versalles))^2))

levelplot(versalles_simulitud_prec,
          par.settings=BTCTheme,
          at=seq(0,2383,100), main="Zonas similares a Versalles según su Precipitación")

#BUENAVENTURA precipitación
buenaventura_simulitud_prec = sqrt(sum((tempavg_ene_a_dic-as.numeric(prec_buenaventura))^2))

levelplot(buenaventura_simulitud_prec,
          par.settings = infernoTheme,
          at=seq(0,2383,100), main="Zonas similares a Buenaventura según su Precipitación")

2. Resultados y Conclusiones

  • Basados en algunas investigaciones, los países productores de la caña de azúcar del mundo están ubicados entre los 36.7° de latitud norte y 31° al sur del ecuador extendiéndose desde zonas tropicales a subtropicales. Países como Colombia, Perú, Sudan, Zambia, Tanzania, y Egipto históricamente han tenido mayor relevancia en su producción. Lo anterior, valida el estudio y análisis presentado en este informe, y que se puede comparar con la imagen adjunta.
Paises productores de la Caña de Azucar (2011)
  • En términos generales, los mapas de similitud de temperatura y precipitación de los puntos seleccionados en el Valle del Cauca no presentan alta variabilidad espacial de acuerdo al comportamiento muy similar de la temperatura en el departamento. En caso de desearse ver un mayor contraste, sería interesante escoger geografía colombiana entre altitud cero (0) como algunas zonas costeras y alguna zona de Páramos.

Bibliografía

Ficha Técnica del Cultivo de la Caña de Azúcar. (2015). SAGARPA y Comité Nacional para el Desarrollo Sustentable de la Caña de Azúcar.