Caso “Caña de azucar”

Factores limitantes de la caña de azucar

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.

# Cargue de libreria raster, requerida para el ejercicio
require(raster)
require(sp)
# Cargue del shape con el mapamundi del mes enero
mapa1=raster("~/Unidad2_Exploracion/temperatura/wc2.1_10m_tavg_01.tif")
plot(mapa1)

Realizando la primera condicional de la temperatura se tiene lo siguiente:

mapa1_temp=mapa1>20&mapa1<30
mapa1_temp
## class      : RasterLayer 
## dimensions : 1080, 2160, 2332800  (nrow, ncol, ncell)
## resolution : 0.1666667, 0.1666667  (x, y)
## extent     : -180, 180, -90, 90  (xmin, xmax, ymin, ymax)
## crs        : +proj=longlat +datum=WGS84 +no_defs 
## source     : memory
## names      : layer 
## values     : 0, 1  (min, max)

Las regiones que cumplen dicha condición se presentan a continuación:

plot(mapa1_temp)

Ahora con todos los mapa mundis del año:

ruta=list.files("~/Unidad2_Exploracion/temperatura/", full.names = TRUE)
temp=stack(ruta)
temp
## class      : RasterStack 
## dimensions : 1080, 2160, 2332800, 12  (nrow, ncol, ncell, nlayers)
## resolution : 0.1666667, 0.1666667  (x, y)
## extent     : -180, 180, -90, 90  (xmin, xmax, ymin, ymax)
## crs        : +proj=longlat +datum=WGS84 +no_defs 
## names      : wc2.1_10m_tavg_01, wc2.1_10m_tavg_02, wc2.1_10m_tavg_03, wc2.1_10m_tavg_04, wc2.1_10m_tavg_05, wc2.1_10m_tavg_06, wc2.1_10m_tavg_07, wc2.1_10m_tavg_08, wc2.1_10m_tavg_09, wc2.1_10m_tavg_10, wc2.1_10m_tavg_11, wc2.1_10m_tavg_12 
## min values :         -45.88400,         -44.80000,         -57.92575,         -64.19250,         -64.81150,         -64.35825,         -68.46075,         -66.52250,         -64.56325,         -55.90000,         -43.43475,         -45.32700 
## max values :          34.00950,          32.82425,          32.90950,          34.19375,          36.25325,          38.35550,          39.54950,          38.43275,          35.79000,          32.65125,          32.78800,          32.82525

Gráficamente se aprecian así:

plot(temp)

Cambiando los nombres de cada imagen por su respectivo mes del año:

names(temp)=month.name
plot(temp)

Aplicando la condición de la temperatura a los mapamundis por mes:

temp_cond=temp>20&temp<30
temp_cond
## class      : RasterBrick 
## dimensions : 1080, 2160, 2332800, 12  (nrow, ncol, ncell, nlayers)
## resolution : 0.1666667, 0.1666667  (x, y)
## extent     : -180, 180, -90, 90  (xmin, xmax, ymin, ymax)
## crs        : +proj=longlat +datum=WGS84 +no_defs 
## source     : memory
## names      : January, February, March, April, May, June, July, August, September, October, November, December 
## min values :       0,        0,     0,     0,   0,    0,    0,      0,         0,       0,        0,        0 
## max values :       1,        1,     1,     1,   1,    1,    1,      1,         1,       1,        1,        1
plot(temp_cond)

Apreciando en mapamundi en forma general, con la condición de temperatura:

porc_temp=sum(temp_cond)/12*100
plot(porc_temp)

Ahora se realiza el ejercicio con una segunda condicional:

# Cargue del shape con el mapamundi del mes enero
mapa2=raster("~/Unidad2_Exploracion/wc2_1_5m_prec/wc2.1_5m_prec_01.tif")
plot(mapa2)

