-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathanalisis_patron_puntos.qmd
149 lines (99 loc) · 4.13 KB
/
analisis_patron_puntos.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
---
title: "Análisis Espacial"
subtitle: "Minicurso SOCHE"
author: "Stephanie Orellana Bello"
toc: true
language:
title-block-author-single: "Autora"
toc-title-document: "Tabla de contenidos"
number-sections: true
highlight-style: zenburn
theme: minty
format: html
editor_options:
chunk_output_type: console
---
# Análisis de patrones de puntos
## Cargar datos
Trabajaremos con un set de datos que descargaremos con el paquete `{rgbif}`.
> GBIF —Infraestructura Mundial de Información en Biodiversidad— es una organización internacional y una red de datos financiada por gobiernos de todo el mundo, destinada a proporcionar a cualquier persona, en cualquier lugar, acceso abierto y gratuito a datos sobre cualquier tipo de forma de vida que hay en la Tierra.
ESto está en formato Darwin Core:
El set de datos también se encuentra disponible en el github.
```{r}
# install.packages("rgbif")
data <- rgbif::occ_data(scientificName = "Jubaea chilensis",
limit=10000,
country = "CL",
basisOfRecord = "HUMAN_OBSERVATION")$data
```
## Convertir a objeto espacial
Al descargar este set de datos, estará disponible como un `data.frame` por lo que es necesario transformarlo a un objeto espacial para hacer algunas operaciones. Esto lo haremos con el paquete `{sf}`:
```{r, message=F, warning=FALSE}
# install.packages("sf")
# install.packages("tidyverse")
library(sf)
library(tidyverse)
data_sp <- data %>%
filter(!is.na(decimalLongitude), !is.na(decimalLatitude)) %>%
st_as_sf(coords = c("decimalLongitude", "decimalLatitude"), crs = 4326)
```
## Visualizar
Podemos visualizarlo de manera rápida con el paquete `{mapview}`:
```{r, message=F, warning=FALSE}
# install.packages("mapview")
library(mapview)
mapview(data_sp)
```
Ahora podemos comenzar con nuestro análisis de patrones de puntos:
## Corroborar sistema de proyección
Este tipo de análisis solo puede ser hecho con sistemas de coordinadas proyectados, entonces es necesario cambiar nuestro sistema de coordenadas:
```{r}
data_sp_utm <- data_sp %>%
st_transform(crs = 32719)
data_sp_utm$geometry
st_crs(data_sp_utm)
st_crs(data_sp)
```
## Establecer ventana de análisis
Como primera aproximación utilizaré la extensión de los puntos:
```{r}
win <- data_sp_utm %>%
st_bbox() %>%
st_as_sfc()
mapview(list(data_sp_utm, win))
```
## Crear patrón de puntos
Ahora utilizaremos el paquete `{spatstat}` para realizar nuestro análisis. Para crear un patrón de puntos es necesario tener las coordenadas de los puntos y la ventana de análisis:
```{r, message=F, warning=FALSE}
# install.packages("spatstat")
library(spatstat)
x <- st_coordinates(data_sp_utm)[,1]
y <- st_coordinates(data_sp_utm)[,2]
box <- as.owin(win)
pp1 <- ppp(x = x, y = y, window = box)
plot(pp1)
```
## Realizar kernel de densidad
Para calcular la intensidad de uso utilizaremos la función `density`:
```{r}
kernel <- density.ppp(pp1)
plot(kernel)
```
```{r}
library(stars)
kernel_stars <- kernel %>% st_as_stars() %>% st_set_crs(32719)
mapview(kernel_stars)
```
Podemos estandarizar el kernel haciendo un poco de álgebra:
```{r}
kernel_stars$valor_01 <- (kernel_stars$v - min(kernel_stars$v))/(max(kernel_stars$v)- min(kernel_stars$v))
mapview(kernel_stars[2])
```
## K de ripley
> La función K de Ripley, *K(r)* es un método basado en la distancia que mide la aglomeración de un patrón de puntos espacial contando el número medio de vecinos que presenta cada punto dentro de un círculo de radio (r) determinado, en un determinado espacio, la función K compara el valor observado a una cierta distancia con el valor esperado a esa misma distancia; dado un proceso de Poisson homogéneo, también conocido como complete spatial randomness (CSR), es decir, que todos los puntos tienen la misma probabilidad de ocurrir en cualquier parte del área de estudio [Fuente](https://www.redalyc.org/journal/597/59760150003/html/)
Hacemos el análisis de K de Ripley con la función `Kest`
```{r}
k_ripley <- Kest(pp1)
plot(k_ripley)
```
Para más información sobre la interpretación, [VER](https://spatstat.org/explainKplot.html)