# setwd("C:/Users/nwickelmaier/Nextcloud/Documents/MDS/2023ss/60100_master_thesis/code") #library(mtt) devtools::load_all("../../../../software/mtt") now <- format(Sys.time(), "%Y-%m-%d_%H-%M-%S") #now <- "2023-09-23_01-31-30" #--------------- Parse raw log files --------------- path <- "../data/haum/LogFiles/" folders <- dir(path) #datraw <- parse_logfiles(folders, path) datraw <- read.table("../data/haum/raw_logfiles_small_2023-09-26_13-50-20.csv", sep = ";", header = TRUE) # export data # write.table(datraw, paste0("../data/haum/raw_logfiles_", now, ".csv"), # sep = ";", row.names = FALSE) #--------------- Create event logs --------------- datlogs <- create_eventlogs(datraw, xmlpath = "../data/haum/ContentEyevisit/eyevisit_cards_light/") artworks <- unique(na.omit(datlogs$artwork)) topics <- extract_topics(artworks, xmlfiles = paste0(artworks, ".xml"), xmlpath = "../data/haum/ContentEyevisit/eyevisit_cards_light/") datlogs_topics <- add_topic(datlogs, topics = topics) # export data # write.table(datlogs_topics, paste0("../data/haum/event_logfiles_", now, ".csv"), # sep = ";", row.names = FALSE) #--------------- Add meta data --------------- ## Read data for holiday hd0 <- read.table("../data/metadata/feiertage.csv", sep = ";", header = TRUE) hd0$X.br. <- NULL hd <- hd0[hd0$Abkuerzung == "NI", ] names(hd) <- c("state", "stateCode", "date", "holiday") hd$date <- as.POSIXct(hd$date) ## Read data for school vacations # https://ferien-api.de/#holidaysPerStateAndYear # Data extracted (on Linux) via: # curl https://ferien-api.de/api/v1/holidays/NI > schulferien_NI.json # library(jsonlite) # # dat <- read_json("data/metadata/schulferien_NI.json", simplify = TRUE) # dat$slug <- NULL # # dat$name <- paste0(gsub("^(.*).niedersachsen.*", "\\1", dat$name), # gsub("^.*niedersachsen [0-9]{4}(.*)", "\\1", # dat$name)) # # write.table(dat, "data/metadata/schulferien_2019-2025_NI.csv", sep = ";", # row.names = FALSE, quote = FALSE) sf1 <- read.table("../data/metadata/schulferien_2016-2018_NI.csv", sep = ";", header = TRUE) sf2 <- read.table("../data/metadata/schulferien_2019-2025_NI.csv", sep = ";", header = TRUE) sf <- rbind(sf1, sf2) sf$start <- as.Date(sf$start) sf$end <- as.Date(sf$end) sfdat <- NULL for (i in seq_len(nrow(sf))) { date <- seq(sf$start[i], sf$end[i], by = 1) sfdat <- rbind(sfdat, data.frame(date, vacations = sf$name[i], stateCodeVacations = sf$stateCode[i])) } # TODO: How to handle stateCode? There will be several for certain types of # data sets... Not important here, since I only do NI. ## Add metadata # holidays dat1 <- merge(datlogs_topics, hd, by.x = "date.start", by.y = "date", all.x = TRUE) # school vacations dat2 <- merge(dat1, sfdat, by.x = "date.start", by.y = "date", all.x = TRUE) ## Export data write.table(dat2, file = paste0("../data/haum/event_logfiles_small_metadata_", now, ".csv"), sep = ";", row.names = FALSE) # TODO: Maybe add infos about artworks?