mapa2_prec=mapa2>125&mapa2<290
mapa2_prec
## class      : RasterLayer 
## dimensions : 2160, 4320, 9331200  (nrow, ncol, ncell)
## resolution : 0.08333333, 0.08333333  (x, y)
## extent     : -180, 180, -90, 90  (xmin, xmax, ymin, ymax)
## crs        : +proj=longlat +datum=WGS84 +no_defs 
## source     : memory
## names      : layer 
## values     : 0, 1  (min, max)
plot(mapa2_prec)

ruta2=list.files("~/Unidad2_Exploracion/wc2_1_5m_prec/", full.names = TRUE)
prec=stack(ruta2)
prec
## class      : RasterStack 
## dimensions : 2160, 4320, 9331200, 12  (nrow, ncol, ncell, nlayers)
## resolution : 0.08333333, 0.08333333  (x, y)
## extent     : -180, 180, -90, 90  (xmin, xmax, ymin, ymax)
## crs        : +proj=longlat +datum=WGS84 +no_defs 
## names      : wc2.1_5m_prec_01, wc2.1_5m_prec_02, wc2.1_5m_prec_03, wc2.1_5m_prec_04, wc2.1_5m_prec_05, wc2.1_5m_prec_06, wc2.1_5m_prec_07, wc2.1_5m_prec_08, wc2.1_5m_prec_09, wc2.1_5m_prec_10, wc2.1_5m_prec_11, wc2.1_5m_prec_12 
## min values :                0,                0,                0,                0,                0,                0,                0,                0,                0,                0,                0,                0 
## max values :              936,             1005,              774,             1004,             2068,             2210,             2578,             1897,             1955,             2328,              736,              827
plot(prec)

Ahora reemplazando por el nombre del mes:

names(prec)=month.name
plot(prec)

Con la condicional de precipitación por mes:

prec_cond=prec>125&prec<290
prec_cond
## class      : RasterBrick 
## dimensions : 2160, 4320, 9331200, 12  (nrow, ncol, ncell, nlayers)
## resolution : 0.08333333, 0.08333333  (x, y)
## extent     : -180, 180, -90, 90  (xmin, xmax, ymin, ymax)
## crs        : +proj=longlat +datum=WGS84 +no_defs 
## source     : r_tmp_2024-05-22_234412.700025_3680_73846.grd 
## names      : layer.1, layer.2, layer.3, layer.4, layer.5, layer.6, layer.7, layer.8, layer.9, layer.10, layer.11, layer.12 
## min values :       0,       0,       0,       0,       0,       0,       0,       0,       0,        0,        0,        0 
## max values :       1,       1,       1,       1,       1,       1,       1,       1,       1,        1,        1,        1
names(prec_cond)=month.name
plot(prec_cond)

Apreciando en mapamundi en forma general, con la condición de precipitación:

porc_preci=sum(prec_cond)/12*100
plot(porc_preci)

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.

Los países seleccionados son: 1. Brasil 2. Colombia 3. vietnam

# Instala y carga las librerías necesarias
#install.packages(c("raster", "sf", "rnaturalearth", "rnaturalearthdata"))
library(raster)
library(sf)
## Warning: package 'sf' was built under R version 4.3.3
## Linking to GEOS 3.11.2, GDAL 3.8.2, PROJ 9.3.1; sf_use_s2() is TRUE
library(rnaturalearth)
## Warning: package 'rnaturalearth' was built under R version 4.3.3
library(rnaturalearthdata)
## Warning: package 'rnaturalearthdata' was built under R version 4.3.3
## 
## Attaching package: 'rnaturalearthdata'
## The following object is masked from 'package:rnaturalearth':
## 
##     countries110

Brasil

Visualizando la temperatura de Brasil en enero:

# Cargar el raster de temperatura
im1 <- raster("~/Unidad2_Exploracion/temperatura/wc2.1_10m_tavg_01.tif")

# Descargar y cargar los datos del mapa mundial
world <- ne_countries(scale = "medium", returnclass = "sf")

# Seleccionar un país, por ejemplo, Brasil
country <- world[world$name == "Brazil", ]

