Week 6

library(pacman)
library("sf")
Linking to GEOS 3.12.2, GDAL 3.9.3, PROJ 9.4.1; sf_use_s2() is TRUE
library(readr)
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(lubridate)

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

    date, intersect, setdiff, union
library(ggplot2)
library(terra)
terra 1.7.83
library(raster)
Lade nötiges Paket: sp

Attache Paket: 'raster'
Das folgende Objekt ist maskiert 'package:dplyr':

    select
library(tmap)
Breaking News: tmap 3.x is retiring. Please test v4, e.g. with
remotes::install_github('r-tmap/tmap')

Task 1

# read data
Feldaufnahme <- read_sf("Feldaufnahmen_Fanel.gpkg")
Wildschwein <- read_delim("data/wildschwein_BE_2056.csv") |>
  st_as_sf(coords = c("E", "N"), crs = 2056, remove = FALSE)
Rows: 51246 Columns: 6
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr  (2): TierID, TierName
dbl  (3): CollarID, 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.
# quick visualization 
plot(Feldaufnahme["Frucht"])

plot(Wildschwein["geometry"])

# Es beinhaltet Polygone welche eine jeweilige Fläche repräsentieren (verschiedene Landwirtschaftliche Kulturen)
# Feldaufnahme = Polygone, Wildschwein = Punkte 
# FieldID = numeric, Frucht = character
# CH1903+

Task 2

# Annotating field type
Wildschwein_filter <- Wildschwein |>
  filter(DatetimeUTC >= "2015-05-01", 
    DatetimeUTC < "2015-07-01")
Wildschwein_2 <- st_join(Wildschwein, Feldaufnahme)

Task 3

# separation and calculation
Wildschwein_sum <- Wildschwein_2 |>
  st_drop_geometry() |>
  mutate(hour = hour(round_date(DatetimeUTC, "hour"))) |>
  group_by(TierName, hour, Frucht) |>
  summarise(n = n()) |>
  group_by(TierName, hour) |>
  mutate(perc = n/sum(n))
`summarise()` has grouped output by 'TierName', 'hour'. You can override using
the `.groups` argument.
#visualization 
Wildschwein_sum |>
  ggplot(aes(hour, perc, fill = Frucht)) + 
  geom_col() +
  facet_wrap(~TierName)

Task 4

Vegetation <- rast("data/vegetationshoehe_LFI.tif")
plot(Vegetation) # base R

tm_shape(Vegetation) + 
  tm_raster() # tmap
stars object downsampled to 1149 by 871 cells. See tm_shape manual (argument raster.downsample)

Task 5

Wildschwein_Vege <- extract(Vegetation, vect(Wildschwein))
Wildschwein$veg <- Wildschwein_Vege$vegetationshoehe_LFI