En este informe, se identifica dos regiones adecuadas para el cultivo de caña de azúcar utilizando datos climáticos de WorldClim.

Temperatura Mensual

color_temp <- colorRampPalette(c("lightblue", "green", "yellow", "orange"))(100)
ruta1=list.files("temperatura/",full.names = TRUE)
temp=stack(ruta1)
names(temp)=month.name
plot(temp, col=color_temp)

Precipitación Mensual

blue_palette <- colorRampPalette(c("lightblue", "blue", "darkblue"))(100)

ruta2=list.files("Precipitacion/",full.names = TRUE)
prec=stack(ruta2)
names(prec)=month.name
plot(prec, col=blue_palette)

1. Zona con Rangos Óptimos para Cultivo Caña de Azúcar

La caña de azúcar generalmente prospera en regiones con temperaturas entre 22.5°C y 28°C y precipitaciones anuales entre 1500 mm y 3500 mm. Se filtra los datos climáticos basados en estos criterios.

temp_optimas=temp>22.5 & temp<28
names(temp_optimas)=month.name
plot(temp_optimas,col = color_temp)

aptitud_opc2=sum(temp_optimas)
aptitud_opc2=aptitud_opc2/12*100
plot(aptitud_opc2, col = color_temp)
title(main = "Temperatura promedio en rangos óptimos")

preci_optima=prec>125 & prec<290
names(preci_optima)=month.name
plot(preci_optima,col = blue_palette)

Precita1=sum(preci_optima)
Precita2=Precita1/12*100
plot(Precita2, col = blue_palette)
title(main = "Precipitación promedio anual en rangos optimos")

2. Identificación de dos regiones con alto potencial para la caña de azúcar.

world <- ne_countries(scale = "medium", returnclass = "sv")

# Filtrar píxeles de aptitud menores a 70
pixels_borrar = which(aptitud_opc2[] < 70)
aptitud_opc2[pixels_borrar] = NA

# Graficar aptitud con título
plot(aptitud_opc2, main = "Porcentaje de aptitud en temperatura")

# Agregar contornos del mapa sobre la gráfica
plot(world, add = TRUE, border = "black")

# Filtrar píxeles de aptitud menores a 70
pixels_borrar = which(Precita2[] < 70)
Precita2[pixels_borrar] = NA

# Graficar aptitud con título
plot(Precita2, main = "Porcentaje de aptitud en precipitación")

# Agregar contornos del mapa sobre la gráfica
plot(world, add = TRUE, border = "black")

Al comparar los dos mapas globales y los porcentajes de aptitud según la temperatura y la precipitación anuales, identificamos dos regiones potencialmente aptas para el cultivo de caña de azúcar. Estas regiones se encuentran en Perú y la República Democrática del Congo.

world <- ne_countries(scale = "medium", returnclass = "sf")

# Definir los países con alto potencial para la caña de azúcar
high_potential_countries <- c("Peru", "Democratic Republic of the Congo")

# Filtrar los datos del shape global para estos países
high_potential_areas <- world %>% 
  filter(admin %in% high_potential_countries)

# Graficar los mapas
mapa = ggplot(data = world) +
  geom_sf(fill = "gray90", color = "white") +
  geom_sf(data = high_potential_areas, aes(fill = admin), color = "black") +
  scale_fill_manual(values = c("Peru" = "Red", "Democratic Republic of the Congo" = "yellow")) +
  theme_minimal() +
  labs(title = "Paises con Alto Potencial para la Caña de Azúcar",
       fill = "País") +
  theme(legend.position = "bottom")

mapa

Estos son los países identificados, pero más específicamente, las regiones son Loreto en Perú, ubicada en el norte del país, y Tshuapa en la República Democrática del Congo, también en el norte. Ambas regiones comparten la característica de estar muy cerca de la línea del ecuador.

3. Identificación de tres puntos en la región del valle del cauca y se extrae la información del clima.

#Semilla
set.seed(111)
n_points <- 3

# Generar puntos aleatorios dentro de los límites del Valle del Cauca
random_points <- data.frame(
  lat = runif(n_points, min = 3.2, max = 4.5),
  lon = runif(n_points, min = -77.2, max = -75.8),
  label = paste("Ubicación", 1:n_points)  
)

# Crear el mapa y agregar marcadores con popups
mapa <- leaflet(data = random_points) %>%
  addTiles() %>%
  addMarkers(lng = ~lon, lat = ~lat, popup = ~label)

# Mostrar el mapa
mapa

Con los tres puntos se realiza las series de temperatura y precipitación.

random_points <- random_points[, c("lon", "lat")]
T7=(raster::extract (temp,random_points))
Temp_Valle= as.data.frame(T7)

