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
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")
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")
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.
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")
# 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.