1.Introdución

Este es un cuadernillo R Markdown para el curso de geomatica basica, el objetivo de este trabajo es analizar los datos para el eje cafetero entre los años 2019 y 2024. los datos a procesar se encuentran en Evaluaciones Agropecuarias Municipales (EVA) y son publicados por el ministerio de Agricultura y desarrollo rural.

2. Instalación de paquetes

A continuación se present los pasos de instalación: se instalan los paquetes y librerias y cargan apra su uso en R

#run the following lines from the command line:
#install.packages('tidyverse')
#install.packages('dplyr')
#install.packages('readxl')
#install.packages('sf)
#install.packages('tidyverse')
#install.packages("gridExtra")
#install.packages("ggrepel")

Cargue de librerias

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
library(readxl)
library(ggplot2)
library(gridExtra)
## 
## Adjuntando el paquete: 'gridExtra'
## 
## The following object is masked from 'package:dplyr':
## 
##     combine
library(ggrepel)

3. Descargar y lectura de datos en R

Descargar los datos de multiples años de la Base de datos EVA para todos los departamentos Evaluaciones Agropecuarias Municipales (EVA).

Cargar y leer EVA dataset

(eva = read_csv("C:/Users/ASUS/Desktop/Agronomia/3 Semestre/Geomatica_basica/parcial1/EVA_2019_2023.csv", col_names = TRUE,
                show_col_types = FALSE))

4. Procesamiento de Datos

se realiza el filtrado de información para los departamentos de Caldas, Risaralda, y Quindío y se tiene un total de 5532 ítems

# Filtrar datos por los departamentos especificados
eva <- eva %>% 
  filter(Departamento %in% c("Caldas", "Risaralda", "Quindío"))
eva

Se visualizan el nombre de las columnas que están presentes en el EVA dataset

colnames(eva)
##  [1] "Código Dane departamento"      "Departamento"                 
##  [3] "Código Dane municipio"         "Municipio"                    
##  [5] "Grupo cultivo"                 "Subgrupo"                     
##  [7] "Cultivo"                       "Desagregación cultivo"        
##  [9] "Año"                           "Periodo"                      
## [11] "Área sembrada"                 "Área cosechada"               
## [13] "Producción"                    "Rendimiento"                  
## [15] "Ciclo del cultivo"             "Estado físico del cultivo"    
## [17] "Código del cultivo"            "Nombre científico del cultivo"

Eliminar algunas columnas que no agregan que no serán tenidas en cuenta para el análisis de datos, tales Como: Periodo, -Código Dane municipio, -Código Dane departamento)

eva_clear <- eva %>% dplyr::select(-`Periodo`, -`Código Dane municipio`, -`Código Dane departamento`,-`Código del cultivo`)
eva_clear

Se cambia el nombre a algunas columnas para conocer a que está haciendo referencia los datos contenidos por columnas

eva_clear %>% dplyr::rename('DPTO' = 'Departamento',
                       'MUN' = 'Municipio',
                       'GRUPO DE CULTIVO'='Grupo cultivo',
                       'SUBGRUPO DE CULTIVO'='Subgrupo',
                       'Área Sembrada (ha)'='Área sembrada',
                       'Área Cosechada (ha)'='Área cosechada',
                       'Producción (t)'='Producción',
                       'Rendimiento (t/ha)'='Rendimiento',   
                       'DESAGREGACIÓN REGIONAL Y/O SISTEMA PRODUCTIVO'='Desagregación cultivo',
                       'ESTADO FISICO PRODUCCION'='Estado físico del cultivo') -> new_eva

new_eva
  1. Análisis de datos

Dado que algunos nombres son muy largos se procese a modificar para una interpretación más amigable con el usuario final y se realiza la agrupación de datos por la columna Grupo de cultivo, sumando las columnas Total de área sembrada, área Cosechada y producción, y obteniendo el promedio del rendimiento para cada uno de los grupos de cultivo para los años 2019-2023

new_eva <- new_eva %>%
  mutate(`GRUPO DE CULTIVO` = recode(`GRUPO DE CULTIVO`,
                                     "Cultivos para condimentos, bebidas medicinales y aromáticas" = "Condimentos y aromáticas",
                                     "Cultivos tropicales tradicionales" = "Tropicales tradicionales"))

