wee4_excerciseB

Week 4, Excercise B

# install.packages("pacman")
library("pacman")

p_install("dplyr", force = FALSE)
Package is already on your system.
p_install("ggplot2", force = FALSE)
Package is already on your system.
p_install("readr", force = FALSE)
Package is already on your system.
p_install("tidyr", force = FALSE)
Package is already on your system.
p_install("sf", force = FALSE)
Package is already on your system.
p_install("terra", force = FALSE)
Package is already on your system.
p_install("tmap", force = FALSE)
Package is already on your system.
p_install("zoo", force = FALSE)
Package is already on your system.
p_install("units", force = FALSE)
Package is already on your system.
p_install("plotly", force = FALSE)
Package is already on your system.
p_install("patchwork", force = FALSE)
Package is already on your system.
library("ggplot2")
library("dplyr")

Attache Paket: 'dplyr'
Die folgenden Objekte sind maskiert von 'package:stats':

    filter, lag
Die folgenden Objekte sind maskiert von 'package:base':

    intersect, setdiff, setequal, union
library("readr")
library("sf")
Linking to GEOS 3.13.0, GDAL 3.10.1, PROJ 9.5.1; sf_use_s2() is TRUE
library("readr")
library("sf")
library(lubridate)

Attache Paket: 'lubridate'
Die folgenden Objekte sind maskiert von 'package:base':

    date, intersect, setdiff, union
# install.packages("SimilarityMeasures")
library("SimilarityMeasures")
df <- read_delim("pedestrian.csv", ",")
Rows: 289 Columns: 4
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
dbl  (3): TrajID, E, N
dttm (1): DatetimeUTC

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Task 1: Similarity measures

sf <- df |>
  st_as_sf(coords = c("E", "N"), crs = 2056, remove = FALSE)
ggplot(sf) + 
  geom_sf(size = 0.5) +
  geom_path(aes(E, N, color=TrajID)) +
  facet_wrap(~TrajID)

# I guess 1 and 6 are the most similar ones.

Task 2: Calculate similarity

df_p1 <- df |> filter(TrajID == 1) |> select(E, N)
df_p2 <- df |> filter(TrajID == 2) |> select(E, N)
df_p3 <- df |> filter(TrajID == 3) |> select(E, N)
df_p4 <- df |> filter(TrajID == 4) |> select(E, N)
df_p5 <- df |> filter(TrajID == 5) |> select(E, N)
df_p6 <- df |> filter(TrajID == 6) |> select(E, N)
path1 <- as.matrix(df_p1)
path2 <- as.matrix(df_p2)
path3 <- as.matrix(df_p3)
path4 <- as.matrix(df_p4)
path5 <- as.matrix(df_p5)
path6 <- as.matrix(df_p6)

My_LCSS <- function(path1, path2) {
  LCSS(path1, path2, errorMarg = 100.0)
}

results <- data.frame(Name = character(), Comparator = numeric(), Result = double(), stringsAsFactors = FALSE)
results <- rbind(results, data.frame(Name = "EditDist", Comparator = 2, Result = EditDist(path1, path2)))
results <- rbind(results, data.frame(Name = "EditDist", Comparator = 3, Result = EditDist(path1, path3)))
results <- rbind(results, data.frame(Name = "EditDist", Comparator = 4, Result = EditDist(path1, path4)))
results <- rbind(results, data.frame(Name = "EditDist", Comparator = 5, Result = EditDist(path1, path5)))
results <- rbind(results, data.frame(Name = "EditDist", Comparator = 6, Result = EditDist(path1, path6)))
results <- rbind(results, data.frame(Name = "DTW", Comparator = 2, Result = DTW(path1, path2)))
results <- rbind(results, data.frame(Name = "DTW", Comparator = 3, Result = DTW(path1, path3)))
results <- rbind(results, data.frame(Name = "DTW", Comparator = 4, Result = DTW(path1, path4)))
results <- rbind(results, data.frame(Name = "DTW", Comparator = 5, Result = DTW(path1, path5)))
results <- rbind(results, data.frame(Name = "DTW", Comparator = 6, Result = DTW(path1, path6)))
results <- rbind(results, data.frame(Name = "Frechet", Comparator = 2, Result = Frechet(path1, path2)))
results <- rbind(results, data.frame(Name = "Frechet", Comparator = 3, Result = Frechet(path1, path3)))
results <- rbind(results, data.frame(Name = "Frechet", Comparator = 4, Result = Frechet(path1, path4)))
results <- rbind(results, data.frame(Name = "Frechet", Comparator = 5, Result = Frechet(path1, path5)))
results <- rbind(results, data.frame(Name = "Frechet", Comparator = 6, Result = Frechet(path1, path6)))
results <- rbind(results, data.frame(Name = "LCSS", Comparator = 2, Result = My_LCSS(path1, path2)))
results <- rbind(results, data.frame(Name = "LCSS", Comparator = 3, Result = My_LCSS(path1, path3)))
results <- rbind(results, data.frame(Name = "LCSS", Comparator = 4, Result = My_LCSS(path1, path4)))
results <- rbind(results, data.frame(Name = "LCSS", Comparator = 5, Result = My_LCSS(path1, path5)))
results <- rbind(results, data.frame(Name = "LCSS", Comparator = 6, Result = My_LCSS(path1, path6)))
ggplot(results, aes(x = Comparator, y = Result, fill = Comparator)) + 
  geom_bar(stat = "identity") +
  facet_wrap(~Name, scales = "free_y")