#librerías
library(raster)
## Warning: package 'raster' was built under R version 4.2.3
## Loading required package: sp
## Warning: package 'sp' was built under R version 4.2.3
## The legacy packages maptools, rgdal, and rgeos, underpinning the sp package,
## which was just loaded, will retire in October 2023.
## Please refer to R-spatial evolution reports for details, especially
## https://r-spatial.org/r/2023/05/15/evolution4.html.
## It may be desirable to make the sf package available;
## package maintainers should consider adding sf to Suggests:.
## The sp package is now running under evolution status 2
## (status 2 uses the sf package in place of rgdal)
library(rgdal)
## Warning: package 'rgdal' was built under R version 4.2.3
## Please note that rgdal will be retired during October 2023,
## plan transition to sf/stars/terra functions using GDAL and PROJ
## at your earliest convenience.
## See https://r-spatial.org/r/2023/05/15/evolution4.html and https://github.com/r-spatial/evolution
## rgdal: version: 1.6-7, (SVN revision 1203)
## Geospatial Data Abstraction Library extensions to R successfully loaded
## Loaded GDAL runtime: GDAL 3.5.2, released 2022/09/02
## Path to GDAL shared files: C:/Users/Usuario/AppData/Local/R/win-library/4.2/rgdal/gdal
## GDAL binary built with GEOS: TRUE
## Loaded PROJ runtime: Rel. 8.2.1, January 1st, 2022, [PJ_VERSION: 821]
## Path to PROJ shared files: C:/Users/Usuario/AppData/Local/R/win-library/4.2/rgdal/proj
## PROJ CDN enabled: FALSE
## Linking to sp version:2.0-0
## To mute warnings of possible GDAL/OSR exportToProj4() degradation,
## use options("rgdal_show_exportToProj4_warnings"="none") before loading sp or rgdal.
library(sp)
library(leaflet)
## Warning: package 'leaflet' was built under R version 4.2.3
library(RColorBrewer)
library(rasterVis)
## Warning: package 'rasterVis' was built under R version 4.2.3
## Loading required package: lattice
## Warning: package 'lattice' was built under R version 4.2.3
library(gridExtra)
## Warning: package 'gridExtra' was built under R version 4.2.3
En primer lugar, se presentan los datos y procedimientos para construir mapas de aptitud en función de la temperatura y precipitación. Los datos de temperatura y precipitación fueron extraidos de la página WorldClim. Los datos para el mapa de división político mundial fue tomado de la página de Natural Earth.
Se descargaron los datos mensuales de temperatura promedio desde el año 1970 al año 2020.
#datos de temperatura
temp_data <- list.files("C:\\Users\\Usuario\\OneDrive - PUJ Cali\\Documents\\GEOESTADÍSTICA\\Actividades\\data_precipitacion\\temperatura", full.names = TRUE)
temp=stack(temp_data)
names(temp)=month.name
plot(temp)
Figura 1. Mapa de temperatura mensual promedio.
Los datos de precipitación también fueron tomados de la página WorldClim.
prec_data <- list.files("C:\\Users\\Usuario\\OneDrive - PUJ Cali\\Documents\\GEOESTADÍSTICA\\Actividades\\data_precipitacion\\precipitacion", full.names = TRUE)
prec=stack(prec_data)
names(prec)=month.name
plot(prec)
Figura 2. Mapa de precipitación mensual promedio.
Finalmente, también se necesita un archivo que contenga la división mundial
#mapa
paises = shapefile("C:\\Users\\Usuario\\OneDrive - PUJ Cali\\Documents\\GEOESTADÍSTICA\\Actividades\\data_precipitacion\\mapa.shp")
plot(paises)
Figura 3. Mapa de la división política mundial.
Para identificar zonas con alto potencial de rendimiento, se consideran los siguientes rangos de condiciones ideales:
■ Temperatura media entre 22.5 y 28 grados centrigados.
■ Precipitación mensual entre 125 y 290 milimetros.
#criterio
crit_temp <- temp >= 22.5 & temp <= 28
indicador_temp <- sum(crit_temp)
#ajustarlo para presentarlo como porcentaje
indicador_temp <- indicador_temp / 12 * 100
plot(indicador_temp)
Figura 4. Mapa de temperatura promedio ideal para la
caña de azucar
crit_prec = prec >= 125 & prec <= 290
indicador_prec = sum(crit_prec)
#Se ajusta el indicador para presentarlo como porcentaje
indicador_prec=indicador_prec/12*100
plot(indicador_prec)
Figura 5. Mapa de precipitación promedio ideal para la caña de azucar
Para determinar las zonas con alto potencial, se identifican aquellas que cumplen con ambos criterios (temperatura y precipitación) en al menos un 75%.
#zonas que no cumplan con el 75% en temperatura
temp_no <- which(indicador_temp[] < 75)
indicador_temp[temp_no] <- NA
#zonas que no cumplan con el 75% en precipitacion
prec_no <- which(indicador_prec[] < 75)
indicador_prec[prec_no] <- NA
#Combinar indicadores de temperatura y precipitación
zonas_optimas <- (indicador_temp + indicador_prec) / 2
plot(paises)
plot(zonas_optimas, add=T)
Figura 6. Zonas óptimas para el cultivo de caña de azúcar, donde se cumplen ambos criterios de temperatura y precipitación en al menos el 75%.
Las zonas óptimas se concentran en zonas cercanas a la Línea del Ecuador; por un lado en la región amazónica de Colombia, Ecuador y Brasil; por otro en África en países como Gabón y Camerún; y finalmente en Sudeste Asiático en zonas como Indonesia y Malasia.
El Valle del Cauca es reconocido por sus fértiles tierras y su producción de caña de azúcar. Estudiemos la temperatura y precipitación de dos ingenios ubicados en el departamento.
lat1 = 4.811285999219965
lng1 = -76.39879579973939
leaflet() %>% addTiles() %>% addCircleMarkers(lat = lat1, lng = lng1)
La temperatura del lugar es la siguiente:
zona1 <- data.frame(
longitude = c(lng1),
latitude = c(lat1)
)
temp_zona1=as.data.frame( extract(temp,zona1))
temp_zona1
## January February March April May June July August September October
## 1 21.582 21.72 22.048 21.97 21.789 21.562 21.613 21.577 21.386 21.045
## November December
## 1 21.16 21.367
##Serie de tiempo
zona1_temp=ts(as.numeric(temp_zona1[1,]))
plot(zona1_temp, main= "Temperatura Ingenio Manuelita")
La precipitación del lugar es la siguiente:
prec_zona1=as.data.frame(extract(prec,zona1))
prec_zona1
## January February March April May June July August September October November
## 1 263 195 195 277 316 219 156 205 181 377 312
## December
## 1 280
##Serie de tiempo
zona1_prec=ts(as.numeric(prec_zona1[1,]))
plot(zona1_prec, main= "Precipitación Ingenio Manuelita")
lat2 = 3.7877016209926655
lng2 = -76.28078983097153
leaflet() %>% addTiles() %>% addCircleMarkers(lat = lat2, lng = lng2)
La temperatura del lugar es la siguiente:
zona2 <- data.frame(
longitude = c(lng2),
latitude = c(lat2)
)
temp_zona2=as.data.frame( extract(temp,zona2))
temp_zona2
## January February March April May June July August September October
## 1 23.04 23.177 23.28 23.032 22.856 22.783 23.059 23.105 22.973 22.441
## November December
## 1 22.32 22.603
##Serie de tiempo
zona2_temp=ts(as.numeric(temp_zona2[1,]))
plot(zona2_temp, main= "Temperatura Ingenio Pichichi")
La precipitación del lugar es la siguiente:
prec_zona2=as.data.frame(extract(prec,zona2))
prec_zona2
## January February March April May June July August September October November
## 1 81 82 120 159 135 109 59 80 100 193 162
## December
## 1 111
##Serie de tiempo
zona2_prec=ts(as.numeric(prec_zona2[1,]))
plot(zona2_prec, main= "Precipitación Ingenio Pichichi")
zona1_comp_temp <- sqrt(sum((temp - as.numeric(zona1_temp))^2))
plot_temp <- levelplot(zona1_comp_temp,
par.settings = BTCTheme,
at = seq(0, 176, 10),
main = "Temperatura similares al Ingenio Manuelita")
zona1_comp_prec <- sqrt(sum((prec - as.numeric(zona1_prec))^2))
plot_prec <- levelplot(zona1_comp_prec,
par.settings = BTCTheme,
at = seq(0, 2383, 100),
main = "Precipitaciones similares al Ingenio Manuelita")
grid.arrange(plot_temp, plot_prec, ncol = 2)
temp_similar_filtered <- zona1_comp_temp
temp_similar_filtered[temp_similar_filtered > 28] <- NA
prec_similar_filtered <- zona1_comp_prec
prec_similar_filtered[prec_similar_filtered > 290] <- NA
intersection_zones <- temp_similar_filtered & prec_similar_filtered
original_par <- par(mar = c(0, 0, 0, 0))
plot(paises, main = "Zonas similares al ingenio Manuelita")
plot(intersection_zones, add = TRUE, col = "blue", breaks = c(1, 1.1), legend = FALSE)
par(original_par)
zona2_comp_temp <- sqrt(sum((temp - as.numeric(zona2_temp))^2))
plot_temp <- levelplot(zona2_comp_temp,
par.settings = BTCTheme,
at = seq(0, 176, 10),
main = "Zonas con temperatura similares al Ingenio Pichichi")
zona2_comp_prec <- sqrt(sum((prec - as.numeric(zona2_prec))^2))
plot_prec <- levelplot(zona1_comp_prec,
par.settings = BTCTheme,
at = seq(0, 2383, 100),
main = "Zonas con precipitaciones similares al Ingenio Pichichi")
grid.arrange(plot_temp, plot_prec, ncol = 2)
temp_similar_filtered <- zona2_comp_temp
temp_similar_filtered[temp_similar_filtered > 28] <- NA
prec_similar_filtered <- zona2_comp_prec
prec_similar_filtered[prec_similar_filtered > 290] <- NA
intersection_zones <- temp_similar_filtered & prec_similar_filtered
original_par <- par(mar = c(0, 0, 0, 0))
plot(paises, main = "Zonas similares al ingenio Pichichi")
plot(intersection_zones, add = TRUE, col = "blue", breaks = c(1, 1.1), legend = FALSE)
par(original_par)
Para el caso del Ingenio Manuelita, se presentan condiciones similares cerca al amazonas. Mientras que, para el ingenio Pichichi en africa cerca a la línea del Ecuador. Ambos muestran similitud en paises del Sudeste asiatico.
Finalmente, se recomiendo cultivar la caña de azucar en las regiones cercanas a la Línea del Ecuador en América del Sur, como el Amazonas, así como países de África Central como Gabón y Camerún, y zonas del Sudeste Asiático como Indonesia y Malasia.
Harris, I., Osborn, T.J., Jones, P.D., Lister, D.H. (2020). Version 4 of the CRU TS monthly high-resolution gridded multivariate climate dataset. Scientific Data 7: 109
Natural Earth. (n.d.). Natural Earth Data. https://www.naturalearthdata.com/