Entrega informe 3 RMarkdown: Análisis Geoestadístico e Interpolación Espacial de la Temperatura en un Cultivo de Aguacate del Departamento del Cauca mediante Kriging - Wilson Briñez
## Paquetes necesarios
library(readxl)
library(tidyverse)
library(ggspatial)
library(rnaturalearth)
library(ggspatial)
library(stringr)
library(lubridate)
library(sf)
library(sp)
library(automap)
library(gstat)1. Filtrado de datos
En esta etapa se realizó la preparación y selección de los datos que
serán utilizados en el análisis geoestadístico. Inicialmente, se importó
la base de datos desde el archivo
Datos_Completos_Aguacate.xlsx. Posteriormente, se efectuó un
proceso de limpieza sobre la variable FORMATTED_DATE_TIME,
reemplazando los indicadores de tiempo (“a, m,” y “p, m,”) por un
formato compatible con R y convirtiendo la información a un objeto de
tipo fecha-hora mediante la función dmy_hms(). Finalmente,
se filtraron los registros correspondientes al 1 de octubre de
2020, obteniendo el conjunto de datos que servirá como base
para el análisis exploratorio, la evaluación de la dependencia espacial
y la posterior interpolación mediante Kriging.
datos <- datos |>
mutate(
fecha_hora = FORMATTED_DATE_TIME |>
str_replace_all("a, m,", "AM") |>
str_replace_all("p, m,", "PM") |>
str_squish(),
fecha_hora = dmy_hms(fecha_hora)
)|> # A tibble: 6 × 22
|> id_arbol Latitude Longitude FORMATTED_DATE_TIME Psychro_Wet_Bulb_Temp…¹
|> <chr> <dbl> <dbl> <chr> <dbl>
|> 1 1 2.39 -76.7 01/10/2020 10:11:12 a, m, 22
|> 2 2 2.39 -76.7 01/10/2020 10:11:12 a, m, 21.4
|> 3 3 2.39 -76.7 01/10/2020 10:11:12 a, m, 21.8
|> 4 4 2.39 -76.7 01/10/2020 10:11:12 a, m, 22.8
|> 5 5 2.39 -76.7 01/10/2020 10:11:12 a, m, 22.6
|> 6 6 2.39 -76.7 01/10/2020 10:11:12 a, m, 21.5
|> # ℹ abbreviated name: ¹Psychro_Wet_Bulb_Temperature
|> # ℹ 17 more variables: Station_Pressure <dbl>, Relative_Humidity <dbl>,
|> # Crosswind <dbl>, Temperature <dbl>, Barometric_Pressure <dbl>,
|> # Headwind <dbl>, Direction_True <dbl>, Direction_Mag <dbl>,
|> # Wind_Speed <dbl>, Heat_Stress_Index <dbl>, Altitude <dbl>, Dew_Point <dbl>,
|> # Density_Altitude <dbl>, Wind_Chill <dbl>,
|> # Estado_Fenologico_Predominante <dbl>, Frutos_Afectados <dbl>, …
2. Selección de variables - Exploración inicial
La variable Temperatura presenta valores comprendidos entre 22.2 °C y 29.7 °C, con una temperatura media de 25.83 °C y una mediana de 25.8 °C. La cercanía entre la media y la mediana sugiere, de manera preliminar, una distribución relativamente simétrica. Además, el 50 % central de las observaciones se encuentra entre 24.5 °C y 27.18 °C, lo que indica una variabilidad moderada de la temperatura dentro del área de estudio. La desviación estándar fue de 1.77 °C y la varianza de 3.14 °C², evidenciando que las mediciones presentan diferencias espaciales apreciables, condición necesaria para explorar la existencia de dependencia espacial mediante técnicas geoestadísticas.
|> Min. 1st Qu. Median Mean 3rd Qu. Max.
|> 22.20 24.50 25.80 25.83 27.18 29.70
|> [1] 1.771073
|> [1] 3.136698
ggplot(datos, aes(x = Temperature)) +
geom_histogram(bins = 30, fill = "lightblue", col = "black") +
theme_minimal()ggplot(datos, aes(Longitude, Latitude, color = Temperature)) +
geom_point(size = 3) +
coord_equal() +
theme_minimal() 3. Crear el objeto espacial
4. Análisis de autocorrelación espacial
|> $exp_var
|> np dist gamma dir.hor dir.ver id
|> 1 25 2.895975 1.235200 0 0 var1
|> 2 236 4.518401 1.374153 0 0 var1
|> 3 998 6.413428 1.088742 0 0 var1
|> 4 778 9.101831 1.838734 0 0 var1
|> 5 1562 11.607858 1.898095 0 0 var1
|> 6 5803 17.454550 2.450244 0 0 var1
|> 7 8301 25.806331 2.733060 0 0 var1
|> 8 15146 36.572714 2.788527 0 0 var1
|> 9 17143 49.286633 2.874039 0 0 var1
|> 10 17643 62.012796 3.208348 0 0 var1
|> 11 21956 76.818839 3.101539 0 0 var1
|>
|> $var_model
|> model psill range kappa
|> 1 Nug 0.9497553 0.00000 0
|> 2 Ste 1.9835794 15.51607 5
|>
|> $sserr
|> [1] 3.227482
|>
|> attr(,"class")
|> [1] "autofitVariogram" "list"
El semivariograma experimental evidenció un incremento de la semivarianza a medida que aumentó la distancia entre los puntos de muestreo, indicando la presencia de autocorrelación espacial en la variable temperatura. El ajuste automático seleccionó un modelo estable con un efecto pepita de 0.95, una contribución estructural de 1.98 y un alcance aproximado de 15.5 metros. Estos resultados sugieren que los valores de temperatura presentan dependencia espacial dentro de la finca y que las observaciones ubicadas a distancias menores al alcance tienden a ser más similares entre sí. En consecuencia, la variable cumple los supuestos necesarios para realizar interpolación espacial mediante Kriging.
5. Ajuste del modelo teórico
vg_exp <- fit.variogram(
variogram(Temperature ~ 1, puntos_sp),
vgm(model = "Exp")
)
vg_sph <- fit.variogram(
variogram(Temperature ~ 1, puntos_sp),
vgm(model = "Sph")
)
vg_gau <- fit.variogram(
variogram(Temperature ~ 1, puntos_sp),
vgm(model = "Gau")
)|> [1] 1.671427
|> [1] 4.985254
|> [1] 12.31097
Con el fin de identificar el modelo teórico que mejor representa la estructura espacial de la temperatura, se ajustaron los modelos Exponencial, Esférico y Gaussiano al semivariograma experimental. La comparación se realizó mediante el error cuadrático residual (SSE), obteniéndose valores de 1.671 para el modelo Exponencial, 4.985 para el modelo Esférico y 12.311 para el modelo Gaussiano. Dado que el modelo Exponencial presentó el menor valor de SSE, se seleccionó como el modelo más adecuado para describir la dependencia espacial de la variable temperatura y fue utilizado posteriormente en el proceso de interpolación mediante Kriging.
6. Interpolación espacial
La interpolación espacial de la temperatura se realizó mediante Kriging Ordinario, utilizando como base el modelo exponencial ajustado al semivariograma experimental. Este método permite estimar valores de temperatura en ubicaciones donde no se realizaron mediciones directas, aprovechando la estructura de dependencia espacial identificada previamente entre los puntos de muestreo. Para ello, se emplearon las observaciones registradas en los árboles georreferenciados y una malla regular de predicción que cubre toda el área de estudio.
Posteriormente, los resultados de la interpolación fueron transformados a un formato tabular que incluye las coordenadas espaciales y los valores predichos de temperatura para cada punto de la malla. Finalmente, esta información se convirtió en un objeto espacial, facilitando su representación cartográfica y el análisis de la distribución espacial de la temperatura dentro del cultivo de aguacate.
|> [using ordinary kriging]
Conclusión
Conclusión
El análisis geoestadístico realizado sobre la variable temperatura permitió identificar una estructura de dependencia espacial dentro del cultivo de aguacate. El semivariograma experimental evidenció que las observaciones cercanas presentan valores de temperatura más similares que aquellas ubicadas a mayores distancias, confirmando la existencia de autocorrelación espacial y justificando la aplicación de técnicas de interpolación geoestadística.
La comparación entre los modelos teóricos Exponencial, Esférico y Gaussiano mostró que el modelo Exponencial presentó el mejor ajuste al semivariograma experimental, al registrar el menor error cuadrático residual (SSE = 1.671). Por esta razón, dicho modelo fue seleccionado para realizar la interpolación mediante Kriging Ordinario.
El mapa de predicción obtenido revela una distribución espacial heterogénea de la temperatura dentro de la finca, con zonas que presentan temperaturas inferiores a 23 °C y otras que alcanzan valores cercanos a 29 °C. Esta variabilidad sugiere la existencia de patrones microclimáticos locales que podrían estar asociados a factores como la topografía, la cobertura vegetal, la exposición solar o las condiciones ambientales propias del terreno.
En términos generales, los resultados demuestran que la temperatura presenta una estructura espacial definida y que el Kriging Ordinario constituye una herramienta adecuada para estimar su comportamiento en áreas donde no se realizaron mediciones directas. La superficie interpolada obtenida proporciona una representación continua del clima dentro de la finca, facilitando la identificación de zonas con diferentes condiciones térmicas y aportando información útil para la gestión y el monitoreo del cultivo de aguacate.
data@data |>
ggplot() +
scale_fill_gradientn(
colours = c(
"#313695",
"#74add1",
"#abd9e9",
"#ffffbf",
"#fdae61",
"#d73027"
),
breaks = seq(22, 30, by = 1),
name = "Temperatura (°C)"
) +
geom_raster(aes(x1, x2, fill = var1.pred)) +
coord_equal() + theme_minimal() + labs( x= "", y = "", title = "Interpolación espacial de la temperatura mediante Kriging Ordinario",
subtitle = "Clima en Finca de Aguacate")