diff --git a/inst/ShinyApp/runApp.R b/inst/ShinyApp/runApp.R index cafa2b5e825a8220c8670225e8679b74e76d94a2..266fa210a05ae741e5c5cbfe42d73897b7722936 100644 --- a/inst/ShinyApp/runApp.R +++ b/inst/ShinyApp/runApp.R @@ -1,3 +1,4 @@ source("./inst/ShinyApp/ui.R") source("./inst/ShinyApp/server.R") + shinyApp(ui = ui, server = server) diff --git a/inst/ShinyApp/server.R b/inst/ShinyApp/server.R index 929fe89b994701ebf065fba6683b26835819086c..f914e7ac356b973b6e415b3d3b92f0eb2d79ceda 100644 --- a/inst/ShinyApp/server.R +++ b/inst/ShinyApp/server.R @@ -545,25 +545,24 @@ server <- function(input, output, session){ ## Update matrix cumulated impact - observeEvent({input$farm_number_cumulated}, { - rows_names <- function(n){ + observeEvent({ + input$farm_number_cumulated + }, { + + park_names <- function(n){ v <- c(paste0("Parc n°", c(1:n))) return(v) - } + } - nrow <- input$farm_number_cumulated - number_parks <- rows_names(nrow) - # data_fatalities_cumulated <- c(c(input$fatalities_mat_cumulated[,1]), - # c(input$fatalities_mat_cumulated[,2]), - # c(input$fatalities_mat_cumulated[,3])) + n_row <- input$farm_number_cumulated updateMatrixInput(session, inputId = "fatalities_mat_cumulated", - value = matrix("", nrow = nrow, 3, - dimnames = list(number_parks, - c("Moyennes des mortalités annuelles", - "Ecart-type des mortalités annuelles", + value = matrix(init_cumul, nrow = n_row, 3, byrow = TRUE, + dimnames = list(park_names(n_row), + c("Moyenne", + "Ecart-type", "Année de mise en service du parc")))) - }) + }) # end observEvent # Survivals and Fecundities @@ -602,6 +601,5 @@ server <- function(input, output, session){ } # End server -shinyApp(ui, server) diff --git a/inst/ShinyApp/survivals_fecundities_species.csv b/inst/ShinyApp/survivals_fecundities_species.csv index b2bce0a2b10a784ed2371f9fb4b884f51b01bd0c..df0645a4126cce8130c562fa86fade53e01e8838 100644 --- a/inst/ShinyApp/survivals_fecundities_species.csv +++ b/inst/ShinyApp/survivals_fecundities_species.csv @@ -1,10 +1,12 @@ Nom_espece,classes_age,survie,fecondite -Aigle botté,Juv 1,0.5,0 -Aigle botté,Juv 2,0.7,0 -Aigle botté,Juv 3,0.8,0.05 -Aigle botté,Adulte,0.95,0.55 -Aigle de Bonelli,Juv 1,0.4,0 -Aigle de Bonelli,Juv 2,0.55,0 -Aigle de Bonelli,Juv 3,0.6,0.05 -Aigle de Bonelli,Juv 4,0.65,0.3 -Aigle de Bonelli,Adulte,0.8,0.4 \ No newline at end of file +Aigle de Bonelli,Juv 1,0.65,0 +Aigle de Bonelli,Juv 2,0.75,0 +Aigle de Bonelli,Juv 3,0.85,0.05 +Aigle de Bonelli,Adulte,0.94,0.4 +Aigle royal,Juv 1,0.5,0 +Aigle royal,Juv 2,0.6,0 +Aigle royal,Juv 3,0.75,0.05 +Aigle royal,Juv 4,0.8,0.35 +Aigle royal,Adulte,0.95,0.55 +Alouette des champs,Juv 1,0.5,0 +Alouette des champs,Adulte,0.5,2.5 \ No newline at end of file diff --git a/inst/ShinyApp/ui.R b/inst/ShinyApp/ui.R index dfdac543157696a08d4db12906dd2b9b8a6b38b0..47624bc0d175dd0224a9f0ddc27a86b499bbfddb 100644 --- a/inst/ShinyApp/ui.R +++ b/inst/ShinyApp/ui.R @@ -1,25 +1,24 @@ rm(list = ls(all.names = TRUE)) +## Load libraries library(shiny) library(shinyjs) library(shinyMatrix) library(tidyverse) - library(eolpop) + # source("./inst/ShinyApp/f_output.R") # source("./inst/ShinyApp/param_fixes.R") - +## Load species list species_data <- read.csv("./inst/ShinyApp/species_list.csv", sep = ",") -head(species_data) - -# species_list <- unique(as.character(species_data$NomEspece)) -species_list <- species_data$NomEspece +species_list <- unique(as.character(species_data$NomEspece)) +# species_list <- species_data$NomEspece +## Load survival and fecundities data data_sf <- read.csv("./inst/ShinyApp/survivals_fecundities_species.csv", sep = ",")#, encoding = "UTF-8") -head(data_sf) - +(data_sf) # Fixed parameters (for now) nsim = 10 @@ -28,17 +27,48 @@ time_horzion = 30 survivals <- c(0.5, 0.7, 0.8, 0.95) fecundities <- c(0, 0, 0.05, 0.55) -# Data elicitation, fatalities for cumulated impacts, vital rates and DD_params -data_eli = c("",1, 50, 70, 100, 0.80, "", 0.2, 200, 240, 280, 0.90, "", 0.2, 100, 180, 300, 0.90,"", 0.1, 120, 160, 220, 0.70) -data_eli_trend = c("", 1, 0.60, 0.66, 0.78, 0.80, "", 0.2, 0.75, 0.83, 0.89, 0.90, "", 0.2, 0.56, 0.67, 0.77, 0.90, "", 0.1, 0.76, 0.89, 0.94, 0.70) -data_fatalities = c(10, 5, 8, 0.05, 0.05, 0.05, 2010, 2015, 2018) -data_vr = c(0.5, 0.7, 0.8, 0.95, 0, 0, 0.05, 0.55) +## Data elicitation pre-fill data +# fatalities +eli_fatalities <- c("A", 1.0, 2, 5, 8, 0.80, + "B", 0.2, 0, 3, 6, 0.90, + "C", 0.2, 2, 4, 10, 0.90, + "D", 0.1, 1, 3, 7, 0.70) + +# population size +eli_pop_size <- c("A", 1.0, 150, 200, 250, 0.80, + "B", 0.5, 120, 180, 240, 0.90, + "C", 0.8, 170, 250, 310, 0.90, + "D", 0.3, 180, 200, 230, 0.70) + +# carrying capacity +eli_carrying_cap <- c("A", 1.0, 500, 700, 1000, 0.80, + "B", 0.5, 1000, 1500, 2000, 0.90, + "C", 0.8, 800, 1200, 1600, 0.90, + "D", 0.3, 100, 1200, 1500, 0.70) + +# population growth rate +eli_pop_growth <- c("A", 1 , 0.95, 0.98, 1.00, 0.95, + "B", 0.2, 0.97, 1.00, 1.01, 0.90, + "C", 0.5, 0.92, 0.96, 0.99, 0.90, + "D", 0.3, 0.90, 0.95, 0.98, 0.70) + +## Other pre-fill data +# fatalities for several wind farms (cumulated impacts) +init_cumul <- c(10, 5, 8, + 0.05, 0.05, 0.05, + 2010, 2015, 2018) +init_cumul_add <- c(3, 0.05, 2020) + + + +# vital rates +init_vr = c(survivals, fecundities) # DD parameters theta = 1 # Define theoretical rMAX for the species -rMAX_species <- rMAX_spp(surv = tail(survivals,1), afr = min(which(fecundities != 0))) +rMAX_species <- rMAX_spp(surv = tail(survivals, 1), afr = min(which(fecundities != 0))) rMAX_species @@ -53,7 +83,7 @@ ui <- fluidPage( wellPanel( selectInput(inputId = "species_list", - h4(strong("Sélection d'une espèce ou groupe d'espèces")), + h4(strong("Sélection d'une espèce")), choices = species_list), radioButtons(inputId = "analysis_choice", h4(strong("Sélectionner un type d'analyse")), @@ -128,7 +158,10 @@ ui <- fluidPage( # Matrix for expert elicitation matrixInput(inputId = "fatalities_mat_expert", - value = matrix(data = data_eli, 4, 6, dimnames = list(c("#1", "#2", "#3", "#4"), c("Nom", "Poids", "Min", "Meilleure Estimation", "Max", "IC (coverage)" )), byrow = TRUE), + value = matrix(data = eli_fatalities, 4, 6, + dimnames = list(c("#1", "#2", "#3", "#4"), + c("Nom", "Poids", "Min", "Best", "Max", "% IC" )), + byrow = TRUE), class = "numeric", rows = list(names = TRUE), cols = list(names = TRUE)), @@ -142,10 +175,10 @@ ui <- fluidPage( value = 3, min = 2, max = Inf, step = 1), matrixInput(inputId = "fatalities_mat_cumulated", - value = matrix(data_fatalities, 3, 3, + value = matrix(init_cumul, 3, 3, dimnames = list(c(paste0("Parc n°", c(1:3))), - c("Moyennes des mortalités annuelles", - "Ecart-type des mortalités annuelles", + c("Moyenne", + "Ecart-type", "Année de mise en service du parc"))), class = "numeric", rows = list(names = TRUE), @@ -179,9 +212,9 @@ ui <- fluidPage( min = 0, max = Inf, step = 1), matrixInput(inputId = "pop_size_mat_expert", - value = matrix(data = data_eli, 4, 6, + value = matrix(data = eli_pop_size, 4, 6, dimnames = list(c("#1", "#2", "#3", "#4"), - c("Nom", "Poids", "Min", "Best", "Max", "IC" )), + c("Nom", "Poids", "Min", "Best", "Max", "% IC" )), byrow = TRUE), class = "numeric", rows = list(names = TRUE), @@ -208,7 +241,10 @@ ui <- fluidPage( min = 0, max = Inf, step = 100), matrixInput(inputId = "carrying_cap_mat_expert", - value = matrix(data = data_eli, 4, 6, dimnames = list(c("#1", "#2", "#3", "#4"), c("Nom", "Poids", "Min", "Meilleure Estimation", "Max", "IC (coverage)" )), byrow = TRUE), + value = matrix(data = eli_carrying_cap, 4, 6, + dimnames = list(c("#1", "#2", "#3", "#4"), + c("Nom", "Poids", "Min", "Best", "Max", "% IC" )), + byrow = TRUE), class = "numeric", rows = list(names = TRUE), cols = list(names = TRUE)), @@ -238,7 +274,10 @@ ui <- fluidPage( min = 0, max = Inf, step = 0.01), matrixInput(inputId = "pop_growth_mat_expert", - value = matrix(data = data_eli_trend, 4, 6, dimnames = list(c("#1", "#2", "#3", "#4"), c("Nom", "Poids", "Min", "Meilleure Estimation", "Max", "IC (coverage)" )), byrow = TRUE), + value = matrix(data = eli_pop_growth, 4, 6, + dimnames = list(c("#1", "#2", "#3", "#4"), + c("Nom", "Poids", "Min", "Best", "Max", "% IC" )), + byrow = TRUE), class = "numeric", rows = list(names = TRUE), cols = list(names = TRUE)), @@ -279,7 +318,7 @@ ui <- fluidPage( cols = list(names = TRUE)), matrixInput(inputId = "mat_fill_vr", - value = matrix(data = data_vr, 4, 2, dimnames = list(c("Juv 1", "Juv 2", "Juv 3", "Adulte"), c("Survie", "Fécondité"))), + value = matrix(data = init_vr, 4, 2, dimnames = list(c("Juv 1", "Juv 2", "Juv 3", "Adulte"), c("Survie", "Fécondité"))), class = "numeric", rows = list(names = TRUE), cols = list(names = TRUE)) @@ -347,3 +386,4 @@ ui <- fluidPage( ) # FluidPage # End UI +