UNIVERSIDAD DEL VALLE
Especialización en Geomática
Tratamiento de Datos Espaciales

1 LIBRERIAS

library(sf)
## Linking to GEOS 3.13.1, GDAL 3.11.0, PROJ 9.6.0; sf_use_s2() is TRUE
library(spatstat)
## Cargando paquete requerido: spatstat.data
## Cargando paquete requerido: spatstat.univar
## spatstat.univar 3.1-4
## Cargando paquete requerido: spatstat.geom
## spatstat.geom 3.6-0
## Cargando paquete requerido: spatstat.random
## spatstat.random 3.4-2
## Cargando paquete requerido: spatstat.explore
## Cargando paquete requerido: nlme
## spatstat.explore 3.5-3
## Cargando paquete requerido: spatstat.model
## Cargando paquete requerido: rpart
## spatstat.model 3.4-2
## Cargando paquete requerido: spatstat.linnet
## spatstat.linnet 3.3-2
## 
## spatstat 3.4-1 
## For an introduction to spatstat, type 'beginner'
library(spdep)
## Cargando paquete requerido: spData
## To access larger datasets in this package, install the spDataLarge
## package with: `install.packages('spDataLarge',
## repos='https://nowosad.github.io/drat/', type='source')`
library(spatstat.geom)
library(spatstat.explore)
library(ggplot2)
library(hexbin)

2 ESPACIO DE TRABAJO

setwd("C:/Users/steve/OneDrive/Desktop/UNIVALLE/Tratamiento de Datos Espaciales/Sesión 7  PPA/Morichales")

3 ZONA Y MORICHALES

zona   <- st_read("Zona_morichal.shp")
## Reading layer `Zona_morichal' from data source 
##   `C:\Users\steve\OneDrive\Desktop\UNIVALLE\Tratamiento de Datos Espaciales\Sesión 7  PPA\Morichales\Zona_morichal.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 1 feature and 3 fields
## Geometry type: POLYGON
## Dimension:     XYZ
## Bounding box:  xmin: 461001.6 ymin: 482576.4 xmax: 461242.5 ymax: 483210.7
## z_range:       zmin: 92.54952 zmax: 95.89343
## Projected CRS: WGS 84 / UTM zone 19N
puntos <- st_read("Alt_palmas.shp")
## Reading layer `Alt_palmas' from data source 
##   `C:\Users\steve\OneDrive\Desktop\UNIVALLE\Tratamiento de Datos Espaciales\Sesión 7  PPA\Morichales\Alt_palmas.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 1829 features and 4 fields
## Geometry type: POINT
## Dimension:     XYZ
## Bounding box:  xmin: 461024.4 ymin: 482606.2 xmax: 461224.9 ymax: 483188
## z_range:       zmin: 93.3844 zmax: 108.723
## Projected CRS: WGS 84 / UTM zone 19N

3.1 LIMPIEZA

zona   <- st_zm(zona, drop = TRUE)
puntos <- st_zm(puntos, drop = TRUE)
zona   <- st_make_valid(zona)

puntos_in <- st_filter(puntos, zona, .predicate = st_within)
coords <- st_coordinates(puntos_in)

dups <- duplicated(coords)
if (sum(dups) > 0) {
  coords <- coords[!dups, ]
  puntos_in <- puntos_in[!dups, ]
}

4 VENTANA DE TRABAJO

zona_owin <- as.owin(zona)
puntos_ppp <- ppp(x = coords[,1], y = coords[,2], window = zona_owin)

4.1 GRÁFICO - Visualización del patrón espacial

ggplot() +
  geom_sf(data = zona, fill = "lightgreen", color = "darkgreen", alpha = 0.4) +
  geom_sf(data = puntos_in, color = "darkgreen", size = 1.5) +
  coord_sf(crs = st_crs(zona)) +
  theme_minimal() +
  labs(title = "Patrón de Palmas en el Morichal",
       x = "Coordenada Este (m)",
       y = "Coordenada Norte (m)")

5 ANÁLISIS POR CUADRANTES

5.1 ÍNDICE VMR

Q <- quadratcount(puntos_ppp, nx = 10, ny = 10)
q_counts <- as.vector(Q)
VMR <- var(q_counts) / mean(q_counts)
VMR
## [1] 28.15615

5.1.1 Gráfico VMR

plot(puntos_ppp, main = "Análisis de Cuadrantes de Morichal")
plot(Q, add = TRUE, col = "blue")

5.2 Prueba Chi-cuadrado

chi_test <- quadrat.test(puntos_ppp, nx = 6, ny = 6)
## Warning: Some expected counts are small; chi^2 approximation may be inaccurate
chi_test
## 
##  Chi-squared test of CSR using quadrat counts
## 
## data:  puntos_ppp
## X2 = 466.55, df = 26, p-value < 2.2e-16
## alternative hypothesis: two.sided
## 
## Quadrats: 27 tiles (irregular windows)

6 DISTANCIAS ESPACIALES

6.1 DISTANCIA ENTRE PARES

pair_d <- as.vector(pairdist(puntos_ppp))
pair_d <- pair_d[pair_d > 0]
summary(pair_d)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
##   0.4509  87.1387 187.0165 211.5545 320.0145 587.4896

6.1.1 Histograma de distancias entre pares

hist(pair_d, breaks = 50, freq = FALSE, col = "lightblue",
     main = "Histograma de Distancias entre Pares",
     xlab = "Distancia (m)", ylab = "Densidad")

6.2 VECINO MÁS CERCANO

nn <- nndist(puntos_ppp)
summary(nn)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.4509  1.3882  1.9847  2.3688  2.9510 21.6325

6.2.1 Gráfico de distancias al vecino más cercano

plot(nn, main = "Distancias al Vecino Más Cercano - Palmas de Moriche",
     xlab = "Índice del individuo", ylab = "Distancia al vecino más cercano (m)",
     pch = 16, cex = 0.8, col = "blue")

7 FRY PLOT

df_coords <- data.frame(x = coords[,1], y = coords[,2])
delta_x <- outer(df_coords$x, df_coords$x, "-")[lower.tri(outer(df_coords$x, df_coords$x, "-"))]
delta_y <- outer(df_coords$y, df_coords$y, "-")[lower.tri(outer(df_coords$y, df_coords$y, "-"))]
df_fry <- data.frame(delta_x = delta_x, delta_y = delta_y)

7.1 Gráfico de Fry

ggplot(df_fry, aes(x = delta_x, y = delta_y)) +
  stat_bin_hex(bins = 50) +
  scale_fill_steps(n.breaks = 5, low = "white", high = "darkgreen") +
  geom_hline(yintercept = 0, color = "gray60", linetype = "dashed") +
  geom_vline(xintercept = 0, color = "gray60", linetype = "dashed") +
  labs(title = "Fry Plot - Palmas de Moriche (1829 puntos)",
       x = expression(Delta*X ~ "(m)"),
       y = expression(Delta*Y ~ "(m)"),
       fill = "Conteo") +
  theme_minimal(base_size = 14)

8 FUNCIONES FORMALES

8.1 FUNCIÓN F(r)

F_func <- Fest(puntos_ppp)

8.1.1 Gráfic Funcion F

plot(F_func, main = "Función F(r) - Palmas de Moriche")

8.2 FUNCIÓN G(r)

G_func <- Gest(puntos_ppp)

8.2.1 Gráfico Función G

plot(G_func, main = "Función G(r) - Palmas de Moriche")

9 CONCLUSIONES

El análisis espacial del patrón de distribución de las palmas de moriche revela una estructura predominantemente agrupada, con matices de regularidad local.

Métodos como VMR, chi², distancias entre pares, vecino más cercano y Fry plot indican agrupamiento.

La función F(r) sugiere una tendencia más regular que agrupada, al mostrar curvas observadas por debajo del modelo CSR.

La función G(r) muestra un comportamiento mixto: regularidad para distancias menores a 1 metro y agrupamiento para distancias mayores.

Se concluye que el patrón espacial no es completamente aleatorio, y presenta una estructura mixta, con zonas agrupadas y cierta regularidad local, posiblemente influenciada por factores ecológicos como pendiente, competencia o disponibilidad de recursos.