# Recortar el raster utilizando la geometría del país
im1_crop <- crop(im1, extent(country))
im1_mask <- mask(im1_crop, country)

# Graficar el raster recortado
plot(im1_mask, main = "Temperatura promedio en enero - Brasil")

# Cargar el raster de temperatura
bras = list.files("~/Unidad2_Exploracion/temperatura/", full.names = TRUE)

bras_temp = stack(bras)

# Descargar y cargar los datos del mapa mundial
world <- ne_countries(scale = "medium", returnclass = "sf")

# Seleccionar un país, por ejemplo, Brasil
country <- world[world$name == "Brazil", ]

# Recortar el raster utilizando la geometría del país
im1_crop <- crop(bras_temp, extent(country))
im1_mask <- mask(im1_crop, country)

# Graficar el raster recortado
plot(im1_mask, main = "temperatura mes a mes - Brasil")

Temperatura de Brasil en el año

names(im1_mask)=month.name
plot(im1_mask)

porc_temp_bra=sum(im1_mask)/12*1
plot(porc_temp_bra)

Mejorando la gráfica:

library(ggplot2)
library(rasterVis)
# Cargar el raster de temperatura
bras <- list.files("~/Unidad2_Exploracion/temperatura/", full.names = TRUE)
bras_temp <- stack(bras)

# Descargar y cargar los datos del mapa mundial
world <- ne_countries(scale = "medium", returnclass = "sf")

# Seleccionar un país, por ejemplo, Brasil
country <- world[world$name == "Brazil", ]

# Recortar el raster utilizando la geometría del país
im1_crop <- crop(bras_temp, extent(country))
im1_mask <- mask(im1_crop, country)

# Convertir el raster recortado a un formato compatible con ggplot
im1_df <- as.data.frame(im1_mask, xy = TRUE)
names(im1_df)[3] <- "temperature"

# Graficar utilizando ggplot2
ggplot() +
  geom_raster(data = im1_df, aes(x = x, y = y, fill = temperature)) +
  scale_fill_viridis_c(name = "Temperatura (°C)", option = "viridis") +
  coord_quickmap() +
  labs(title = "Temperatura anual promedio - Brasil") +
  theme_minimal() +
  theme(legend.position = "bottom")

Visualizando la precipitación de Brasil en enero:

# Cargar el raster de temperatura
im1 <- raster("~/Unidad2_Exploracion/wc2_1_5m_prec/wc2.1_5m_prec_01.tif")

# Descargar y cargar los datos del mapa mundial
world <- ne_countries(scale = "medium", returnclass = "sf")

# Seleccionar un país, por ejemplo, Brasil
country <- world[world$name == "Brazil", ]

# Recortar el raster utilizando la geometría del país
im1_crop <- crop(im1, extent(country))
im1_mask <- mask(im1_crop, country)

# Graficar el raster recortado
plot(im1_mask, main = "Precipitación promedio en enero - Brasil")

# Cargar el raster de precipitación
bras = list.files("~/Unidad2_Exploracion/wc2_1_5m_prec/", full.names = TRUE)

bras_temp = stack(bras)

# Descargar y cargar los datos del mapa mundial
world <- ne_countries(scale = "medium", returnclass = "sf")

# Seleccionar un país, por ejemplo, Brasil
country <- world[world$name == "Brazil", ]

# Recortar el raster utilizando la geometría del país
im1_crop <- crop(bras_temp, extent(country))
im1_mask <- mask(im1_crop, country)

# Graficar el raster recortado
plot(im1_mask, main = "Precipitación mes a mes - Brasil")

Precipitación de Brasil en el año

names(im1_mask)=month.name
plot(im1_mask)

porc_temp_bra=sum(im1_mask)/12*10
plot(porc_temp_bra)

Mejorando la gráfica:

library(ggplot2)
library(rasterVis)
# Cargar el raster de precipitación
bras <- list.files("~/Unidad2_Exploracion/wc2_1_5m_prec/", full.names = TRUE)
bras_temp <- stack(bras)