#agrupación de datos
resumen_cultivo <- new_eva %>%
  group_by(`GRUPO DE CULTIVO`) %>%
  summarise(
    total_area_sembrada = sum(`Área Sembrada (ha)`, na.rm = TRUE),
    total_area_cosechada = sum(`Área Cosechada (ha)`, na.rm = TRUE),
    total_produccion = sum(`Producción (t)`, na.rm = TRUE),
    promedio_rendimiento = mean(`Rendimiento (t/ha)`, na.rm = TRUE),
    .groups = "drop"
  )

# Ver el resultado
print(resumen_cultivo)
## # A tibble: 8 × 5
##   `GRUPO DE CULTIVO`   total_area_sembrada total_area_cosechada total_produccion
##   <chr>                              <dbl>                <dbl>            <dbl>
## 1 Cereales                          19308.               18403.           65546.
## 2 Condimentos y aromá…                705.                 571.            7652.
## 3 Frutales                         636573.              562086.         6937833.
## 4 Hortalizas                        10479.               10082.          312352.
## 5 Leguminosas                        7867.                7467.           15508.
## 6 Oleaginosas                         971.                 925.            2156.
## 7 Raíces y tubérculos                7320.                6836.           92836.
## 8 Tropicales tradicio…             754732.              599391.         7005888.
## # ℹ 1 more variable: promedio_rendimiento <dbl>

Para una mejor comprensión de los datos, se procede a graficar las columnas y hacer un respecto análisis de la información encontrada.

# Crear la paleta de colores específica para cada categoría
paleta_colores <- c(
  "Cereales" = "#FFD39B",
  "Condimentos y aromáticas" = "#B03060",
  "Frutales" = "#FF8C00",
  "Hortalizas" = "#66CDAA",
  "Leguminosas" = "#00EEEE",
  "Oleaginosas" = "#FFB6C1",
  "Raíces y tubérculos" = "#8B5A2B",
  "Tropicales tradicionales" = "#7FFF00"
)

# Crear una función para generar cada gráfico con leyendas ordenadas de mayor a menor
crear_grafico <- function(df, columna, titulo) {
  # Calcular porcentaje y ajustar redondeo para que sume 100%
  df <- df %>%
    mutate(
      porcentaje = !!sym(columna) / sum(!!sym(columna)) * 100,
      porcentaje_redondeado = round(porcentaje, 1)
    )
  
  diferencia <- 100 - sum(df$porcentaje_redondeado)
  indice_max <- which.max(df[[columna]])
  df$porcentaje_redondeado[indice_max] <- df$porcentaje_redondeado[indice_max] + diferencia
  
  # Ordenar el DataFrame de mayor a menor según el porcentaje
  df <- df %>%
    arrange(desc(porcentaje_redondeado))
  
  # Redefinir los niveles del factor GRUPO DE CULTIVO según el orden del porcentaje
  df$`GRUPO DE CULTIVO` <- factor(df$`GRUPO DE CULTIVO`, levels = df$`GRUPO DE CULTIVO`)
  
  # Crear etiquetas personalizadas para la leyenda
  etiquetas_leyenda <- paste0(df$`GRUPO DE CULTIVO`, " (", df$porcentaje_redondeado, "%)")
  
  # Crear gráfico con la paleta de colores manual usando GRUPO DE CULTIVO
  ggplot(df, aes(x = "", y = !!sym(columna), fill = `GRUPO DE CULTIVO`)) +
    geom_bar(stat = "identity", width = 1) +
    coord_polar("y", start = 0) +
    scale_fill_manual(values = paleta_colores[df$`GRUPO DE CULTIVO`], labels = etiquetas_leyenda) +  # Usar la paleta personalizada y etiquetas ordenadas
    labs(title = titulo) +
    theme_void() +
    theme(
      legend.position = "right",              # Mover la leyenda a la derecha
      legend.title = element_blank(),         # Eliminar el título de la leyenda
      legend.text = element_text(size = 8),
      plot.title = element_text(size = 14, face = "bold", hjust = 0.5)
    )
}

# Crear cada gráfico con las columnas específicas
grafico1 <- crear_grafico(resumen_cultivo, "total_area_sembrada", "Área Sembrada")
grafico2 <- crear_grafico(resumen_cultivo, "total_area_cosechada", "Área Cosechada")
grafico3 <- crear_grafico(resumen_cultivo, "total_produccion", "Producción Total")
grafico4 <- crear_grafico(resumen_cultivo, "promedio_rendimiento", "Promedio de Rendimiento")

# Agrupar los gráficos en una sola visualización y aumentar el tamaño
grid.arrange(grafico1, grafico2, grafico3, grafico4, ncol = 2, heights = c(1, 1), widths = c(1, 1))

