Analisis de Información Geográfica y EspacialEl 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.
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:
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.
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)
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:
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))
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]")
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"))
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)
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.
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")
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.
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")
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")
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.