-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path4_2_Seleccion de Habitat.R
191 lines (143 loc) · 5.74 KB
/
4_2_Seleccion de Habitat.R
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
library(readr)
library(move2)
library(tidyverse)
library(mapview)
library(units)
library(lubridate)
library(classInt)
library(circular) #masked on stats
library(patchwork) #need to update
library(ggmap)
devtools::install_github('oswaldosantos/ggsn')
library(ggsn)
library(amt)
library(keyring)
library(sf)
library(terra)
setwd("C:/DATA/AnimalMov")
### PREPARAR CAPAS AMBIENTALES####
########RASTERIZAR LAS COBERTURAS###############
cobertura2 <- vect("COBERTURA/LandCover_LaAurora.shp")
cobertura <- vect("COBERTURA/LandCover_LaAurora.shp")
plot(cobertura2)
plot(cobertura2)
#Crear template
#templ_rast <- rast(extent=ext(cobertura), crs=crs(cobertura), resolution=30)
saveRDS(templ_rast, file="rasterTemplate.rds")
#Rasterizo la cobertura
cobertura_rast <- rasterize(cobertura2, templ_rast, cobertura$gridcode, touches=T)
plot(cobertura_rast)
#Importo variables
drenaje <- vect("COBERTURA/DrenajeSencillo.shp")
plot(drenaje)
build <- vect("COBERTURA/Builds.shp")
plot(build)
#Filtro los Drenajes y Bosques
drenajes_sel <- drenaje[drenaje$PROYECTO == 'SI',]
plot(drenajes_sel)
bosques <- cobertura[cobertura$gridcode == '10',]
###DISTANCIA EU A CAPA DE BOSQUES, DRENAJES Y EDIFICIOS
distToForest <- terra::distance(templ_rast, bosques)
plot(distToForest)
distToDren <- terra::distance(templ_rast, drenajes_sel)
plot(distToDren)
distToEdificio <- terra::distance(templ_rast, build)
plot(distToEdificio)
mask()
## Combina todos rasters
capasEnv <- c(cobertura_rast, distToDren, distToEdificio, distToForest)
names(capasEnv) <- c("Land cover", "Distance to Rivers","Distance to Building", "Distance to Forest")
plot(capasEnv)
table(is.na(values(capasEnv[["Land cover"]])))
plot(capasEnv[["Land cover"]])
##Importo las UD (proporcion del tiempo que pasa en el AOI)
UDProbF1 <- rast("Jaguar_UDProbF1.tif")
UDProbM1 <- rast("Jaguar_UDProbM1.tif")
# UD = 1 La suma de valores de la capa debe dar 1
plot(UDProbF1)
plot(UDProbM1)
sum(values(UDProbF1))
sum(values(UDProbM1))
#OPCION 1 VECTOR POINTS
##Convierto la UDprob de F1 en Vect-puntos
UDprobF1_poin <- as.points(kernelF1.standardized, values=TRUE)
plot(UDprobF1_poin)
##Extraer los datos del ambiente para cada punto
UDprobF1_poin_env <- terra::extract(capasEnv, UDprobF1_poin, bind=T, method="simple") #tengo problema con el valor de cobertura
summary(UDprobF1_poin_env)
## Remove UD prob with NA values in environment (POR LOS VALORES NA de la CAPA)
UDprobF1_poin_env_noNA <- UDprobF1_poin_env[!is.na(UDprobF1_poin_env$Land.cover),]
nrow(UDprobF1_poin_env);nrow(UDprobF1_poin_env_noNA)
sum(UDprobF1_poin_env$ud)
sum(UDprobF1_poin_env_noNA$ud)
# Bring the total UD sum values back to 1 (DEBERIAN SER 1)
UDprobF1_poin_env_noNA$ud <- UDprobF1_poin_env_noNA$ud/sum(UDprobF1_poin_env_noNA$ud)
sum(UDprobF1_poin_env$ud)
sum(UDprobF1_poin_env_noNA$ud)
summary(UDprobF1_poin_env_noNA$ud)
# Look at time spent in each land cover category
timeInLC <- as.data.frame(UDprobF1_poin_env_noNA) %>%
group_by(as.character(Land.cover)) %>%
summarise(timePerLandClass=sum(ud))
# Look at time spent at certain distances
test <- as.data.frame(UDprobF1_poin_env_noNA) %>%
mutate(timeNearRiver = ud * Distance.to.Rivers,
timeNearBuilding = ud * Distance.to.Building,
timeNearForest = ud * Distance.to.Forest) %>%
subset(select = c(ud,timeNearRiver,timeNearBuilding,timeNearForest))
#Estadisticas para la Hembra F1
avgDistToRiv <- sum(test$timeNearRiver)
avgDistToBuild <- sum(test$timeNearBuilding)
avgDistToForest <- sum(test$timeNearForest)
summary(test$timeNearRiver)
plot (test$timeNearRiver)
##PARA EL MACHO
##Convierto la UDprob en Vect-puntos
UDprobM1_poin <- as.points(kernel.standardized, values=TRUE)
plot(UDprobM1_poin)
##Extraer los datos del ambiente para cada punto
UDprobM1_poin_env <- terra::extract(capasEnv, UDprobM1_poin, bind=T, method="simple") #tengo problema con el valor de cobertura
summary(UDprobM1_poin_env)
## Quito los valores sin datos del UD prop de las capas ambientales
UDprobM1_poin_env_noNA <- UDprobM1_poin_env[!is.na(UDprobM1_poin_env$Land.cover),]
nrow(UDprobM1_poin_env);nrow(UDprobM1_poin_env_noNA)
#Reviso que el UD sume 1 en el noNA
sum(UDprobF1_poin_env$ud)
sum(UDprobF1_poin_env_noNA$ud)
# Observo el tiempo gastado en cada cobertura
timeInLC <- as.data.frame(UDprobM1_poin_env_noNA) %>%
group_by(as.character(Land.cover)) %>%
summarise(timePerLandClass=sum(ud))
# Observo el tiempo gastado a ciertas distancias
test2 <- as.data.frame(UDprobM1_poin_env_noNA) %>%
mutate(timeNearRiver = ud * Distance.to.Rivers,
timeNearBuilding = ud * Distance.to.Building,
timeNearForest = ud * Distance.to.Forest) %>%
subset(select = c(ud,timeNearRiver,timeNearBuilding,timeNearForest))
#Estadisticas del Macho M1
avgDistToRiv2 <- sum(test2$timeNearRiver)
avgDistToBuild2 <- sum(test2$timeNearBuilding)
avgDistToForest2 <- sum(test2$timeNearForest)
summary(test$timeNearRiver)
###GENERO ALGUNAS GRAFICAS
plot (test$timeNearRiver)
plot(valuesM1_UD, UDM1_values$Distance.to.Rivers)
plot(valuesM1_UD, UDM1_values$Distance.to.Building)
plot(valuesM1_UD, UDM1_values$Distance.to.Forest)
plot(valuesF1_UD, UDF1_values$Distance.to.Rivers)
plot(valuesF1_UD, UDF1_values$Distance.to.Building)
plot(valuesF1_UD, UDF1_values$Distance.to.Forest)
#OPCION 2 USANDO DATAFRAME - Convierto la UDprob en el dataframe
#Obtengo los valores de las capas
values_amb <- terra::values(capasEnv)
valuesF1_UD <- terra::values(UDProbF1)
valuesM1_UD <- terra::values(UDProbM1)
UDF1_values <- data.frame(
udF1 = valuesF1_UD,
EnvSk = values_amb
)
UDM1_values <- data.frame(
udM1 = valuesM1_UD,
EnvSk = values_amb
)
summary(UDM1_values)