Análisis de Información Geográfica y Espacial

Maestría en Ciencia de Datos - Javeriana Cali

Estudio de Caso

Un agricultor interesado en el cultivo de la caña de azúcar, requiere en conocer cuales son las regiones que cuentan con las mejores condiciones para el desarrollo de este cultivo bajo los siguientes parametros óptimos:

O buscar regiones con condiciones climáticas similares a las del Valle del Cauca, territorio con altos rendimientos en este cultivo.

Construcción de Mapas Raster

Librerías

Para la obtención de la información correspondiente a la temperatura media y precipitación, se toman las imágenes raster de WorldClim.

En primera medida se realiza la importación de las librerías.

# Importar librerías

require(raster)
require(rgdal)
require(maptools)
require(geoR)
require(leaflet)
require(tmaptools)
require(rasterVis)
require(RColorBrewer)

Raster Precipitaciones

Se realiza el cargue de las imágenes raster correspondientes al nivel de precipitación

# Se realiza el cargue de los archivos raster de las precipitaciones para cada mes del año

prec_files = list.files("C:/Users/User/Desktop/Precipitación_10m/", full.names = TRUE)

prec_all = stack(prec_files)

names(prec_all)=month.name

# Se construye el mapa de las precipitaciones de cada mes


Theme_prec <- rasterTheme(region = brewer.pal(9, "Blues"))
levelplot(prec_all,par.settings=Theme_prec,main = "Niveles de Precipitación por mes")

# Se obtiene el resumen del nivel de precipitaciones para cada mes

summary(prec_all)
## Warning in .local(object, ...): summary is an estimate based on a sample of 1e+05 cells (4.29% of all cells)
##         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

En cuanto a la los meses que registran la mayor mediana de precipitación son los meses de Agosto y Julio con 39 y 34 milimetros respectivamente.

Raster Temperatura

Se realiza el cargue de las imágenes raster correspondiente al nivel de temperatura.

# Se realiza el cargue de los archivos raster de los niveles de temperatura para cada mes del año

temp_files = list.files("C:/Users/User/Desktop/Temp_prom_10m/", full.names = TRUE)

temp_all = stack(temp_files)

names(temp_all)=month.name

# Se construye el mapa de las precipitaciones de cada mes


levelplot(temp_all,par.settings=BuRdTheme,main = "Nivel de Temperatura por mes")

# Se obtiene el resumen de los niveles de temperatura registrados en cada mes.

summary(temp_all)
## Warning in .local(object, ...): summary is an estimate based on a sample of 1e+05 cells (4.29% of all cells)
##               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

En cuanto a la temperatura promedio de cada mes, se observa que en los periodos de Abril a Agosto es la etapa donde se registra el clima más cálido, ya que en los demás meses la temperatura alcanza niveles bajo cero. Entendiendo que esto es para todo el mundo, reconociendo que zonas próximas al ecuador no se ven afectadas por estaciones fuertes como el invierno.

Parámetros óptimos para el cultivo de Caña de Azúcar

Precipitación

# Se realiza el filtro correspondiente a un nivel precipitación entre 125 y 290 mm. 

prec_optima =prec_all>=125&prec_all<=290

mytheme <- rasterTheme(region = brewer.pal(9, "Blues"))

levelplot(prec_optima,main = "Precipitación Mensual Óptima para la caña",par.settings=mytheme)

levelplot(prec_optima,par.settings=BuRdTheme, main = "Precipitación anual Óptima para la caña")

Los mapas anteriores. representan las regiones con mayores niveles de precipitación en cada uno de los meses.

A continuación se presenta consolidada la información de precipitación anual, delimitando el rango de 0 a 100, donde 100 corresponde a que la zona presenta las condiciones de precipitación durante los 12 meses del año.

# Se consolida la información de precipitación anual

indi_preci <- sum((prec_optima)/12*100)
plot(indi_preci)

Como se observa en el mapa anterior, una región importante de suramerica compuesta por Colombia, Ecuador, Perú y Brasil cuentan con buenas condiciones en sus precipitaciones para el desarrollo de este cultivo. Asi mismo, otros territorio dentro el continente africano.

# Se eliminan unos pixeles para resaltar las regiones con las mejores condiciones

pix_prec_no_optimos=which(indi_preci[]<50)
indi_preci[pix_prec_no_optimos]=NA

plot(indi_preci)

Temperatura

# Se realiza el filtro correspondiente al nivel de temperatura adecuado entre 22,5 y 28 grados centígrados. 

temp_optima =temp_all>=22.5&temp_all<=28

mytheme <- rasterTheme(region = brewer.pal(9, "Greens"))

