Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
I
Impact démographique des collisions aviaires avec les éoliennes
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
CEFE
Interactions Humains-Animaux
Impact démographique des collisions aviaires avec les éoliennes
Commits
45d27977
Commit
45d27977
authored
3 years ago
by
thierrychambert
Browse files
Options
Downloads
Patches
Plain Diff
Thies version of Shiny works (thierry branch) !
parent
af5e404f
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
inst/ShinyApp/server.R
+5
-6
5 additions, 6 deletions
inst/ShinyApp/server.R
inst/ShinyApp/server_old.R
+0
-605
0 additions, 605 deletions
inst/ShinyApp/server_old.R
inst/ShinyApp/ui_old.R
+0
-389
0 additions, 389 deletions
inst/ShinyApp/ui_old.R
with
5 additions
and
1000 deletions
inst/ShinyApp/server.R
+
5
−
6
View file @
45d27977
...
...
@@ -553,15 +553,14 @@ server <- function(input, output, session){
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]))
init_cumul_new
<-
rep
(
init_cumul_add
,
nrow
)
updateMatrixInput
(
session
,
inputId
=
"fatalities_mat_cumulated"
,
value
=
matrix
(
""
,
nrow
=
nrow
,
3
,
value
=
matrix
(
init_cumul_new
,
nrow
=
nrow
,
3
,
byrow
=
TRUE
,
dimnames
=
list
(
number_parks
,
c
(
"Moyenne
s des mortalits annuelles
"
,
"Ecart-type
des mortalits annuelles
"
,
c
(
"Moyenne"
,
"Ecart-type"
,
"Anne de mise en service du parc"
))))
})
...
...
This diff is collapsed.
Click to expand it.
inst/ShinyApp/server_old.R
deleted
100644 → 0
+
0
−
605
View file @
af5e404f
server
<-
function
(
input
,
output
,
session
){
# Hide all inputs excepted actionButtons
observe
({
shinyjs
::
hide
(
"fatal_constant"
)
shinyjs
::
hide
(
"fatalities_input_type"
)
shinyjs
::
hide
(
"fatalities_mean"
)
shinyjs
::
hide
(
"fatalities_se"
)
shinyjs
::
hide
(
"fatalities_mat_expert"
)
shinyjs
::
hide
(
"fatalities_run_expert"
)
shinyjs
::
hide
(
"farm_number_cumulated"
)
shinyjs
::
hide
(
"fatalities_mat_cumulated"
)
shinyjs
::
hide
(
"pop_size_type"
)
shinyjs
::
hide
(
"pop_size_input_type"
)
shinyjs
::
hide
(
"pop_size_mean"
)
shinyjs
::
hide
(
"pop_size_se"
)
shinyjs
::
hide
(
"pop_size_mat_expert"
)
shinyjs
::
hide
(
"pop_size_run_expert"
)
shinyjs
::
hide
(
"carrying_cap_input_type"
)
shinyjs
::
hide
(
"carrying_capacity"
)
shinyjs
::
hide
(
"carrying_cap_mat_expert"
)
shinyjs
::
hide
(
"carrying_cap_run_expert"
)
shinyjs
::
hide
(
"lambda_input_type"
)
shinyjs
::
hide
(
"pop_growth_mean"
)
shinyjs
::
hide
(
"pop_growth_se"
)
shinyjs
::
hide
(
"pop_growth_mat_expert"
)
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
if
(
input
$
button_fatalities
%%
2
==
1
){
shinyjs
::
show
(
"fatal_constant"
)
# Show inputs for none cumulated impacts scenario
if
(
input
$
analysis_choice
==
"scenario"
){
shinyjs
::
show
(
"fatalities_input_type"
)
if
(
input
$
fatalities_input_type
==
"Valeurs"
){
shinyjs
::
show
(
"fatalities_mean"
)
shinyjs
::
show
(
"fatalities_se"
)
}
if
(
input
$
fatalities_input_type
==
"Elicitation d'expert"
){
shinyjs
::
show
(
"fatalities_mat_expert"
)
shinyjs
::
show
(
"fatalities_run_expert"
)
}
}
# Show inputs for cumulated scenario
if
(
input
$
analysis_choice
==
"cumulated"
){
shinyjs
::
show
(
"farm_number_cumulated"
)
shinyjs
::
show
(
"fatalities_mat_cumulated"
)
}
}
# Show inputs for population size part
if
(
input
$
button_pop_size
%%
2
==
1
){
shinyjs
::
show
(
"pop_size_type"
)
shinyjs
::
show
(
"pop_size_input_type"
)
if
(
input
$
pop_size_input_type
==
"Valeurs"
){
shinyjs
::
show
(
"pop_size_mean"
)
shinyjs
::
show
(
"pop_size_se"
)
}
if
(
input
$
pop_size_input_type
==
"Elicitation d'expert"
){
shinyjs
::
show
(
"pop_size_mat_expert"
)
shinyjs
::
show
(
"pop_size_run_expert"
)
}
}
# Show inputs for carrying capacity part
if
(
input
$
button_carrying_cap
%%
2
==
1
){
shinyjs
::
show
(
"carrying_cap_input_type"
)
if
(
input
$
carrying_cap_input_type
==
"Valeurs"
){
shinyjs
::
show
(
"carrying_capacity"
)
}
if
(
input
$
carrying_cap_input_type
==
"Elicitation d'expert"
){
shinyjs
::
show
(
"carrying_cap_mat_expert"
)
shinyjs
::
show
(
"carrying_cap_run_expert"
)
}
}
# Show inputs for population trend part
if
(
input
$
button_pop_trend
%%
2
==
1
){
shinyjs
::
show
(
"lambda_input_type"
)
if
(
input
$
lambda_input_type
==
"Taux de croissance"
){
shinyjs
::
show
(
"pop_growth_mean"
)
shinyjs
::
show
(
"pop_growth_se"
)
}
if
(
input
$
lambda_input_type
==
"Elicitation d'expert"
){
shinyjs
::
show
(
"pop_growth_mat_expert"
)
shinyjs
::
show
(
"pop_growth_run_expert"
)
}
if
(
input
$
lambda_input_type
==
"Tendance locale ou rgionale"
){
shinyjs
::
show
(
"pop_trend"
)
shinyjs
::
show
(
"pop_trend_strength"
)
}
}
# 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"
)
}
}
})
# Elicitation experts part
func_eli
<-
function
(
mat_expert
){
t_mat_expert
<-
t
(
mat_expert
)
vals
=
t_mat_expert
[
3
:
5
,]
Cp
=
t_mat_expert
[
6
,]
weights
=
t_mat_expert
[
2
,]
out
<-
elicitation
(
vals
,
Cp
,
weights
)
return
(
list
(
out
=
out
,
mean
=
out
$
mean_smooth
,
SE
=
sqrt
(
out
$
var_smooth
)))
}
func_eli_plot
<-
function
(
out
){
plot_elicitation
(
out
)
}
## Output
param
<-
reactiveValues
(
N1
=
NULL
,
fatalities_mean
=
NULL
,
fecundities
=
NULL
,
survivals
=
NULL
,
s_calibrated
=
NULL
,
f_calibrated
=
NULL
,
vr_calibrated
=
NULL
,
cumulated_impacts
=
NULL
,
onset_time
=
NULL
,
onset_year
=
NULL
,
carrying_capacity
=
NULL
,
rMAX_species
=
rMAX_species
,
theta
=
theta
,
fatalities_eli_result
=
NULL
,
pop_size_eli_result
=
NULL
,
pop_size_mean
=
NULL
,
pop_size_se
=
NULL
,
pop_size_type
=
NULL
,
pop_growth_eli_result
=
NULL
,
pop_growth_mean
=
NULL
,
pop_growth_se
=
NULL
,
carrying_cap_eli_result
=
NULL
)
# Elicitation
## Fatalities
observeEvent
({
input
$
fatalities_run_expert
},
{
if
(
all
(
is.na
(
input
$
fatalities_mat_expert
)))
{}
else
{
param
$
fatalities_eli_result
<-
func_eli
(
input
$
fatalities_mat_expert
)
### Plot fatalities
output
$
fatalities_expert_plot
<-
renderPlot
({
func_eli_plot
(
param
$
fatalities_eli_result
$
out
)})}
})
## Population size
observeEvent
({
input
$
pop_size_run_expert
},
{
if
(
all
(
is.na
(
input
$
pop_size_mat_expert
)))
{}
else
{
param
$
pop_size_eli_result
<-
func_eli
(
input
$
pop_size_mat_expert
)
### Plot pop size
output
$
pop_size_expert_plot
<-
renderPlot
({
func_eli_plot
(
param
$
pop_size_eli_result
$
out
)})}
})
## Population growth
observeEvent
({
input
$
pop_growth_run_expert
},{
if
(
all
(
is.na
(
input
$
pop_growth_mat_expert
)))
{}
else
{
param
$
pop_growth_eli_result
<-
func_eli
(
input
$
pop_growth_mat_expert
)
### plot pop growth
output
$
pop_growth_expert_plot
<-
renderPlot
({
func_eli_plot
(
param
$
pop_growth_eli_result
$
out
)})
}
})
## Carrying capacity
observeEvent
({
input
$
carrying_cap_run_expert
},{
if
(
all
(
is.na
(
input
$
carrying_cap_mat_expert
)))
{}
else
{
param
$
carrying_cap_eli_result
<-
func_eli
(
input
$
carrying_cap_mat_expert
)
### Plot carrying capacity
output
$
carrying_cap_expert_plot
<-
renderPlot
({
func_eli_plot
(
param
$
carrying_cap_eli_result
$
out
)})
}
})
# Reactive values (cumulated impacts, fatalities mean, fatalities se, onset_time, survivals mean, fecundities mean)
observeEvent
({
input
$
run
},
{
if
(
input
$
analysis_choice
==
"scenario"
){
param
$
cumulated_impacts
=
FALSE
}
else
{
param
$
cumulated_impacts
=
TRUE
}
})
# Fatalities
## onset time, mean and se
observeEvent
({
input
$
run
},
{
if
(
input
$
analysis_choice
==
"scenario"
){
if
(
input
$
fatalities_input_type
==
"Elicitation d'expert"
){
if
(
!
(
is.null
(
param
$
fatalities_eli_result
)))
{
param
$
fatalities_mean
<-
c
(
0
,
round
(
param
$
fatalities_eli_result
$
mean
))
param
$
onset_time
=
NULL
param
$
fatalities_se
<-
c
(
0
,
round
(
param
$
fatalities_eli_result
$
SE
))
}
else
{
print
(
"#Intgrer un message d'erreur"
)
}
}
else
{
param
$
fatalities_mean
<-
c
(
0
,
input
$
fatalities_mean
)
param
$
onset_time
=
NULL
param
$
fatalities_se
<-
c
(
0
,
input
$
fatalities_se
)
}
}
else
{
param
$
fatalities_mean
<-
c
(
0
,
input
$
fatalities_mat_cumulated
[,
1
])
param
$
onset_year
<-
c
(
min
(
input
$
fatalities_mat_cumulated
[,
3
]),
input
$
fatalities_mat_cumulated
[,
3
])
param
$
onset_time
<-
param
$
onset_year
-
min
(
param
$
onset_year
)
+
1
param
$
fatalities_se
<-
c
(
0
,
input
$
fatalities_mat_cumulated
[,
2
])
}
})
# Population size
## Mean, se and type
observeEvent
({
input
$
run
},{
if
(
input
$
pop_size_input_type
==
"Elicitation d'expert"
){
if
(
!
(
is.null
(
param
$
pop_size_eli_result
))){
param
$
pop_size_mean
<-
round
(
param
$
pop_size_eli_result
$
mean
)
param
$
pop_size_se
<-
round
(
param
$
pop_size_eli_result
$
SE
)
}
else
{
print
(
"#intgrer un message d'erreur"
)
}
}
else
{
param
$
pop_size_mean
<-
input
$
pop_size_mean
param
$
pop_size_se
<-
input
$
pop_size_se
}
param
$
pop_size_type
<-
input
$
pop_size_type
})
# Observe pop growth value
## Avoid unrealistic scenarios
observeEvent
({
input
$
run
},
{
if
(
input
$
lambda_input_type
==
"Elicitation d'expert"
){
if
(
!
(
is.null
(
param
$
pop_growth_eli_result
))){
param
$
pop_growth_mean
<-
round
(
min
(
1
+
param
$
rMAX_species
,
round
(
param
$
pop_growth_eli_result
$
mean
,
2
)),
2
)
param
$
pop_growth_se
<-
round
(
param
$
pop_growth_eli_result
$
SE
,
2
)
}
else
{
print
(
"#intgrer un message d'erreur"
)
}
}
else
if
(
input
$
lambda_input_type
==
"Tendance locale ou rgionale"
){
if
(
input
$
pop_trend
==
"Croissance"
)
{
if
(
input
$
pop_trend_strength
==
"Faible"
)
{
param
$
pop_growth_mean
<-
1.01
}
else
if
(
input
$
pop_trend_strength
==
"Moyen"
){
param
$
pop_growth_mean
<-
1.03
}
else
{
param
$
pop_growth_mean
<-
1.06
}
}
else
if
(
input
$
pop_trend
==
"Dclin"
){
if
(
input
$
pop_trend_strength
==
"Faible"
)
{
param
$
pop_growth_mean
<-
0.99
}
else
if
(
input
$
pop_trend_strength
==
"Moyen"
){
param
$
pop_growth_mean
<-
0.97
}
else
{
param
$
pop_growth_mean
<-
0.94
}
}
else
{
param
$
pop_growth_mean
<-
1
}
param
$
pop_growth_se
<-
0.03
}
else
{
param
$
pop_growth_mean
<-
round
(
min
(
1
+
param
$
rMAX_species
,
input
$
pop_growth_mean
),
2
)
param
$
pop_growth_se
<-
input
$
pop_growth_se
}
})
# 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
}
})
# Survival and fecundity calibration
observeEvent
({
input
$
run
# input$species_choice
# input$pop_growth_mean
},{
## Avoid unrealistic scenarios
#param$pop_growth_mean <- min(1 + param$rMAX_species, input$pop_growth_mean)
param
$
vr_calibrated
<-
calibrate_params
(
inits
=
init_calib
(
s
=
param
$
survivals
,
f
=
param
$
fecundities
,
lam0
=
param
$
pop_growth_mean
),
f
=
param
$
fecundities
,
s
=
param
$
survivals
,
lam0
=
param
$
pop_growth_mean
)
param
$
s_calibrated
<-
head
(
param
$
vr_calibrated
,
length
(
param
$
survivals
))
param
$
f_calibrated
<-
tail
(
param
$
vr_calibrated
,
length
(
param
$
fecundities
))
})
# Observe carrying capacity
observeEvent
({
input
$
run
},
{
if
(
input
$
carrying_cap_input_type
==
"Elicitation d'expert"
){
if
(
!
(
is.null
(
param
$
carrying_cap_eli_result
))){
param
$
carrying_capacity
<-
round
(
param
$
carrying_cap_eli_result
$
mean
)
}
else
{
print
(
"#intgrer un message d'erreur"
)
}
}
else
{
param
$
carrying_capacity
<-
input
$
carrying_capacity
}
})
observeEvent
({
input
$
run
},
{
print
(
param
$
pop_growth_mean
)
print
(
param
$
pop_growth_se
)
})
# End of reactive
# Simulations
observeEvent
({
input
$
run
},
{
withProgress
(
message
=
'Simulation progress'
,
value
=
0
,
{
param
$
N1
<-
run_simul_shiny
(
nsim
=
input
$
nsim
,
cumuated_impacts
=
param
$
cumulated_impacts
,
fatalities_mean
=
param
$
fatalities_mean
,
fatalities_se
=
param
$
fatalities_se
,
onset_time
=
param
$
onset_time
,
pop_size_mean
=
param
$
pop_size_mean
,
pop_size_se
=
param
$
pop_size_se
,
pop_size_type
=
param
$
pop_size_type
,
pop_growth_mean
=
param
$
pop_growth_mean
,
pop_growth_se
=
param
$
pop_growth_se
,
survivals
=
param
$
s_calibrated
,
fecundities
=
param
$
f_calibrated
,
carrying_capacity
=
param
$
carrying_capacity
,
theta
=
param
$
theta
,
rMAX_species
=
param
$
rMAX_species
,
model_demo
=
NULL
,
time_horzion
=
time_horzion
,
coeff_var_environ
=
coeff_var_environ
,
fatal_constant
=
input
$
fatal_constant
)
})
# Close withProgress
})
# Close observEvent
# Plot Impacts
plot_out_impact
<-
function
(){
if
(
is.null
(
param
$
N1
))
{}
else
{
plot_impact
(
N
=
param
$
N1
$
N
,
xlab
=
"year"
,
ylab
=
"pop size"
)}
}
output
$
graph_impact
<-
renderPlot
({
plot_out_impact
()
})
# Plot trajectories
plot_out_traj
<-
function
(){
if
(
is.null
(
param
$
N1
))
{}
else
{
plot_traj
(
N
=
param
$
N1
$
N
,
xlab
=
"year"
,
ylab
=
"pop size"
)}
}
output
$
graph_traj
<-
renderPlot
({
plot_out_traj
()
})
# End simulations
# General informations output
## Fatalities
output
$
fatalities_mean_info
<-
renderText
({
if
(
input
$
fatalities_input_type
==
"Elicitation d'expert"
){
if
(
!
(
is.null
(
param
$
fatalities_eli_result
))){
info
<-
round
(
param
$
fatalities_eli_result
$
mean
)
}
else
{
info
<-
NA
}
}
else
{
info
<-
input
$
fatalities_mean
}
paste0
(
"Moyenne des mortalits : "
,
info
)
})
output
$
fatalities_se_info
<-
renderText
({
if
(
input
$
fatalities_input_type
==
"Elicitation d'expert"
){
if
(
!
(
is.null
(
param
$
fatalities_eli_result
))){
info
<-
round
(
param
$
fatalities_eli_result
$
SE
)
}
else
{
info
<-
NA
}
}
else
{
info
<-
input
$
fatalities_se
}
paste0
(
"Ecart-type des mortalits : "
,
info
)
})
## Poplutation size
output
$
pop_size_type_info
<-
renderText
({
if
(
input
$
pop_size_type
==
"Npair"
){
paste0
(
"Type de taille de pop : "
,
"Nombre de couple"
)
}
else
{
paste0
(
"Type de taille de pop : "
,
"Effectif total"
)
}
})
output
$
pop_size_mean_info
<-
renderText
({
if
(
input
$
pop_size_input_type
==
"Elicitation d'expert"
){
if
(
!
(
is.null
(
param
$
pop_size_eli_result
))){
info
<-
round
(
param
$
pop_size_eli_result
$
mean
)
}
else
{
info
<-
NA
}
}
else
{
info
<-
input
$
pop_size_mean
}
paste0
(
"Moyenne de la taille de la population : "
,
info
)
})
output
$
pop_size_se_info
<-
renderText
({
if
(
input
$
pop_size_input_type
==
"Elicitation d'expert"
){
if
(
!
(
is.null
(
param
$
pop_size_eli_result
))){
info
<-
round
(
param
$
pop_size_eli_result
$
SE
)
}
else
{
info
<-
NA
}
}
else
{
info
<-
input
$
pop_size_se
}
paste0
(
"Ecart-type de la taille de la population : "
,
info
)
})
## Carrying capacity
output
$
carrying_capacity_info
<-
renderText
({
if
(
input
$
carrying_cap_input_type
==
"Elicitation d'expert"
){
if
(
!
(
is.null
(
param
$
carrying_cap_eli_result
))){
info
<-
round
(
param
$
carrying_cap_eli_result
$
mean
)
}
else
{
info
<-
NA
}
}
else
{
info
<-
input
$
carrying_capacity
}
paste0
(
"Capacit de charge du milieu : "
,
info
)
})
## Population growth
output
$
pop_trend_type_info
<-
renderText
({
paste0
(
"Type de Tendance de pop : "
,
input
$
lambda_input_type
)})
output
$
pop_growth_mean_info
<-
renderText
({
if
(
input
$
lambda_input_type
==
"Elicitation d'expert"
){
if
(
!
(
is.null
(
param
$
pop_growth_eli_result
))){
info
<-
round
(
param
$
pop_growth_eli_result
$
mean
,
2
)
}
else
{
info
<-
NA
}
}
else
if
(
input
$
lambda_input_type
==
"Tendance locale ou rgionale"
){
if
(
input
$
pop_trend
==
"Croissance"
)
{
if
(
input
$
pop_trend_strength
==
"Faible"
)
{
info
<-
1.01
}
else
if
(
input
$
pop_trend_strength
==
"Moyen"
){
info
<-
1.03
}
else
{
info
<-
1.06
}
}
else
if
(
input
$
pop_trend
==
"Dclin"
){
if
(
input
$
pop_trend_strength
==
"Faible"
)
{
info
<-
0.99
}
else
if
(
input
$
pop_trend_strength
==
"Moyen"
){
info
<-
0.97
}
else
{
info
<-
0.94
}
}
else
{
info
<-
1.00
}
}
else
{
info
<-
input
$
pop_growth_mean
}
paste0
(
"Moyenne de la croissance de la population : "
,
info
)
})
output
$
pop_growth_se_info
<-
renderText
({
if
(
input
$
lambda_input_type
==
"Elicitation d'expert"
){
if
(
!
(
is.null
(
param
$
pop_growth_eli_result
))){
info
<-
round
(
param
$
pop_growth_eli_result
$
SE
,
2
)
}
else
{
info
<-
NA
}
}
else
if
(
input
$
lambda_input_type
==
"Tendance locale ou rgionale"
)
{
info
<-
0.03
}
else
{
info
<-
input
$
pop_growth_se
}
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
}
})
# End genral informations output
## Update matrix cumulated impact
observeEvent
({
input
$
farm_number_cumulated
},
{
park_names
<-
function
(
n
){
v
<-
c
(
paste0
(
"Parc n"
,
c
(
1
:
n
)))
return
(
v
)
}
n_row
<-
input
$
farm_number_cumulated
updateMatrixInput
(
session
,
inputId
=
"fatalities_mat_cumulated"
,
value
=
matrix
(
init_cumul
,
nrow
=
n_row
,
3
,
byrow
=
TRUE
,
dimnames
=
list
(
park_names
(
n_row
),
c
(
"Moyenne"
,
"Ecart-type"
,
"Anne de mise en service du parc"
))))
})
# end observEvent
# Survivals and Fecundities
create.matrice
<-
function
(
species
){
tab_test
<-
data_sf
%>%
filter
(
species
==
data_sf
$
Nom_espece
)
%>%
select
(
classes_age
,
survie
,
fecondite
)
return
(
tab_test
)
}
observeEvent
({
input
$
species_list
},
{
if
(
input
$
species_list
==
"Espce"
)
{}
else
{
tab_species
<-
create.matrice
(
input
$
species_list
)
if
(
all
(
is.na
(
tab_species
)))
{
updateMatrixInput
(
session
,
inputId
=
"mat_fill_vr"
,
value
=
matrix
(
data
=
""
,
nrow
=
4
,
ncol
=
2
,
dimnames
=
list
(
c
(
"Juv 1"
,
"Juv 2"
,
"Juv 3"
,
"Adulte"
),
c
(
"Survie"
,
"Fcondit"
))))
}
else
{
number_age_class
<-
nrow
(
tab_species
)
ages
<-
tab_species
$
classes_age
survivals
<-
tab_species
$
survie
fecundities
<-
tab_species
$
fecondite
updateMatrixInput
(
session
,
inputId
=
"mat_fill_vr"
,
value
=
matrix
(
data
=
c
(
survivals
,
fecundities
),
nrow
=
number_age_class
,
ncol
=
2
,
dimnames
=
list
(
ages
,
c
(
"Survie"
,
"Fcondit"
))))
}
}
})
}
# End server
This diff is collapsed.
Click to expand it.
inst/ShinyApp/ui_old.R
deleted
100644 → 0
+
0
−
389
View file @
af5e404f
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
=
","
)
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")
(
data_sf
)
# Fixed parameters (for now)
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
)
## 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
##--------------------------------------------
## User Interface --
##--------------------------------------------
ui
<-
fluidPage
(
useShinyjs
(),
titlePanel
(
"eolpop : Impact demographique des oliennes"
),
# Creation of the first page (select species, analysis type choice)
wellPanel
(
selectInput
(
inputId
=
"species_list"
,
h4
(
strong
(
"Slection d'une espce"
)),
choices
=
species_list
),
radioButtons
(
inputId
=
"analysis_choice"
,
h4
(
strong
(
"Slectionner un type d'analyse"
)),
choices
=
c
(
"Impacts non cumuls"
=
"scenario"
,
"Impacts cumuls"
=
"cumulated"
))
),
# End wellPanel
##--------------------------------------------
## General information --
##--------------------------------------------
wellPanel
(
fluidRow
(
column
(
width
=
4
,
textOutput
(
outputId
=
"specie_name"
),
h4
(
"Mortalits"
),
textOutput
(
outputId
=
"fatalities_mean_info"
),
textOutput
(
outputId
=
"fatalities_se_info"
),
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
,
h4
(
"Capacit de charge"
),
textOutput
(
outputId
=
"carrying_capacity_info"
),
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
,
h4
(
"Paramtres dmographiques"
),
tableOutput
(
outputId
=
"vital_rates_info"
))
)
)
)
),
# End wellPanel
# Paramter Inputs (fatalities, pop size, carrying capacity, pop trend and vital rates).
sidebarLayout
(
sidebarPanel
(
##--------------------------------------------
## 1. Fatalities --
##--------------------------------------------
actionButton
(
inputId
=
"button_fatalities"
,
label
=
"Mortalits"
),
radioButtons
(
inputId
=
"fatal_constant"
,
label
=
h4
(
"Modlisation"
),
choices
=
c
(
"Taux de mortalits (h) constant"
=
"h"
,
"Nombre de mortalits (M) constant"
=
"M"
)),
### Part for non-cumulated impacts
# Input type
radioButtons
(
inputId
=
"fatalities_input_type"
,
label
=
h4
(
"Source des donnes"
),
choices
=
c
(
"Valeurs"
,
"Elicitation d'expert"
)),
# Values
numericInput
(
inputId
=
"fatalities_mean"
,
label
=
"Moyenne des mortalits annuelles"
,
value
=
5
,
min
=
0
,
max
=
Inf
,
step
=
0.5
),
numericInput
(
inputId
=
"fatalities_se"
,
label
=
"Ecart-type des mortalits annuelles"
,
value
=
0.05
,
min
=
0
,
max
=
Inf
,
step
=
0.1
),
# Matrix for expert elicitation
matrixInput
(
inputId
=
"fatalities_mat_expert"
,
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
)),
actionButton
(
inputId
=
"fatalities_run_expert"
,
label
=
"Analyse"
),
### Part for cumulated impacts
numericInput
(
inputId
=
"farm_number_cumulated"
,
label
=
"Nombre de parcs oliens"
,
value
=
3
,
min
=
2
,
max
=
Inf
,
step
=
1
),
matrixInput
(
inputId
=
"fatalities_mat_cumulated"
,
value
=
matrix
(
init_cumul
,
3
,
3
,
dimnames
=
list
(
c
(
paste0
(
"Parc n"
,
c
(
1
:
3
))),
c
(
"Moyenne"
,
"Ecart-type"
,
"Anne de mise en service du parc"
))),
class
=
"numeric"
,
rows
=
list
(
names
=
TRUE
),
cols
=
list
(
names
=
TRUE
)),
##--------------------------------------------
## 2. Population Size --
##--------------------------------------------
br
(
" "
),
actionButton
(
inputId
=
"button_pop_size"
,
label
=
"Taille de la population"
),
radioButtons
(
inputId
=
"pop_size_type"
,
label
=
h4
(
"Unit"
),
choices
=
c
(
"Nombre de couple"
=
"Npair"
,
"Effectif total"
=
"Ntotal"
)),
radioButtons
(
inputId
=
"pop_size_input_type"
,
label
=
h4
(
"Type de saisie"
),
choices
=
c
(
"Valeurs"
,
"Elicitation d'expert"
)),
numericInput
(
inputId
=
"pop_size_mean"
,
label
=
"Moyenne de la taille de la population"
,
value
=
200
,
min
=
0
,
max
=
Inf
,
step
=
50
),
numericInput
(
inputId
=
"pop_size_se"
,
label
=
"Ecart-type de la taille de la population"
,
value
=
25
,
min
=
0
,
max
=
Inf
,
step
=
1
),
matrixInput
(
inputId
=
"pop_size_mat_expert"
,
value
=
matrix
(
data
=
eli_pop_size
,
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
)),
actionButton
(
inputId
=
"pop_size_run_expert"
,
label
=
"Analyse"
),
##--------------------------------------------
## 3. Carrying capacity --
##--------------------------------------------
br
(
" "
),
actionButton
(
inputId
=
"button_carrying_cap"
,
label
=
"Capacit de charge"
),
radioButtons
(
inputId
=
"carrying_cap_input_type"
,
label
=
h4
(
"Type d'unit"
),
choices
=
c
(
"Valeurs"
,
"Elicitation d'expert"
)),
numericInput
(
inputId
=
"carrying_capacity"
,
label
=
"Capacit de charge"
,
value
=
1000
,
min
=
0
,
max
=
Inf
,
step
=
100
),
matrixInput
(
inputId
=
"carrying_cap_mat_expert"
,
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
)),
actionButton
(
inputId
=
"carrying_cap_run_expert"
,
label
=
"Analyse"
),
##--------------------------------------------
## 4. Population Trend --
##--------------------------------------------
br
(
" "
),
actionButton
(
inputId
=
"button_pop_trend"
,
label
=
"Tendance de la population"
),
radioButtons
(
inputId
=
"lambda_input_type"
,
label
=
h4
(
"Type de tendance"
),
choices
=
c
(
"Taux de croissance"
,
"Elicitation d'expert"
,
"Tendance locale ou rgionale"
)),
numericInput
(
inputId
=
"pop_growth_mean"
,
label
=
"Moyenne de la croissance de la population"
,
value
=
1
,
min
=
0
,
max
=
Inf
,
step
=
0.01
),
numericInput
(
inputId
=
"pop_growth_se"
,
label
=
"Ecart-type de la croissance de la population"
,
value
=
0
,
min
=
0
,
max
=
Inf
,
step
=
0.01
),
matrixInput
(
inputId
=
"pop_growth_mat_expert"
,
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
)),
actionButton
(
inputId
=
"pop_growth_run_expert"
,
label
=
"Analyse"
),
h4
(
"Tendance de la population"
),
radioButtons
(
inputId
=
"pop_trend"
,
label
=
NULL
,
choices
=
c
(
"Croissance"
,
"Stable"
,
"Dclin"
)),
radioButtons
(
inputId
=
"pop_trend_strength"
,
label
=
NULL
,
choices
=
c
(
"Faible"
,
"Moyen"
,
"Fort"
)),
# tags$style("#pop_trend_strength {position:fixed; top: 600px; right: 100px;}"),
##--------------------------------------------
## 5. Vital rates --
##--------------------------------------------
br
(
" "
),
actionButton
(
inputId
=
"button_vital_rates"
,
label
=
"Paramtres dmographiques"
),
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"
,
"Fcondit"
))),
class
=
"numeric"
,
rows
=
list
(
names
=
TRUE
),
cols
=
list
(
names
=
TRUE
)),
matrixInput
(
inputId
=
"mat_fill_vr"
,
value
=
matrix
(
data
=
init_vr
,
4
,
2
,
dimnames
=
list
(
c
(
"Juv 1"
,
"Juv 2"
,
"Juv 3"
,
"Adulte"
),
c
(
"Survie"
,
"Fcondit"
))),
class
=
"numeric"
,
rows
=
list
(
names
=
TRUE
),
cols
=
list
(
names
=
TRUE
))
),
# End sidebarPanel
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Creation of outputs parts
mainPanel
(
tabsetPanel
(
tabPanel
(
title
=
"Impact population"
,
strong
(
span
(
textOutput
(
"message"
),
style
=
"color:blue; font-size:24px"
,
align
=
"center"
)),
br
(),
numericInput
(
inputId
=
"nsim"
,
label
=
"Nombre de simulations"
,
value
=
50
,
min
=
0
,
max
=
Inf
,
step
=
10
),
br
(),
actionButton
(
inputId
=
"run"
,
label
=
"Lancer l'analyse"
),
hr
(),
h4
(
"Graphique : Impact relatif de chaque scnario"
,
align
=
"center"
),
plotOutput
(
"graph_impact"
,
width
=
"100%"
,
height
=
"550px"
),
hr
(),
h4
(
"Graphique : Trajectoire dmographique"
,
align
=
"center"
),
plotOutput
(
"graph_traj"
,
width
=
"100%"
,
height
=
"550px"
)),
tabPanel
(
title
=
"Distribution paramtres"
,
br
(),
hr
(),
h4
(
"#Graphe licitation d'expert pour les mortalits"
,
align
=
"center"
),
plotOutput
(
outputId
=
"fatalities_expert_plot"
),
hr
(),
h4
(
"#Graphe licitation d'expert pour la taille de la population"
,
align
=
"center"
),
plotOutput
(
outputId
=
"pop_size_expert_plot"
),
hr
(),
h4
(
"#Graphe licitation d'expert pour la capacit de charge"
,
align
=
"center"
),
plotOutput
(
outputId
=
"carrying_cap_expert_plot"
),
hr
(),
h4
(
"#Graphe licitation d'expert pour la tendance de la population"
,
align
=
"center"
),
plotOutput
(
outputId
=
"pop_growth_expert_plot"
),
),
tabPanel
(
title
=
"Rapport"
,
br
(),
radioButtons
(
inputId
=
"lifestyle"
,
h4
(
"Mode de vie de l'espce"
),
choices
=
c
(
"Sdentaire"
,
"Non-sdentaire nicheur"
,
"Non-sdentaire hivernant"
,
"Migrateur de passage"
)),
numericInput
(
inputId
=
"wind_turbines"
,
h4
(
"Nombre d'oliennes"
),
value
=
5
,
min
=
0
,
max
=
Inf
,
step
=
1
),
numericInput
(
inputId
=
"farm_number"
,
h4
(
"Nombre de parcs"
),
value
=
1
,
min
=
0
,
max
=
Inf
,
step
=
1
),
numericInput
(
inputId
=
"wind_turbines_2"
,
h4
(
"Nombre d'oliennes"
),
value
=
1
,
min
=
0
,
max
=
Inf
,
step
=
1
)
)
# End tabPanel
)
# End tabSetPanel
)
# End mainPanel
)
# sidebarLayout
)
# FluidPage
# End UI
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment