Punto 1

Utilizando los datos de clima de línea base a nivle 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.

# Calcular la temperatura media con los valores de la temperatura mínima y la máxima
temp_mean <- (temp_min + temp_max) / 2

# Ponerle nombre a cada una de las imágenes por mes de tanto de las precipitaciones como de la temperatura media

names(prec)=month.name
names(temp_mean)=month.name
# Gráfica de la temperatura promedio por mes del año 2021
plot(temp_mean)

# Gráfica de las precipitaciones por mes del año 2021  
plot(prec)

# Se suman las precipitacione para tenerlas anual, mensual y tener el promedio # de la temperatura

prec_anual = sum(prec)
prec_mes = mean(prec)
temperatura = mean(temp_mean)
# Filtro para los que están en la temperatura entre 22.5 y 28 grados

aptitud_temp <- temperatura >= 22.5 & temperatura <= 28
plot(aptitud_temp, main = "Temperatura entre 22.5 y 28 grados", legend = TRUE)

# Filtro para los que están en precipitación anual entre 1500 y 3500 anual o 125 y 290 mensuales

aptitud_prec <- (prec_anual >= 1500 & prec_anual <= 3500) | (prec_mes >= 125 & prec_mes <= 290)
plot(aptitud_prec, main = "Precipitaciones entre 1500 y 3500 anuales 0 125 y 290 mensuales", legend = TRUE)

aptitud_total <- aptitud_temp & aptitud_prec  
plot(aptitud_total, main = "Mapa con los filtros de temperatura y precipitaciones", legend = TRUE)

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.

# Gráfica de Colombia por temperatura

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

# Seleccionar Colombia
pais <- mundo[mundo$name == "Colombia", ]

# Recortar el raster utilizando la geometría del país
cortar <- crop(temperatura, extent(pais))
capa <- mask(cortar, pais)

# Graficar el raster recortado
plot(capa, main = "Temperatura promedio en Colombia 2021")

# Gráfica de Colombia por temperatura por mes

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

# Seleccionar Colombia
pais <- mundo[mundo$name == "Colombia", ]

# Recortar el raster utilizando la geometría del país
cortar <- crop(temp_mean, extent(pais))
capa <- mask(cortar, pais)

names(capa) = month.name

# Graficar el raster recortado
plot(capa)

# Gráfica de Colombia por precipitaciones

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

# Seleccionar Colombia
pais <- mundo[mundo$name == "Colombia", ]

# Recortar el raster utilizando la geometría del país
cortar <- crop(prec_anual, extent(pais))
capa <- mask(cortar, pais)


# Graficar el raster recortado
plot(capa, main = "precipitaciones anuales en Colombia 2021")

# Gráfica de Colombia por precipitaciones mensuales

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

# Seleccionar a Colombia
pais <- mundo[mundo$name == "Colombia", ]

# Recortar el raster utilizando la geometría del país
cortar <- crop(prec, extent(pais))
capa <- mask(cortar, pais)

names(capa) = month.name

# Graficar el raster recortado
plot(capa)

# Gráfica de Indonesia por temperatura

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

# Seleccionar Indonesia
pais <- mundo[mundo$name == "Indonesia", ]

# Recortar el raster utilizando la geometría del país
cortar <- crop(temperatura, extent(pais))
capa <- mask(cortar, pais)

# Graficar el raster recortado
plot(capa, main = "Temperatura promedio en Indonesia 2021")

# Gráfica de Indonesia por temperatura por mes

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

# Seleccionar Indonesia
pais <- mundo[mundo$name == "Indonesia", ]

# Recortar el raster utilizando la geometría del país
cortar <- crop(temp_mean, extent(pais))
capa <- mask(cortar, pais)

names(capa) = month.name

# Graficar el raster recortado
plot(capa)

# Gráfica de Indonesia por precipitaciones

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

# Seleccionar a Indonesia
pais <- mundo[mundo$name == "Indonesia", ]

# Recortar el raster utilizando la geometría del país
cortar <- crop(prec_anual, extent(pais))
capa <- mask(cortar, pais)

# Graficar el raster recortado
plot(capa, main = "precipitaciones anuales en Indonesia 2021")

# Gráfica de Indonesia por precipitaciones mensuales

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

# Seleccionar a Indonesia
pais <- mundo[mundo$name == "Indonesia", ]

# Recortar el raster utilizando la geometría del país
cortar <- crop(prec, extent(pais))
capa <- mask(cortar, pais)

names(capa) = month.name
# Graficar el raster recortado
plot(capa)

# Gráfica de Perú por temperatura

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

# Seleccionar Perú
pais <- mundo[mundo$name == "Peru", ]

# Recortar el raster utilizando la geometría del país
cortar <- crop(temperatura, extent(pais))
capa <- mask(cortar, pais)

# Graficar el raster recortado
plot(capa, main = "Temperatura promedio en Perú 2021")

# Gráfica de Perú por temperatura por mes

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

# Seleccionar Perú
pais <- mundo[mundo$name == "Peru", ]

# Recortar el raster utilizando la geometría del país
cortar <- crop(temp_mean, extent(pais))
capa <- mask(cortar, pais)

names(capa) = month.name
# Graficar el raster recortado
plot(capa)

# Gráfica de Perú por precipitaciones

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

