\clearpage

REMERCIEMENTS

Nous sommes reconnaissants de la collaboration continue entre le MPO, les pêcheurs commerciaux, les Premières nations et les organisations non gouvernementales, qui a rendu possible la collecte des données précieuses qui sous-tendent ce rapport. Nous remercions le comité directeur du projet (Greg Workman, Robyn Forrest, Dana Haggarty, Chris Grandin et Rob Kronlund) pour leur précieuse contribution à la conception du rapport et leurs commentaires tout au long de sa production. Nous remercions Chris Rooper et Daniel Ricard pour leurs examens approfondis et utiles. Nous remercions Mary Thiess et Kieran Forge d’avoir présidé la réunion d’examen et d’en avoir été le rapporteur, respectivement. Nous remercions Christie Whelan pour son soutien dans le lancement de ce projet. Nous remercions Norm Olsen, Maria Surry et Malcolm Wyeth de nous avoir aidés à extraire les données et à structurer la base de données générale et son contenu. Nous remercions les participants à la réunion d’examen par les pairs sur les démarches par étapes qui s’est tenue en mai 2016 [@macdougall2016], et qui comprenait l’examen d’une carte de pointage des données de Norm Olsen, dont s’inspire le présent rapport. Nous remercions également Norm Olsen pour son travail sur GFASTeR, dont ce projet s’inspire et emprunte quelques requêtes de données. Nous remercions Rowan Haigh pour son travail de maintenance des progiciels PBSmapping et PBSdata R, ainsi que les auteurs de tous les progiciels R nécessaires à la construction du présent rapport (Annexe \@ref(app:reproducibility)).

\clearpage

r if(knitr:::is_latex_output()) '\\Appendices'

r if(!knitr:::is_latex_output()) '# (APPENDIX) Appendix {-}'

PRÉCISION DE LA DÉTERMINATION DE L’ÂGE {#app:age-precision}

dc <- here::here("report", "data-cache")
spp <- gfsynopsis:::get_spp_names() %>% filter(type == "A")
spp <- filter(spp, species_common_name != "pacific hake")

out_dat <- list()
dir.create(here::here("report/aging-precision-cache"), showWarnings = FALSE)
cache_file <- here::here("report/aging-precision-cache/aging-precision.rds")
if (!file.exists(cache_file)) {
  for (i in seq_along(spp$species_common_name)) {
    dat <- readRDS(paste0(file.path(dc, spp$spp_w_hyphens[i]), ".rds"))
    if (nrow(dat$age_precision) > 1) {
      out_dat[[i]] <- gfplot::tidy_age_precision(dat$age_precision)
      out_dat[[i]]$species_common_name <-
        gfsynopsis:::first_cap(spp$species_common_name[[i]])
    }
  }
  saveRDS(out_dat, file = cache_file)
} else {
  out_dat <- readRDS(cache_file)
}

if (french) {
  out_dat <- lapply(out_dat, function(x) {
    if (length(x) > 0) {
      x$species_common_name <- gfsynopsis:::first_cap(x$species_common_name)
      x$species_common_name[x$species_common_name == 'Rougheye/blackspotted Rockfish Complex'] <- 'Rougheye/Blackspotted Rockfish Complex'
      x$species_common_name <- en2fr(x$species_common_name, french)
      x
    }
  })
}
out_prec <- bind_rows(out_dat)
set.seed(42)
jitter <- 0.2
jit <- stats::runif(nrow(out_prec), -jitter, jitter)
out_prec$prec_age <- out_prec$prec_age + jit
out_prec$prim_age <- out_prec$prim_age + jit
out_prec$prim_min_age <- out_prec$prim_min_age + jit
out_prec$prim_max_age <- out_prec$prim_max_age + jit
out_prec$prec_min_age <- out_prec$prec_min_age + jit
out_prec$prec_max_age <- out_prec$prec_max_age + jit

out_prec %>% group_by(species_common_name) %>%
  do(if (nrow(.) > 300) sample_n(., 300) else .) %>% # downsample for clarity
  # fake data points to get 1-1 aspect ratio (they are invisible; coloured NA):
  do(data.frame(
    type = c(rep("real", length(.$prim_max_age)), "fake"),
    prim_max_age = c(.$prim_max_age, max(c(.$prim_max_age, .$prec_max_age))),
    prec_max_age = c(.$prec_max_age, max(c(.$prim_max_age, .$prec_max_age))),
    prim_min_age = c(.$prim_min_age, 0),
    prec_min_age = c(.$prec_min_age, 0),
    prec_age = c(.$prec_age, 0),
    prim_age = c(.$prim_age, 0),
    species_code = c(.$species_code, unique(.$species_code)),
    species_common_name = c(.$species_common_name, unique(.$species_common_name)),
    stringsAsFactors = FALSE
    )) %>%
  ungroup() %>%
  mutate(species_common_name = gsub("Rougheye\\/blackspotted Rockfish Complex",
    "Rougheye/\nblackspotted Rockfish", species_common_name)) %>%
  mutate(species_common_name =
      forcats::fct_reorder(species_common_name, as.numeric(as.factor(species_code)))) %>%
  ggplot(aes_string("prim_age", "prec_age", colour = "type")) +
  geom_point(pch = 21, alpha = 0.6) +
  ggplot2::geom_abline(intercept = 0, slope = 1, col = "grey50", lty = 2) +
  ggplot2::geom_segment(aes_string(
    x = "prim_min_age", xend = "prim_max_age",
    y = "prec_age", yend = "prec_age"),
    alpha = 0.4) +
  facet_wrap(~species_common_name, scales = "free") +
  ggplot2::geom_segment(aes_string(
    x = "prim_age", xend = "prim_age",
    y = "prec_min_age", yend = "prec_max_age"), alpha = 0.4) +
  labs(title = en2fr("Ageing precision", french), x = en2fr("Primary age (years)", french),
    y = en2fr("Secondary age (years)", french)) +
  theme_pbs() +
  ggplot2::ggtitle("") +
  scale_colour_manual(values = c("real" = "grey25", "fake" = NA)) +
  guides(colour = FALSE)


pbs-assess/gfsynopsis documentation built on March 26, 2024, 7:30 p.m.