levelplot(temp_optima,par.settings=mytheme,main = "Temperatura Óptima para el cultivo de caña de Azúcar") 

levelplot(temp_optima,par.settings=BuRdTheme)

Los mapas anteriores, representan las regiones con mayores condiciones climáticas para el desarrollo del cultivo de caña de azúcar.

A continuación se presenta consolidada la información de la temperatura, delimitando el rango de 0 a 100, donde 100 corresponde a que la zona presenta las condiciones climáticas similares durante los 12 meses del año.

# Se consolida la información de la temperatura para los 12 meses del año

indi_temp<-sum((temp_optima)*100/12)

plot(indi_temp, main="Sumatoria del rango de temperatura")

Como se observa en el mapa anterior, las zonas ubicadas en el punto 0 correspondiente a la linea del Ecuador, es decir, entre el trópico de cáncer y capricornio tienen las mejores condiciones de temperatura para el desarrollo de este cultivo, en países como Ecuador, Perú, Colombia, Brasil, Nigeria, Camerún y Congo.

# Se eliminan unos pixeles para resaltar las regiones con las mejores condiciones

pix_temp_no_optimos=which(indi_temp[]<75)

indi_temp[pix_temp_no_optimos]=NA

plot(indi_temp)

Países con áreas de alto potencial para el cultivo de Caña de Azúcar

Se realiza el corte de la imagen raster para Colombia, Brasil y Ecuador.

# Se obtienen las coordenadas de los países

require(leaflet)
Co =geocode_OSM(q = "Colombia")

print(Co)
## $query
## [1] "Colombia"
## 
## $coords
##          x          y 
## -72.908813   4.099917 
## 
## $bbox
##       xmin       ymin       xmax       ymax 
## -82.124361  -4.229403 -66.849039  16.049552
require(tmaptools)
Br = geocode_OSM(q = "Brasil")

print(Br)
## $query
## [1] "Brasil"
## 
## $coords
##         x         y 
## -53.20000 -10.33333 
## 
## $bbox
##       xmin       ymin       xmax       ymax 
## -73.983063 -33.868906 -28.628965   5.269581
require(tmaptools)
Ec = geocode_OSM(q ="Ecuador")

print(Ec)
## $query
## [1] "Ecuador"
## 
## $coords
##          x          y 
## -79.366697  -1.339767 
## 
## $bbox
##       xmin       ymin       xmax       ymax 
## -92.207239  -5.015931 -75.192504   1.883596

Colombia

# Se definen las coordenadas de Colombia

xmin <- -82.124361  
ymin <- -4.229403   
xmax <- -66.849039  
ymax <- 16.049552  

# Realiza el recorte utilizando la función crop()

mapa_colombia1 <- crop(indi_temp, extent(xmin, xmax, ymin, ymax))

mapa_colombia2 <- crop(indi_preci, extent(xmin, xmax, ymin, ymax))

plot(mapa_colombia1, main = " Regiones de Colombia con Mejores Condiciones de Temperatura ")

plot(mapa_colombia2, main = " Regiones de Colombia con Mejores Condiciones de Precipitaciones")

Para el caso de Colombia, se observa que una de las mejores condiciones de temperatura y precipitaciones para el desarrollo de este cultivo se encuentra en todo el litoral pacifico en los departamentos de Chocó, Valle del Cauca y Cauca. Asi como en los departamentos contiguos a la región amazónica.

Brasil

# Se definen las coordenadas de Brasil


xmin <- -73.983063  
ymin <- -33.868906   
xmax <- -28.628965  
ymax <- 5.269581  

# Realiza el recorte utilizando la función crop()


mapa_brasil_1 <- crop(indi_temp, extent(xmin, xmax, ymin, ymax))

mapa_brasil_2 <- crop(indi_preci, extent(xmin, xmax, ymin, ymax))

plot(mapa_brasil_1, main = " Regiones de Brasil con Mejores Condiciones de Temperatura ")

plot(mapa_brasil_2, main = " Regiones de Brasil con Mejores Condiciones de Precipitaciones")

En Brasil al igual que en Colombia, una de las regiones con mejores condiciones climáticas para el desarrollo de este cultivo es la región Amazónica, particularmente en los estados de Amazonas, Pará, Mato Grosso, entre otros.

Ecuador

# Se definen las coordenadas del Ecuador

xmin <- -92.207239  
ymin <- -5.015931   
xmax <- -75.192504
ymax <- 1.883596  

# Realiza el recorte utilizando la función crop()


mapa_ecuador_1 <- crop(indi_temp, extent(xmin, xmax, ymin, ymax))

