diff --git a/inst/ShinyApp/server.R b/inst/ShinyApp/server.R index 0a011550ea6f989bc3fda47cfaee9e971a2846e2..85c0e668b4232b48ef846fe3d5a5687c23ee2fa1 100644 --- a/inst/ShinyApp/server.R +++ b/inst/ShinyApp/server.R @@ -28,8 +28,6 @@ server <- function(input, output, session){ shinyjs::hide("pop_growth_run_expert") shinyjs::hide("pop_trend") shinyjs::hide("pop_trend_strength") - shinyjs::hide("fill_type_vr") - shinyjs::hide("mat_display_vr") shinyjs::hide("mat_fill_vr") # Show fatalities part @@ -109,15 +107,13 @@ server <- function(input, output, session){ # Show inputs vital rates part if(input$button_vital_rates%%2 == 1){ - shinyjs::show("fill_type_vr") - if(input$fill_type_vr == "Automatique"){ - shinyjs::show("mat_display_vr") - } - if(input$fill_type_vr == "Manuelle"){ shinyjs::show("mat_fill_vr") - } } - }) + + }) # en observe show/hide + + + # Elicitation experts part @@ -300,14 +296,9 @@ server <- function(input, output, session){ # Survivals and fecundities observeEvent({input$run}, { - if(input$fill_type_vr == "Manuelle"){ param$survivals <- input$mat_fill_vr[,1] param$fecundities <- input$mat_fill_vr[,2] - } else { - param$survivals <- survivals - param$fecundities <- fecundities - } - }) + }) # end observeEvent # Survival and fecundity calibration @@ -407,7 +398,15 @@ server <- function(input, output, session){ }) # End simulations - # General informations output + + + + + ##-------------------------------------------- + ## Display General information -- + ##-------------------------------------------- + + #output$species_name <- renderText({ input$species_choice}) ## Fatalities @@ -532,17 +531,17 @@ server <- function(input, output, session){ paste0("Ecart-type de la croissance de la population : ", info) }) + ## Vital rates output$vital_rates_info <- renderTable({ - if(input$fill_type_vr == "Automatique"){ - input$mat_display_vr - } else { - input$mat_fill_vr - } - }) + input$mat_fill_vr + }, rownames = TRUE) + # End genral informations output + + ## Update matrix cumulated impact observeEvent({input$farm_number_cumulated}, { @@ -566,20 +565,24 @@ server <- function(input, output, session){ # Survivals and Fecundities - create.matrice <- function(species){ - tab_test <- data_sf %>% + create.matrice <- function(data_sf, species){ + out_mat <- data_sf %>% filter(species == data_sf$Nom_espece) %>% select(classes_age, survie, fecondite) - return(tab_test) + return(out_mat) } - observeEvent({input$species_list}, { - if(input$species_list == "Espèce") {} else { - tab_species <- create.matrice(input$species_list) + +## Update the vital rate matrix when changing species in the list + observeEvent({input$species_choice}, { + + if(input$species_choice == "Espèce générique") {} else { + + tab_species <- create.matrice(data_sf = data_sf, species = input$species_choice) if(all(is.na(tab_species))) { updateMatrixInput(session, inputId = "mat_fill_vr", - value = matrix(data = "", + value = matrix(data = NA, nrow = 4, ncol = 2, dimnames = list(c("Juv 1", "Juv 2", "Juv 3", "Adulte"), c("Survie", "Fécondité")))) @@ -595,9 +598,12 @@ server <- function(input, output, session){ nrow = number_age_class, ncol = 2, dimnames = list(ages, c("Survie", "Fécondité")))) - } - } - }) -} -# End server + } # end if 2 + } # end if 1 + + }) # end observeEvent species_list + + +################################################################################### +} # End server diff --git a/inst/ShinyApp/species_list.csv b/inst/ShinyApp/species_list.csv index 11b986995342fa1e1e23683668e2a2d6ab2e7749..62ef529e71a41efc86182b553885357a0e7c6631 100644 --- a/inst/ShinyApp/species_list.csv +++ b/inst/ShinyApp/species_list.csv @@ -1,57 +1,58 @@ -NomEspece,OrdreFamille -Aigle de Bonelli,Accipitriformes -Aigle royal,Accipitriformes -Autour des palombes,Accipitriformes -Balbuzard pêcheur,Accipitriformes -Bondrée apivore,Accipitriformes -Busard cendré,Accipitriformes -Busard des roseaux,Accipitriformes -Busard Saint-Martin,Accipitriformes -Buse variable,Accipitriformes -Elanion blanc,Accipitriformes -Epervier d'Europe,Accipitriformes -Faucon crécerelle,Accipitriformes -Faucon crécerellette,Accipitriformes -Faucon pélerin,Accipitriformes -Gypaète barbu,Accipitriformes -Milan noir,Accipitriformes -Milan royal ,Accipitriformes -Pygarge à queue blanche,Accipitriformes -Vautour fauve,Accipitriformes -Vautour moine,Accipitriformes -Vautour percnoptère,Accipitriformes -Martinet noir,Caprimulgiformes -Oedicnème criard,Charadriiformes -Pluvier doré,Charadriiformes -Sterne pierregarin,Charadriiformes -Vanneau huppé,Charadriiformes -Caille des blés,Galliformes -Perdrix grise,Galliformes -Perdrix rouge,Galliformes -Grue cendrée,Gruiformes -Goéland argenté,Laridés -Mouette rieuse,Laridés -Outarde canepetière,Otidiformes -Alouette des champs,Passeriformes -Alouette lulu,Passeriformes -Bruant proyer,Passeriformes -Bruant jaune,Passeriformes -Chardonneret élégant,Passeriformes -Etourneau sansonnet,Passeriformes -Gobemouche noir,Passeriformes -Grive musicienne,Passeriformes -Hirondelle de fenetre,Passeriformes -Linotte mélodieuse,Passeriformes -Merle noir,Passeriformes -Moineau domestique,Passeriformes -Moineau friquet,Passeriformes -Pies-grièches (4 espèces en PNA),Passeriformes -Pouillot véloce,Passeriformes -Roitelet huppé,Passeriformes -Roitelet triple-bandeau,Passeriformes -Rouge-gorge familier,Passeriformes -Verdier d'Europe,Passeriformes -Cigogne blanche,Pelecaniformes -Cigogne noire,Pelecaniformes -Grand Duc d'Europe,Strigiformes -Hibou des marais,Strigiformes +NomEspece,OrdreFamille +Espèce générique,NA +Aigle de Bonelli,Accipitriformes +Aigle royal,Accipitriformes +Autour des palombes,Accipitriformes +Balbuzard pêcheur,Accipitriformes +Bondrée apivore,Accipitriformes +Busard cendré,Accipitriformes +Busard des roseaux,Accipitriformes +Busard Saint-Martin,Accipitriformes +Buse variable,Accipitriformes +Elanion blanc,Accipitriformes +Epervier d'Europe,Accipitriformes +Faucon crécerelle,Accipitriformes +Faucon crécerellette,Accipitriformes +Faucon pélerin,Accipitriformes +Gypaète barbu,Accipitriformes +Milan noir,Accipitriformes +Milan royal ,Accipitriformes +Pygarge à queue blanche,Accipitriformes +Vautour fauve,Accipitriformes +Vautour moine,Accipitriformes +Vautour percnoptère,Accipitriformes +Martinet noir,Caprimulgiformes +Oedicnème criard,Charadriiformes +Pluvier doré,Charadriiformes +Sterne pierregarin,Charadriiformes +Vanneau huppé,Charadriiformes +Caille des blés,Galliformes +Perdrix grise,Galliformes +Perdrix rouge,Galliformes +Grue cendrée,Gruiformes +Goéland argenté,Laridés +Mouette rieuse,Laridés +Outarde canepetière,Otidiformes +Alouette des champs,Passeriformes +Alouette lulu,Passeriformes +Bruant proyer,Passeriformes +Bruant jaune,Passeriformes +Chardonneret élégant,Passeriformes +Etourneau sansonnet,Passeriformes +Gobemouche noir,Passeriformes +Grive musicienne,Passeriformes +Hirondelle de fenetre,Passeriformes +Linotte mélodieuse,Passeriformes +Merle noir,Passeriformes +Moineau domestique,Passeriformes +Moineau friquet,Passeriformes +Pies-grièches (4 espèces en PNA),Passeriformes +Pouillot véloce,Passeriformes +Roitelet huppé,Passeriformes +Roitelet triple-bandeau,Passeriformes +Rouge-gorge familier,Passeriformes +Verdier d'Europe,Passeriformes +Cigogne blanche,Pelecaniformes +Cigogne noire,Pelecaniformes +Grand Duc d'Europe,Strigiformes +Hibou des marais,Strigiformes diff --git a/inst/ShinyApp/ui.R b/inst/ShinyApp/ui.R index c04acc457a8befe0d0edd3b9cbd6f9de852abfe6..0406d8a6dadab219613e5eaa16879e3cad5e4b02 100644 --- a/inst/ShinyApp/ui.R +++ b/inst/ShinyApp/ui.R @@ -11,7 +11,6 @@ library(eolpop) ## Load species list species_data <- read.csv("./inst/ShinyApp/species_list.csv", sep = ",") 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") @@ -21,8 +20,8 @@ data_sf <- read.csv("./inst/ShinyApp/survivals_fecundities_species.csv", sep = " nsim = 10 coeff_var_environ = 0.10 time_horzion = 30 -survivals <- c(0.5, 0.7, 0.8, 0.95) -fecundities <- c(0, 0, 0.05, 0.55) +init_survivals <- c(0.5, 0.5, 0.5) +init_fecundities <- c(0, 0.8, 1.2) ##################### ### Pre-fill data ### @@ -64,13 +63,13 @@ init_cumul_add <- c(3, 0.05, 2020) # vital rates -data_vr = c(survivals, fecundities) +init_vr = c(init_survivals, init_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(init_survivals,1), afr = min(which(init_fecundities != 0))) rMAX_species @@ -81,15 +80,18 @@ ui <- fluidPage( useShinyjs(), titlePanel("eolpop : Impact demographique des éoliennes"), - # Creation of the first page (select species, analysis type choice) + # Creation of the first page (select species, analysis type choice) wellPanel( - selectInput(inputId = "species_list", + + selectInput(inputId = "species_choice", selected = 1, h4(strong("Sélection d'une espèce ou groupe d'espèces")), choices = species_list), + radioButtons(inputId = "analysis_choice", h4(strong("Sélectionner un type d'analyse")), choices = c("Impacts non cumulés" = "scenario", "Impacts cumulés" = "cumulated")) + ), # End wellPanel @@ -98,32 +100,44 @@ ui <- fluidPage( ##-------------------------------------------- wellPanel( + h2("Valeurs sélectionnées"), + fluidRow( + textOutput(outputId = "species_name"), + column(width = 4, - textOutput(outputId = "specie_name"), + + br(), h4("Mortalités"), textOutput(outputId = "fatalities_mean_info"), textOutput(outputId = "fatalities_se_info"), + + br(), h4("Taille de la population"), textOutput(outputId = "pop_size_type_info"), textOutput(outputId = "pop_size_mean_info"), textOutput(outputId = "pop_size_se_info")), - fluidRow( + column(width = 4, + + br(), h4("Capacité de charge"), textOutput(outputId = "carrying_capacity_info"), + + br(), h4("Tendance de la population"), textOutput(outputId = "pop_trend_type_info"), textOutput(outputId = "pop_growth_mean_info"), textOutput(outputId = "pop_growth_se_info")), - fluidRow( + column(width = 4, + + br(), h4("Paramètres démographiques"), tableOutput(outputId = "vital_rates_info")) - ) - ) - ) - ), # End wellPanel + + ) # # End wellPanel + ), # End fluidRow # Paramter Inputs (fatalities, pop size, carrying capacity, pop trend and vital rates). @@ -262,7 +276,7 @@ ui <- fluidPage( label = "Tendance de la population"), radioButtons(inputId = "lambda_input_type", - label = h4("Type de tendance"), + label = h4("Type de saisie"), choices = c("Taux de croissance", "Elicitation d'expert", "Tendance locale ou régionale")), numericInput(inputId = "pop_growth_mean", @@ -286,8 +300,6 @@ ui <- fluidPage( actionButton(inputId = "pop_growth_run_expert", label = "Analyse"), - h4("Tendance de la population"), - radioButtons(inputId = "pop_trend", label = NULL, choices = c("Croissance", "Stable", "Déclin")), @@ -307,20 +319,9 @@ ui <- fluidPage( actionButton(inputId = "button_vital_rates", label = "Paramètres démographiques"), - radioButtons(inputId = "fill_type_vr", - label = "Type de saisie", - choices = c("Automatique", "Manuelle")), - - # tableOutput(outputId = "mat_display_vr"), - - matrixInput(inputId = "mat_display_vr", - value = matrix("", 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)), - 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, 3, 2, + dimnames = list(c("Juv 1", "Juv 2", "Adulte"), c("Survie", "Fécondité"))), class = "numeric", rows = list(names = TRUE), cols = list(names = TRUE))