TEMPERATURA DE FINCA DE AGUACATE

# Mapa de puntos
leaflet() %>% addTiles() %>% addCircleMarkers(lng = datos$Longitude,lat = datos$Latitude,radius = 0.1,color = "darkgreen")

Cada registro de temperatura está asociado a una ubicación geográfica específica (latitud y longitud), que coincide con la posición de un árbol de aguacate.

Método Geoestadístico

#Conversión de datos a variables regionalizadas y exploración de datos.
geotemperatura = as.geodata(datos, coords.col = 2:1, data.col = 3)
plot(geotemperatura)

La distribución de la temperatura es agregada y no hay una tendencia clara, esto se nota en los puntos con colores del primer gráfico.

#Resumen de datos regionalizados
summary(dist(geotemperatura$coords))
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## 1.712e-05 4.051e-04 6.408e-04 6.827e-04 9.178e-04 1.959e-03

La información de la matriz de distancias nos arroja los datos para calcular el semivariograma, en este caso se tomará el valor del cuartil 3 (9.178e-04) y un valor un poco más alto del mínimo (3e-05).

# Semivariograma
variograma=variog(geotemperatura,option = "bin",uvec=seq(0,9.18e-04,2e-05))
## variog: computing omnidirectional variogram
variograma_mc=variog.mc.env(geotemperatura,obj=variograma)
## variog.env: generating 99 simulations by permutating data values
## variog.env: computing the empirical variogram for the 99 simulations
## variog.env: computing the envelops
plot(variograma, pch=16, envelope.obj =variograma_mc )

El semivariograma muestra una estructura espacial clara: hay autocorrelación espacial positiva a distancias cortas, que se disipa con la distancia hasta estabilizarse. Esto sugiere que los datos presentan una estructura espacial que puede ser modelada con un modelo teórico de semivariograma (como esférico, exponencial o gaussiano) para usos como kriging o interpolación espacial.

##Ajuste del Modelo de Semivarianza
ini.vals = expand.grid(seq(3,4,l=10), seq(2e-04,8e-04,l=10))

model_mco_exp=variofit(variograma, ini=ini.vals, cov.model="exponential", wei="npair", min="optim")
## variofit: covariance model used is exponential 
## variofit: weights used: npairs 
## variofit: minimisation function used: optim 
## variofit: searching for best initial value ... selected values:
##               sigmasq phi   tausq kappa
## initial.value "3.44"  "0"   "0"   "0.5"
## status        "est"   "est" "est" "fix"
## loss value: 6731.39348214003
model_mco_gaus=variofit(variograma, ini=ini.vals, cov.model="gaussian", wei="npair", min="optim",nugget = 0)
## variofit: covariance model used is gaussian 
## variofit: weights used: npairs 
## variofit: minimisation function used: optim 
## variofit: searching for best initial value ... selected values:
##               sigmasq phi   tausq kappa
## initial.value "3.22"  "0"   "0"   "0.5"
## status        "est"   "est" "est" "fix"
## loss value: 15581.0935911925
model_mco_spe=variofit(variograma, ini=ini.vals, cov.model="spheric",fix.nug=TRUE, wei="npair", min="optim")
## variofit: covariance model used is spherical 
## variofit: weights used: npairs 
## variofit: minimisation function used: optim 
## variofit: searching for best initial value ... selected values:
##               sigmasq phi   tausq kappa
## initial.value "3.11"  "0"   "0"   "0.5"
## status        "est"   "est" "fix" "fix"
## loss value: 5923.52318410681
plot(variograma)
lines(model_mco_exp,col="blue")
lines(model_mco_gaus,col="red")
lines(model_mco_spe,col="purple")

# Comparación de la media de la suma del cuadrado de los errores
cat("Exponential model: ", model_mco_exp$value,"\n",
    "Gaussian model:    ", model_mco_gaus$value,"\n",
    "Spherical model:   ", model_mco_spe$value)
## Exponential model:  3296.31 
##  Gaussian model:     6259.066 
##  Spherical model:    5753.35

Podemos observar tanto gráficamente como por el valor de SCE que el modelo exponencial es el que mejor se ajusta a los puntos del semivariograma muestral.

Interpolación

plot(geotemperatura$coords)

Se extraen las coordenadas para el grid.

#Generación e la zona de predicción
geodatos_grid=expand.grid( Este=seq(-76.7120,-76.7100,l=100),Norte=seq(2.3918 ,2.3940 ,l=100))
#Parámetro del modelo exponencial
model_mco_exp
## variofit: model parameters estimated by WLS (weighted least squares):
## covariance model is: exponential
## parameter estimates:
##   tausq sigmasq     phi 
##  0.0674  3.0961  0.0001 
## Practical Range with cor=0.05 for asymptotic range: 0.0004056477
## 
## variofit: minimised weighted sum of squares = 3296.31

Se extraen los parámetros sigma y phi para el modelo exponencial, los cuales serán ingresados en la predicción espacial kriging.

##Predicción Espacial Kriging
geodatos_ko=krige.conv(geotemperatura, loc=geodatos_grid,
      krige= krige.control(nugget=0,trend.d="cte", 
      trend.l="cte",cov.pars=c(sigmasq=3.0961, phi=0.0001  )))
## krige.conv: model with constant mean
## krige.conv: Kriging performed using global neighbourhood
#Visualización de la temperatura predicha.
image(geodatos_ko, main="kriging Predict", xlab="East", ylab="North")

# Transformación de imagen a raster
pred=cbind(geodatos_grid,geodatos_ko$predict)
temp_predict=rasterFromXYZ(cbind(geodatos_grid,geodatos_ko$predict))
levelplot(temp_predict,par.settings = BuRdTheme, main = "Interpolacion de la temperatura en finca de aguacate")

Este mapa presenta las zonas de cultivo en función de la variación espacial de la temperatura, identificando claramente las áreas más frías y más cálidas. Esta distribución térmica puede influir significativamente en diversos aspectos agronómicos, tales como la productividad de los cultivos, la aparición y propagación de plagas y enfermedades, así como en el ritmo de crecimiento y desarrollo de las plantas. Comprender estos patrones espaciales permite tomar decisiones más informadas en la gestión agrícola, contribuyendo a una planificación más eficiente y sostenible.