# Descargar y cargar los datos del mapa mundial
world <- ne_countries(scale = "medium", returnclass = "sf")

# Seleccionar un país, por ejemplo, Brasil
country <- world[world$name == "Brazil", ]

# Recortar el raster utilizando la geometría del país
im1_crop <- crop(bras_temp, extent(country))
im1_mask <- mask(im1_crop, country)

# Convertir el raster recortado a un formato compatible con ggplot
im1_df <- as.data.frame(im1_mask, xy = TRUE)
names(im1_df)[3] <- "precipitation"

# Graficar utilizando ggplot2
ggplot() +
  geom_raster(data = im1_df, aes(x = x, y = y, fill = precipitation)) +
  scale_fill_viridis_c(name = "Precipitación (mm)", option = "viridis") +
  coord_quickmap() +
  labs(title = "Precipitación anual promedio - Brasil") +
  theme_minimal() +
  theme(legend.position = "bottom")

Colombia

Visualizando la temperatura de Colombia en enero:

# Cargar el raster de temperatura
im1 <- raster("~/Unidad2_Exploracion/temperatura/wc2.1_10m_tavg_01.tif")

# Descargar y cargar los datos del mapa mundial
world <- ne_countries(scale = "medium", returnclass = "sf")

# Seleccionar un país, por ejemplo, Brasil
country <- world[world$name == "Colombia", ]

# Recortar el raster utilizando la geometría del país
im1_crop <- crop(im1, extent(country))
im1_mask <- mask(im1_crop, country)

# Graficar el raster recortado
plot(im1_mask, main = "Temperatura promedio en enero - Colombia")

# Cargar el raster de temperatura
bras = list.files("~/Unidad2_Exploracion/temperatura/", full.names = TRUE)

bras_temp = stack(bras)

# Descargar y cargar los datos del mapa mundial
world <- ne_countries(scale = "medium", returnclass = "sf")

# Seleccionar un país, por ejemplo, Colombia
country <- world[world$name == "Colombia", ]

# Recortar el raster utilizando la geometría del país
im1_crop <- crop(bras_temp, extent(country))
im1_mask <- mask(im1_crop, country)

# Graficar el raster recortado
plot(im1_mask, main = "Temperatura mes a mes - Colombia")

Temperatura de Colombia en el año

names(im1_mask)=month.name
plot(im1_mask)

porc_temp=sum(im1_mask)/12*1
plot(porc_temp)

Mejorando la gráfica:

library(ggplot2)
library(rasterVis)
# Cargar el raster de temperatura
bras <- list.files("~/Unidad2_Exploracion/temperatura/", full.names = TRUE)
bras_temp <- stack(bras)

# Descargar y cargar los datos del mapa mundial
world <- ne_countries(scale = "medium", returnclass = "sf")

# Seleccionar un país, por ejemplo, Brasil
country <- world[world$name == "Colombia", ]

# Recortar el raster utilizando la geometría del país
im1_crop <- crop(bras_temp, extent(country))
im1_mask <- mask(im1_crop, country)

# Convertir el raster recortado a un formato compatible con ggplot
im1_df <- as.data.frame(im1_mask, xy = TRUE)
names(im1_df)[3] <- "temperature"

# Graficar utilizando ggplot2
ggplot() +
  geom_raster(data = im1_df, aes(x = x, y = y, fill = temperature)) +
  scale_fill_viridis_c(name = "Temperatura (°C)", option = "viridis") +
  coord_quickmap() +
  labs(title = "Temperatura anual promedio - Colombia") +
  theme_minimal() +
  theme(legend.position = "bottom")

Visualizando la precipitación de Colombia en enero:

# Cargar el raster de temperatura
im1 <- raster("~/Unidad2_Exploracion/wc2_1_5m_prec/wc2.1_5m_prec_01.tif")

# Descargar y cargar los datos del mapa mundial
world <- ne_countries(scale = "medium", returnclass = "sf")

