library (duckdbfs)
library (tidyverse)
library (sf)
library (here)
# TEST 1 -----------------------------------------------------------------------
gear <-
open_dataset (here ("data/gear/gear_mapping.parquet" )) |>
select (gid_trip = agf_gid, veiðarfæri)
v1 <-
duckdbfs:: open_dataset (here ("data-raw/ad-hoc/2025-06-24_vernd1_steinunn-hilma.gpkg" )) |>
mutate (svaedi = "vernd1" ) |>
select (svaedi, geom)
v2 <-
duckdbfs:: open_dataset (here ("data-raw/ad-hoc/2025-06-24_vernd2_steinunn-hilma.gpkg" )) |>
mutate (svaedi = "vernd2" ) |>
select (svaedi, geom)
tr <- open_dataset (here ("data/ais/trail" ))
data1 <-
tr |>
filter (.cid > 0 , # .cid positive -> not in harbour
whack == FALSE ,
between (year, 2009 , 2024 ),
between (speed, s1, s2),
between (time, t1, t2)) |>
filter (lat < 64 ) |>
# between(lon, -24.5, -19.93)) |> 5
dplyr:: mutate (geom = ST_POINT (lon, lat)) |>
duckdbfs:: spatial_join (v1, by = "st_intersects" , join = "left" ) |>
mutate (svaedi = ifelse (is.na (svaedi), "outside" , svaedi)) |>
group_by (year, vid, .cid, .sid) |>
mutate (catch = catch_total / n ()) |>
ungroup () |>
group_by (year, gid_trip, svaedi) |>
summarise (n_vid = n_distinct (vid),
dt = sum (dt, na.rm = TRUE ) / 60 , # effort as time - what unit?
catch = sum (catch, na.rm = TRUE ) / 1e3 , #catch in tonnes
.groups = "drop" ) |>
left_join (gear) |>
collect ()
data1 |>
mutate (gid_trip = paste (str_pad (gid_trip, pad = "0" , width = 2 ), veiðarfæri)) |>
ggplot (aes (year, catch, fill = svaedi)) +
geom_col (position = "fill" ) +
scale_fill_brewer (palette = "Set1" ) +
facet_wrap (~ gid_trip) +
labs (title = "Sunnan 64 gráðu" )
data2 <-
tr |>
filter (.cid > 0 , # .cid positive -> not in harbour
whack == FALSE ,
between (year, 2009 , 2024 ),
between (speed, s1, s2),
between (time, t1, t2)) |>
filter (lat < 64 ) |>
# between(lon, -24.5, -19.93)) |> 5
dplyr:: mutate (geom = ST_POINT (lon, lat)) |>
duckdbfs:: spatial_join (v2, by = "st_intersects" , join = "left" ) |>
mutate (svaedi = ifelse (is.na (svaedi), "outside" , svaedi)) |>
group_by (year, vid, .cid, .sid) |>
mutate (catch = catch_total / n ()) |>
ungroup () |>
group_by (year, gid_trip, svaedi) |>
summarise (n_vid = n_distinct (vid),
dt = sum (dt, na.rm = TRUE ) / 60 , # effort as time - what unit?
catch = sum (catch, na.rm = TRUE ) / 1e3 , #catch in tonnes
.groups = "drop" ) |>
left_join (gear) |>
collect ()
data2 |>
mutate (gid_trip = paste (str_pad (gid_trip, pad = "0" , width = 2 ), veiðarfæri)) |>
ggplot (aes (year, catch, fill = svaedi)) +
geom_col (position = "fill" ) +
scale_fill_brewer (palette = "Set1" ) +
facet_wrap (~ gid_trip)