En las gráficas que se pueden observar que los cultivos más importantes en la región están relacionados con los grupos Tropicales tradiciones donde sus porcentajes de siembra, cosecha y producción son los mayores en las tres categorías, seguido por los cultivos de Frutales que corresponde al segundo grupo con mejores indicadores, sin embargo hay que aclarar que el rendimiento es una variable que afecta el análisis de estos cultivos, ya que hay mayor rendimiento en los cultivos de hortalizas a pesar de no estar en el top tres de los cultivos más sembrados y cosechados en la zona cafetera. pero los datos demuestran que el rendimiento de los cultivos Tropicales tradicionales y frutales siguen en el top 3 de los cultivos más importantes y con mejor rendimiento en la zona cafetera.

Para entrar con mayor detalle en la dinámica agrícola de la región analizaremos son los cultivos específicos en los grupos de cultivos de Tropicales tradicionales y frutales a nivel de producción

# Filtrar y agrupar el DataFrame para "Tropicales tradicionales"
df_tropicales <- new_eva %>%
  filter(`GRUPO DE CULTIVO` == "Tropicales tradicionales") %>%
  group_by(Cultivo) %>%
  summarise(
    total_area_sembrada = sum(`Área Sembrada (ha)`, na.rm = TRUE),
    total_area_cosechada = sum(`Área Cosechada (ha)`, na.rm = TRUE),
    total_produccion = sum(`Producción (t)`, na.rm = TRUE),
    promedio_rendimiento = mean(`Rendimiento (t/ha)`, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  arrange(desc(total_produccion))  # Ordenar por Producción de forma descendente

# Filtrar y agrupar el DataFrame para "Frutales"
df_frutales <- new_eva %>%
  filter(`GRUPO DE CULTIVO` == "Frutales") %>%
  group_by(Cultivo) %>%
  summarise(
    total_area_sembrada = sum(`Área Sembrada (ha)`, na.rm = TRUE),
    total_area_cosechada = sum(`Área Cosechada (ha)`, na.rm = TRUE),
    total_produccion = sum(`Producción (t)`, na.rm = TRUE),
    promedio_rendimiento = mean(`Rendimiento (t/ha)`, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  arrange(desc(total_produccion))  # Ordenar por Producción de forma descendente

# Ver los primeros registros de cada DataFrame ordenado
df_tropicales
df_frutales

Se puede observar en la tabla de tropicales tradiciones que solamente son 5 los cultivos están presentes en esta categoría, siendo la producción de caña el cultivo más importante en la región seguido de Café, Cacao, Fique y por ultimo Iraca siendo esta ultima la que menor producción se ha realizado entre los años 2019-2023. Por otro lado, en la tabla perteneciente a los cultivos frutales tenemos una gran variedad de cultivos con una totalidad de 30 tipos específicos de cultivos, siendo el top 5 con más producción el plátano, Aguacate, Naranja, Otros cítricos, y por ultimo y no menos importante el Banano.

Para analizar un poco más sobre estos tipos de cultivos se procede a realizar un análisis a través del tiempo e identificar como es el comportamiento de dichos cultivos.

top5_tropicales <- new_eva %>%
  filter(`GRUPO DE CULTIVO` == "Tropicales tradicionales") %>%
  group_by(Año, Cultivo) %>%
  summarise(
    total_produccion = sum(`Producción (t)`, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  group_by(Año) %>%
  slice_max(total_produccion, n = 5) %>%  # Seleccionar el top 5 por año
  ungroup()

# Filtrar el top 5 de cultivos por año para Frutales
top5_frutales <- new_eva %>%
  filter(`GRUPO DE CULTIVO` == "Frutales") %>%
  group_by(Año, Cultivo) %>%
  summarise(
    total_produccion = sum(`Producción (t)`, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  group_by(Año) %>%
  slice_max(total_produccion, n = 5) %>%  # Seleccionar el top 5 por año
  ungroup()

# Gráfico de línea de tiempo para el top 5 de Tropicales tradicionales
ggplot(top5_tropicales, aes(x = Año, y = total_produccion, color = Cultivo, group = Cultivo)) +
  geom_line(size = 1) +
  geom_point(size = 2) +
  labs(
    title = "Evolución de la Producción - Top 5 Cultivos Tropicales tradicionales",
    x = "Año", y = "Producción (t)"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 14, face = "bold", hjust = 0.5),
    legend.title = element_blank()
  )
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

# Gráfico de línea de tiempo para el top 5 de Frutales
ggplot(top5_frutales, aes(x = Año, y = total_produccion, color = Cultivo, group = Cultivo)) +
  geom_line(size = 1) +
  geom_point(size = 2) +
  labs(
    title = "Evolución de la Producción - Top 5 Cultivos Frutales",
    x = "Año", y = "Producción (t)"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 14, face = "bold", hjust = 0.5),
    legend.title = element_blank()
  )

según las gráficas anteriores se puede observar el cultivo de Caña ha sido uno de los cultivos con más producción en el eje cafetero, seguido por el cultivo de café, y los otros cultivos se encuentran muy por debajo de dichos niveles de producción como es el caso del cacao, Fique y Iraca. se puede observar que en el 2020 la producción de caña cayo situaciones que pudo verse afectada por la pandemia. en el caso de la producción de café ha sido constante con unas leves caídas de producción, y el resto de la producción es constante con niveles muy bajos.

Respecto a los cultivos de frutales, se puede identificar que el cultivo más productivo ha sido el plátano, seguido por la producción de aguacate que ha sido fluctuante con un aumentado en los últimos 5 años de 10 mil unidades adicionales de producción, por otro lado, respecto a los indicadores de otros cítricos que decayó en los años 2019-2020, no se tienen más registros de dichos tipos de cultivos, y es preocupante para la dinámica agrícola ya que significaba un cultivo representativo para la zona, sin embargo, se puede ver una compensación respecto al cultivo de naranja, que si buen su producción es baja en el 2019, comienza a volverse representativa desde al año 2022 con un crecimiento al 2021 y una estabilización en el año 2021 en adelante, reemplazando la actividad agrícola de la categoría “Otros cítricos”, por ultimo podemos ver que el aguacate es uno de los cultivos más estables con una producción más baja que el resto de cultivos, sin embargo, presenta una gran cantidad de unidades de producción para la región.

6. Discusión.

Según los datos se puede ver un crecimiento respecto a algunos cultivos representativos de la región como lo es la caña y el café teniendo, afortunadamente se puede ver que el cultivo de Caña también tiene unos altos niveles de rendimiento (63% aproximadamente), situación que no es igual en el cultivo de café (Rendimiento del 1.13% aproximadamente), si se quiere mejorar los niveles de producción se puede resolver algunas inquietudes que salieron de dicho análisis. 1. ¿Cuáles son los mejores niveles de rendimiento para los cultivos de café? 2. ¿Qué departamentos han tenido una mayor producción a nivel nacional o internacional y que niveles de rendimiento ha tenido en dichas regiones? 3. ¿Qué metodologías se han trabajado en dichos departamentos para mejorar el rendimiento para el cultivo de Café? 4. ¿Cuáles han sido las adversidades que han presentado a la hora de implementar mejoras en los cultivos de Café? Estas preguntan podrían ser tenidas en cuenta para mejorar los niveles de producción en el cultivo de café de tal manera que pueda generar mayor valor a la región.

Por el lado de los cultivos Frutales, podemos observar que durante los últimos 5 años los niveles de producción han aumentado, algunas de las preguntas que se pueden generar respecto a los cultivos top 5 de producción más importante en la región son: 1. ¿Cuáles son algunos factores para que la producción de cultivos frutales pueda fluctuar? de tal manera que al contestar dicha pregunta se pueda tener un historial de casos y cual podría ser una hoja de ruta para evitar nuevamente dicha situación donde la producción de frutales pueda verse afectada y con ello los agricultores de la región tengan grandes pérdidas 2. ¿Qué cultivos hacen parte de la categoría otros cítricos? 3. ¿por qué la categoría otros cítricos decayó tanto que no volvió a verse dentro del top 5 de cultivos más importantes en a la región? Acaso se realizó una reestructuración en la agrupación de cultivos.

7. Conclusiones.

Se puede identificar que los cultivos más representativos del eje cafetero respecto a la producción corresponden a cultivos Tropicales tradiciones con un 48.5% y cultivos Frutales con un 48%, ocupando un total de 96% de la actividad agrícola de la zona Entre los cultivos tropicales más representativos encontramos la caña y el café siendo estos dos cultivos los principales entre el top 5 de los cultivos tropicales tradicionales más representativos. Por el lado de los cultivos Frutales encontramos el plátano y el aguacate los cultivos con más producción teniendo producción desde el 2019 de forma continua con fluctuaciones, pero con un crecimiento entre los puntos iniciales y finales. Otros cultivos como naranja han tomado importancia en los últimos años reemplazando la categoría de cultivo otros cítricos que ha menguado respecto a los mismos años.