# Seleccionar a Perú
pais <- mundo[mundo$name == "Peru", ]

# Recortar el raster utilizando la geometría del país
cortar <- crop(prec_anual, extent(pais))
capa <- mask(cortar, pais)

# Graficar el raster recortado
plot(capa, main = "precipitaciones anuales en Perú 2021")

# Gráfica de Perú por precipitaciones mensuales

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

# Seleccionar a Perú
pais <- mundo[mundo$name == "Peru", ]

# Recortar el raster utilizando la geometría del país
cortar <- crop(prec, extent(pais))
capa <- mask(cortar, pais)

names(capa) = month.name
# Graficar el raster recortado
plot(capa)

Punto 3

Identificar algunos puntos (2 o 3) al azar en la región del Valle del Cauca (use google maps) y extraer información de clima. Grafique las series de tiempo de temperatura y precipitación.

# Primera ciudad seleccionada es Jamundí

loc = geocode_OSM(q="Jamundi")

loc$coords
##          x          y 
## -76.540797   3.261836
leaflet() %>% addTiles() %>% addCircleMarkers(lng = loc$coords[1],
                   lat = loc$coords[2])
#prec_vals <- extract(prec, loc$coords)
#temp_vals <- extract(temp_mean, loc$coords)

jamundi <- data.frame(longitude = c(-76.540797), latitude = c(3.261836))


# Temperatura
jamundi_temp = as.data.frame(extract(temp_mean, jamundi))

# Precipitaciones
jamundi_prec =  as.data.frame(extract(prec,jamundi))


# Gráfico de temperatura
temp_jamundi=ts(as.numeric(jamundi_temp[1,]))
plot(temp_jamundi,main="Temperatura promedio Jamundí", col="red")

# Gráfico de precipitaciones
prec_jamundi=ts(as.numeric(jamundi_prec[1,]))
plot(prec_jamundi,main="Precipitaciones Jamundí", col="green")

# Segunda ciudad seleccionada es Palmira

loc = geocode_OSM(q="Palmira")

loc$coords
##          x          y 
## -76.298805   3.530837
leaflet() %>% addTiles() %>% addCircleMarkers(lng = loc$coords[1],
                   lat = loc$coords[2])
palmira <- data.frame(longitude = c(-76.2988), latitude = c(3.5308))


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

# Precipitaciones
palmira_prec =  as.data.frame(extract(prec,palmira))


# Gráfico de temperatura
temp_palmira=ts(as.numeric(palmira_temp[1,]))
plot(temp_palmira,main="Temperatura promedio Palmira", col="red")

# Gráfico de precipitaciones
prec_palmira=ts(as.numeric(palmira_prec[1,]))
plot(prec_palmira,main="Precipitaciones Palmira", col="green")

# Tercera ciudad seleccionada es Tuluá

loc = geocode_OSM(q="Tulua, Colombia")

loc$coords
##          x          y 
## -76.197278   4.085667
leaflet() %>% addTiles() %>% addCircleMarkers(lng = loc$coords[1],
                   lat = loc$coords[2])
tulua <- data.frame(longitude = c(-76.1972), latitude = c(4.0856))


# Temperatura
tulua_temp = as.data.frame(extract(temp_mean, tulua))

# Precipitaciones
tulua_prec =  as.data.frame(extract(prec,tulua))


# Gráfico de temperatura
temp_tulua=ts(as.numeric(tulua_temp[1,]))
plot(temp_tulua,main="Temperatura promedio Tulua", col="red")

# Gráfico de precipitaciones
prec_tulua=ts(as.numeric(tulua_prec[1,]))
plot(prec_tulua,main="Precipitaciones Tulua", col="green")

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.

## Loading required package: rasterVis
## Warning in library(package, lib.loc = lib.loc, character.only = TRUE,
## logical.return = TRUE, : there is no package called 'rasterVis'
# Temperatura en Jamundí

similitud=sqrt(sum((temp_mean-as.numeric(temp_jamundi))^2))
plot(similitud, main = "Zonas similares a Jamundí en temperatura", col = brewer.pal(9, "Blues"))

# Precipitaciones en Jamundí

similitud=sqrt(sum((prec_anual-as.numeric(prec_jamundi))^2))
plot(similitud, main = "Zonas similares a Jamundí en precipitaciones", col = brewer.pal(9, "Blues"))

# Temperatura en Palmira

similitud=sqrt(sum((temp_mean-as.numeric(temp_palmira))^2))
plot(similitud, main = "Zonas similares a Palmira en temperatura", col = brewer.pal(9, "Blues"))

# Precipitaciones en Palmira

similitud=sqrt(sum((prec_anual-as.numeric(prec_palmira))^2))
plot(similitud, main = "Zonas similares a Palmira en precipitaciones", col = brewer.pal(9, "Blues"))

# Temperatura en Tuluá

similitud=sqrt(sum((temp_mean-as.numeric(temp_tulua))^2))
plot(similitud, main = "Zonas similares a Tuluá en temperatura", col = brewer.pal(9, "Blues"))

# Precipitaciones en Tuluá

similitud=sqrt(sum((prec_anual-as.numeric(prec_tulua))^2))
plot(similitud, main = "Zonas similares a Tuluá en precipitaciones", col = brewer.pal(9, "Blues"))

Punto 5

Compare los mapas generados por ambas aproximaciones y concluya.