# Seleccionar un país, por ejemplo, Brasil
country <- world[world$name == "Colombia", ]

# Recortar el raster utilizando la geometría del país
im1_crop <- crop(im1, extent(country))
im1_mask <- mask(im1_crop, country)

# Graficar el raster recortado
plot(im1_mask, main = "Precipitación promedio en enero - Colombia")

# Cargar el raster de precipitación
bras = list.files("~/Unidad2_Exploracion/wc2_1_5m_prec/", full.names = TRUE)

bras_temp = stack(bras)

# Descargar y cargar los datos del mapa mundial
world <- ne_countries(scale = "medium", returnclass = "sf")

# Seleccionar un país, por ejemplo, Colombia
country <- world[world$name == "Colombia", ]

# Recortar el raster utilizando la geometría del país
im1_crop <- crop(bras_temp, extent(country))
im1_mask <- mask(im1_crop, country)

# Graficar el raster recortado
plot(im1_mask, main = "Precipitación mes a mes - Colombia")

Precipitación de Brasil en el año

names(im1_mask)=month.name
plot(im1_mask)

porc_temp_bra=sum(im1_mask)/12*10
plot(porc_temp_bra)

Mejorando la gráfica:

library(ggplot2)
library(rasterVis)
# Cargar el raster de precipitación
bras <- list.files("~/Unidad2_Exploracion/wc2_1_5m_prec/", full.names = TRUE)
bras_temp <- stack(bras)

# Descargar y cargar los datos del mapa mundial
world <- ne_countries(scale = "medium", returnclass = "sf")

# Seleccionar un país, por ejemplo, Colombia
country <- world[world$name == "Colombia", ]

# Recortar el raster utilizando la geometría del país
im1_crop <- crop(bras_temp, extent(country))
im1_mask <- mask(im1_crop, country)

# Convertir el raster recortado a un formato compatible con ggplot
im1_df <- as.data.frame(im1_mask, xy = TRUE)
names(im1_df)[3] <- "precipitation"

# Graficar utilizando ggplot2
ggplot() +
  geom_raster(data = im1_df, aes(x = x, y = y, fill = precipitation)) +
  scale_fill_viridis_c(name = "Precipitación (mm)", option = "viridis") +
  coord_quickmap() +
  labs(title = "Precipitación anual promedio - Colombia") +
  theme_minimal() +
  theme(legend.position = "bottom")

Vietnam

Visualizando la temperatura de Vietnam en enero:

# Cargar el raster de temperatura
im1 <- raster("~/Unidad2_Exploracion/temperatura/wc2.1_10m_tavg_01.tif")

# Descargar y cargar los datos del mapa mundial
world <- ne_countries(scale = "medium", returnclass = "sf")

# Seleccionar un país, por ejemplo, Vietnam
country <- world[world$name == "Vietnam", ]

# Recortar el raster utilizando la geometría del país
im1_crop <- crop(im1, extent(country))
im1_mask <- mask(im1_crop, country)

# Graficar el raster recortado
plot(im1_mask, main = "Temperatura promedio en enero - Vietnam")

# Cargar el raster de temperatura
bras = list.files("~/Unidad2_Exploracion/temperatura/", full.names = TRUE)

bras_temp = stack(bras)

# Descargar y cargar los datos del mapa mundial
world <- ne_countries(scale = "medium", returnclass = "sf")

# Seleccionar un país, por ejemplo, Vietnam
country <- world[world$name == "Vietnam", ]

# Recortar el raster utilizando la geometría del país
im1_crop <- crop(bras_temp, extent(country))
im1_mask <- mask(im1_crop, country)

# Graficar el raster recortado
plot(im1_mask, main = "Temperatura mes a mes - Vietnam")

Temperatura de Vietnam en el año

names(im1_mask)=month.name
plot(im1_mask)

porc_temp_bra=sum(im1_mask)/12*100
plot(porc_temp_bra)

