Nothing
# ui.R
#library(markdown)
navbarPage(title = div("airGRteaching",
a(href = "https://hydrogr.github.io/airGRteaching/",
title = "airGRteaching",
target = "_blank", rel = "noopener noreferrer",
img(src = "fig/logo_airGRteaching_CMJN_square_0125x0121.png", height = 350 / 9)),
a(href = "https://webgr.inrae.fr/en/home/",
title = "webgr.inrae.fr",
target = "_blank", rel = "noopener noreferrer",
img(src = "fig/logo_inrae_hydro_CMJN_square.svg", height = 350 / 9)),
a(href = "https://www.inrae.fr/en/",
title = "inrae.fr",
target = "_blank", rel = "noopener noreferrer",
img(src = "fig/logo_inrae_CMJN_square.svg", height = 350 / 9)),
style = "position:relative; top:-9px;"),
windowTitle = "airGRteaching",
theme = switch(.GlobalEnv$.ShinyGR.args$theme,
Rstudio = "",
Cyborg = "css/bootstrap.min_Cyborg.css",
Cerulean = "css/bootstrap.min_Cerulean.css",
Flatly = "css/bootstrap.min_Flatly.css",
United = "css/bootstrap.min_United.css",
Yeti = "css/bootstrap.min_Yeti.css",
Inrae = "css/bootstrap.min_Inrae.css",
Saclay = "css/bootstrap.min_Saclay.css"
),
tabPanel(title = "Modelling",
icon = icon("chart-area"),
shinyjs::useShinyjs(), # set up shinyjs
sidebarLayout(position = "left",
sidebarPanel(width = 3,
h4("Choose a dataset:"),
fluidRow(
column(width = 12, selectInput("Dataset", label = NULL, choices = .ShinyGR.args$NamesObsBV))
),
h4("Choose a model:"),
fluidRow(
column(width = 6, selectInput("HydroModel", label = "Hydrological model",
choices = c("GR4J", "GR5J", "GR6J", "GR2M"))),
column(width = 6, selectInput("SnowModel", label = "Snow model",
choices = c("None", "CemaNeige")))
),
h4("Parameters values:"),
sliderInput("X1", label = "X1 (production store capacity)",
post = " [mm]",
min = 0,
max = 2500,
step = 10,
value = 1250,
sep = " "),
conditionalPanel(condition = "input.HydroModel == 'GR2M'",
sliderInput("X2GR2M", label = "X2 (groundwater exchange coeff.)",
post = " [-]",
min = +0.05,
max = +4,
step = 0.05,
value = 2,
sep = " ")),
conditionalPanel(condition = "input.HydroModel != 'GR2M'",
sliderInput("X2", label = "X2 (intercatchment exchange coeff.)",
post = " [mm/d]",
min = -5,
max = +5,
step = 0.05,
value = 0,
sep = " "),
sliderInput("X3", label = "X3 (routing store capacity)",
post = " [mm]",
min = 0,
max = 1000,
step = 5,
value = 500,
sep = " "),
sliderInput("X4", label = "X4 (unit hydrograph time constant)",
post = " [d]",
min = 0.5,
max = 10,
step = 0.1,
value = 5.2,
sep = " ")),
conditionalPanel(condition = "input.HydroModel == 'GR5J' || input.HydroModel =='GR6J'",
sliderInput("X5", label = "X5 (intercatchment exchange threshold)",
post = " [-]",
min = -4,
max = +4,
step = 0.05,
value = 0,
sep = " ")),
conditionalPanel(condition = "input.HydroModel == 'GR6J'",
sliderInput("X6", label = "X6 (exponential store depletion coeff.)",
post = " [mm]",
min = 0,
max = 20,
step = 0.5,
value = 10,
sep = " ")),
conditionalPanel(condition = "input.SnowModel == 'CemaNeige'",
sliderInput("C1", label = "C1 (weighting coeff. for snow pack thermal state)",
post = " [-]",
min = 0,
max = 1,
step = 0.01,
value = 0.5,
sep = " "),
sliderInput("C2", label = "C2 (degree-day melt coefficient)",
post = " [mm/°C/d]",
min = 0,
max = 10,
step = 0.5,
value = 5,
sep = " ")),
h4("Automatic calibration:"),
fluidRow(
column(width = 6, selectInput("TypeCrit", label = "Objective function",
choices = c("NSE [Q]", "NSE [sqrt(Q)]", "NSE [1/Q]",
"KGE [Q]", "KGE [sqrt(Q)]", "KGE [1/Q]"))),
column(width = 6, actionButton("CalButton", label = "Run", width = "100%",
icon = icon("arrows-rotate"),
style = ifelse(.GlobalEnv$.ShinyGR.args$theme != "Cerulean",
"color:#ffffff; background-color:#A4C400; border-color:#A4C400; margin-top:25px; padding:6px;",
"color:#565656; background-color:#ECF0F1; border-color:#DCDCDC; margin-top:25px; padding:6px;")))
)
),
mainPanel(width = 9,
fluidRow(
column(width = 2,
selectInput("PlotType", label = "Choose a plot:",
choices = c("Flow time series", "Model performance", "State variables", "Model diagram"))
),
column(width = 4, offset = 1,
sliderInput("Period", label = "Select the time window:",
min = as.POSIXct(.ShinyGR.args$SimPer[[1]][1L], tz = "UTC"),
max = as.POSIXct(.ShinyGR.args$SimPer[[1]][2L], tz = "UTC"),
value = as.POSIXct(.ShinyGR.args$SimPer[[1]], tz = "UTC"),
timeFormat = "%F",
timezone = "+0000",
animate = FALSE)
),
conditionalPanel(condition = "input.PlotType == 'Model diagram'",
column(width = 4, offset = 0,
conditionalPanel(condition = "input.HydroModel != 'GR2M'",
sliderInput("Event", label = "Select the target date:",
min = as.POSIXct(.ShinyGR.args$SimPer[[1]][1L], tz = "UTC"),
max = as.POSIXct(.ShinyGR.args$SimPer[[1]][2L], tz = "UTC"),
value = as.POSIXct(.ShinyGR.args$SimPer[[1]][1L], tz = "UTC"),
timeFormat = "%F",
timezone = "+0000",
animate = animationOptions(interval = 500),
step = 3600 * 24)),#step = 3600 * 24
conditionalPanel(condition = "input.HydroModel == 'GR2M'",
sliderInput("EventGR2M", label = "Select the target date:",
min = as.POSIXct(.ShinyGR.args$SimPer[[1]][1L], tz = "UTC"),
max = as.POSIXct(.ShinyGR.args$SimPer[[1]][2L], tz = "UTC"),
value = as.POSIXct(.ShinyGR.args$SimPer[[1]][1L], tz = "UTC"),
timeFormat = "%Y-%m",
timezone = "+0000",
animate = animationOptions(interval = 500),
step = 3600*24*30))
)
)
),
fluidRow(conditionalPanel(condition = "input.PlotType == 'Model performance'",
column(width = 09,
plotOutput("stPlotMP", width = "100%", height = "900px"))),
conditionalPanel(condition = "input.PlotType == 'Flow time series'",
column(width = 09,
dygraphs::dygraphOutput("dyPlotTSq", width = "100%", height = "400px"),
dygraphs::dygraphOutput("dyPlotTSe", width = "100%", height = "300px"))),
conditionalPanel(condition = "input.PlotType == 'State variables'",
column(width = 09,
dygraphs::dygraphOutput("dyPlotSVs", width = "100%", height = "325px"),
dygraphs::dygraphOutput("dyPlotSVq", width = "100%", height = "355px"))),
conditionalPanel(condition = "input.PlotType == 'Model diagram'",
column(width = 05,
dygraphs::dygraphOutput("dyPlotMDp", width = "100%", height = "190px"),
dygraphs::dygraphOutput("dyPlotMDe", width = "100%", height = "215px"),
dygraphs::dygraphOutput("dyPlotMDq", width = "100%", height = "235px")),
column(width = 04,
plotOutput("stPlotMD", width = "100%", height = "665px"))),
column(width = 03,
div(tableOutput("Criteria")), style = "font-size:90%",
#conditionalPanel(condition = "input.PlotType == 'Flow time series' || input.PlotType == 'Model diagram'",
radioButtons("ShowOldQsim", label = "Show previous simulation (Qold)",
choices = c("No", "Yes"), inline = TRUE),#),
downloadButton("DownloadTab" , label = "Download sim. as csv",
style = "color:#565656; background-color:#ECF0F1; border-color:#DCDCDC; width:170px; height:25px; font-size:95%; padding-top:2px; margin-top:20px;"),
#conditionalPanel(condition = "input.PlotType == 'Model performance' || input.PlotType == 'Flow time series' || input.PlotType == 'State variables'",
br(),
downloadButton("DownloadPlot", label = "Download plot as png",
style = "color:#565656; background-color:#ECF0F1; border-color:#DCDCDC; width:170px; height:25px; font-size:95%; padding-top:2px; margin-top:10px;")
#)
)
)
)
)
),
tabPanel(title = "Summary sheet",
icon = icon("table-cells"),
sidebarLayout(position = "left",
sidebarPanel(width = 3,
h4("Choose a dataset:"),
fluidRow(column(width = 12, selectInput("DatasetSheet", label = NULL, choices = .ShinyGR.args$NamesObsBV)),
style = "height:720px;")),
mainPanel(width = 9,
fluidRow(uiOutput("Sheet")))
)
),
navbarMenu(title = "Help",
icon = icon("circle-question"),
tabPanel(title = "Get started",
icon = icon("cog", lib = "glyphicon"),
fluidRow(column(width = 12, includeMarkdown("www/tab_fun.md")))
),
#! horrible code to avoid fake item when a tabpanel contains an external hyperlink
#! (cf.https://gitlab.irstea.fr/HYCAR-Hydro/airgrteaching/-/issues/11)
tabPanel(title = HTML("GUI help
</a></li><li><a href='https://CRAN.R-project.org/package=airGRteaching' , target = '_blank', rel = 'noopener noreferrer'><i class='fab fa-r-project'></i> CRAN
</a></li><li><a href='https://hydrogr.github.io/airGRteaching/' , target = '_blank', rel = 'noopener noreferrer'><i class='fas fa-at'></i> Website
</a></li><li><a href='https://gitlab.irstea.fr/HYCAR-Hydro/airgrteaching/', target = '_blank', rel = 'noopener noreferrer'><i class='fab fa-gitlab'></i> GitLab"),
icon = icon("question"),
fluidRow(column(width = 12, a(href = "fig/airGRteaching_GUI_Description.png", target = "_blank", rel = "noopener noreferrer",
img(src = "fig/airGRteaching_GUI_Description.png", height = "770px",
alt = "If the image does not appear, click on this link.",
title = "Click to open in a new window")))),
),
tabPanel(title = "About",
icon = icon("bars"),
fluidRow(column(width = 6, includeMarkdown("www/tab_about.md")),
column(width = 5, includeMarkdown("www/tab_authors.md"))),
)
)
)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.