mapa_ecuador_2 <- crop(indi_preci, extent(xmin, xmax, ymin, ymax))

plot(mapa_ecuador_1, main = " Regiones de Ecuador con Mejores Condiciones de Temperatura ")

plot(mapa_ecuador_2, main = " Regiones de Ecuador con Mejores Condiciones de Precipitaciones")

Finalmente, en el caso del Ecuador como ocurre con Colombia y Brasil una de las mejores zonas para el desarrollo de este cultivo es la región amazónica. Adicionalmente, otros territorios como la costa pacífica.

Análisis de Regiones del Valle del Cauca.

Para este ejercicio se seleccionaron los municipios de Palmira y Cartago, capturando para cada uno de estos sus resultados en términos de precipitación y temperatura para posteriormente comparar zonas con condiciones similares.

Palmira

# Se obtienen las coordenadas del municipio

geocode_OSM(q = "Palmira, Valle")
## $query
## [1] "Palmira, Valle"
## 
## $coords
##          x          y 
## -76.298805   3.530837 
## 
## $bbox
##       xmin       ymin       xmax       ymax 
## -76.491742   3.451598 -75.949667   3.718068
leaflet() %>% addTiles() %>% addCircleMarkers(lng =-76.298805 ,lat = 3.530837)
# Se extrae la información correspondiente a la temperatura y precipitación

palmira <- data.frame(
  longitude = c(-76.298805), 
  latitude = c(3.530837))

# Se construyen los data frame con la información.

temp_palmira=as.data.frame( extract(temp_all,palmira))
prec_palmira= as.data.frame( extract(prec_all,palmira))
# Se presentan los datos de temperatura


temp_palmira
##    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
temp_palmira=ts(as.numeric(temp_palmira[1,]))
plot(temp_palmira, main= "Temperatura en Palmira", col="green")

# Se presentan los datos de precipitación

prec_palmira
##   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
prec_palmira=ts(as.numeric(prec_palmira[1,]))
plot(prec_palmira, main= "Precipitación en Palmira", col="blue")

Cartago

# Se obtienen las coordenadas del municipio

geocode_OSM(q = "Cartago, Valle")
## $query
## [1] "Cartago, Valle"
## 
## $coords
##          x          y 
## -75.912123   4.746549 
## 
## $bbox
##       xmin       ymin       xmax       ymax 
## -76.016663   4.612901 -75.822063   4.808081
leaflet() %>% addTiles() %>% addCircleMarkers(lng =-75.912123 ,lat = 4.746549)
# Se extrae la información correspondiente a la temperatura y precipitación


cartago <- data.frame(
  longitude = c(-75.912123), 
  latitude = c(4.746549))

# Se construyen los data frame con la información.

temp_cartago=as.data.frame( extract(temp_all,cartago))
prec_cartago= as.data.frame( extract(prec_all,cartago))
# Se presentan los datos de temperatura

temp_cartago
##   January February    March    April      May   June   July   August September
## 1 23.2375 23.45825 23.57375 23.26525 23.08175 23.006 23.382 23.42725  23.08925
##   October November December
## 1 22.5165   22.501 22.84375
temp_cartago=ts(as.numeric(temp_cartago[1,]))
plot(temp_cartago, main= "Temperatura en Cartago", col="green")

# Se presentan los datos de precipitación

prec_cartago
##   January February March April May June July August September October November
## 1     106      109   150   217 202  159  110    129       169     241      197
##   December
## 1      107
prec_cartago=ts(as.numeric(prec_cartago[1,]))
plot(prec_cartago, main= "Precipitación en Cartago", col="blue")

Identificación de Mapas de Similitud

Palmira

# Comparación de la temperatura

Palmira_comp_temp=sqrt(sum((temp_all-as.numeric(temp_palmira))^2))


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

# Comparación de la precipitación

Palmira_comp_prec=sqrt(sum((prec_all-as.numeric(prec_palmira))^2))


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

Cartago

# Comparación de la precipitación

Cartago_comp_temp=sqrt(sum((temp_all-as.numeric(temp_cartago))^2))


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

Cartago_comp_prec=sqrt(sum((prec_all-as.numeric(prec_cartago))^2))


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

Como se puede apreciar en los mapas anteriormente expuestos, tomando como referencia las condiciones climáticas de dos municipios del Valle del Cauca, se obtienen resultados similares al primer ejercicio de identificación de las regiones del mundo que cuentan con condiciones optimas para el cultivo de caña de Azúcar, como es el caso de una zona de Ecuador, Brasil y Perú en Suramerica, y particularmente la región de Africa central.