Mejorando la gráfica:

library(ggplot2)
library(rasterVis)

# Cargar el raster de temperatura
bras <- list.files("~/Unidad2_Exploracion/temperatura/", full.names = TRUE)
bras_temp <- stack(bras)

# Descargar y cargar los datos del mapa mundial
world <- ne_countries(scale = "medium", returnclass = "sf")

# Seleccionar un país, por ejemplo, Vietnam
country <- world[world$name == "Vietnam", ]

# Recortar el raster utilizando la geometría del país
im1_crop <- crop(bras_temp, extent(country))
im1_mask <- mask(im1_crop, country)

# Convertir el raster recortado a un formato compatible con ggplot
im1_df <- as.data.frame(im1_mask, xy = TRUE)
names(im1_df)[3] <- "temperature"

# Graficar utilizando ggplot2
ggplot() +
  geom_raster(data = im1_df, aes(x = x, y = y, fill = temperature)) +
  scale_fill_viridis_c(name = "Temperatura (°C)", option = "viridis") +
  coord_quickmap() +
  labs(title = "Temperatura anual promedio - Vietnam") +
  theme_minimal() +
  theme(legend.position = "bottom")

Visualizando la precipitación de Vietnam en enero:

# Cargar el raster de temperatura
im1 <- raster("~/Unidad2_Exploracion/wc2_1_5m_prec/wc2.1_5m_prec_01.tif")

# Descargar y cargar los datos del mapa mundial
world <- ne_countries(scale = "medium", returnclass = "sf")

# Seleccionar un país, por ejemplo, Vietnam
country <- world[world$name == "Vietnam", ]

# Recortar el raster utilizando la geometría del país
im1_crop <- crop(im1, extent(country))
im1_mask <- mask(im1_crop, country)

# Graficar el raster recortado
plot(im1_mask, main = "Precipitación promedio en enero - Vietnam")

# Cargar el raster de precipitación
bras = list.files("~/Unidad2_Exploracion/wc2_1_5m_prec/", full.names = TRUE)

bras_temp = stack(bras)

# Descargar y cargar los datos del mapa mundial
world <- ne_countries(scale = "medium", returnclass = "sf")

# Seleccionar un país, por ejemplo, Vietnam
country <- world[world$name == "Vietnam", ]

# Recortar el raster utilizando la geometría del país
im1_crop <- crop(bras_temp, extent(country))
im1_mask <- mask(im1_crop, country)

# Graficar el raster recortado
plot(im1_mask, main = "Precipitación mes a mes - Vietnam")

Precipitación de Vietnam en el año

names(im1_mask)=month.name
plot(im1_mask)

porc_temp_bra=sum(im1_mask)/12*10
plot(porc_temp_bra)

Mejorando la gráfica:

library(ggplot2)
library(rasterVis)
# Cargar el raster de precipitación
bras <- list.files("~/Unidad2_Exploracion/wc2_1_5m_prec/", full.names = TRUE)
bras_temp <- stack(bras)

# Descargar y cargar los datos del mapa mundial
world <- ne_countries(scale = "medium", returnclass = "sf")

# Seleccionar un país, por ejemplo, Vietnam
country <- world[world$name == "Vietnam", ]

# Recortar el raster utilizando la geometría del país
im1_crop <- crop(bras_temp, extent(country))
im1_mask <- mask(im1_crop, country)

# Convertir el raster recortado a un formato compatible con ggplot
im1_df <- as.data.frame(im1_mask, xy = TRUE)
names(im1_df)[3] <- "precipitation"

# Graficar utilizando ggplot2
ggplot() +
  geom_raster(data = im1_df, aes(x = x, y = y, fill = precipitation)) +
  scale_fill_viridis_c(name = "Precipitación (mm)", option = "viridis") +
  coord_quickmap() +
  labs(title = "Precipitación anual promedio - Vietnam") +
  theme_minimal() +
  theme(legend.position = "bottom")

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.

Punto 1: Palmira

