Peabody/Data_Center_Visuals.r

45 lines
3.5 KiB
R

library(tidyverse)
library(scales)
library(janitor)
library(paletteer)
source("Scripts/Return_Data_Center_Model_Inputs.r")
DATA_CENTER <- DATA_CENTER_INPUTS()
DATA_CENTER %>% filter(Year==2028,Event=='COMPUTERS')
DATA_CENTER <- rbind(DATA_CENTER,do.call(rbind, lapply(2031:2050,function(x){DATA_CENTER %>% filter(Year==2030) %>% mutate(Year=x)})))
GET_DATA_CENTER_RES <- function(DIR,EVENT,REGION='Wyoming'){
# DIR<-"Data_Center_Employment_100_People"
# EVENT<-'DATA_CENTER_EMP'
PATH <- paste0("Model_Outputs/IMPLAN/Data_Center/",REGION,"/",DIR,"/economic_indicators_by_impact.csv")
INPUT_DATA <- read_csv(PATH) %>% rename(Income=`Labor Income`) %>% mutate(Income=parse_number(Income),`Value Added`=parse_number(`Value Added`),Output=parse_number(Output)) %>% mutate(Region=REGION,Event=EVENT)
INPUT_DATA$Impact <- gsub("3 - ","",gsub("2 - ","",gsub("1 - ","",INPUT_DATA$Impact)))
INPUT_DATA <- INPUT_DATA %>% pivot_longer(-c(Impact,Region,Event)) %>% rename(Type=Impact,Impact=name)
INPUT_DATA$Impact <- gsub("3 - ","",gsub("2 - ","",gsub("1 - ","",INPUT_DATA$Impact)))
INPUT_DATA <- INPUT_DATA %>% mutate(Source='IMPLAN') %>% select(Type,Region,Impact,Event,Source,value)
INPUT_DATA <- INPUT_DATA %>% filter(!is.na(Type))
INPUT_DATA$value <- if(EVENT=='DATA_CENTER_EMP'){INPUT_DATA$value <- INPUT_DATA$value/100}else{INPUT_DATA$value/10^6} #shift to impact per dollar from impact per million dollar
INPUT_DATA <- INPUT_DATA %>% rename('marginal'=value)
INPUT_DATA <- INPUT_DATA %>% left_join(DATA_CENTER) %>% mutate(value=marginal*total)
INPUT_DATA <- INPUT_DATA %>% group_by(Type,Year,Region,Impact,Source,Event) %>% summarize(value=sum(value)) %>% ungroup
return(INPUT_DATA )
}
WY_DATA <- rbind(GET_DATA_CENTER_RES("Computer_Purchase_Mill_Dollars",'COMPUTERS'),GET_DATA_CENTER_RES("Construction_Mill_Dollars",'BUILDING'),GET_DATA_CENTER_RES("Data_Center_Employment_100_People",'DATA_CENTER_EMP'),GET_DATA_CENTER_RES("Other_Purchases_Mill_Dollars","OTHER"),GET_DATA_CENTER_RES("Pre-Development_Million_Dollars","PRE_DEV"),GET_DATA_CENTER_RES("Utlities_Electricity_Million_USD","UTILITIES"))
US_DATA <- rbind(GET_DATA_CENTER_RES("Computer_Purchase_Mill_Dollars",'COMPUTERS','US'),GET_DATA_CENTER_RES("Construction_Mill_Dollars",'BUILDING','US'),GET_DATA_CENTER_RES("Data_Center_Employment_100_People",'DATA_CENTER_EMP','US'),GET_DATA_CENTER_RES("Other_Purchases_Mill_Dollars","OTHER",'US'),GET_DATA_CENTER_RES("Pre-Development_Million_Dollars","PRE_DEV",'US'),GET_DATA_CENTER_RES("Utlities_Electricity_Million_USD","UTILITIES",'US'))
GET_DATA_CENTER_RES("Computer_Purchase_Mill_Dollars",'COMPUTERS','US')
GET_DATA_CENTER_RES("Data_Center_Employment_100_People",'DATA_CENTER_EMP')
ALL_DATA <- rbind(WY_DATA,US_DATA)
GET_DATA_CENTER_RES("Data_Center_Employment_100_People",'DATA_CENTER_EMP')
ALL_DATA <- ALL_DATA %>% group_by(Year,Region,Impact,Event) %>% summarize(value=sum(value)) %>% ungroup
US_DATA <- ALL_DATA %>% group_by(Year,Impact,Event) %>% summarize(value=max(value)-min(value)) %>% ungroup %>% mutate(Region='US')
ALL_DATA <- ALL_DATA %>% filter(Region=='Wyoming') %>% full_join(US_DATA)
ALL_DATA %>% filter(Year==2030,value>0)
GRAPH_DATA <- ALL_DATA %>% mutate(value=ifelse(Impact!='Employment',value,value)) %>% group_by(Year,Region,Impact) %>% summarize(value=sum(value)) %>% ungroup
GRAPH_DATA %>% filter(Year==2040)
ggplot(GRAPH_DATA %>% filter(Impact=='Employment'),aes(x=Year,y=value,fill=Region))+geom_area()+facet_grid(~Impact)
ggplot(GRAPH_DATA ,aes(x=Year,y=value,fill=Region))+geom_area()+facet_grid(~Impact)