@@ -10,13 +10,15 @@ options(betydb_key = readLines('~/.betykey', warn = FALSE),
1010 betydb_url = " https://terraref.ncsa.illinois.edu/bety/" ,
1111 betydb_api_version = ' beta' )
1212
13- experiments <- betydb_query(table = ' experiments' )
13+ experiments <- as.data.frame(betydb_query(table = ' experiments' ))
14+ seasons <- unique(experiments [c(' start_date' , ' end_date' )])
15+ rownames(seasons ) <- paste0(seasons $ start_date , ' - ' , seasons $ end_date )
1416
1517ui <- fluidPage(
1618 titlePanel(" BETYdb Trait Data" ),
1719 sidebarLayout (
1820 sidebarPanel(
19- selectInput(' selectedExp ' , ' Experiment ' , experiments $ name ),
21+ selectInput(' selectedSeason ' , ' Season ' , rownames( seasons ) ),
2022 uiOutput(' selectVariable' )
2123 ),
2224 mainPanel(
@@ -45,29 +47,40 @@ loadTraitData <- function(startDate, endDate) {
4547
4648server <- function (input , output ) {
4749
48- selectedExpRow <- reactive({ subset(experiments , name == input $ selectedExp ) })
50+ selectedSeasonRow <- reactive({ seasons [input $ selectedSeason ,] })
51+ seasonStartDate <- reactive({ as.Date(selectedSeasonRow()$ start_date ) })
52+ seasonEndDate <- reactive({ as.Date(selectedSeasonRow()$ end_date ) })
4953
50- experimentStartDate <- reactive({ as.Date(selectedExpRow()$ start_date ) })
51- experimentEndDate <- reactive({ as.Date(selectedExpRow()$ end_date ) })
54+ cacheName <- reactive({ paste0(' TraitCache_' , seasonStartDate(), ' _' , seasonEndDate()) })
5255
5356 output $ selectVariable <- renderUI({
54- data.cache(cache.name = paste0(' TraitCache_' , experimentStartDate(), ' _' , experimentEndDate()), loadTraitData , startDate = experimentStartDate(), endDate = experimentEndDate())
57+
58+ data.cache(cache.name = cacheName(), loadTraitData , startDate = seasonStartDate(), endDate = seasonEndDate())
59+
5560 variableIds <- as.numeric(unique(fullTraitData $ variable_id ))
5661 variableNames <- vector()
5762 for (variableId in variableIds ) {
5863 varName <- betydb_query(table = ' variables' , id = variableId )$ name
64+ varName <- gsub(' _' , ' ' , varName )
5965 variableNames <- c(variableNames , varName )
6066 }
6167 names(variableIds ) <- variableNames
62- selectInput(' selectedVariable' , ' Variable ID' , variableIds )
68+
69+ selectInput(' selectedVariable' , ' Variable' , variableIds )
6370 })
6471
6572 output $ traitPlot <- renderPlot({
66- data.cache(cache.name = paste0(' TraitCache_' , experimentStartDate(), ' _' , experimentEndDate()), loadTraitData , startDate = experimentStartDate(), endDate = experimentEndDate())
67- variableTraitData <- subset(fullTraitData , variable_id == input $ selectedVariable )
68- qplot(as.Date(variableTraitData $ date ), variableTraitData $ mean , main = input $ selectedVariable ,
69- xlab = " Date" , ylab = " Unit" )
73+
74+ data.cache(cache.name = cacheName(), loadTraitData , startDate = seasonStartDate(), endDate = seasonEndDate())
75+
76+ variableIdData <- betydb_query(table = ' variables' , id = input $ selectedVariable )
77+ variableTraitData <- subset(fullTraitData , variable_id == variableIdData $ id )
78+
79+ qplot(as.Date(variableTraitData $ date ), variableTraitData $ mean ,
80+ main = " Mean Values" ,
81+ xlab = " Date" , ylab = variableIdData $ units )
7082 })
7183
7284}
85+
7386shinyApp(ui = ui , server = server )
0 commit comments