require(leaflet)
## Loading required package: leaflet
## Warning: package 'leaflet' was built under R version 4.3.3
# Tomo un punto aleatorio de googlemaps de Palmira- valle del cauca
leaflet() %>% addTiles() %>% addCircleMarkers(lng =-76.2964 ,lat = 3.5369)
# Sacamos la información de la temperatura y precipitación.
palmira <- data.frame(longitude = c(-76.2964), latitude = c(3.5369))

#Temperatura
palmira_temp = as.data.frame(extract(temp, palmira))

#Precipitación
palmira_prec = as.data.frame(extract(prec, palmira))

palmira_temp
##    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
palmira_prec
##   January February March April May June July August September October November
## 1      96      101   135   171 151  122   64     76       113     204      178
##   December
## 1      126

Serie de tiempo para la temperatura:

Temperatura_palmira=ts(as.numeric(palmira_temp[1,]))

plot(Temperatura_palmira, main= "Temperatura - Palmira", col="red")

Serie de tiempo para la precipitacion:

Precipitacion_palmira=ts(as.numeric(palmira_prec[1,]))

plot(Precipitacion_palmira, main= "Precipitación - Palmira", col="Blue")

Punto 2: La cumbre

# Tomo un punto aleatorio de googlemaps de La Cumbre- valle del cauca
leaflet() %>% addTiles() %>% addCircleMarkers(lng =-76.5687 ,lat = 3.6472)
# Sacamos la información de la temperatura y precipitación.
lacumbre <- data.frame(longitude = c(-76.5687), latitude = c(3.5472))

#Temperatura
lacumbre_temp = as.data.frame(extract(temp, lacumbre))

#Precipitación
lacumbre_prec = as.data.frame(extract(prec, lacumbre))

lacumbre_temp
##   January February    March    April      May     June     July   August
## 1 19.6715  19.7905 19.93025 19.70875 19.58575 19.40175 19.53775 19.61475
##   September  October November December
## 1  19.58275 19.18175 19.14025 19.47825
lacumbre_prec
##   January February March April May June July August September October November
## 1     143      137   181   222 197  135   79     97       132     264      206
##   December
## 1      186

Serie de tiempo para la temperatura:

Temperatura_lacumbre=ts(as.numeric(lacumbre_temp[1,]))

plot(Temperatura_lacumbre, main= "Temperatura - La Cumbre", col="green")

Serie de tiempo para la precipitacion:

Precipitacion_lacumbre=ts(as.numeric(lacumbre_prec[1,]))

plot(Precipitacion_lacumbre, main= "Precipitación - La Cumbre", col="Orange")

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.

punt_loc=cbind(-76.2964,3.5369)
punt_loc2=cbind(-76.5687,3.5472)
locs=rbind.data.frame(punt_loc,punt_loc2)

Se saca lo referente a la temperatura:

temp_pal=extract(temp,punt_loc)
temp_pal2=extract(temp,locs)
temp_pal2
##       January February    March    April      May     June     July   August
## [1,] 22.50275  22.6155 22.73675 22.44175 22.35850 22.32800 22.62250 22.74675
## [2,] 19.67150  19.7905 19.93025 19.70875 19.58575 19.40175 19.53775 19.61475
##      September  October November December
## [1,]  22.57575 22.02075 21.88275 22.14775
## [2,]  19.58275 19.18175 19.14025 19.47825
matplot(t(temp_pal2),type="l")

similitud=abs(temp_pal[1,]-temp)
plot(similitud[[1]])

plot(similitud)

Sacando el gráfico de similitud:

similar_menosde_2=similitud<2
aptitud=sum(similar_menosde_2)/12*100
plot(aptitud)

require(RColorBrewer)
require(rasterVis)
require(lattice)


# Calcular la diferencia de temperatura
Simil_comp_temp <- sqrt(sum((temp - as.numeric(Temperatura_lacumbre))^2))

