forked from DFOChuLab/Watershed_prioritization
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2 from inSilecoInc/CST-455-lake-erie
CST-455 Lake Erie results
- Loading branch information
Showing
99 changed files
with
4,374 additions
and
1,929 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,3 +4,6 @@ | |
^LICENSE\.md$ | ||
^\.vscode$ | ||
^inst/extdata/ProtectedAreas$ | ||
^pres$ | ||
^NOTES\.md$ | ||
^\.github$ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
output_data | ||
.vscode | ||
pres | ||
.~lock* | ||
NOTES.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,13 @@ | ||
Package: watershedPrioritization | ||
Type: Package | ||
Title: Priortize Watersheds Within Canada | ||
Date: 2025-02-03 | ||
Version: 0.0.0.9002 | ||
Title: Prioritize Watersheds Within Canada | ||
Date: 2025-02-17 | ||
Version: 0.1.0 | ||
Authors@R: c( | ||
person("Cindy", "Chu", email = "[email protected]", role = c("aut", "cre")), | ||
person("inSileco Inc", comment = "https://insileco.io/", role = c("aut")) | ||
) | ||
Maintainer: Cindy Chu <[email protected]> | ||
Description: Priortize watersheds within Canada for four freshwater fish conservation objectives. | ||
Description: Reproduce the anlyses in 'Prioritizing Canadian watersheds for conservation of freshwater fish and fish habitat'. | ||
Encoding: UTF-8 | ||
License: MIT + file LICENSE | ||
Roxygen: list(markdown = TRUE) | ||
|
@@ -21,20 +20,23 @@ Imports: | |
ggbeeswarm (>= 0.7.2), | ||
ggplot2 (>= 3.5.1), | ||
ggpubr (>= 0.6.0), | ||
purrr (>= 1.0.2), | ||
patchwork (>= 1.3.0), | ||
readr (>= 2.1.5), | ||
readxl (>= 1.4.3), | ||
sf (>= 1.0-18), | ||
tidyr (>= 1.3.1), | ||
vegan (>= 2.6-10), | ||
viridis (>= 0.6.5) | ||
Suggests: | ||
bslib (>= 0.9.0), | ||
htmltools (>= 0.5.8.1), | ||
leaflet (>= 2.2.2), | ||
leafem (>= 0.2.3), | ||
rsconnect (>= 1.3.2), | ||
shiny (>= 1.9.1), | ||
shinyWidgets (>= 0.8.7), | ||
shinybusy (>= 0.3.3), | ||
shinythemes (>= 1.2.0), | ||
shinyjs (>= 2.1.0), | ||
terra (>= 1.8-15), | ||
testthat (>= 3.0.0) | ||
RoxygenNote: 7.3.2 | ||
LazyLoad: yes | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,18 @@ | ||
# Generated by roxygen2: do not edit by hand | ||
|
||
export(apply_weight) | ||
export(compute_fish_priority_index) | ||
export(feow_scaling) | ||
export(generate_priorization_data) | ||
export(get_results) | ||
export(apply_weights) | ||
export(compute_minns_Q_I) | ||
export(generate_canada_dataset) | ||
export(generate_lake_erie_dataset) | ||
export(plot_comparison) | ||
export(plot_comparison_pca) | ||
export(plot_input_variables) | ||
export(plot_protected_areas) | ||
export(plot_scale_dependency) | ||
export(plot_scores) | ||
export(plot_scores_feow) | ||
export(plot_weightings) | ||
export(run_pipeline) | ||
export(spatialize_results) | ||
import(ggplot2) | ||
import(patchwork) |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
#' Applying expert weight to watershed prioritization data | ||
#' | ||
#' @param ws_data `[data.frame]`\cr A data frame with the variable of interest | ||
#' (see [generate_canada_dataset()] and [generate_lake_erie_dataset()]). | ||
#' | ||
#' @details | ||
#' Use the median values of expert weights used to generate weighted-scores for | ||
#' four management strategies (weighting schema): | ||
#' * Area-based protection | ||
#' * Restoration | ||
#' * SAR management | ||
#' * Invasive species management | ||
#' | ||
#' @return | ||
#' A data frame with the same data as `ws_data` plus four columns for the | ||
#' scores computed and four additional four columns including the scaled | ||
#' score within FEOW if `ws_data` includes `FEOW_ID`. | ||
#' | ||
#' @export | ||
|
||
apply_weights <- function(ws_data) { | ||
### read weightings data | ||
weights <- path_input_data("Co_author_weightings.csv") |> | ||
readr::read_csv(show_col_types = FALSE) | ||
|
||
med_weights <- weights |> | ||
dplyr::select(-Co_author) |> | ||
dplyr::summarise_all(stats::median) |> | ||
tidyr::pivot_longer( | ||
cols = dplyr::everything(), | ||
names_to = "Variable", | ||
values_to = "Weight" | ||
) | ||
|
||
ws_data_w <- ws_data |> | ||
dplyr::mutate( | ||
#---------------- Priorities for Protected areas | ||
protection_score = | ||
WSI_n * med_weights$Weight[1] + | ||
FBCI_n * med_weights$Weight[2] + | ||
CCI_n * med_weights$Weight[3] + | ||
SARI_n * med_weights$Weight[4] + | ||
Fish_richness_n * med_weights$Weight[5] + | ||
Priority_n * med_weights$Weight[6], | ||
#---------------- Priorities for restoration | ||
restoration_score = WSI_n * med_weights$Weight[7] + | ||
FBCI_n * med_weights$Weight[8] + | ||
CCI_n * med_weights$Weight[9] + | ||
SARI_n * med_weights$Weight[10] + | ||
Fish_richness_n * med_weights$Weight[11] + | ||
Priority_n * med_weights$Weight[12], | ||
#---------------- Priorities for SAR | ||
SAR_score = WSI_n * med_weights$Weight[13] + | ||
FBCI_n * med_weights$Weight[14] + | ||
CCI_n * med_weights$Weight[15] + | ||
SARI_n * med_weights$Weight[16] + | ||
Fish_richness_n * med_weights$Weight[17] + | ||
Priority_n * med_weights$Weight[18], | ||
|
||
#---------------- Priorities for AIS | ||
AIS_score = WSI_n * med_weights$Weight[19] + | ||
FBCI_n * med_weights$Weight[20] + | ||
CCI_n * med_weights$Weight[21] + | ||
SARI_n * med_weights$Weight[22] + | ||
Fish_richness_n * med_weights$Weight[23] + | ||
Priority_n * med_weights$Weight[24] | ||
) | ||
|
||
if ("FEOW_ID" %in% names(ws_data_w)) { | ||
# Scale ranks within FEOW to number of FEOW | ||
ws_data_w <- ws_data_w |> | ||
# protection_score ranked within FEOW | ||
dplyr::ungroup() |> | ||
dplyr::group_by(FEOW_ID) |> | ||
dplyr::arrange(FEOW_ID, -protection_score) |> | ||
dplyr::mutate(Prot_rank_feow = dplyr::row_number()) |> | ||
# restoration_score ranked within FEOW | ||
dplyr::ungroup() |> | ||
dplyr::group_by(FEOW_ID) |> | ||
dplyr::arrange(FEOW_ID, -restoration_score) |> | ||
dplyr::mutate(Rest_rank_feow = dplyr::row_number()) |> | ||
# SAR_score ranked within FEOW | ||
dplyr::ungroup() |> | ||
dplyr::group_by(FEOW_ID) |> | ||
dplyr::ungroup() |> | ||
dplyr::arrange(FEOW_ID, -SAR_score) |> | ||
dplyr::mutate(SAR_rank_feow = dplyr::row_number()) |> | ||
# AIS_score ranked within FEOW | ||
dplyr::ungroup() |> | ||
dplyr::group_by(FEOW_ID) |> | ||
dplyr::arrange(FEOW_ID, -AIS_score) |> | ||
dplyr::mutate(AIS_rank_feow = dplyr::row_number()) |> | ||
# Scale within FEOW | ||
dplyr::ungroup() |> | ||
dplyr::group_by(FEOW_ID) |> | ||
dplyr::mutate( | ||
Prot_rank_feow_scaled = scale_rank(Prot_rank_feow), | ||
Rest_rank_feow_scaled = scale_rank(Rest_rank_feow), | ||
SAR_rank_feow_scaled = scale_rank(SAR_rank_feow), | ||
AIS_rank_feow_scaled = scale_rank(AIS_rank_feow) | ||
) | ||
} else { | ||
# scale all value | ||
ws_data_w <- ws_data_w |> | ||
dplyr::mutate( | ||
Prot_rank_scaled = scale_rank(protection_score), | ||
Rest_rank_scaled = scale_rank(restoration_score), | ||
SAR_rank_scaled = scale_rank(SAR_score), | ||
AIS_rank_scaled = scale_rank(AIS_score) | ||
) | ||
} | ||
|
||
ws_data_w | ||
} |
Oops, something went wrong.