-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHAMAC-E1-MergeBehavData.R
More file actions
62 lines (48 loc) · 1.6 KB
/
Copy pathHAMAC-E1-MergeBehavData.R
File metadata and controls
62 lines (48 loc) · 1.6 KB
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
###################
## HAMAC Routine ##
###################
## Loads a model and the original GPS data to infer behaviours
## Arthur SCRIBAN - JANVIER 2024
### Libraries
library(moveHMM)
library(dplyr)
### Paths
dataDir <- "./1_IntermeData"
modDir <- "./2_OutFits"
modelFileName <- "240312032645-HAMAC-SN-ModHMM-3Et"
outDir <- "./3_OutData"
graphDir <- "./4_VisualOutputs"
filesPrefix <- "/HAMAC-SN-"
### Functions
### Execution
hmmdata <- readRDS(paste0(dataDir,"/HAMAC-SN-HMMDATA.rds"))
modhmm <- readRDS(paste0(modDir ,"/", modelFileName, ".rds"))
## Ajout des ?tats par Viterbi
# Ajoute aux donnees de sortie une colonne avec les etats selon Viterbi
vit <- viterbi(modhmm)
modhmmdata <- modhmm$data %>% mutate(VIT = vit)
modhmmdata$`(Intercept)` <- NULL
if (length(modhmmdata[, 1]) != length(hmmdata[, 1])) {
print("ERREUR : Nombre de points différents dans les données d'entrée et celles du modèle")
}
hmmdatavit <- merge(hmmdata, modhmmdata,
by = c("ID", "step", "angle", "x", "y"))
hmmdatavit <- hmmdatavit %>% arrange(ID, DHACQ)
head(hmmdatavit)
#### Data save
saveRDS(hmmdatavit,
paste0(outDir, filesPrefix, "MODHMMDATA.rds"))
write.table(hmmdatavit, paste0(
outDir, filesPrefix, format(Sys.time(), format = "%y%m%d%H%M%S"),
"-MODHMMDATA.csv"
), sep=";", row.names=FALSE)
for (id in unique(hmmdatavit$ID)) {
print(id)
animalData <- subset(hmmdatavit, ID == id)
write.table(animalData, paste0(
outDir, "/MODHMMDATA-PerANX",
filesPrefix,
format(Sys.time(), format = "%y%m%d%H%M%S"),
"-", id,
"-MODHMMDATA.csv"), sep=";", row.names=FALSE)
}