Se cargan los datos y se procede a revisar que el proceso sea satisfactorio.
# Cargar librerías necesarias
library(readxl)
## Warning: package 'readxl' was built under R version 4.3.3
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
# Cargar el archivo Excel
file_path <- "C:/Users/Daniel Restrepo/Desktop/Datos espaciales y geograficos/Datos_Completos_Aguacate.xlsx"
datos <- read_excel(file_path, sheet = "Hoja1")
## Warning: Expecting numeric in T7458 / R7458C20: got '-'
## Warning: Expecting numeric in T8174 / R8174C20: got '-'
## Warning: Expecting numeric in T8415 / R8415C20: got '-'
## Warning: Expecting numeric in T10509 / R10509C20: got '-'
## Warning: Expecting numeric in T11253 / R11253C20: got '-'
## Warning: Expecting numeric in T11254 / R11254C20: got '-'
## Warning: Expecting numeric in T11810 / R11810C20: got '-'
## Warning: Coercing text to numeric in P11992 / R11992C16: '1809.5'
## Warning: Coercing text to numeric in P11993 / R11993C16: '1809.5'
## Warning: Coercing text to numeric in P11994 / R11994C16: '1809.5'
## Warning: Coercing text to numeric in P11995 / R11995C16: '1809.5'
## Warning: Coercing text to numeric in P11996 / R11996C16: '1809.5'
## Warning: Coercing text to numeric in P11997 / R11997C16: '1808.5'
## Warning: Coercing text to numeric in P11998 / R11998C16: '1807.5'
## Warning: Coercing text to numeric in P11999 / R11999C16: '1806.5'
## Warning: Coercing text to numeric in P12000 / R12000C16: '1805.5'
## Warning: Coercing text to numeric in P12001 / R12001C16: '1804.5'
## Warning: Coercing text to numeric in P12002 / R12002C16: '1803.5'
## Warning: Coercing text to numeric in P12006 / R12006C16: '1802.5'
## Warning: Coercing text to numeric in P12007 / R12007C16: '1803.5'
## Warning: Coercing text to numeric in P12011 / R12011C16: '1807.5'
## Warning: Coercing text to numeric in P12013 / R12013C16: '1808.5'
## Warning: Coercing text to numeric in P12014 / R12014C16: '1808.5'
## Warning: Coercing text to numeric in P12015 / R12015C16: '1807.5'
## Warning: Coercing text to numeric in P12016 / R12016C16: '1808.5'
## Warning: Coercing text to numeric in P12018 / R12018C16: '1807.5'
## Warning: Coercing text to numeric in P12019 / R12019C16: '1808.5'
## Warning: Coercing text to numeric in P12022 / R12022C16: '1809.5'
## Warning: Coercing text to numeric in P12024 / R12024C16: '1806.5'
## Warning: Coercing text to numeric in P12026 / R12026C16: '1805.5'
## Warning: Coercing text to numeric in P12027 / R12027C16: '1805.5'
## Warning: Coercing text to numeric in P12029 / R12029C16: '1806.5'
## Warning: Coercing text to numeric in P12030 / R12030C16: '1806.5'
## Warning: Coercing text to numeric in P12031 / R12031C16: '1807.5'
## Warning: Coercing text to numeric in P12032 / R12032C16: '1807.5'
## Warning: Coercing text to numeric in P12033 / R12033C16: '1806.5'
## Warning: Coercing text to numeric in P12034 / R12034C16: '1806.5'
## Warning: Coercing text to numeric in P12035 / R12035C16: '1805.5'
## Warning: Coercing text to numeric in P12036 / R12036C16: '1804.5'
## Warning: Coercing text to numeric in P12037 / R12037C16: '1803.5'
## Warning: Coercing text to numeric in P12039 / R12039C16: '1800.5'
## Warning: Coercing text to numeric in P12040 / R12040C16: '1800.5'
## Warning: Coercing text to numeric in P12044 / R12044C16: '1797.5'
## Warning: Coercing text to numeric in P12046 / R12046C16: '1796.5'
## Warning: Coercing text to numeric in P12047 / R12047C16: '1796.5'
## Warning: Coercing text to numeric in P12048 / R12048C16: '1797.5'
## Warning: Coercing text to numeric in P12049 / R12049C16: '1798.5'
## Warning: Coercing text to numeric in P12050 / R12050C16: '1800.5'
## Warning: Coercing text to numeric in P12053 / R12053C16: '1803.5'
## Warning: Coercing text to numeric in P12057 / R12057C16: '1805.5'
## Warning: Coercing text to numeric in P12058 / R12058C16: '1804.5'
## Warning: Coercing text to numeric in P12059 / R12059C16: '1804.5'
## Warning: Coercing text to numeric in P12062 / R12062C16: '1803.5'
## Warning: Coercing text to numeric in P12064 / R12064C16: '1806.5'
## Warning: Coercing text to numeric in P12065 / R12065C16: '1805.5'
## Warning: Coercing text to numeric in P12066 / R12066C16: '1805.5'
## Warning: Coercing text to numeric in P12067 / R12067C16: '1803.5'
## Warning: Coercing text to numeric in P12068 / R12068C16: '1802.5'
## Warning: Coercing text to numeric in P12070 / R12070C16: '1801.5'
## Warning: Coercing text to numeric in P12071 / R12071C16: '1801.5'
## Warning: Coercing text to numeric in P12073 / R12073C16: '1802.5'
## Warning: Coercing text to numeric in P12075 / R12075C16: '1804.5'
## Warning: Coercing text to numeric in P12076 / R12076C16: '1803.5'
## Warning: Coercing text to numeric in P12078 / R12078C16: '1800.5'
## Warning: Coercing text to numeric in P12079 / R12079C16: '1799.5'
## Warning: Coercing text to numeric in P12080 / R12080C16: '1797.5'
## Warning: Coercing text to numeric in P12081 / R12081C16: '1796.5'
## Warning: Coercing text to numeric in P12083 / R12083C16: '1793.5'
## Warning: Coercing text to numeric in P12086 / R12086C16: '1793.5'
## Warning: Coercing text to numeric in P12087 / R12087C16: '1792.5'
## Warning: Coercing text to numeric in P12088 / R12088C16: '1791.5'
## Warning: Coercing text to numeric in P12089 / R12089C16: '1791.5'
## Warning: Coercing text to numeric in P12092 / R12092C16: '1793.5'
## Warning: Coercing text to numeric in P12099 / R12099C16: '1802.5'
## Warning: Coercing text to numeric in P12103 / R12103C16: '1802.5'
## Warning: Coercing text to numeric in P12104 / R12104C16: '1802.5'
## Warning: Coercing text to numeric in P12106 / R12106C16: '1802.5'
## Warning: Coercing text to numeric in P12107 / R12107C16: '1803.5'
## Warning: Coercing text to numeric in P12108 / R12108C16: '1803.5'
## Warning: Coercing text to numeric in P12109 / R12109C16: '1803.5'
## Warning: Coercing text to numeric in P12112 / R12112C16: '1801.5'
## Warning: Coercing text to numeric in P12114 / R12114C16: '1801.5'
## Warning: Coercing text to numeric in P12116 / R12116C16: '1801.5'
## Warning: Coercing text to numeric in P12117 / R12117C16: '1801.5'
## Warning: Coercing text to numeric in P12118 / R12118C16: '1802.5'
## Warning: Coercing text to numeric in P12119 / R12119C16: '1803.5'
## Warning: Coercing text to numeric in P12123 / R12123C16: '1802.5'
## Warning: Coercing text to numeric in P12124 / R12124C16: '1801.5'
## Warning: Coercing text to numeric in P12127 / R12127C16: '1797.5'
## Warning: Coercing text to numeric in P12130 / R12130C16: '1795.5'
## Warning: Coercing text to numeric in P12131 / R12131C16: '1795.5'
## Warning: Coercing text to numeric in P12134 / R12134C16: '1795.5'
## Warning: Coercing text to numeric in P12136 / R12136C16: '1796.5'
## Warning: Coercing text to numeric in P12140 / R12140C16: '1797.5'
## Warning: Coercing text to numeric in P12141 / R12141C16: '1797.5'
## Warning: Coercing text to numeric in P12142 / R12142C16: '1798.5'
## Warning: Coercing text to numeric in P12148 / R12148C16: '1795.5'
## Warning: Coercing text to numeric in P12155 / R12155C16: '1797.5'
## Warning: Coercing text to numeric in P12157 / R12157C16: '1794.5'
## Warning: Coercing text to numeric in P12158 / R12158C16: '1796.5'
## Warning: Coercing text to numeric in P12159 / R12159C16: '1796.5'
## Warning: Coercing text to numeric in P12164 / R12164C16: '1795.5'
## Warning: Coercing text to numeric in P12165 / R12165C16: '1795.5'
## Warning: Coercing text to numeric in P12170 / R12170C16: '1794.5'
## Warning: Coercing text to numeric in P12172 / R12172C16: '1793.5'
## Warning: Coercing text to numeric in P12173 / R12173C16: '1793.5'
## Warning: Coercing text to numeric in P12175 / R12175C16: '1793.5'
## Warning: Coercing text to numeric in P12177 / R12177C16: '1795.5'
## Warning: Coercing text to numeric in P12178 / R12178C16: '1796.5'
## Warning: Coercing text to numeric in P12180 / R12180C16: '1798.5'
## Warning: Coercing text to numeric in P12182 / R12182C16: '1799.5'
## Warning: Coercing text to numeric in P12183 / R12183C16: '1800.5'
## Warning: Coercing text to numeric in P12185 / R12185C16: '1799.5'
## Warning: Coercing text to numeric in P12191 / R12191C16: '1802.5'
## Warning: Coercing text to numeric in P12194 / R12194C16: '1798.5'
## Warning: Coercing text to numeric in P12196 / R12196C16: '1797.5'
## Warning: Coercing text to numeric in P12198 / R12198C16: '1797.5'
## Warning: Coercing text to numeric in P12202 / R12202C16: '1798.5'
## Warning: Coercing text to numeric in P12203 / R12203C16: '1797.5'
## Warning: Coercing text to numeric in P12205 / R12205C16: '1795.5'
## Warning: Coercing text to numeric in P12206 / R12206C16: '1793.5'
## Warning: Coercing text to numeric in P12207 / R12207C16: '1792.5'
## Warning: Coercing text to numeric in P12210 / R12210C16: '1787.5'
## Warning: Coercing text to numeric in P12217 / R12217C16: '1788.5'
## Warning: Coercing text to numeric in P12219 / R12219C16: '1790.5'
## Warning: Coercing text to numeric in P12220 / R12220C16: '1791.5'
## Warning: Coercing text to numeric in P12221 / R12221C16: '1791.5'
## Warning: Coercing text to numeric in P12224 / R12224C16: '1792.5'
## Warning: Coercing text to numeric in P12226 / R12226C16: '1793.5'
## Warning: Coercing text to numeric in P12229 / R12229C16: '1796.5'
## Warning: Coercing text to numeric in P12235 / R12235C16: '1796.5'
## Warning: Coercing text to numeric in P12242 / R12242C16: '1797.5'
## Warning: Coercing text to numeric in P12245 / R12245C16: '1796.5'
## Warning: Coercing text to numeric in P12247 / R12247C16: '1792.5'
## Warning: Coercing text to numeric in P12251 / R12251C16: '1788.5'
## Warning: Coercing text to numeric in P12254 / R12254C16: '1788.5'
## Warning: Coercing text to numeric in P12257 / R12257C16: '1792.5'
## Warning: Coercing text to numeric in P12261 / R12261C16: '1792.5'
## Warning: Coercing text to numeric in P12262 / R12262C16: '1793.5'
## Warning: Coercing text to numeric in P12264 / R12264C16: '1795.5'
## Warning: Coercing text to numeric in P12267 / R12267C16: '1796.5'
## Warning: Coercing text to numeric in P12270 / R12270C16: '1794.5'
## Warning: Coercing text to numeric in P12273 / R12273C16: '1791.5'
## Warning: Coercing text to numeric in P12277 / R12277C16: '1785.5'
## Warning: Coercing text to numeric in P12280 / R12280C16: '1784.5'
## Warning: Coercing text to numeric in P12282 / R12282C16: '1785.5'
## Warning: Coercing text to numeric in P12283 / R12283C16: '1785.5'
## Warning: Coercing text to numeric in P12285 / R12285C16: '1785.5'
## Warning: Coercing text to numeric in P12286 / R12286C16: '1785.5'
## Warning: Coercing text to numeric in P12287 / R12287C16: '1784.5'
## Warning: Coercing text to numeric in P12288 / R12288C16: '1784.5'
## Warning: Coercing text to numeric in P12291 / R12291C16: '1783.5'
## Warning: Coercing text to numeric in P12292 / R12292C16: '1783.5'
## Warning: Coercing text to numeric in P12295 / R12295C16: '1783.5'
## Warning: Coercing text to numeric in P12296 / R12296C16: '1784.5'
## Warning: Coercing text to numeric in P12298 / R12298C16: '1786.5'
## Warning: Coercing text to numeric in P12302 / R12302C16: '1787.5'
## Warning: Coercing text to numeric in P12303 / R12303C16: '1786.5'
## Warning: Coercing text to numeric in P12305 / R12305C16: '1784.5'
## Warning: Coercing text to numeric in P12306 / R12306C16: '1783.5'
## Warning: Coercing text to numeric in P12309 / R12309C16: '1783.5'
## Warning: Coercing text to numeric in P12310 / R12310C16: '1784.5'
## Warning: Coercing text to numeric in P12311 / R12311C16: '1783.5'
## Warning: Expecting numeric in T12985 / R12985C20: got '***'
## Warning: Expecting numeric in T13260 / R13260C20: got '***'
## Warning: Expecting numeric in T13313 / R13313C20: got '***'
## Warning: Expecting numeric in T13497 / R13497C20: got '***'
## Warning: Expecting numeric in T13557 / R13557C20: got '***'
## Warning: Expecting numeric in T13559 / R13559C20: got '***'
## Warning: Expecting numeric in T14034 / R14034C20: got '***'
## Warning: Expecting numeric in T14250 / R14250C20: got '***'
## Warning: Expecting numeric in T14275 / R14275C20: got '***'
## Warning: Expecting numeric in T14370 / R14370C20: got '-'
## Warning: Expecting numeric in T17638 / R17638C20: got '-'
## Warning: Expecting numeric in T18138 / R18138C20: got '***'
# Ver las primeras filas y estructura del dataframe
head(datos)
## # A tibble: 6 × 21
## id_arbol Latitude Longitude FORMATTED_DATE_TIME Psychro_Wet_Bulb_Tempe…¹
## <chr> <dbl> <dbl> <chr> <dbl>
## 1 1 2.38 -76.6 21/08/2019 9:22:57 a, m, 14.8
## 2 2 2.38 -76.6 21/08/2019 9:27:13 a, m, 11.6
## 3 3 2.38 -76.6 21/08/2019 9:36:36 a, m, 12.9
## 4 4 2.38 -76.6 21/08/2019 9:38:02 a, m, 14.1
## 5 5 2.38 -76.6 21/08/2019 9:39:38 a, m, 14.3
## 6 6 2.38 -76.6 21/08/2019 9:42:02 a, m, 14.2
## # ℹ abbreviated name: ¹Psychro_Wet_Bulb_Temperature
## # ℹ 16 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>
str(datos)
## tibble [20,271 × 21] (S3: tbl_df/tbl/data.frame)
## $ id_arbol : chr [1:20271] "1" "2" "3" "4" ...
## $ Latitude : num [1:20271] 2.38 2.38 2.38 2.38 2.38 ...
## $ Longitude : num [1:20271] -76.6 -76.6 -76.6 -76.6 -76.6 ...
## $ FORMATTED_DATE_TIME : chr [1:20271] "21/08/2019 9:22:57 a, m," "21/08/2019 9:27:13 a, m," "21/08/2019 9:36:36 a, m," "21/08/2019 9:38:02 a, m," ...
## $ Psychro_Wet_Bulb_Temperature : num [1:20271] 14.8 11.6 12.9 14.1 14.3 14.2 14.4 12.8 15 14 ...
## $ Station_Pressure : num [1:20271] 805 805 806 806 805 ...
## $ Relative_Humidity : num [1:20271] 33.6 36.8 31.5 33.2 34.3 33.8 34.9 34.2 33.6 34 ...
## $ Crosswind : num [1:20271] 0.2 3.6 0.4 0.6 0.4 0.5 0.6 2.9 0.4 0.7 ...
## $ Temperature : num [1:20271] 25.7 20.8 23.7 25 25 25 24.9 22.9 26.2 24.6 ...
## $ Barometric_Pressure : num [1:20271] 805 805 806 806 805 ...
## $ Headwind : num [1:20271] 0.7 3.5 0.7 0.7 0.4 0.1 0 2.2 0.2 0.7 ...
## $ Direction_True : num [1:20271] 166 314 332 139 129 83 93 128 118 137 ...
## $ Direction_Mag : num [1:20271] 165 313 331 139 128 83 92 127 118 137 ...
## $ Wind_Speed : num [1:20271] 0.8 5.1 0.8 0.9 0.6 0.5 0.6 3.7 0.5 1 ...
## $ Heat_Stress_Index : num [1:20271] 24.1 19.5 22 23.2 23.3 23.3 23.2 21.5 24.6 22.9 ...
## $ Altitude : num [1:20271] 1896 1895 1889 1890 1894 ...
## $ Dew_Point : num [1:20271] 8.6 5.5 5.8 7.7 8.1 7.9 8.3 6.3 8.9 7.7 ...
## $ Density_Altitude : num [1:20271] 2.74 2.57 2.66 2.71 2.71 ...
## $ Wind_Chill : num [1:20271] 25.7 20.8 23.7 24.9 24.9 24.9 24.8 22.9 26.2 24.5 ...
## $ Estado_Fenologico_Predominante: num [1:20271] 715 715 715 715 715 715 715 715 715 715 ...
## $ Frutos_Afectados : num [1:20271] 0 3 0 0 1 0 0 0 0 21 ...
# Convertir FORMATTED_DATE_TIME a formato POSIXct
datos <- datos %>%
mutate(FORMATTED_DATE_TIME = as.POSIXct(FORMATTED_DATE_TIME, format = "%d/%m/%Y %H:%M:%S", tz = "UTC"))
# Extraer las fechas únicas
unique_dates <- datos %>%
mutate(Fecha = format(FORMATTED_DATE_TIME, "%d/%m/%Y")) %>%
select(Fecha) %>%
distinct()
No se encuentra la fecha sugerida, por eso se procede a realizar el proceso con la primera del año 2020, que es la correspondiente a 9 de julio.
# Convertir FORMATTED_DATE_TIME a formato POSIXct (si no se ha hecho antes)
datos <- datos %>%
mutate(FORMATTED_DATE_TIME = as.POSIXct(FORMATTED_DATE_TIME, format = "%d/%m/%Y %H:%M:%S", tz = "UTC"))
# Filtrar los registros para la fecha seleccionada
fecha_seleccionada <- "09/07/2020"
datos_filtrados <- datos %>%
filter(format(FORMATTED_DATE_TIME, "%d/%m/%Y") == fecha_seleccionada)
# Verificar el resultado
nrow(datos_filtrados) # Número de filas después del filtro
## [1] 330
head(datos_filtrados) # Primeras filas de los datos filtrados
## # A tibble: 6 × 21
## id_arbol Latitude Longitude FORMATTED_DATE_TIME Psychro_Wet_Bulb_Temperature
## <chr> <dbl> <dbl> <dttm> <dbl>
## 1 1 2.32 -76.7 2020-07-09 10:04:11 20.8
## 2 2 2.32 -76.7 2020-07-09 10:04:39 20.1
## 3 3 2.32 -76.7 2020-07-09 10:05:53 19
## 4 4 2.32 -76.7 2020-07-09 10:06:10 19.5
## 5 5 2.32 -76.7 2020-07-09 10:06:39 19.6
## 6 6 2.32 -76.7 2020-07-09 10:06:56 19.7
## # ℹ 16 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>
# Resumen estadístico de las variables relevantes
summary(datos_filtrados$Psychro_Wet_Bulb_Temperature) # Temperatura
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 17.70 18.50 19.05 19.12 19.60 21.20
summary(datos_filtrados$Relative_Humidity) # Humedad relativa
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 73.10 81.60 84.20 83.55 85.80 89.00
summary(datos_filtrados$Station_Pressure) # Presión
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 812.9 813.4 813.8 814.0 814.5 815.6
# Visualización rápida de las ubicaciones geográficas
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
ggplot(datos_filtrados, aes(x = Longitude, y = Latitude)) +
geom_point(color = "blue") +
labs(title = "Ubicación de los árboles", x = "Longitud", y = "Latitud") +
theme_minimal()
En el análisis exploratorio, se realizó un primer acercamiento,
examinando las ubicaciones de los árboles en función de su latitud y
longitud. En la visualización obtenida, se observa una distribución
espacial uniforme de los puntos, lo que indica que las mediciones están
bien distribuidas dentro del área de estudio. Esta disposición es
adecuada para realizar un análisis geoestadístico, ya que proporciona
cobertura suficiente para evaluar la variabilidad espacial de la
temperatura. Además, el resumen estadístico de las variables relevantes,
como la temperatura, la humedad relativa y la presión, permitió
identificar que los valores están dentro de rangos consistentes y sin
anomalías significativas.
# Verificar los nombres de las columnas
colnames(datos_filtrados)
## [1] "id_arbol" "Latitude"
## [3] "Longitude" "FORMATTED_DATE_TIME"
## [5] "Psychro_Wet_Bulb_Temperature" "Station_Pressure"
## [7] "Relative_Humidity" "Crosswind"
## [9] "Temperature" "Barometric_Pressure"
## [11] "Headwind" "Direction_True"
## [13] "Direction_Mag" "Wind_Speed"
## [15] "Heat_Stress_Index" "Altitude"
## [17] "Dew_Point" "Density_Altitude"
## [19] "Wind_Chill" "Estado_Fenologico_Predominante"
## [21] "Frutos_Afectados"
# Validar las coordenadas y la estructura de los datos
library(sp)
# Convertir a objeto espacial
coordinates(datos_filtrados) <- ~Longitude+Latitude
# Comprobar la clase del objeto y resumen
class(datos_filtrados) # Verificar clase del objeto
## [1] "SpatialPointsDataFrame"
## attr(,"package")
## [1] "sp"
summary(datos_filtrados) # Resumen del objeto
## Object of class SpatialPointsDataFrame
## Coordinates:
## min max
## Longitude -76.701173 -76.699932
## Latitude 2.316405 2.317761
## Is projected: NA
## proj4string : [NA]
## Number of points: 330
## Data attributes:
## id_arbol FORMATTED_DATE_TIME
## Length:330 Min. :2020-07-09 10:04:11.00
## Class :character 1st Qu.:2020-07-09 10:36:48.25
## Mode :character Median :2020-07-09 11:15:59.50
## Mean :2020-07-09 11:09:58.69
## 3rd Qu.:2020-07-09 11:40:29.75
## Max. :2020-07-09 12:03:26.00
## Psychro_Wet_Bulb_Temperature Station_Pressure Relative_Humidity
## Min. :17.70 Min. :812.9 Min. :73.10
## 1st Qu.:18.50 1st Qu.:813.4 1st Qu.:81.60
## Median :19.05 Median :813.8 Median :84.20
## Mean :19.12 Mean :814.0 Mean :83.55
## 3rd Qu.:19.60 3rd Qu.:814.5 3rd Qu.:85.80
## Max. :21.20 Max. :815.6 Max. :89.00
## Crosswind Temperature Barometric_Pressure Headwind
## Min. :0.0000 Min. :19.20 Min. :812.9 Min. :-1.20000
## 1st Qu.:0.0000 1st Qu.:20.30 1st Qu.:813.4 1st Qu.:-0.10000
## Median :0.1000 Median :21.20 Median :813.7 Median : 0.00000
## Mean :0.2318 Mean :21.21 Mean :813.9 Mean :-0.03606
## 3rd Qu.:0.4000 3rd Qu.:22.10 3rd Qu.:814.5 3rd Qu.: 0.10000
## Max. :1.5000 Max. :25.00 Max. :815.5 Max. : 1.10000
## Direction_True Direction_Mag Wind_Speed Heat_Stress_Index
## Min. : 0.0 Min. : 0.0 Min. :0.0000 Min. :19.50
## 1st Qu.: 46.0 1st Qu.: 45.0 1st Qu.:0.0000 1st Qu.:20.70
## Median : 69.0 Median : 69.0 Median :0.4000 Median :21.80
## Mean :113.0 Mean :112.5 Mean :0.3555 Mean :21.82
## 3rd Qu.:199.8 3rd Qu.:198.8 3rd Qu.:0.6000 3rd Qu.:22.90
## Max. :358.0 Max. :358.0 Max. :1.6000 Max. :26.00
## Altitude Dew_Point Density_Altitude Wind_Chill
## Min. :1792 Min. :16.90 Min. :2.449 Min. :19.20
## 1st Qu.:1802 1st Qu.:17.70 1st Qu.:2.492 1st Qu.:20.20
## Median :1809 Median :18.20 Median :2.527 Median :21.10
## Mean :1808 Mean :18.30 Mean :2.531 Mean :21.17
## 3rd Qu.:1812 3rd Qu.:18.77 3rd Qu.:2.569 3rd Qu.:22.07
## Max. :1818 Max. :20.10 Max. :2.677 Max. :25.00
## Estado_Fenologico_Predominante Frutos_Afectados
## Min. :511.0 Min. : 0.0000
## 1st Qu.:716.0 1st Qu.: 0.0000
## Median :716.0 Median : 0.0000
## Mean :697.7 Mean : 0.4485
## 3rd Qu.:716.0 3rd Qu.: 0.0000
## Max. :716.0 Max. :12.0000
install.packages("gstat") # Solo si no está instalado
## Installing package into 'C:/Users/Daniel Restrepo/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'gstat' successfully unpacked and MD5 sums checked
## Warning: cannot remove prior installation of package 'gstat'
## Warning in file.copy(savedcopy, lib, recursive = TRUE): problema al copiar
## C:\Users\Daniel
## Restrepo\AppData\Local\R\win-library\4.3\00LOCK\gstat\libs\x64\gstat.dll a
## C:\Users\Daniel
## Restrepo\AppData\Local\R\win-library\4.3\gstat\libs\x64\gstat.dll: Permission
## denied
## Warning: restored 'gstat'
##
## The downloaded binary packages are in
## C:\Users\Daniel Restrepo\AppData\Local\Temp\RtmpSMsuWQ\downloaded_packages
library(gstat)
## Warning: package 'gstat' was built under R version 4.3.3
# Calcular el semivariograma para la temperatura
variograma <- variogram(Psychro_Wet_Bulb_Temperature ~ 1, datos_filtrados)
# Visualizar el semivariograma
plot(variograma, main = "Semivariograma de Temperatura", xlab = "Distancia", ylab = "Semivarianza")
El semivariograma experimental de la variable temperatura permitió analizar la dependencia espacial entre las mediciones. En la gráfica obtenida, se observa un aumento inicial de la semivarianza con la distancia, que posteriormente se estabiliza, indicando la presencia de autocorrelación espacial en las mediciones. Este patrón es clave, ya que valida el uso de modelos teóricos para describir la estructura espacial. La estabilización de la semivarianza sugiere un rango de influencia más allá del cual las mediciones dejan de estar correlacionadas.
# Ajustar un modelo teórico al semivariograma
modelo <- fit.variogram(variograma, model = vgm("Sph", psill = 0.7, range = 0.0004, nugget = 0.1))
# Visualizar el semivariograma ajustado
plot(variograma, modelo, main = "Ajuste del Modelo Esférico", xlab = "Distancia", ylab = "Semivarianza")
El modelo esférico ajustado al semivariograma experimental mostró un
buen desempeño al capturar la estructura de dependencia espacial de la
temperatura. El ajuste fue logrado con parámetros que reflejan la
realidad del fenómeno estudiado: un rango que delimita el área de
influencia y un efecto que representa la variabilidad no explicada o
errores de medición.
# Crear un grid para la interpolación
library(sp)
bbox <- bbox(datos_filtrados) # Extensión del área
resolucion <- 0.0001 # Resolución del grid
x.range <- seq(bbox[1, 1], bbox[1, 2], by = resolucion)
y.range <- seq(bbox[2, 1], bbox[2, 2], by = resolucion)
grid <- expand.grid(Longitude = x.range, Latitude = y.range)
coordinates(grid) <- ~Longitude+Latitude
gridded(grid) <- TRUE
# Interpolación por kriging
kriging_result <- krige(Psychro_Wet_Bulb_Temperature ~ 1, datos_filtrados, grid, model = modelo)
## [using ordinary kriging]
# Visualización de la predicción
spplot(kriging_result["var1.pred"], main = "Predicción Espacial de la Temperatura")
La predicción espacial de la temperatura generada mediante kriging muestra cómo se distribuyen los valores estimados en toda el área de estudio. En el mapa, los colores más cálidos indican áreas con temperaturas más altas, mientras que los colores más fríos representan temperaturas más bajas. La transición gradual de los valores refleja la influencia espacial capturada por el modelo ajustado.
El análisis realizado permite identificar una clara relación espacial en la distribución de la temperatura dentro del área de estudio. El semivariograma muestra que las mediciones tienen dependencia espacial, lo que significa que las temperaturas medidas en árboles cercanos tienden a ser similares. El modelo esférico ajustado refleja adecuadamente esta relación, y su aplicación mediante kriging nos permitió generar un mapa de predicción que detalla las variaciones de temperatura en toda la finca. Las áreas con temperaturas más altas y bajas están bien definidas, lo que facilita el análisis de condiciones locales específicas.
Dependencia espacial: La temperatura presenta una fuerte variación espacial en la finca, lo que valida el uso de técnicas geoestadísticas para su análisis. Modelo ajustado: El modelo esférico proporciona una representación precisa de la estructura espacial de la temperatura, siendo una herramienta confiable para predecir valores en áreas sin medidas. Predicción espacial: El mapa generado es una representación valiosa para la toma de decisiones, ya que permite identificar zonas críticas de la finca en términos de temperatura, lo que podría influir en el manejo del cultivo. Aplicabilidad: Este enfoque puede replicarse para analizar otras variables climáticas o para evaluar la influencia de la temperatura en el desarrollo del cultivo de aguacates.