Temp_Valle$Ubicación <- c("Ubicación 1", "Ubicación 2", "Ubicación 3")

Temp_Valle_long <- gather(data = Temp_Valle, key = "Mes", value = "Temperatura", -Ubicación)

meses_ordenados <- c("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")

Temp_Valle_long$Mes <- factor(Temp_Valle_long$Mes, levels = meses_ordenados)

ggplot(Temp_Valle_long, aes(x = Mes, y = Temperatura, color = Ubicación, group = Ubicación)) +
  geom_line(size = 1) + 
  labs(title = "Serie de Tiempo de Temperaturas",
       x = "Mes",
       y = "Temperatura",
       color = "Ubicación") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

T8=(raster::extract (prec,random_points))
Prec_Valle= as.data.frame(T8)

Prec_Valle$Ubicación <- c("Ubicación 1", "Ubicación 2", "Ubicación 3")

Prec_Valle_long <- gather(data = Prec_Valle, key = "Mes", value = "Precipitación", -Ubicación)

meses_ordenados <- c("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")

Prec_Valle_long$Mes <- factor(Prec_Valle_long$Mes, levels = meses_ordenados)

ggplot(Prec_Valle_long, aes(x = Mes, y = Precipitación, color = Ubicación, group = Ubicación)) +
  geom_line(size = 1) + 
  labs(title = "Serie de Tiempo de Precipitación",
       x = "Mes",
       y = "Precipitación",
       color = "Ubicación") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

La ubicación 2 es posiblemente la más apta para el cultivo de caña de azúcar.

4. Métrica de similaridad: Distancia euclidiana y Distancia Manhatan.

Se escogió un punto en el Valle del Cauca, específicamente en el corregimiento de El Guali, perteneciente al municipio de La Candelaria, donde hay producción de caña de azúcar. Este punto se comparó con otras zonas del mundo utilizando las distancias euclidiana y de Manhattan para identificar las regiones más similares en términos de temperatura.

Distancia Euclidiana

# Definir el punto de referencia
loc = cbind(3.581897, -76.260076)

# Extraer la serie temporal de temperaturas del punto de referencia
temp_loc = raster::extract(temp, loc)

# Calcular la diferencia euclidiana para cada celda
euclidean_distance <- function(x) {
  sqrt(sum((x - temp_loc)^2, na.rm = TRUE))
}

# Aplicar la función a cada celda del RasterStack
distance_raster = calc(temp, euclidean_distance)

# Visualizar el raster de distancias euclidianas
plot(distance_raster, main = "Distancia Euclidiana a El Guali (Temperatura)")

# Definir el punto de referencia
loc = cbind(3.581897, -76.260076)

# Extraer la serie temporal de temperaturas del punto de referencia
temp_loc = raster::extract(prec, loc)

# Calcular la diferencia euclidiana para cada celda
euclidean_distance <- function(x) {
  sqrt(sum((x - temp_loc)^2, na.rm = TRUE))
}

# Aplicar la función a cada celda del RasterStack
distance_raster = calc(prec, euclidean_distance)

# Visualizar el raster de distancias euclidianas
plot(distance_raster, main = "Distancia Euclidiana a El Guali (Precipitación)")

Distancia Manhatan

# Definir el punto de referencia
loc = cbind(3.581897, -76.260076)

# Extraer la serie temporal de temperaturas del punto de referencia
temp_loc = raster::extract(temp, loc)

# Calcular la distancia de Manhattan para cada celda
manhattan_distance <- function(x) {
  sum(abs(x - temp_loc), na.rm = TRUE)
}

# Aplicar la función a cada celda del RasterStack
distance_raster = calc(temp, manhattan_distance)

# Visualizar el raster de distancias de Manhattan
plot(distance_raster, main = "Distancia de Manhattan a El Guali (Temperatura)")

# Definir el punto de referencia
loc = cbind(3.581897, -76.260076)

# Extraer la serie temporal de temperaturas del punto de referencia
temp_loc = raster::extract(prec, loc)

# Calcular la distancia de Manhattan para cada celda
manhattan_distance <- function(x) {
  sum(abs(x - temp_loc), na.rm = TRUE)
}

# Aplicar la función a cada celda del RasterStack
distance_raster = calc(prec, manhattan_distance)

# Visualizar el raster de distancias de Manhattan
plot(distance_raster, main = "Distancia de Manhattan a El Guali (Precipitación)")

5. Comparación y conclusiones

Al calcular las distancias euclidianas y de Manhattan, se encontró que el punto de referencia en el Valle del Cauca no tiene muchas similitudes con otras regiones a nivel global en términos de temperatura y precipitación. Esto indica que las condiciones climáticas de esta área son únicas y no se replican fácilmente en otras partes del mundo.