Skip to content

Commit 44797c6

Browse files
author
Nick Heyek
committed
ploy improvements, seasons added, experiments removed
1 parent af97d32 commit 44797c6

1 file changed

Lines changed: 24 additions & 11 deletions

File tree

  • experiment-trait-data-visualizer

experiment-trait-data-visualizer/app.R

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

1517
ui <- 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

4648
server <- 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+
7386
shinyApp(ui=ui, server=server)

0 commit comments

Comments
 (0)