# Graficar
levelplot(Simil_comp_temp,
          col.regions = colorRampPalette(c("lightblue", "blue"))(100),  # Colores degradados de azul
          at = seq(0, 176, 10),  # Definir intervalos para las etiquetas de los colores
          main = "Similitud de Temperatura con Cali",
          xlab = "Longitud",
          ylab = "Latitud",
          colorkey = list(labels = list(at = seq(0, 176, 20),  # Etiquetas de la leyenda
                                        labels = seq(0, 176, 20))),
          scales = list(draw = TRUE),  # Mostrar escalas de ejes
          par.settings = BTCTheme)  # Aplicar ajustes de estilo

require(RColorBrewer)
require(rasterVis)
require(lattice)


# Calcular la diferencia de temperatura
Simil_comp_temp <- sqrt(sum((temp - as.numeric(Temperatura_palmira))^2))

# Graficar
levelplot(Simil_comp_temp,
          col.regions = colorRampPalette(c("lightblue", "green"))(100),  # Colores degradados de azul
          at = seq(0, 176, 10),  # Definir intervalos para las etiquetas de los colores
          main = "Similitud de Temperatura con Cali",
          xlab = "Longitud",
          ylab = "Latitud",
          colorkey = list(labels = list(at = seq(0, 176, 20),  # Etiquetas de la leyenda
                                        labels = seq(0, 176, 20))),
          scales = list(draw = TRUE),  # Mostrar escalas de ejes
          par.settings = BTCTheme)  # Aplicar ajustes de estilo

Se realiza con la precipitación:

prec_pal=extract(prec,punt_loc)
prec_pal2=extract(prec,locs)
prec_pal2
##      January February March April May June July August September October
## [1,]      96      101   135   171 151  122   64     76       113     204
## [2,]     143      137   181   222 197  135   79     97       132     264
##      November December
## [1,]      178      126
## [2,]      206      186
matplot(t(prec_pal2),type="l")

similitud=abs(prec_pal[1,]-prec)
plot(similitud[[1]])

plot(similitud)

Sacando el gráfico de similitud:

similar_menosde_2=similitud<2
aptitud=sum(similar_menosde_2)/12*100
plot(aptitud)

require(RColorBrewer)
require(rasterVis)
require(lattice)


# Calcular la diferencia de precipitación
Simil_comp_prec <- sqrt(sum((prec - as.numeric(Precipitacion_lacumbre))^2))

# Graficar
levelplot(Simil_comp_prec,
          col.regions = colorRampPalette(c("lightblue", "blue"))(100),  # Colores degradados de azul
          at = seq(0, 176, 10),  # Definir intervalos para las etiquetas de los colores
          main = "Similitud de Temperatura con Cali",
          xlab = "Longitud",
          ylab = "Latitud",
          colorkey = list(labels = list(at = seq(0, 176, 20),  # Etiquetas de la leyenda
                                        labels = seq(0, 176, 20))),
          scales = list(draw = TRUE),  # Mostrar escalas de ejes
          par.settings = BTCTheme)  # Aplicar ajustes de estilo

require(RColorBrewer)
require(rasterVis)
require(lattice)


# Calcular la diferencia de precipitación
Simil_comp_prec <- sqrt(sum((prec - as.numeric(Precipitacion_palmira))^2))

# Graficar
levelplot(Simil_comp_prec,
          col.regions = colorRampPalette(c("lightblue", "green"))(100),  # Colores degradados de azul
          at = seq(0, 176, 10),  # Definir intervalos para las etiquetas de los colores
          main = "Similitud de Temperatura con Cali",
          xlab = "Longitud",
          ylab = "Latitud",
          colorkey = list(labels = list(at = seq(0, 176, 20),  # Etiquetas de la leyenda
                                        labels = seq(0, 176, 20))),
          scales = list(draw = TRUE),  # Mostrar escalas de ejes
          par.settings = BTCTheme)  # Aplicar ajustes de estilo

5.- Compare los mapas generados por ambas aproximaciones y concluya.