Created
August 7, 2016 18:45
-
-
Save bennytowns/64f234d218e84b740889eee979070050 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
library(shinydashboard) | |
library(googleVis) | |
library(xts) | |
st.codes=readRDS('st.codes.rds') | |
other.codes=readRDS('other.codes.rds') | |
cn.codes=readRDS('cn.codes.rds') | |
other.con.codes=readRDS('other.con.codes.rds') | |
total.codes=readRDS('total.codes.rds') | |
total.con.codes=readRDS('total.con.codes.rds') | |
cnsm.codes=readRDS('cnsm.codes.rds') | |
total.cnsm.codes=readRDS('total.cnsm.codes.rds') | |
price.codes=readRDS('price.codes.rds') | |
total.price.codes=readRDS('total.price.codes.rds') | |
source('helpers.R') | |
shinyServer(function(input,output){ | |
#Render Information Page | |
# Reactive Functions for Data Selection | |
dateInput <- reactive({ | |
return(as.character(input$daterange)) | |
}) | |
dateInput2 <- reactive({ | |
return(as.character(input$daterange2)) | |
}) | |
texasInput <- reactive({ | |
if (input$texas==TRUE) { | |
return(TRUE) | |
} else{ | |
return(FALSE) | |
} | |
}) | |
second_Cond <-reactive({ | |
if (input$data_type=='sum'){ | |
return(1900) | |
} else { | |
return(as.character(input$daterange3)) | |
} | |
}) | |
color_codes <-reactive({ | |
if (input$menu=="map_con") { | |
if (input$data_type=='sum'){ | |
return(as.character("{values:[0,1000000,4000000],colors:['white','lightgreen','green']}")) | |
} else { | |
return(as.character("{values:[-500000,0,500000],colors:['red','white','green']}")) | |
} | |
} else { | |
if (input$data_type=='sum'){ | |
return(as.character("{values:[0,1000000,7500000],colors:['white','lightgreen','green']}")) | |
} else { | |
return(as.character("{values:[-5000000,0,5000000],colors:['red','white','green']}")) | |
} | |
} | |
}) | |
timerangeInput <-reactive({ | |
return(paste0(input$daterange,'/',input$daterange2)) | |
}) | |
timerangeInputAnn <-reactive({ | |
return(paste0(input$daterange-1,'/',input$daterange2)) | |
}) | |
#Render Input/Selections | |
output$filter <- renderUI({ | |
if (input$menu!="info") { | |
if (input$menu=="map_con") { | |
selectInput("category","View Consumption By:",c('Total','Residential', | |
'Industrial','Commercial', | |
'Electricity')) | |
} else { | |
selectInput("category","View Withdrawals From:",c('All Sources','Gas Wells', | |
'Oil Wells','Shale', | |
'Coal Beds')) | |
} | |
} | |
}) | |
output$filter1 <- renderUI({ | |
if (input$menu!="info") { | |
if (input$menu=="charts") { | |
selectInput("category2","View Consumption By:",c('Total','Residential', | |
'Industrial','Commercial', | |
'Electricity')) | |
} else { | |
selectInput("data_type","View Statistic:",c('sum','diff')) | |
} | |
} | |
}) | |
output$filter2 <- renderUI({ | |
if (input$menu!="info") { | |
sliderInput("daterange", "Date range:", | |
min = 1991, | |
max = 2014, | |
value = 2005,animate=TRUE) | |
} | |
}) | |
output$filter3 <- renderUI({ | |
if (input$menu!="info") { | |
if (input$menu=="charts") { | |
sliderInput("daterange2", "Date range:", | |
min = 1992, | |
max = 2014, | |
value = 2014) | |
} else { | |
if (input$data_type == 'sum') { | |
checkboxInput("texas","Exclude Texas") | |
} else if (input$data_type == 'diff') { | |
sliderInput("daterange3", "Date range:", | |
min = 1992, | |
max = 2014, | |
value = 2014) | |
} | |
} | |
} | |
}) | |
output$filter4 <- renderUI({ | |
if (input$menu!="info") { | |
if (input$menu=="charts") { | |
selectInput("chart_filters","Select State:",c('All','Offshore',levels(st.codes$state))) | |
} | |
} | |
}) | |
#Render Withdrawals Maps | |
output$map <- renderGvis({ | |
colorStr=color_codes() | |
gvisGeoChart(render_data(st.codes,input$category,dateInput(),texasInput(),second_Cond()),"full",input$data_type, | |
options=list(region="US",displaymode="regions", | |
resolution="provinces",width="auto", | |
height=600,defaultColor="#808080",colorAxis=colorStr)) | |
}) | |
output$mapData <- renderGvis({ | |
if (input$data_type=='sum') { | |
gvisColumnChart(sortdata(as.data.frame(render_data(st.codes,input$category,dateInput(),texasInput(),second_Cond())),10),"state",input$data_type, | |
options=list(dataOpacity=0.5)) | |
} else { | |
gvisColumnChart(sortdiffdata(as.data.frame(render_data(st.codes,input$category,dateInput(),texasInput(),second_Cond())),5),"state",input$data_type, | |
options=list(dataOpacity=0.5)) | |
} | |
}) | |
output$other_regions <- renderPlot({ | |
plot_data=sortdata(as.data.frame(render_data(other.codes,input$category,dateInput(),FALSE,second_Cond())),4) | |
if (input$data_type=='sum'){ | |
barplot(height=plot_data$sum,names.arg=plot_data$state,width=60,space=0.5,col=c('darkgreen','lightgreen'),options(scipen=9),legend=FALSE) | |
} else { | |
barplot(height=plot_data$sum,names.arg=plot_data$state,width=60,space=0.5,col=c('darkgreen','lightgreen'),options(scipen=7),legend=FALSE) | |
} | |
}) | |
output$total_US <- renderText({ | |
if (input$data_type=='sum') { | |
paste("Total US Withdrawals: ",format(render_data(total.codes,input$category,dateInput(),texasInput(),second_Cond())[3])) | |
} else{ | |
paste("Total US Withdrawals: ",format(render_data(total.codes,input$category,dateInput(),texasInput(),second_Cond())[4])) | |
} | |
}) | |
#Render Consumption Map | |
output$map_cons <- renderGvis({ | |
colorStr=color_codes() | |
gvisGeoChart(render_data(cnsm.codes,input$category,dateInput(),texasInput(),second_Cond()),"full",input$data_type, | |
options=list(region="US",displaymode="regions", | |
resolution="provinces",width="auto", | |
height=600,defaultColor="#808080",colorAxis=colorStr)) | |
}) | |
output$other_con_regions <- renderPlot({ | |
plot_data=sortdata(as.data.frame(render_data(other.con.codes,'Consumption',dateInput(),FALSE,second_Cond())),4) | |
if (input$data_type=='sum'){ | |
barplot(height=plot_data$sum,names.arg=plot_data$state,width=60,space=0.5,col=c('darkgreen','lightgreen'),options(scipen=9),legend=FALSE) | |
} else { | |
barplot(height=plot_data$sum,names.arg=plot_data$state,width=60,space=0.5,col=c('darkgreen','lightgreen'),options(scipen=7),legend=FALSE) | |
} | |
}) | |
output$map_consData <- renderGvis({ | |
if (input$data_type=='sum') { | |
gvisColumnChart(sortdata(as.data.frame(render_data(cnsm.codes,input$category,dateInput(),texasInput(),second_Cond())),10),"state",input$data_type, | |
options=list(dataOpacity=0.5)) | |
} else { | |
gvisColumnChart(sortdiffdata(as.data.frame(render_data(cnsm.codes,input$category,dateInput(),texasInput(),second_Cond())),5),"state",input$data_type, | |
options=list(dataOpacity=0.5)) | |
} | |
}) | |
output$total_con_US <- renderText({ | |
if (input$data_type=='sum') { | |
paste("Total US Consumption: ",format(render_data(total.cnsm.codes,input$category,dateInput(),texasInput(),second_Cond())[3])) | |
} else{ | |
paste("Total US Consumption: ",format(render_data(total.cnsm.codes,input$category,dateInput(),texasInput(),second_Cond())[4])) | |
} | |
}) | |
#Render Charts | |
output$chart <- renderPlot({ | |
if (input$chart_filters=='All') { | |
plot.xts(chart_data(total.codes,input$category,timerangeInput(),'US'),main=paste('Total',input$category,'US Natural Gas Withdrawals, Bcf')) | |
} else if (input$chart_filters=='Offshore') { | |
plot.xts(chart_data(other.codes,input$category,timerangeInput(),'FX'),main='Federal Offshore Gas Withdrawals, Bcf') | |
} else { | |
plot.xts(chart_data(st.codes,input$category,timerangeInput(),input$chart_filters),main=paste(input$chart_filters,input$category,'Natural Gas Withdrawals, Bcf')) | |
} | |
}) | |
output$chart2 <- renderPlot({ | |
if (input$chart_filters=='All') { | |
plot.xts(chart_data(total.cnsm.codes,input$category2,timerangeInput(),'US'),main='Total US Natural Gas Consumption, BCf') | |
} else if (input$chart_filters=='Offshore') { | |
plot.xts(chart_data(other.con.codes,'Consumption',timerangeInputAnn(),'3F'),main='Federal Offshore Natural Gas Consumption, Bcf') | |
} else { | |
plot.xts(chart_data(cnsm.codes,input$category2,timerangeInput(),input$chart_filters),main=paste(input$chart_filters,input$category2,'Natural Gas Consumption, BCf')) | |
} | |
}) | |
output$chart3 <- renderPlot({ | |
if (input$chart_filters=='All') { | |
plot.xts(chart_data(total.price.codes,'Price',timerangeInput(),'US'),main='Total US Natural Gas Price') | |
} else if (input$chart_filters=='Offshore') { | |
plot.xts(chart_data(total.price.codes,'Price',timerangeInput(),'US'),main='Total US Natural Gas Price') | |
} else { | |
plot.xts(chart_data(price.codes,'Price',timerangeInput(),input$chart_filters),main=paste(input$chart_filters,'Natural Gas Price')) | |
} | |
}) | |
}) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment