#' readgcam
#'
#' This function connects to a gcamdatabase and uses a query file to
#' out results into a table ready for plotting.
#' @param folder Default = getwd(). Path to directory for outputs
#' @param nameAppend Default="". Name to append to saved files.
#' @param gcamdata_folder (OPTIONAL) Default=NULL. Full path to gcamdata folder. Required for some params.
#' @param gcamdatabase Default = NULL. Full path to GCAM database folder.
#' @param queryFile Defualt = NULL. When NULL gcamextractor loads pre-saved xml file gcamextractor::queries_xml
#' @param dataProjFile Default = NULL. Optional. A default 'dataProj.proj' is produced if no .Proj file is specified.
#' @param maxMemory Default = "4g". Set the maxMemory. Sometimes need to increase this for very large data.
#' @param scenOrigNames Default = "All". Original Scenarios names in GCAM database in a string vector.
#' For example c('scenario1','scenario2).
#' @param scenNewNames New Names which may be shorter and more useful for figures etc.
#' Default will use Original Names. For example c('scenario1','scenario2)
#' @param reReadData If TRUE will read the GCAM data base and create a queryData.proj file
#' in the same folder as the GCAM database. If FALSE will load a '.proj' file if a file
#' with full path is provided otherwise it will search for a dataProj.proj file in the existing
#' folder which may have been created from an old run.
#' @param regionsSelect Default = NULL. The regions to analyze in a vector. Example c('Colombia','Argentina'). Full list:
#' USA, Africa_Eastern, Africa_Northern, Africa_Southern, Africa_Western, Australia_NZ, Brazil, Canada
#' Central America and Caribbean, Central Asia, China, EU-12, EU-15, Europe_Eastern, Europe_Non_EU,
#' European Free Trade Association, India, Indonesia, Japan, Mexico, Middle East, Pakistan, Russia,
#' South Africa, South America_Northern, South America_Southern, South Asia, South Korea, Southeast Asia,
# Taiwan, Argentina, Colombia, Uruguay)
#' @param regionsAggregate Default = NULL. Vector or list of vectors containing regions to aggregate into a new region.
#' Example c('South America_Northern', 'South America_Southern') will add one aggregated region while
#' list(c('South America_Northern', 'South America_Southern'), c('USA', 'Canada', 'Mexico')) will add two aggregated regions.
#' @param regionsAggregateNames Default = NULL. Vector of names for aggregated regions. Length must be 1 if regionsAggregate
#' is a vector or match the length of the list given by regionsAggregate. Example: c('South America', 'North America')
#' @param paramsSelect Default = "diagnostic".
#' @param removeVintages Default = "FALSE".
#'
#' Choose "All" or paramSet from "energy", "electricity", "transport",
#' "water" , "socioecon" ,"ag" , "livestock" ,"land" ,"emissions".
#'
#' Or pick an individual param from the list:
#'
#' # energy
#' "energyPrimaryByFuelEJ","energyPrimaryRefLiqProdEJ",
#' "energyFinalConsumBySecEJ","energyFinalByFuelEJ","energyFinalSubsecByFuelTranspEJ",
#' "energyFinalSubsecByFuelBuildEJ", "energyFinalSubsecByFuelIndusEJ","energyFinalSubsecBySectorBuildEJ",
#' "energyPrimaryByFuelMTOE","energyPrimaryRefLiqProdMTOE",
#' "energyFinalConsumBySecMTOE","energyFinalbyFuelMTOE","energyFinalSubsecByFuelTranspMTOE",
#' "energyFinalSubsecByFuelBuildMTOE", "energyFinalSubsecByFuelIndusMTOE","energyFinalSubsecBySectorBuildMTOE",
#' "energyPrimaryByFuelTWh","energyPrimaryRefLiqProdTWh",
#' "energyFinalConsumBySecTWh","energyFinalbyFuelTWh","energyFinalSubsecByFuelTranspTWh",
#' "energyFinalSubsecByFuelBuildTWh", "energyFinalSubsecByFuelIndusTWh","energyFinalSubsecBySectorBuildTWh",
#'
#' # electricity
#' "elecByTechTWh","elecCapByFuel","elecFinalBySecTWh","elecFinalByFuelTWh", "elecConsumByDemandSector",
#' "elecNewCapCost","elecNewCapGW","elecAnnualRetPrematureCost","elecAnnualRetPrematureGW","elecCumCapCost","elecCumCapGW","elecCumRetPrematureCost","elecCumRetPrematureGW",
#'
#' # transport
#' "transportPassengerVMTByMode", "transportFreightVMTByMode", "transportPassengerVMTByFuel", "transportFreightVMTByFuel",
#'
#' # buildings
#' "serviceOutputByTechBuildings", "buildingFloorspace",
#'
#' # water
#' "watConsumBySec", "watWithdrawBySec", "watWithdrawByCrop", "watBioPhysCons", "watIrrWithdrawBasin","watIrrConsBasin",
#'
#' # socioecon
#' "gdpPerCapita", "gdp", "gdpGrowthRate", "pop",
#'
#' # ag
#' "agProdbyIrrRfd", "agProdBiomass", "agProdForest","agProdByCrop",
#'
#' # livestock
#' "livestock_MeatDairybyTechMixed","livestock_MeatDairybyTechPastoral","livestock_MeatDairybyTechImports", "livestock_MeatDairybySubsector",
#'
#' # land
#' "landIrrRfd", "landIrrCrop","landRfdCrop", "landAlloc","landAllocByCrop",
#'
#' # emissions
#' "emissLUC", "emissGHGBySectorGWPAR5","emissGHGBySectorGTPAR5",
#' "emissNonCO2ByResProdGWPAR5", "emissBySectorGWPAR5FFI","emissMethaneBySourceGWPAR5",
#' "emissByGasGWPAR5FFI", "emissByGasGWPAR5LUC", "emissBySectorGWPAR5LUC",
#' "emissNonCO2ByResProdGTPAR5", "emissBySectorGTPAR5FFI","emissMethaneBySourceGTPAR5",
#' "emissByGasGTPAR5FFI", "emissByGasGTPAR5LUC","emissBySectorGTPAR5LUC",
#' "emissCO2BySectorNoBio",
#'
#' # hydrogen
#'
#'
#' @param saveData Default = "T". Set to F if do not want to save any data to file.
#' @return A list with the scenarios in the gcam database, queries in the queryxml file and a
#' tibble with gcam data formatted for gcamextractor charts aggregated to different categories.
#' These include data, dataAggParam, dataAggClass1, dataAggClass2.
#' @keywords gcam, gcam database, query
#' @importFrom magrittr %>%
#' @export
readgcam <- function(gcamdatabase = NULL,
gcamdata_folder = NULL,
queryFile = NULL,
dataProjFile = "dataProj.proj",
maxMemory = "4g",
scenOrigNames = "All",
scenNewNames = NULL,
reReadData = T,
regionsSelect = NULL,
regionsAggregate = NULL,
regionsAggregateNames = NULL,
paramsSelect = "diagnostic",
folder = getwd(),
nameAppend = "",
saveData = T,
removeVintages=F
){
# gcamdatabase = NULL
# gcamdata_folder = NULL
# maxMemory = "4g"
# dataProjFile = "dataProj.proj"
# queryFile = NULL
# scenOrigNames = "All"
# scenNewNames = NULL
# reReadData = T
# regionsSelect = NULL
# paramsSelect="diagnostic"
# folder=paste(getwd(), "/outputs", sep = "")
# nameAppend=""
# saveData = T
#................
# Initialize variables by setting to NULL
#................
NULL -> vintage -> year -> xLabel -> x -> value -> sector -> scenario -> region -> param -> origX -> origValue ->
origUnits -> origScen -> origQuery -> classPalette2 -> classPalette1 -> classLabel2 -> classLabel1 -> class2 ->
class1 -> connx -> aggregate -> Units -> sources -> paramx -> fuel -> technology -> input -> output -> water ->
landleaf -> ghg -> Convert -> regionsSelectAll->cf1971to2100->gcamCapacityFactor -> . -> GWPAR5 -> tblelecByTechTWh ->
totalFFINonCO2 -> FracBioFuel -> FracFossilFuel -> TotalLiquids -> agg_tech->scenarios->queries->
class_temp -> resource -> subRegAreaSum -> subsector->tblFinalNrgIntlAvShipMod -> 'transportation' ->
'International Aviation' -> 'International Ship' -> 'International Aviation oil' -> 'a oil' ->
'International Ship oil' -> 'International Aviation liquids' -> liquids -> 'International Ship liquids'->crop->
paramsSelectAll -> tblFinalNrgIntlAvShip -> datax -> group -> basin -> subRegion -> query -> subresource ->
transport -> gcamdata -> half.life -> lifetime -> read.csv -> sector_1 -> steepness -> PrimaryFuelCO2Coef ->
PrimaryFuelCO2Coef.name -> country -> grid_region -> 'io-coefficient' -> 'minicam.energy.input' ->
'remove.fraction' -> state -> subsector.name -> 'to.technology' -> coefficient -> tbl_carbon_capture_rate ->
gcamdata_files -> aggSector -> tblGHGEmissRes -> segment -> hours -> scenarios_new -> str -> subRegions_new -> x_new
basedir <- getwd()
# Normalize path to gcamdatabase
if(!is.null(gcamdatabase)){gcamdatabase <- normalizePath(gcamdatabase)}
if(any(paramsSelect %in% c('elec_lifetime_scurve_yr', 'elec_lifetime_yr',
'elec_fuel_co2_content_tonsperMBTU',
'elec_carbon_capture_rate_fraction',
'elec_carbon_capture_escl_rate_fraction'))){
paramsSelect <- c('pop',paramsSelect)
}
if(any(!is.null(regionsSelect))){
if(any(grepl("$all^", regionsSelect, ignore.case = T))){
regionsSelect <- NULL
}
regionsSelect <- gsub("^United States$", "USA", regionsSelect, ignore.case=T)
}
if(!is.null(gcamdata_folder)){
if(!dir.exists(gcamdata_folder)){
rlang::warn(paste0("gcamdata_folder provided : ", gcamdata_folder, "does not exist."))
rlang::warn(paste0("Skipped parameters that require gcamdata folder."))
}
}
#.....................
# Read in all raw gcamdata base and gcam folder data.
#.....................
if(T){ # Read in all raw gcamdata base and gcam folder data.
#.....................
# Params and Queries
#.....................
paramQueryMap <- (gcamextractor::map_param_query)%>%dplyr::select(group,param,query,gcamdata)
# Check if queriesSelect is a querySet or one of the queries
if(!any(c("all","All","ALL") %in% paramsSelect)){
if(any(paramsSelect %in% unique(paramQueryMap$group))){
queriesSelectx <- as.vector(unlist(unique((paramQueryMap%>%dplyr::filter(group %in% paramsSelect))$query)))
#rlang::inform(paste("queriesSelect chosen include the following querySets: ",paste(paramsSelect,collapse=", "),".",sep=""))
#rlang::inform(paste("Which include the following queries: ",paste(queriesSelectx,collapse=", "),".",sep=""))
#rlang::inform(paste("Other queries not run include: ",paste(as.vector(unlist(querySets))[!as.vector(unlist(querySets)) %in% queriesSelectx],collapse=", "),".",sep=""))
}else{
if(any(paramsSelect %in% as.vector(unique(paramQueryMap$param)))){
queriesSelectx<- as.vector(unlist(unique((paramQueryMap%>%dplyr::filter(param %in% paramsSelect))$query)))
#rlang::inform(paste("queriesSelect chosen include the following queries: ",paste(queriesSelectx,collapse=", "),".",sep=""))
# rlang::inform(paste("Other queries not run include: ",paste(as.vector(unlist(querySets))[!as.vector(unlist(querySets)) %in% queriesSelectx],collapse=", "),".",sep=""))
}else {
queriesSelectx <- NULL
rlang::inform(paste("Params in queries.xml include: ",paste(as.vector(unlist(unique(paramQueryMap$param))),collapse=", "),".",sep=""))
rlang::inform(paste("None of the chosen paramsSelect are available in gcamextractor params: ",paste(paramsSelect,collapse=", "),".",sep=""))
stop("None of the params chosen are available.")
}
}}else{
queriesSelectx <- as.vector(unlist(unique(paramQueryMap$query)))
}
queriesSelectx <- unique(queriesSelectx [!is.na(queriesSelectx )])
# remove USA queries if not needed
if(any(!is.null(regionsSelect)) && !any(c("USA", gcamextractor::regions_US52) %in% regionsSelect)){
queriesSelectx <- queriesSelectx[!grepl("USA", queriesSelectx)]
}
print("SELECTED QUERIES:")
print(queriesSelectx)
#.............................
# Create necessary directories if they dont exist.
#............................
if (!dir.exists(folder)){
dir.create(folder)} # Output Directory
#................
# Set file paths
#................
if(is.null(gcamdatabase)){
gcamdatabasePath = NULL
gcamdatabaseName = NULL
}else{
if(is.character(gcamdatabase)){
if(dir.exists(gcamdatabase)){
gcamdatabasePath <- dirname(gcamdatabase); gcamdatabasePath
gcamdatabaseName <- basename(gcamdatabase); gcamdatabaseName
rlang::inform(paste("Connecting to GCAM database provided ",gcamdatabase,"...",sep=""))
}else{stop(paste("The GCAM database path provided does not exist: ", gcamdatabase, sep=""))}
}else{
rlang::inform(paste("gcamdatabase provided is not a character string to the GCAM database path. Please check your entry."))
}
}
if(is.null(queryFile)){
XML::saveXML(gcamextractor::queries_xml, file=paste0(folder,"/queries.xml"))
queryFile <- paste0(folder,"/queries.xml")
xfun::gsub_file(queryFile,"'","'")
queryPath <- gsub("[^/]+$","",queryFile)
queryxml <- basename(queryFile)
}else{
if(is.character(queryFile)){
if(file.exists(queryFile)){
queryPath <- gsub("[^/]+$","",queryFile)
queryxml <- basename(queryFile)
rlang::inform(paste("Connecting to the queryFile provided ",queryFile,"...",sep=""))
}else{rlang::inform(paste("The queryFile path provided dos not exist: ", queryFile, sep=""))}
}else{
rlang::inform(paste("The queryFile path provided is not a character string to the query file. Please check your entry."))
}
}
if(is.null(dataProjFile)){
dataProj = "dataProj"
dataProjPath = gsub("//","/",paste(folder,"/", sep = ""))
}else{
if(is.list(dataProjFile)){
dataProjPath <- gsub("//","/",paste(folder,"/", sep = ""))
dataProj <- paste("dataProj", sep = "")
}else{
if(is.character(dataProjFile)){
if(grepl("/",dataProjFile)){
if(file.exists(dataProjFile)){
dataProjPath <- gsub("[^/]+$","",dataProjFile)
dataProj <- basename(dataProjFile)
rlang::inform(paste("Connecting to the dataProjFile provided ",dataProjFile,"...",sep=""))}else{
dataProjPath <- gsub("[^/]+$","",dataProjFile)
dataProj <- basename(dataProjFile)
rlang::inform(paste0("Creating folder for dataProjFile: ", dataProjFile))
if(!dir.exists(dataProjPath)){dir.create(dataProjPath)}
rlang::inform(paste0(gsub("//","/",paste("Will save GCAM data to ",dataProjPath,"/",dataProjFile,"...",sep=""))))
}
}else{
dataProjPath <- gsub("//","/",paste(folder,"/", sep = ""))
dataProj <- dataProjFile
rlang::inform(paste("Will save data to: ", dataProjPath,"/",dataProjFile, sep=""))
}
}else{
rlang::inform(paste("The dataProjFile path provided is not a character string to the query file. Please check your entry."))
}
}
}
# Set new scenario names if provided
if (is.null(scenOrigNames)) {
scenNewNames <- NULL
} else {
if(any(c("all","All","ALL") %in% scenOrigNames)){
scenNewNames <- NULL
}
}
#.............................................
# Read gcam database or existing dataProj.proj
#............................................
# In case user sets reReadData=F and provides a .proj file instead of a gcamdatabase
if((is.null(gcamdatabasePath) | is.null(gcamdatabaseName)) &
reReadData==T){
if(is.list(dataProjFile)){
reReadData=F
}
if(file.exists(paste(dataProjPath,"/",dataProj,sep=""))){
reReadData=F
}
}
if(!all(is.na(queriesSelectx))){
if (!reReadData) {
# Check for proj file path and folder if incorrect give error
if(!is.list(dataProjFile)){
if(!file.exists(gsub("//","/",paste(dataProjPath, "/", dataProj, sep = "")))){
stop(gsub("//","/",paste("dataProj file: ", dataProjPath,"/",dataProj," is incorrect or doesn't exist.",sep="")))}
}
# Checking if dataProjFile is preloaded xml gcamextractor::xmlMetiQueries
if(is.list(dataProjFile)){
dataProjLoaded <- rgcam::loadProject(dataProjFile)
}else{
if (file.exists(gsub("//","/",paste(dataProjPath, "/", dataProj, sep = "")))) {
dataProjLoaded <- rgcam::loadProject(gsub("//","/",paste(dataProjPath, "/", dataProj, sep = "")))
} else {
stop(paste("No ", dataProj, " file exists. Please set reReadData=T to create dataProj.proj"))
}}
scenarios <- rgcam::listScenarios(dataProjLoaded); scenarios # List of Scenarios in GCAM database
queries <- rgcam::listQueries(dataProjLoaded); queries # List of queries in GCAM database
# Select Scenarios
if(is.null(scenOrigNames)){
scenOrigNames <- scenarios[1]
rlang::inform(paste("scenOrigNames set to NULL so using only first scenario: ",scenarios[1],sep=""))
rlang::inform(paste("from all available scenarios: ",paste(scenarios,collapse=", "),sep=""))
rlang::inform(paste0("To run all scenarios please set scenOrigNames to 'All' or"))
rlang::inform(paste("you can choose a subset of scenarios by setting the scenOrigNames input (eg. scenOrigNames = c('scen1','scen2'))" ,sep=""))
} else {
if(any(c("all","All","ALL") %in% scenOrigNames)){
scenOrigNames <- scenarios
rlang::inform(paste("scenOrigNames set to 'All' (Default) so using all available scenarios: ",paste(scenarios,collapse=", "),sep=""))
rlang::inform(paste("You can choose a subset of scenarios by setting the scenOrigNames input (eg. scenOrigNames = c('scen1','scen2'))" ,sep=""))
} else {
if(any(scenOrigNames %in% scenarios)){
rlang::inform(paste("scenOrigNames available in scenarios are :",paste(scenOrigNames[scenOrigNames %in% scenarios],collapse=", "),sep=""))
if(length(scenOrigNames[!scenOrigNames %in% scenarios])>0){
rlang::inform(paste("scenOrigNames not available in scenarios are :",paste(scenOrigNames[!scenOrigNames %in% scenarios],collapse=", "),sep=""))}
if(length(scenarios[!scenarios %in% scenOrigNames])>0){
rlang::inform(paste("Other scenarios not selected are :",paste(scenarios[!scenarios %in% scenOrigNames],collapse=", "),sep=""))}
} else {
rlang::inform(paste("None of the scenOrigNames : ",paste(scenOrigNames,collapse=", "),sep=""))
rlang::inform(paste("are in the available scenarios : ",paste(scenarios,collapse=", "),sep=""))
}
}
}
scenarios <- scenOrigNames # Set scenarios to chosen scenarios
} else {
# Check for query file and folder if incorrect give error
if(!file.exists(gsub("//","/",paste(queryPath, "/", queryxml, sep = "")))){stop(paste("query file: ", queryPath,"/",queryxml," is incorrect or doesn't exist.",sep=""))}
if(file.exists(gsub("//","/",paste(queryPath, "/subSetQueries.xml", sep = "")))){unlink(gsub("//","/",paste(queryPath, "/subSetQueries.xml", sep = "")))}
# Subset the query file if queriesSelect is not "All"
if(!any(c("All","all","ALL") %in% paramsSelect)){
xmlFilePath = gsub("//","/",paste(queryPath, "/", queryxml, sep = ""))
xmlfile <- XML::xmlTreeParse(xmlFilePath)
xmltop <- XML::xmlRoot(xmlfile)
top <- XML::xmlNode(XML::xmlName(xmltop))
# Subset regions in queries
for(i in 1:length(xmltop)){
for(j in 1:length(queriesSelectx)){
if(queriesSelectx[j] == XML::xmlGetAttr(xmltop[[i]][[length(xmltop[[i]])]], "title")){
# include only selected regions when applicable
# (user has selected regions and original query uses "all-regions")
if(any(!is.null(regionsSelect)) &&
any(!grepl("all",regionsSelect, ignore.case = T)) &&
XML::names.XMLNode(xmltop[[i]])[1] == "all-regions" &&
!(queriesSelectx[j] == "CO2 emissions by sector" &&
any(c("emissCO2CumGlobal2010to2100", "emissCO2CumGlobal2010to2100RCP") %in% paramsSelect)) &&
!(queriesSelectx[j] == "prices by sector") &&
!(queriesSelectx[j] == "elec operating costs by tech and vintage")
){
# keep all regions for CO2 emissions by sector if cumulative global emissions are selected
# remove the all-regions element
to_add <- XML::removeChildren(xmltop[[i]],1)
# add each region
for(k in 1:length(regionsSelect)){
to_add <- XML::addChildren(to_add,
XML::xmlNode("region",
attrs = c(name = regionsSelect[k])))
}
# reorder children so that regions are at the top
XML::xmlChildren(to_add) <- XML::xmlChildren(to_add)[c(2:(length(regionsSelect)+1),1)]
# add modified node back into xml
top <- XML::addChildren(top, to_add)
}else{
# else include all regions (don't change query from orig query file)
top <- XML::addChildren(top, xmltop[[i]])
}
}
}
}
XML::saveXML(top, file=gsub("//","/",paste(queryPath, "/subSetQueries.xml", sep = "")))
} else {
rlang::inform(paste("paramsSelect includes 'All' so running all available queries: ",paste(queriesSelectx,collapse=", "),".",sep=""))
file.copy(from=gsub("//","/",paste(queryPath, "/", queryxml, sep = "")),
to=gsub("//","/",paste(queryPath, "/subSetQueries.xml", sep = "")))
}
if(!file.exists(gsub("//","/",paste(queryPath, "/subSetQueries.xml", sep = "")))){
stop(gsub("//","/",paste("query file: ", queryPath,"/subSetQueries.xml is incorrect or doesn't exist.",sep="")))}else{
xfun::gsub_file(paste(queryPath, "/subSetQueries.xml", sep = ""),"'","'")
rlang::inform(paste0(gsub("//","/",paste("Reading queries from queryFile created: ", queryPath,"/subSetQueries.xml.",sep=""))))
}
# Check for gcamdatbasePath and gcamdatabasename
if(!is.null(gcamdatabase)){
if(is.null(gcamdatabasePath) | is.null(gcamdatabaseName)){
stop(gsub("//","/",paste("GCAM database: ", gcamdatabasePath,"/",gcamdatabaseName," is incorrect or doesn't exist.",sep="")))}
if(!file.exists(gsub("//","/",paste(gcamdatabasePath, "/", gcamdatabaseName, sep = "")))){
stop(gsub("//","/",paste("GCAM database: ", gcamdatabasePath,"/",gcamdatabaseName," is incorrect or doesn't exist.",sep="")))}
}
# Get names of scenarios in database
# Change directory to avoid rgcam error when gcamdatabase is in the same folder as gcamextractor
if(gcamdatabasePath == getwd()){
rlang::inform("Switching folder because database is in same folder as current working directory which does not work with rgcam.")
temp_folder <- paste0(getwd(),"/temp_dir")
dir.create(temp_folder)
setwd(temp_folder)
x <- utils::capture.output(rgcam::localDBConn(gcamdatabasePath,gcamdatabaseName,maxMemory=maxMemory), type="message")
# Reset dir
setwd(basedir)
unlink(temp_folder, force=T, recursive=T)
rlang::inform("Back to original working directory.")} else {
x <- utils::capture.output(rgcam::localDBConn(gcamdatabasePath,gcamdatabaseName,maxMemory=maxMemory), type="message")
}
x <- gsub(", ",",",gsub(": ","",gsub("Database scenarios: ","",x)));x
scenarios <- as.vector(unlist(strsplit(gsub("Database scenarios: ","",x),",")))
rlang::inform(paste("All scenarios in data available: ", paste(scenarios,collapse=", "), sep=""))
if(file.exists(gsub("//","/",paste(dataProjPath, "/", dataProj, sep = "")))){
unlink(gsub("//","/",paste(dataProjPath, "/", dataProj, sep = "")))} # Delete old project file
# Select Scenarios
if(is.null(scenOrigNames)){
scenOrigNames <- scenarios[1]
rlang::inform(paste("scenOrigNames set to NULL so using only first scenario: ",scenarios[1],sep=""))
rlang::inform(paste("from all available scenarios: ",paste(scenarios,collapse=", "),sep=""))
rlang::inform(paste0("To run all scenarios please set scenOrigNames to 'All'"))
} else {
if(any(c("all","All","ALL") %in% scenOrigNames)){
scenOrigNames <- scenarios
rlang::inform(paste("scenOrigNames set to 'All' so using all available scenarios: ",paste(scenarios,collapse=", "),sep=""))
} else {
if(any(scenOrigNames %in% scenarios)){
rlang::inform(paste("scenOrigNames available in scenarios are : ",paste(scenOrigNames[scenOrigNames %in% scenarios],collapse=", "),sep=""))
if(length(scenOrigNames[!scenOrigNames %in% scenarios])>0){
rlang::inform(paste("scenOrigNames not available in scenarios are :",paste(scenOrigNames[!scenOrigNames %in% scenarios],collapse=", "),sep=""))}
if(length(scenarios[!scenarios %in% scenOrigNames])>0){
rlang::inform(paste("Other scenarios not selected are :",paste(scenarios[!scenarios %in% scenOrigNames],collapse=", "),sep=""))}
} else {
rlang::inform(paste("None of the scenOrigNames : ",paste(scenOrigNames,collapse=", "),sep=""))
rlang::inform(paste("are in the available scenarios : ",paste(scenarios,collapse=", "),sep=""))
stop("Please check scenOrigNames and rerun.")
}
}
}
for (scenario_i in scenOrigNames) {
# Fix paths
projPath_i = suppressWarnings(normalizePath(paste0(dataProjPath, "/", dataProj))); projPath_i
queryPath_i = normalizePath(paste0(queryPath, "/subSetQueries.xml")); queryPath_i
if(gcamdatabasePath == getwd()){
# Change directory to avoid rgcam error when gcamdatabase is in the same folder as gcamextractor
rlang::inform("Switching folder because database is in same folder as current working directory which does not work with rgcam.")
temp_folder <- paste0(getwd(),"/temp_dir")
dir.create(temp_folder)
setwd(temp_folder)
dataProj.proj <- rgcam::addScenario(conn = rgcam::localDBConn(gcamdatabasePath, gcamdatabaseName,maxMemory=maxMemory),
proj = projPath_i,
scenario = scenario_i,
queryFile = queryPath_i) # Check your queries file
# Reset dir
setwd(basedir)
unlink(temp_folder, force=T, recursive=T)
rlang::inform("Back to original working directory.")
} else {
dataProj.proj <- rgcam::addScenario(conn = rgcam::localDBConn(gcamdatabasePath, gcamdatabaseName,maxMemory=maxMemory),
proj = projPath_i,
scenario = scenario_i,
queryFile = queryPath_i) # Check your queries file
}
}
dataProjLoaded <- rgcam::loadProject(gsub("//","/",paste(dataProjPath, "/", dataProj, sep = "")))
# Save list of scenarios and queries
scenarios <- rgcam::listScenarios(dataProjLoaded); scenarios # List of Scenarios in GCAM database
queries <- rgcam::listQueries(dataProjLoaded); queries # List of queries in GCAM database
}
queries <- rgcam::listQueries(dataProjLoaded); queries # List of Queries in queryxml
} else {
queries <- NA
}
# Set new scenario names if provided
if (is.null(scenNewNames)) {
scenNewNames <- scenOrigNames}else{
scenNewNames <- scenNewNames[1:length(scenOrigNames)]
}
# Read in paramaters from query file to create formatted table
queriesx <- queries
if(!any(queriesSelectx %in% queries)){
rlang::inform("No queries exist for the param selected in the queryxml file.")}
paramsSelectAll <- as.vector(unlist(unique(paramQueryMap$param)))
if(any(c("all","All","ALL") %in% paramsSelect)){
paramsSelectx <- paramsSelectAll
} else {
if(any(paramsSelect %in% as.vector(unique(paramQueryMap$group)))){
paramsSelectx <- unique((paramQueryMap%>%dplyr::filter(group %in% paramsSelect))$param)
} else {paramsSelectx=paramsSelect}
}
# Read in relevant gcamdatafiles for all params requiring data
if(!is.null(gcamdata_folder)){
if(dir.exists(gcamdata_folder)){
# Get list of relevant gcamdata files for selected params
(paramQueryMap %>%
dplyr::filter(gcamdata != "no",
param %in% paramsSelectx))$gcamdata %>%
unlist() %>%
unique() ->
gcamdata_filenames; gcamdata_filenames
# Read in each file needed and assign to list and rename the list item
gcamdata_files <- list()
if(!is.null(gcamdata_filenames)){
count = 1
for(i in 1:length(gcamdata_filenames)){
if(!file.exists(paste0(gcamdata_folder, gsub(".csv","",gcamdata_filenames[[i]]), ".csv"))){
params_remove <- (paramQueryMap %>% dplyr::filter(grepl(gcamdata_filenames[[i]], gcamdata)))$param
rlang::warn(paste0("File: ", gcamdata_filenames[[i]],
" does not exist so skipping file and related param ",
(paramQueryMap %>% dplyr::filter(grepl(gcamdata_filenames[[i]], gcamdata)))$param,
"."))
paramsSelectx <- paramsSelectx[!paramsSelectx %in% params_remove]
} else {
gcamdata_file_i <- tibble::as_tibble(utils::read.csv(paste0(gcamdata_folder, gsub(".csv","",gcamdata_filenames[[i]]), ".csv"), comment.char = "#"))
gcamdata_files[[count]] <- gcamdata_file_i
names(gcamdata_files)[[count]] <- gcamdata_filenames[[i]]
count = count + 1
}
}
}
names(gcamdata_files)
}
}
} # Close Read in all raw gcamdata base and gcam folder data.
#.....................
# Collect and format selected parameters
#.....................
# Check if any of the selected parameters are available in the GCAM data
if(any(paramsSelectx %in% paramsSelectAll)){
datax <- tibble::tibble()
if(T){
queriesx <- queriesx[queriesx %in% queries]
print(queriesx)
# Electricity ------------------------------------------
# elec_heat_rate_BTUperkWh
paramx<-"elec_heat_rate_BTUperkWh"
if(any(c(paramx,"elec_heat_rate_MBTUperMWh") %in% paramsSelectx)){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "elec coeff"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect))
}
# Check
#tbl %>% dplyr::filter(sector...6=="gas (CT) (cooling pond)",region=="CO")
tbl_sector_names <- names(tbl)[grepl("^sector",names(tbl))] %>% sort()
tbl <- tbl %>%
dplyr::rename(sector1=tbl_sector_names[1],
sector2=tbl_sector_names[2])
# Set years and vintages to appropriate values
tbl <- tbl %>%
dplyr::mutate(vint_year = as.numeric(gsub("vintage=","",`io-coefficient`))) %>%
dplyr::filter(vint_year <= year) %>%
dplyr::mutate(year = dplyr::case_when(year<vint_year~vint_year,
TRUE~year)) %>%
#dplyr::filter(!grepl("pre_1970|1970s|1980s|1990s|2010s|2000s|retire",sector2)) %>%# remove secondary inputs
dplyr::filter(!grepl("backup", input),
!grepl("credits", input),
!grepl("water", input))
# Separate out rows with single values
tbl_singles <- tbl %>%
dplyr::select(-vint_year,-`io-coefficient`) %>% # To be reset later
dplyr::group_by(Units, scenario, region, sector1, sector2, input) %>%
summarize(count = n()) %>%
filter(count == 1); tbl_singles
tbl_single <- tbl %>%
merge(tbl_singles) %>%
dplyr::select(-count); tbl_single
# Separate out rows with multiple values
tbl_multi <- tbl %>%
dplyr::anti_join(tbl_singles); tbl_multi
# Extrapolate and copy out missing values for tbl_single
tbl_single_expanded <- tbl_single %>%
dplyr::select(-vint_year,-`io-coefficient`, -value) %>% # To be reset later
dplyr::group_by(Units, scenario, region, sector1, sector2, input) %>%
tidyr::complete(year = seq(2010, 2100, 5)) %>%
dplyr::left_join(tbl_single %>% dplyr::select(-year,-vint_year,-`io-coefficient`))%>%
dplyr::ungroup() %>%
dplyr::mutate(vint_year=year,`io-coefficient`=paste0("vintage=",year));
tbl_single_expanded %>% as.data.frame() %>% dplyr::arrange(region, year)
# Check
# tbl %>% dplyr::filter(region=="FL",sector2=="biomass (conv) (cooling pond)")
# Extrapolate and fill out missing values
tbl_multi_expanded<- tbl_multi %>%
dplyr::select(-vint_year,-`io-coefficient`) %>% # To be reset later
dplyr::group_by(Units, scenario, region, sector1, sector2, input) %>%
tidyr::complete(year = seq(2010, 2100, 5),fill = list(value = NA)) %>%
dplyr::mutate(value = ifelse(is.na(value), approx(year, value, xout = year, rule=2,method = "linear", ties = "mean")$y, value)) %>%
dplyr::ungroup() %>%
dplyr::mutate(vint_year=year,`io-coefficient`=paste0("vintage=",year));
tbl_multi_expanded %>% as.data.frame() %>% dplyr::arrange(region, year)
# Combine back into single tbl
tbl <- tbl_multi_expanded %>%
dplyr::bind_rows(tbl_single_expanded);
# Missing Regions ---------------------------
# Expand out to all missing regions
tbl_regions_expanded_na <- tbl %>%
dplyr::select(-vint_year,-`io-coefficient`) %>% # To be reset later
dplyr::group_by(Units, scenario, sector1, sector2, year, input) %>%
tidyr::complete(region = unique(tbl$region),fill = list(value = NA)) %>%
dplyr::filter(is.na(value)); tbl_regions_expanded_na
# Take mean across remaining regions
tbl_regions_mean <- tbl %>%
dplyr::select(-vint_year,-`io-coefficient`, -region) %>% # To be reset later
dplyr::group_by(Units, scenario, sector1, sector2, year, input) %>%
dplyr::summarize(value=mean(value)); tbl_regions_mean
# Assign regional means to missing regional values
tbl_regions_expanded <- tbl_regions_expanded_na %>%
dplyr::select(-value) %>%
dplyr::left_join(tbl_regions_mean)%>%
dplyr::mutate(vint_year=year,`io-coefficient`=paste0("vintage=",year)); tbl_regions_expanded
# Join back into main tbl
tbl <- tbl %>%
dplyr::bind_rows(tbl_regions_expanded)
# Check
# tbl %>% dplyr::filter(year %in% c(2025),sector2=="biomass (conv) (cooling pond)" )
# tbl %>% dplyr::filter(region=="ND",year %in% c(2025),sector2=="biomass (conv) (cooling pond)" )
# tbl %>% dplyr::filter(sector2=="gas (CT) (cooling pond)",grepl("gas",input),year ==2025,region=="CO")
# Expand 2015 vintage to exist in future years if it doesnt exist already
# For each future year expand out:
unique_years <- tbl$year%>%unique()%>%sort(); unique_years
unique_years <- unique_years[unique_years>=2015 & unique_years<2100]; unique_years
for(year_i in unique_years){
rlang::inform(paste0("Expanding vintages for year:",year_i," for elec_heat_rate_BTUperkWh..."))
if(nrow(tbl %>% dplyr::filter(vint_year==year_i & year>year_i))==0){
tbl1 <- tbl %>% dplyr::filter(vint_year==year_i); tbl1
unique_combinations <- unique(tbl1[, c("Units", "scenario", "region", "sector1", "sector2", "input", "io-coefficient", "vint_year")]) %>%
dplyr::mutate(keep=1); unique_combinations;
unique_values <- unique(tbl1[, c("Units", "scenario", "region", "sector1", "sector2", "input", "io-coefficient", "vint_year","value")]); unique_values;
tbl2 <- tbl1 %>%
dplyr::select(-value) %>%
tidyr::complete(year=seq(year_i,2100,5), Units, scenario, region, sector1, sector2, input, `io-coefficient`, vint_year) %>%
dplyr::left_join(unique_combinations)%>%
dplyr::filter(keep==1) %>%
dplyr::left_join(unique_values); tbl2
tbl <- tbl %>%
dplyr::bind_rows(tbl2 %>% dplyr::select(-keep)) %>%
unique(); tbl
} else {rlang::inform(paste0("For year ",year_i," no missing vintages in future years for elec_heat_rate_BTUperkWh."))}
rlang::inform(paste0("Expansion of vintages for year:",year_i," for elec_heat_rate_BTUperkWh complete."))
}
tbl <- tbl %>%
dplyr::mutate(param = paramx,
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
subRegion=region,
region = dplyr::if_else(region %in% gcamextractor::regions_US52, "USA", region),
scenario = scenNewNames,
value = (value*gcamextractor::convert$conv_BTU_per_kWh),
units = "Heat Rate (BTU per kWh)",
vintage = gsub("vintage=", "Vint_",`io-coefficient`),
x = year,
xLabel = "Year",
aggregate = "mean",
class1 = dplyr::case_when(grepl("CSP_resource",input)~"solar",
grepl("PV_resource",input)~"solar",
grepl("nuclear",input)~"nuclear",
grepl("wind",input)~"wind",
grepl("oil",input)~"refined liquids",
grepl("refined",input)~"refined liquids",
grepl("biomass",input)~"biomass",
grepl("coal",input)~"coal",
grepl("gas",input)~"gas",
TRUE~input),
classLabel1 = "subsector",
classPalette1 = "pal_all",
class2 = sector2,
classLabel2 = "technology",
classPalette2 = "pal_all")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value)) %>%
dplyr::mutate(value = dplyr::if_else(value==3412,0,value))
# Check
# tbl %>% dplyr::filter(x %in% c(2020,2025), class2=="gas (CC) (cooling pond)", subRegion=="DC", grepl("gas",class1))%>%as.data.frame()
if(any(grepl("^cerf$|^go$",paramsSelect,ignore.case = T))){
tbl <- tbl %>%
dplyr::filter(grepl("^USA$",region,ignore.case = T))}
tbl_heat_rate_BTUperkWh <- tbl
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}
}
# elec_heat_rate_BTUperkWh
paramx<-"elec_heat_rate_MBTUperMWh"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "elec coeff"
if (queryx %in% queriesx) {
tbl <- tbl_heat_rate_BTUperkWh %>%
dplyr::mutate(param = paramx,
value = value/1000,
units = "Heat Rate (MBTU per MWh)")
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}
}
## elec_cap_usa_GW =========================================
# elec capacity by tech and vintage
paramx<-"elec_cap_usa_GW"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "elec capacity by tech and vintage"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect))
}
tbl <- tbl %>%
dplyr::mutate(param = paramx,
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = "EJ-capacity",
origX = year,
subRegion=region,
region = dplyr::if_else(region %in% gcamextractor::regions_US52, "USA", region),
scenario = scenNewNames,
value = value*gcamextractor::convert$conv_EJ_to_GW,
units = "GW",
vintage = paste("Vint_",stringr::str_sub(technology,-4,-1), sep = ""),
technology = stringr::str_sub(technology,0,-11),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = subsector,
classLabel1 = "subsector",
classPalette1 = "pal_all",
class2 = technology,
classLabel2 = "technology",
classPalette2 = "pal_all")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
tbl_var_om <- tbl
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## elec_variable_om_2015USDperMWh ============================================
# Variable OnM costs electricity generation
paramx<-"elec_variable_om_2015USDperMWh"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "elec operating costs by tech and vintage"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
if("region" %in% names(tbl)){
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect))
} else {
tbl <- tbl %>%
dplyr::mutate(region = "region")
}
}
tbl <- tbl %>%
dplyr::mutate(param = paramx,
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = "1975USD/GJ",
origX = year,
subRegion=region,
region = dplyr::if_else(region %in% gcamextractor::regions_US52, "USA", region),
scenario = scenNewNames,
value = (value*gcamextractor::convert$conv_USD_1975_2015/gcamextractor::convert$conv_GJ_to_MWh),
units = "OnM Cost (2015 USD/MWh)",
vintage = paste("Vint_",stringr::str_sub(technology,-4,-1), sep = ""),
technology = stringr::str_sub(technology,0,-11),
x = year,
xLabel = "Year",
aggregate = "mean",
class1 = subsector,
classLabel1 = "subsector",
classPalette1 = "pal_all",
class2 = technology,
classLabel2 = "technology",
classPalette2 = "pal_all")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
tbl_var_om <- tbl
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## elec_variable_om_escl_rate_fraction =======================================
# Variable OnM escalation rate costs electricity generation
paramx<-"elec_variable_om_escl_rate_fraction"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "elec operating costs by tech and vintage"
if (queryx %in% queriesx) {
tbl <- tbl_var_om %>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, xLabel,units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits) %>%
dplyr::mutate(param = paramx,
value_old = value,
lag_val = dplyr::lag(value),
value = round(((value - dplyr::lag(value)) / dplyr::lag(value)),4),
units = "OnM Cost Escalation Rate (fraction)") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
}
}
## elec_fuel_price_2015USDperMBTU ============================================
# Fuel price
paramx<-"elec_fuel_price_2015USDperMBTU"
if((any(paramx %in% paramsSelectx) | any(paramsSelectx == "elec_fuel_price_escl_rate_fraction"))){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "prices by sector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
if("region" %in% names(tbl)){
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect))
} else {
tbl <- tbl %>%
dplyr::mutate(region = "region")
}
}
# Regional Biomass reported at State Level
tbl_bio <- tbl %>%
dplyr::filter(sector %in% c("regional biomass")) %>%
dplyr::filter(region %in% gcamextractor::regions_US52); tbl_bio
# Fossil fuels reported at Grid Region Level
tbl_fossil <- tbl %>%
dplyr::filter(sector %in% c("refined liquids industrial",
"regional coal",
"wholesale gas")) %>%
dplyr::rename(grid_region="region") %>%
dplyr::left_join(gcamextractor::map_state_to_gridregion, by="grid_region") %>%
dplyr::filter(!is.na(state)) %>%
dplyr::rename(region=state) %>%
dplyr::select(-grid_region,-country); tbl_fossil
tbl_comb <- tbl_bio %>%
dplyr::bind_rows(tbl_fossil) %>%
dplyr::mutate(param = paramx,
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = "1975USD/GJ",
origX = year,
subRegion=region,
region = dplyr::if_else(region %in% gcamextractor::regions_US52, "USA", region),
scenario = scenNewNames,
value = (value*gcamextractor::gdp_deflator(2015,1975)/gcamextractor::convert$conv_GJ_to_MBTU),
units = "Fuel Cost (2015 USD/MBTU)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "mean",
class1 = sector,
classLabel1 = "sector",
classPalette1 = "pal_all",
class2 = "class2",
classLabel2 = "class2",
classPalette2 = "pal_all")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
# Expand fuel price out to related techs
# Check if all required files are present
(paramQueryMap %>%
dplyr::filter(param %in% paramx))$gcamdata %>%
unlist() %>%
unique() -> gcamdata_files_needed
gcamdata_files_needed <- gcamdata_files_needed[!gcamdata_files_needed %in% "no"]
if(!is.null(gcamdata_folder)){
if(dir.exists(gcamdata_folder)){
for(file_i in gcamdata_files_needed){
file_ix <- paste0(gcamdata_folder, "/", file_i, ".csv")
if(!file.exists(file_ix)){
rlang::inform(paste0("File needed does not exist: ", file_ix))
rlang::inform(paste0("Some results may be missing."))
}
}
}
}
if(!is.null(gcamdata_files)){
if(
("/inst/extdata/gcam-usa/calibrated_techs_dispatch_usa" %in% names(gcamdata_files)) &
("/inst/extdata/gcam-usa/A23.elec_tech_mapping_cool" %in% names(gcamdata_files))){
# Read in additional files
add_techs <- tibble::as_tibble(gcamdata_files[["/inst/extdata/gcam-usa/calibrated_techs_dispatch_usa"]]) %>%
dplyr::select(class1 = minicam.energy.input,
class2a = technology) %>%
dplyr::left_join(tibble::as_tibble(gcamdata_files[["/inst/extdata/gcam-usa/A23.elec_tech_mapping_cool"]]) %>%
dplyr::select(class2a=technology,
class2 = to.technology)) %>%
dplyr::select(class1,class2) %>%
dplyr::filter(class1!=""); add_techs
tbl_comb <- tbl_comb %>%
dplyr::select(-class2)%>%
dplyr::left_join(add_techs) %>%
dplyr::mutate(classLabel1="fuel",
classLabel2="technology")
}}
if(any(grepl("^cerf$|^go$",paramsSelect,ignore.case = T))){
tbl_comb <- tbl_comb %>%
dplyr::filter(grepl("^USA$",region,ignore.case = T))}
tbl_fuel_price <- tbl_comb
datax <- dplyr::bind_rows(datax, tbl_comb)
} else {
tbl_fuel_price <- NULL
}}
## elec_fuel_price_escl_rate_fraction ========================================
# Fuel price escalation rate
paramx<-"elec_fuel_price_escl_rate_fraction"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
if(!is.null(tbl_fuel_price )){
tbl <- tbl_fuel_price %>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, xLabel,units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits) %>%
dplyr::mutate(param = paramx,
value_old = value,
lag_val = dplyr::lag(value),
value = round(((value - dplyr::lag(value)) / dplyr::lag(value)),4),
units = "Fuel Price Escalation Rate (fraction)") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
}
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}
## elec_capacity_factor_usa_in ===============================================
# Capacity Factor USA Input
paramx<-"elec_capacity_factor_usa_in"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "elec investment capacity factor"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect))
}
tbl_sector_names <- names(tbl)[grepl("^sector",names(tbl))] %>% sort()
tbl <- tbl %>%
dplyr::rename(sector1=tbl_sector_names[1],
sector2=tbl_sector_names[2])
tbl <- tbl %>%
dplyr::filter(region %in% gcamextractor::regions_US52) %>%
dplyr::mutate(param = paramx,
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
subRegion=region,
region = "USA",
scenario = scenNewNames,
units = "Capacity Factor",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "mean",
class1 = sector1,
classLabel1 = "investment_segment",
classPalette1 = "pal_all",
class2 = sector2,
classLabel2 = "technology",
classPalette2 = "pal_all")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## elec_lifetime_scurve_yr ===================================================
# Lifetime S Curve Parameters
if(!is.null(gcamdata_folder)){
paramx<-"elec_lifetime_scurve_yr"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# Check if all required files are present
(paramQueryMap %>%
dplyr::filter(param %in% paramx))$gcamdata %>%
unlist() %>%
unique() -> gcamdata_files_needed
gcamdata_files_needed <- gcamdata_files_needed[!gcamdata_files_needed %in% "no"]
if(!is.null(gcamdata_folder)){
if(dir.exists(gcamdata_folder)){
for(file_i in gcamdata_files_needed){
file_ix <- paste0(gcamdata_folder, "/", file_i, ".csv")
if(!file.exists(file_ix)){
rlang::inform(paste0("File needed does not exist: ", file_ix))
rlang::inform(paste0("Some results may be missing."))
}
}
}
}
# US S-Curve
tibble::as_tibble(gcamdata_files[["/outputs/L2244.TechSCurve_nuc_gen2_USA"]]) %>%
dplyr::select(subRegion = "region",
class1 = "subsector",
class2 = "technology",
year,lifetime, steepness, half.life) %>%
dplyr::mutate(classLabel1 = "subsector",
classLabel2 = "technology",
param = paramx,
region = "USA") %>%
dplyr::bind_rows(tibble::as_tibble(gcamdata_files[["/outputs/L223.TechSCurve_Dispatch"]]) %>%
dplyr::select(subRegion = "region",
class1 = "subsector",
class2 = "technology",
year,lifetime,steepness, half.life) %>%
dplyr::mutate(classLabel1 = "subsector",
classLabel2 = "technology",
param = paramx,
region = "USA")) %>%
dplyr::bind_rows(tibble::as_tibble(gcamdata_files[["/outputs/L2241.TechSCurve_coalret_vintage_dispatch_gcamusa"]]) %>%
dplyr::select(subRegion = "region",
class1 = "subsector",
class2 = "technology",
year,lifetime,steepness, half.life) %>%
dplyr::mutate(classLabel1 = "subsector",
classLabel2 = "technology",
param = paramx,
region = "USA")) -> elec_lifetime_scurve_us
# Global S-Curve
tibble::as_tibble(gcamdata_files[["/outputs/L2233.GlobalTechSCurve_elec_cool"]]) %>%
dplyr::select(class1 = "subsector.name",
class2 = "technology",
year,lifetime, steepness, half.life) %>%
dplyr::mutate(classLabel1 = "subsector",
classLabel2 = "technology",
param = paramx,
region = "Global",
subRegion = "Global") -> elec_lifetime_scurve_global
# Combined S-Curve
elec_lifetime_scurve_comb <- elec_lifetime_scurve_us %>%
dplyr::bind_rows(elec_lifetime_scurve_global)
# Collapse into elec_lifetime_scurve_yr param
elec_lifetime_scurve_comb_long <- elec_lifetime_scurve_comb %>%
dplyr::mutate(param = paramx,
classLabel1 = "scurve_param") %>%
dplyr::select(-class1)%>%
tidyr::gather(key="class1",value="value",
-year,-subRegion,-class2,-classLabel1,
-classLabel2,-param,-region);
elec_lifetime_scurve_comb_long
tbl <- elec_lifetime_scurve_comb_long %>%
dplyr::mutate(param = paramx,
sources = "Sources",
origScen = "origScen",
origQuery = "origQuery",
origValue = value,
origUnits = "units",
origX = year,
scenario = "scenario",
units = class1,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "mean",
classPalette1 = "pal_all",
classPalette2 = "pal_all")%>%
dplyr::select(scenario, region, subRegion,param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
}
}
## elec_lifetime_yr ==========================================================
# Lifetime Parameters
if(!is.null(gcamdata_folder)){
paramx<-"elec_lifetime_yr"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# Check if all required files are present
(paramQueryMap %>%
dplyr::filter(param %in% paramx))$gcamdata %>%
unlist() %>%
unique() -> gcamdata_files_needed
gcamdata_files_needed <- gcamdata_files_needed[!gcamdata_files_needed %in% "no"]
if(dir.exists(gcamdata_folder)){
for(file_i in gcamdata_files_needed){
file_ix <- paste0(gcamdata_folder, "/", file_i, ".csv")
if(!file.exists(file_ix)){
rlang::inform(paste0("File needed does not exist: ", file_ix))
rlang::inform(paste0("Some results may be missing."))
}
}
}
# US S-Curve
tibble::as_tibble(gcamdata_files[["/outputs/L223.TechLifetime_Dispatch"]]) %>%
dplyr::select(subRegion = "region",
class1 = "subsector",
class2 = "technology",
year,lifetime) %>%
dplyr::mutate(classLabel1 = "subsector",
classLabel2 = "technology",
param = paramx,
region = "USA") %>%
dplyr::bind_rows(tibble::as_tibble(gcamdata_files[["/outputs/L2242.TechLifetime_hydro"]]) %>%
dplyr::select(subRegion = "region",
class1 = "subsector",
class2 = "technology",
year,lifetime) %>%
dplyr::mutate(classLabel1 = "subsector",
classLabel2 = "technology",
param = paramx,
region = "USA")) -> elec_lifetime_us
# Global S-Curve
tibble::as_tibble(gcamdata_files[["/outputs/L2233.GlobalTechLifetime_elec_cool"]]) %>%
dplyr::select(class1 = "subsector.name",
class2 = "technology",
year,lifetime) %>%
dplyr::mutate(classLabel1 = "subsector",
classLabel2 = "technology",
param = paramx,
region = "Global",
subRegion = "Global") %>%
dplyr::bind_rows(tibble::as_tibble(gcamdata_files[["/outputs/L2233.GlobalIntTechLifetime_elec_cool"]]) %>%
dplyr::select(class1 = "subsector.name",
class2 = "technology",
year,lifetime) %>%
dplyr::mutate(classLabel1 = "subsector",
classLabel2 = "technology",
param = paramx,
region = "Global",
subRegion = "Global"))-> elec_lifetime_global
# Combined S-Curve
elec_lifetime_comb <- elec_lifetime_us %>%
dplyr::bind_rows(elec_lifetime_global) %>%
dplyr::rename(value=lifetime)
tbl <- elec_lifetime_comb %>%
dplyr::mutate(param = paramx,
sources = "Sources",
origScen = "origScen",
origQuery = "origQuery",
origValue = value,
origUnits = "year",
origX = year,
scenario = "scenario",
units = "lifetime (yr)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "mean",
classPalette1 = "pal_all",
classPalette2 = "pal_all")%>%
dplyr::select(scenario, region, subRegion,param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
}
}
## elec_fuel_co2_content_tonsperMBTU =========================================
# Fuel CO2 Content
if(!is.null(gcamdata_folder)){
paramx<-"elec_fuel_co2_content_tonsperMBTU"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# Check if all required files are present
(paramQueryMap %>%
dplyr::filter(param %in% paramx))$gcamdata %>%
unlist() %>%
unique() -> gcamdata_files_needed
gcamdata_files_needed <- gcamdata_files_needed[!gcamdata_files_needed %in% "no"]
if(dir.exists(gcamdata_folder)){
for(file_i in gcamdata_files_needed){
file_ix <- paste0(gcamdata_folder, "/", file_i, ".csv")
if(!file.exists(file_ix)){
rlang::inform(paste0("File needed does not exist: ", file_ix))
rlang::inform(paste0("Some results may be missing."))
}
}
}
# Global CO2 content/National for US
tibble::as_tibble(gcamdata_files[["/outputs/L202.CarbonCoef"]]) %>%
unique() %>%
dplyr::left_join(gcamextractor::map_state_to_gridregion %>% dplyr::select(region=country,subRegion=state)) %>%
dplyr::select(region,
class1 = PrimaryFuelCO2Coef.name,
origValue = PrimaryFuelCO2Coef,
subRegion) %>%
dplyr::mutate(classLabel1 = "fuel",
classLabel2 = "class2",
param = paramx,
subRegion = dplyr::if_else(is.na(subRegion),region,subRegion),
origUnits = "kg C per GJ") %>%
# US CO2 content
dplyr::bind_rows(tibble::as_tibble(gcamdata_files[["/outputs/L222.CarbonCoef_en_USA"]]) %>%
dplyr::select(region,
class1 = PrimaryFuelCO2Coef.name,
origValue = PrimaryFuelCO2Coef) %>%
dplyr::mutate(classLabel1 = "fuel",
classLabel2 = "class2",
param = paramx,
subRegion = region,
region = "USA",
origUnits = "kg C per GJ")) %>%
# US CO2 carbon content
dplyr::bind_rows(tibble::as_tibble(gcamdata_files[["/outputs/L2261.CarbonCoef_bio_USA"]]) %>%
dplyr::filter(region!="USA") %>%
dplyr::select(region,
class1 = PrimaryFuelCO2Coef.name,
origValue = PrimaryFuelCO2Coef) %>%
dplyr::mutate(classLabel1 = "fuel",
classLabel2 = "class2",
param = paramx,
subRegion = region,
region = "USA",
origUnits = "kg C per GJ")) -> tbl_comb
tbl <- tbl_comb %>%
dplyr::mutate(param = paramx,
value = ((origValue * gcamextractor::convert$conv_C_CO2 * gcamextractor::convert$conv_kg_Ton) /
(gcamextractor::convert$conv_GJ_to_MWh*gcamextractor::convert$conv_MWh_to_MBTU)),
sources = "Sources",
origScen = "origScen",
origQuery = "origQuery",
origX = NA_real_,
scenario = "scenario",
units = "Fuel CO2 Content (Tons per MBTU)",
vintage = "vintage",
x = NA_real_,
xLabel = "Year",
aggregate = "mean",
class2 = "class2",
classPalette1 = "pal_all",
classPalette2 = "pal_all") %>%
dplyr::filter(!grepl("remove",subRegion, ignore.case = T)) %>%
dplyr::select(scenario, region, subRegion,param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
# Read in additional files
if(!is.null(gcamdata_files)){
if(
("/inst/extdata/gcam-usa/calibrated_techs_dispatch_usa"%in% names(gcamdata_files)) &
("/inst/extdata/gcam-usa/A23.elec_tech_mapping_cool" %in% names(gcamdata_files))){
add_techs <- tibble::as_tibble(gcamdata_files[["/inst/extdata/gcam-usa/calibrated_techs_dispatch_usa"]]) %>%
dplyr::select(class1 = minicam.energy.input,
class2a = technology) %>%
dplyr::left_join(tibble::as_tibble(gcamdata_files[["/inst/extdata/gcam-usa/A23.elec_tech_mapping_cool"]]) %>%
dplyr::select(class2a=technology,
class2 = to.technology)) %>%
dplyr::select(class1,class2) %>%
dplyr::filter(class1!=""); add_techs
tbl <- tbl %>%
dplyr::select(-class2)%>%
dplyr::left_join(add_techs) %>%
dplyr::mutate(classLabel1="fuel",
classLabel2="technology")%>%
dplyr::filter(!is.na(class2))
}}
if(any(grepl("^cerf$|^go$",paramsSelect,ignore.case = T))){
tbl <- tbl %>%
dplyr::filter(grepl("^USA$",region,ignore.case = T))}
datax <- dplyr::bind_rows(datax, tbl)
}
}
## elec_carbon_capture_rate_fraction =========================================
# Carbon Capture Rate Fraction
if(!is.null(gcamdata_folder)){
paramx<-"elec_carbon_capture_rate_fraction"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# Check if all required files are present
(paramQueryMap %>%
dplyr::filter(param %in% paramx))$gcamdata %>%
unlist() %>%
unique() -> gcamdata_files_needed
gcamdata_files_needed <- gcamdata_files_needed[!gcamdata_files_needed %in% "no"]
if(dir.exists(gcamdata_folder)){
for(file_i in gcamdata_files_needed){
file_ix <- paste0(gcamdata_folder, "/", file_i, ".csv")
if(!file.exists(file_ix)){
rlang::inform(paste0("File needed does not exist: ", file_ix))
rlang::inform(paste0("Some results may be missing."))
}
}
}
# US carbon capture
tibble::as_tibble(gcamdata_files[["/outputs/L223.TechCarbonCapture_Dispatch"]]) %>%
dplyr::select(subRegion = region,
class1 = subsector,
class2 = technology,
origValue = remove.fraction,
year) %>%
dplyr::mutate(classLabel1 = "subsector",
classLabel2 = "technology",
param = paramx,
origUnits = "Carbon Capture Rate (fraction)",
region = "USA") %>%
# US CO2 content
dplyr::bind_rows(tibble::as_tibble(gcamdata_files[["/outputs/L2233.GlobalTechCapture_elec_cool"]]) %>%
dplyr::select(class1 = subsector.name,
class2 = technology,
origValue = remove.fraction,
year) %>%
dplyr::mutate(class1 = gsub(" \\(.*","",class1),
classLabel1 = "subsector",
classLabel2 = "technology",
param = paramx,
subRegion = "Global",
region = "Global",
origUnits = "Carbon Capture Rate (fraction)")) -> tbl_comb
tbl <- tbl_comb %>%
dplyr::mutate(param = paramx,
value = origValue,
sources = "Sources",
origScen = "origScen",
origQuery = "origQuery",
origX = year,
scenario = "scenario",
units = "Carbon Capture Rate (fraction)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "mean",
classPalette1 = "pal_all",
classPalette2 = "pal_all") %>%
dplyr::select(scenario, region, subRegion,param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
tbl_carbon_capture_rate <- tbl
datax <- dplyr::bind_rows(datax, tbl)
}
}
## elec_carbon_capture_escl_rate_fraction ====================================
# Carbon Capture Escalaction Rate Fraction
paramx<-"elec_carbon_capture_escl_rate_fraction"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
if(!is.null(tbl_carbon_capture_rate)){
tbl <- tbl_carbon_capture_rate %>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, xLabel,units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits) %>%
dplyr::mutate(param = paramx,
value_old = value,
lag_val = dplyr::lag(value),
value = round(((value - dplyr::lag(value)) / dplyr::lag(value)),4),
units = "Carbon Capture Escalation Rate (fraction)") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
}
}
## elecFinalBySecTWh =========================================================
paramx<-"elecFinalBySecTWh"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "inputs by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
# USA
tblUSA <- tbl %>%
dplyr::filter(grepl("domestic supply",input),
region %in% gcamextractor::regions_US52,
scenario %in% scenOrigNames)%>%
dplyr::mutate(
class2=sector,
sector=dplyr::case_when(
grepl("comm |resid |elect_td_bld",sector,ignore.case = T)~"building",
grepl("elect_td_trn",sector,ignore.case = T)~"transport",
grepl("elect_td_ind",sector,ignore.case = T)~"industry",
TRUE~sector))%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "elecFinalBySecTWh",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value * gcamextractor::convert$conv_EJ_to_TWh,
units = "Final Electricity by Sector (TWh)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "Sector",
classPalette1 = "pal_all",
classLabel2 = "subsector",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
# CORE
tblCORE <- tbl %>%
dplyr::filter(!region %in% c(gcamextractor::regions_US52),
scenario %in% scenOrigNames,
sector %in% c("elect_td_bld","elect_td_trn","elect_td_ind"))%>%
dplyr::mutate(
sector=dplyr::case_when(
grepl("elect_td_bld",sector,ignore.case = T)~"building",
grepl("elect_td_trn",sector,ignore.case = T)~"transport",
grepl("elect_td_ind",sector,ignore.case = T)~"industry",
TRUE~sector))%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "elecFinalBySecTWh",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value * gcamextractor::convert$conv_EJ_to_TWh,
units = "Final Electricity by Sector (TWh)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "Sector",
classPalette1 = "pal_all",
class2 = sector,
classLabel2 = "subsector",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tblUSA,tblCORE)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## elecFinalByFuelTWh ========================================================
paramx<-"elecFinalByFuelTWh"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "Final energy by detailed end-use sector and fuel"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(grepl("elect",input))%>%
dplyr::filter(!grepl("trn",input))%>%
dplyr::mutate(input=gsub("elect\\_td\\_ind","electricity",input),
input=gsub("elect\\_td\\_bld","electricity",input),
input=gsub("elect\\_td\\_trn","electricity",input),
input=gsub("delivered\\scoal","coal",input),
input=gsub("refined\\sliquids\\senduse","oil",input),
input=gsub("delivered\\sbiomass","biomass",input),
input=gsub("H2\\senduse","hydrogen",input),
input=gsub("refined\\sliquids industrial","oil",input),
input=gsub("wholesale\\sgas","gas",input),
input=gsub("traditional\\sbiomass","biomass",input),
input=gsub("delivered\\sgas","gas",input),
input=gsub("district\\sheat","Other",input))%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "elecFinalByFuelTWh",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value * gcamextractor::convert$conv_EJ_to_TWh,
units = "Final Electricity by Fuel (TWh)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = input,
classLabel1 = "Fuel",
classPalette1 = "pal_all",
class2 = sector,
classLabel2 = "Sector",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## elecConsumByDemandSectorTWh ===============================================
paramx <- "elecConsumByDemandSectorTWh"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "elec consumption by demand sector"
if(queryx %in% queriesx){
tbl <- rgcam::getQuery(dataProjLoaded, queryx)
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::mutate(input=gsub("elect\\_td\\_ind","industry",input),
input=gsub("elect\\_td\\_bld","building",input),
input=gsub("elect\\_td\\_trn","transportation",input))%>%
dplyr::rename(aggSector = input) %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "elecConsumByDemandSectorTWh",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value * gcamextractor::convert$conv_EJ_to_TWh,
units = "Electricity Consumption by Sector (TWh)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = aggSector,
classLabel1 = "Aggregated Sector",
classPalette1 = "pal_all",
class2 = sector,
classLabel2 = "Sector",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
}
}
## elecLoadBySegmentGW =======================================================
# Calculate electricity load by US segments by grid and spread to states
# Electricity Load (GW) by Segment and State
paramx<-"elecLoadBySegmentGW"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "elec gen by segment (grid level)"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
gridregion <- gcamextractor::map_state_to_gridregion %>%
dplyr::rename(subRegion = state) %>%
dplyr::select(grid_region, subRegion)
map_all <- gridregion %>%
tidyr::expand(scenario = unique(tbl$scenario),
subRegion,
year = seq(min(tbl$year), max(tbl$year), 5),
units = "Electricity Load (GW)") %>%
dplyr::left_join(gridregion, by = 'subRegion')
if (any(!is.null(regionsSelect)) &&
(any(c("USA", gcamextractor::regions_US52, "All", "ALL", "all") %in% regionsSelect))) {
tbl <- tbl %>%
dplyr::filter(region %in% unique(gridregion$grid_region))
if(any(gcamextractor::regions_US52 %in% regionsSelect)){
tbl <- tbl %>%
dplyr::filter(region %in% gridregion$grid_region[gridregion$subRegion %in% regionsSelect])
}
}
# Expand fuel price out to related techs
# Check if all required files are present
(paramQueryMap %>%
dplyr::filter(param %in% paramx))$gcamdata %>%
unlist() %>%
unique() -> gcamdata_files_needed
gcamdata_files_needed <- gcamdata_files_needed[!gcamdata_files_needed %in% "no"]
if(!is.null(gcamdata_folder)){
if(dir.exists(gcamdata_folder)){
for(file_i in gcamdata_files_needed){
file_ix <- paste0(gcamdata_folder, "/", file_i, ".csv")
if(!file.exists(file_ix)){
rlang::inform(paste0("File needed does not exist: ", file_ix))
rlang::inform(paste0("Some results may be missing."))
}
}
}
}
if(!is.null(gcamdata_files[["/outputs/L102.load_segments_gcamusa"]])){
# Read in additional files
gen_hours <- tibble::as_tibble(gcamdata_files[["/outputs/L102.load_segments_gcamusa"]]) %>%
dplyr::select(grid_region, segment, hours)
tbl <- tbl %>%
dplyr::rename(grid_region = region) %>%
dplyr::left_join(gen_hours, by = c('grid_region', 'segment')) %>%
dplyr::mutate(origValue = value,
value = value * gcamextractor::convert$conv_EJ_to_GWh / hours,
units = "Electricity Load (GW)") %>%
dplyr::select(scenario, grid_region, year, segment, value, origValue, units)
tbl_states <- map_all %>%
dplyr::left_join(tbl,
by = c('scenario', 'grid_region', 'units', 'year')) %>%
dplyr::mutate(param = paramx,
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = origValue,
origUnits = "EJ",
origX = year,
subRegion=subRegion,
region = 'USA',
scenario = scenNewNames,
value = value,
units = units,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = segment,
classLabel1 = "segment",
classPalette1 = "pal_all",
class2 = "class2",
classLabel2 = "class2",
classPalette2 = "pal_all")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
} else {
tbl_states <- NULL
}
datax <- dplyr::bind_rows(datax, tbl_states)
} else {
# raise error?
}}
## elecByTechTWh =============================================================
paramx <- "elecByTechTWh"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
tbl<-tibble::tibble()
tblUSA<-tibble::tibble()
tblUSACogen<-tibble::tibble()
tblGCAMReg<-tibble::tibble()
#.............
# For GCAM USA no cogen
#.............
queryx <- "elec gen by gen tech USA"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>%
dplyr::filter(region %in% regionsSelect)
}
if (nrow(tbl)>0) {
tbl <- tbl %>%
dplyr::filter(region %in% gcamextractor::regions_US52)%>%
dplyr::filter(!sector %in% "industrial energy use")
}
tblUSA <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "elecByTechTWh",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value * gcamextractor::convert$conv_EJ_to_TWh,
units = "Electricity Generation by Fuel (TWh)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = subsector,
classLabel1 = "Fuel",
classPalette1 = "pal_all",
class2 = paste(technology,sector,sep=" "),
classLabel2 = "Technology",
classPalette2 = "pal_all")
}
#.............
# For GCAM USA cogen
#.............
# queryx <- "elec gen by gen tech cogen USA"
# if (queryx %in% queriesx) {
# tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
# if (any(!is.null(regionsSelect))) {
# tbl <- tbl %>%
# dplyr::filter(region %in% regionsSelect)
# }
# if (nrow(tbl)>0) {
# tbl <- tbl %>%
# dplyr::filter(region %in% gcamextractor::regions_US52)
# }
# tblUSACogen <- tbl %>%
# dplyr::filter(scenario %in% scenOrigNames)%>%
# dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
# dplyr::mutate(param = "elecByTechTWh",
# sources = "Sources",
# origScen = scenario,
# origQuery = queryx,
# origValue = value,
# origUnits = Units,
# origX = year, subRegion=region,
# scenario = scenNewNames,
# value = value * gcamextractor::convert$conv_EJ_to_TWh,
# units = "Electricity Generation by Fuel (TWh)",
# vintage = paste("Vint_", year, sep = ""),
# x = year,
# xLabel = "Year",
# aggregate = "sum",
# class1 = subsector,
# classLabel1 = "Fuel",
# classPalette1 = "pal_all",
# class2 = technology,
# classLabel2 = "Technology",
# classPalette2 = "pal_all")
# }
tblUSACogen <- tibble::tibble()
#....................
# GCAM other Regions
#........................
queryx <- "elec gen by gen tech and cooling tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>%
dplyr::filter(region %in% regionsSelect) %>%
dplyr::filter(!region %in% gcamextractor::regions_US52)
}
tblGCAMReg <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames,
Units == "EJ")%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "elecByTechTWh",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value * gcamextractor::convert$conv_EJ_to_TWh,
units = "Electricity Generation by Fuel (TWh)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = subsector,
classLabel1 = "Fuel",
classPalette1 = "pal_all",
class2 = technology,
classLabel2 = "Technology",
classPalette2 = "pal_all")
}else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}
if(nrow(tblUSA)>0 | nrow(tblUSACogen)>0 | nrow(tblGCAMReg)>0){
# Combine USA with others
commonNames = c(names(tblUSA),names(tblUSACogen),names(tblGCAMReg))%>%unique()
tbl <- tibble::tibble()
if(nrow(tblUSA)>0){tbl <- tbl %>% dplyr::bind_rows(tblUSA %>%
dplyr::select(commonNames[commonNames %in% names(tblUSA)]))}
if(nrow(tblUSACogen)>0){tbl <- tbl %>% dplyr::bind_rows(tblUSACogen %>%
dplyr::select(commonNames[commonNames %in% names(tblUSACogen)]))}
if(nrow(tblGCAMReg)>0){tbl <- tbl %>% dplyr::bind_rows(tblGCAMReg %>%
dplyr::select(commonNames[commonNames %in% names(tblGCAMReg)]))}
} # Check different tblUSA, tblUSACogen and tblGCAMReg
if(nrow(tbl)>0){
tbl <- tbl %>%
dplyr::mutate(class1=dplyr::case_when(class1=="rooftop_pv"~"solar",
TRUE~class1))%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::mutate(origQuery="origQuery") %>%
dplyr::group_by(scenario, region, subRegion, param, sources,class1,class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX) %>%
dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
tblelecByTechTWh<-tbl}
}
## elecCapByFuel =============================================================
# Capacity Calculation based on exogenous cap factors
paramx<-"elecCapByFuel"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
if(!is.null(tblelecByTechTWh)){
capfactors <- gcamextractor::capfactors
capfactors
tbl <- tblelecByTechTWh # Tibble
#rm(tblelecByTechTWh)
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::full_join(capfactors, by="class1")%>%
dplyr::mutate(param = "elecCapByFuel",
gcamCapacityFactor=cf1971to2100,
value = value*1000/(8760*gcamCapacityFactor),
origValue = value,
units = "Electricity Capacity by Fuel (GW)",
origUnits = units) %>%
dplyr::filter(!is.na(value))%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)
datax <- dplyr::bind_rows(datax, tbl)
} else {
if("elec gen by gen tech and cooling tech" %in% queriesSelectx){
#rlang::inform(paste("elecByTechTWh did not run so skipping param elecCapByFuel."))
}
}}
# Energy ---------------------------------------------------------------------
## energyFinalConsumByIntlShpAvEJ ============================================
paramx<-"energyFinalConsumByIntlShpAvEJ"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "transport final energy by mode and fuel"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect))
}
tbl <- tbl %>%
dplyr::filter(mode %in% c("International Aviation", "International Ship"))%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "energyFinalConsumByIntlShpAvEJ",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "Final Energy Intl. Av and Shp (EJ)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = mode,
classLabel1 = "Sector",
classPalette1 = "pal_all",
class2 = gsub(" enduse","",input),
classLabel2 = "Fuel",
classPalette2 = "pal_all")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
tblFinalNrgIntlAvShip <- tbl
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## energyFinalConsumBySecEJ ==================================================
paramx<-"energyFinalConsumBySecEJ"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "total final energy by aggregate sector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "energyFinalConsumBySecEJ",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "Final Energy by Sector (EJ)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = dplyr::case_when(
grepl("building|comm|resid",sector)~"building",
grepl("industr|alumin|iron and steel",sector)~"industry",
grepl("transport",sector)~"transport",
grepl("agricultural energy use|municipal|water", sector)~"other"),
classLabel1 = "Sector",
classPalette1 = "pal_all",
class2 = sector,
classLabel2 = "Subsector",
classPalette2 = "pal_all")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
if(!is.null(tblFinalNrgIntlAvShip)){
# Separat out Intl. Shipping and Aviation from Transport
tblTransport <- tbl%>%dplyr::filter(class1 %in% c("transportation","transport")) %>%
dplyr::mutate(class2="class2",classLabel2="classLabel2",classPalette2="classPalette2",
class1=dplyr::if_else(class1=="transportation","transport",class1)) %>%
dplyr::select(-origValue)# Subset Transport Sector
tblFinalNrgIntlAvShipMod <- tblFinalNrgIntlAvShip %>%
dplyr::mutate(param=unique(tblTransport$param),
sources=unique(tblTransport$sources),
origQuery=unique(tblTransport$origQuery),
origUnits=unique(tblTransport$origUnits),
units=unique(tblTransport$units),
xLabel=unique(tblTransport$xLabel),
aggregate=unique(tblTransport$aggregate),
class2=unique(tblTransport$class2),
classLabel2=unique(tblTransport$classLabel2),
classPalette2=unique(tblTransport$classPalette2),
classLabel1=unique(tblTransport$classLabel1),
classPalette1=unique(tblTransport$classPalette1))%>%
dplyr::select(-origValue)# Prepare in intl. transport in correct format
# Separate out Intl. Shipping and Aviation
tblSepTransportIntlAvShip <- tblTransport %>%
dplyr::bind_rows(tblFinalNrgIntlAvShipMod) %>%
tidyr::spread(key="class1",value="value") %>%
dplyr::mutate(transport=transport-`International Aviation`-`International Ship`)%>%
dplyr::rename(`transport intl av`=`International Aviation`,
`transport intl shp`=`International Ship`) %>%
tidyr::gather(key="class1",value="value",
-scenario, -region, -subRegion, -param, -sources, -class2, -x, -xLabel, -vintage, -units, -aggregate,
-classLabel1, -classPalette1, -classLabel2, -classPalette2,
-origScen,-origQuery,-origUnits,-origX)%>%
dplyr::mutate(origValue=value); tblSepTransportIntlAvShip%>%as.data.frame()
# Rbind Transport, Intl. Shipping and Aviation back to all other Final Energy types
tblMod<-tbl%>%dplyr::filter(class1!="transport") %>%
dplyr::bind_rows(tblSepTransportIntlAvShip) # Remove Transport sector from Original tbl
} else {
# rlang::inform(paste("tblFinalNrgIntlAvShip does not exist so skipping subset of final energy to remove intl. shipping and aviation."))
tblMod <- tbl
}
tblMod <- tblMod %>%
dplyr::mutate(class2 = dplyr::case_when(grepl("comm|resid|building",class1)~"building",
grepl("industry",class1)~"industry",
grepl("transport",class1)~"transport",
grepl("other", class1)~"other",
TRUE~class2)) %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tblMod)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## energyFinalConsumBySecEJNoFeedstock =======================================
paramx<-"energyFinalConsumBySecEJNoFeedstock"
# Total final energy by aggregate end-use sector not including industrial feedstocks
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "total final energy by sector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames,
sector != "industrial feedstocks")%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "energyFinalConsumBySecEJNoFeedstock",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "Final Energy by Sector (EJ)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = dplyr::case_when(
grepl("building|comm|resid",sector)~"building",
grepl("indus|cement|fert",sector)~"industry",
grepl("transport|trn",sector)~"transport",
T ~ sector),
classLabel1 = "Sector",
classPalette1 = "pal_all",
class2 = sector,
classLabel2 = "Subsector",
classPalette2 = "pal_all")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
}
}
## energyFinalSubsecBySectorBuildEJ ==========================================
paramx<-"energyFinalSubsecBySectorBuildEJ"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "building final energy by subsector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "energyFinalSubsecBySectorBuildEJ",
sector=gsub("comm\\scooling","Commercial CoolingHeating",sector),
sector=gsub("comm\\sheating","Commercial CoolingHeating",sector),
sector=gsub("comm\\sothers","Commercial Others",sector),
sector=gsub("resid\\scooling","Residential CoolingHeating",sector),
sector=gsub("resid\\sheating","Residential CoolingHeating",sector),
sector=gsub("resid\\sothers","Residential Others",sector),
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "Building Final Energy By Subsector (EJ)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "Sector",
classPalette1 = "pal_all",
class2 = subsector,
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## energyFinalByFuelEJ =======================================================
paramx<-"energyFinalByFuelEJ"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "Final energy by detailed end-use sector and fuel"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::filter(!grepl("trn",input))%>%
dplyr::mutate(input=dplyr::if_else(input=="biomass","bioenergy",input),
sector=gsub("process heat cement","industry",sector),
sector=gsub("cement","industry",sector),
sector=gsub("other industrial energy use","industry",sector),
sector=gsub("other industrial feedstocks","industry",sector),
sector=gsub("N fertilizer","industry",sector),
sector=gsub("alumina","industry",sector),
sector=gsub("aluminum","industry",sector),
sector=gsub("industrial wastewater treatment","industry",sector),
sector=gsub("industrial water abstraction","industry",sector),
sector=gsub("industrial water treatment","industry",sector),
sector=gsub("iron and steel","industry",sector),
sector=gsub("trn_aviation_intl","trans intl av",sector),
sector=gsub("trn_shipping_intl","trans intl shp",sector),
sector=replace(sector, stringr::str_detect(sector, "trn"), "transport"),
sector=gsub("comm cooling","building",sector),
sector=gsub("comm heating","building",sector),
sector=gsub("comm others","building",sector),
sector=gsub("resid cooling","building",sector),
sector=gsub("resid heating","building",sector),
sector=gsub("resid others","building",sector),
sector=gsub("agricultural energy use","other",sector),
sector=gsub("irrigation water abstraction","other",sector),
sector=gsub("desalinated water","other",sector),
sector=gsub("municipal wastewater treatment","other",sector),
sector=gsub("municipal water abstraction","other",sector),
sector=gsub("municipal water distribution","other",sector),
sector=gsub("municipal water treatment","other",sector),
input=gsub("elect\\_td\\_ind","electricity",input),
input=gsub("elect\\_td\\_bld","electricity",input),
input=gsub("elect\\_td\\_trn","electricity",input),
input=gsub("delivered coal","coal",input),
input=gsub("refined liquids enduse","liquids",input),
input=gsub("delivered biomass","biomass",input),
input=gsub("H2 enduse","hydrogen",input),
input=replace(input, stringr::str_detect(input, "H2"), "hydrogen"),
input=gsub("refined liquids industrial","liquids",input),
input=gsub("liquids av", "liquids", input),
input=gsub("liquids shp", "liquids", input),
input=gsub("wholesale gas","gas",input),
input=gsub("traditional biomass","biomass",input),
input=gsub("delivered gas","gas",input),
input=gsub("district heat","Other",input),
param = "energyFinalByFuelEJ",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "Final Energy by Fuel (EJ)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = input,
classLabel1 = "Fuel",
classPalette1 = "pal_all",
class2 = sector,
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
#dplyr::mutate(class1=dplyr::case_when(class2=="trans intl av"~paste(class1,"av",sep=" "),
#class2=="trans intl shp"~paste(class1,"shp",sep=" "),
#TRUE~class1))%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## energyFinalByFuelEJNoFeedstock ============================================
paramx<-"energyFinalByFuelEJNoFeedstock"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "Final energy by detailed end-use sector and fuel"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::filter(!grepl("trn",input),
!sector %in% c("industrial feedstocks"))%>%
dplyr::mutate(input=dplyr::if_else(input=="biomass","bioenergy",input),
sector=gsub("process heat cement","industry",sector),
sector=gsub("cement","industry",sector),
sector=gsub("industrial energy use","industry",sector),
sector=gsub("N fertilizer","industry",sector),
sector=gsub("alumina","industry",sector),
sector=gsub("aluminum","industry",sector),
sector=gsub("iron and steel","industry",sector),
#sector=gsub("trn_aviation_intl","trans intl av",sector),
#sector=gsub("trn_shipping_intl","trans intl shp",sector),
sector = replace(sector, stringr::str_detect(sector, "trn"), "transport"),
sector=gsub("comm cooling","building",sector),
sector=gsub("comm heating","building",sector),
sector=gsub("comm others","building",sector),
sector=gsub("resid cooling","building",sector),
sector=gsub("resid heating","building",sector),
sector=gsub("resid others","building",sector),
sector=gsub("agricultural energy use","other",sector),
sector=gsub("desalinated water","other",sector),
sector=gsub("irrigation water abstraction","other",sector),
sector=gsub("municipal wastewater treatment","other",sector),
sector=gsub("municipal water abstraction","other",sector),
sector=gsub("municipal water distribution","other",sector),
sector=gsub("municipal water treatment","other",sector),
input=gsub("elect\\_td\\_ind","electricity",input),
input=gsub("elect\\_td\\_bld","electricity",input),
input=gsub("elect\\_td\\_trn","electricity",input),
input=gsub("delivered coal","coal",input),
input=gsub("refined liquids enduse","liquids",input),
input=gsub("delivered biomass","biomass",input),
input=gsub("H2 enduse","hydrogen",input),
input=gsub("refined liquids industrial","liquids",input),
input=gsub("liquids av", "liquids", input),
input=gsub("liquids shp", "liquids", input),
input=gsub("wholesale gas","gas",input),
input=gsub("traditional biomass","biomass",input),
input=gsub("delivered gas","gas",input),
input=gsub("district heat","Other",input),
param = "energyFinalByFuelEJNoFeedstock",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "Final Energy by Fuel (EJ)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = input,
classLabel1 = "Fuel",
classPalette1 = "pal_all",
class2 = sector,
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
#dplyr::mutate(class1=dplyr::case_when(class2=="trans intl av"~paste(class1,"av",sep=" "),
#class2=="trans intl shp"~paste(class1,"shp",sep=" "),
#TRUE~class1))%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## energyFinalSubsecByFuelBuildEJ ============================================
paramx<-"energyFinalSubsecByFuelBuildEJ"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "building final energy by fuel"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::rename(sector=input) %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(sector=dplyr::case_when(grepl("electricity domestic",sector)~"electricity",TRUE~sector),
sector=gsub("elect_td_bld","electricity",sector),
sector=gsub("delivered gas","gas",sector),
sector=gsub("delivered biomass","bioenergy",sector),
sector=gsub("delivered coal","coal",sector),
sector=gsub("refined liquids enduse","liquids",sector),
param = "energyFinalSubsecByFuelBuildEJ",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "Building Final Energy by Fuel (EJ)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "Fuel",
classPalette1 = "pal_all",
class2 = sector,
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## energyFinalSubsecByFuelIndusEJ ============================================
paramx<-"energyFinalSubsecByFuelIndusEJ"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "industry final energy by fuel"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::rename(sector=input) %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(sector=gsub("elect_td_ind","electricity",sector),
sector=gsub("wholesale gas","gas",sector),
sector=gsub("delivered biomass","bioenergy",sector),
sector=gsub("delivered coal","coal",sector),
sector=gsub("refined liquids industrial","liquids",sector),
sector=gsub("H2 enduse","hydrogen",sector),
param = "energyFinalSubsecByFuelIndusEJ",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "Industry Final Energy by Fuel (EJ)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "Fuel",
classPalette1 = "pal_all",
class2 = sector,
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## energyPrimaryByFuelEJ =====================================================
paramx<-"energyPrimaryByFuelEJ"
# primary energy consumption by region (direct equivalent)
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "primary energy consumption by region (direct equivalent)"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "energyPrimaryByFuelEJ",
fuel=gsub("biomass","bioenergy",fuel),
fuel=gsub("b biomass","bioenergy",fuel),
fuel=gsub("traded coal","c coal",fuel),
fuel=gsub("traded natural gas","b natural gas",fuel),
fuel=gsub("traded oil","a oil",fuel),
fuel=gsub("H2 industrial","j hydrogen",fuel),
fuel=dplyr::case_when(
grepl("j traditional bioenergy", fuel, fixed = TRUE)~"d bioenergy",
grepl("regional bioenergy", fuel, fixed = TRUE)~"d bioenergy",
TRUE~fuel),
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "Primary Energy Consumption by Fuel (EJ)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = fuel,
classLabel1 = "Fuel",
classPalette1 = "pal_all",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
if(!is.null(tblFinalNrgIntlAvShip)){
# Separat out Intl. Shipping and Aviation refined liquids from Primary Energy Oil
tblPrimaryOil <- tbl%>%dplyr::filter(class1=="a oil") %>%
dplyr::mutate(class2="class2",classLabel2="classLabel2",classPalette2="classPalette2") %>%
dplyr::select(-origValue)# Subset Transport Sector
tblFinalNrgIntlAvShipMod <- tblFinalNrgIntlAvShip %>%
dplyr::mutate(param=unique(tblPrimaryOil$param),
class1=paste(class1,"oil",sep=" "),
sources=unique(tblPrimaryOil$sources),
origQuery=unique(tblPrimaryOil$origQuery),
origUnits=unique(tblPrimaryOil$origUnits),
units=unique(tblPrimaryOil$units),
xLabel=unique(tblPrimaryOil$xLabel),
aggregate=unique(tblPrimaryOil$aggregate),
class2=unique(tblPrimaryOil$class2),
classLabel2=unique(tblPrimaryOil$classLabel2),
classPalette2=unique(tblPrimaryOil$classPalette2),
classLabel1=unique(tblPrimaryOil$classLabel1),
classPalette1=unique(tblPrimaryOil$classPalette1))%>%
dplyr::select(-origValue)# Prepare in intl. transport in correct format
# Separate out Intl. Shipping and Aviation
tblSepPrimaryIntlAvShip <- tblPrimaryOil %>%
dplyr::bind_rows(tblFinalNrgIntlAvShipMod) %>%
tidyr::spread(key="class1",value="value") %>%
dplyr::mutate(`a oil`=`a oil` -`International Aviation oil`-`International Ship oil`)%>%
dplyr::rename(`oil intl av`=`International Aviation oil`,
`oil intl shp`=`International Ship oil`)%>%
tidyr::gather(key="class1",value="value",
-scenario, -region, -subRegion, -param, -sources, -class2, -x, -xLabel, -vintage, -units, -aggregate,
-classLabel1, -classPalette1, -classLabel2, -classPalette2,
-origScen,-origQuery,-origUnits,-origX)%>%
dplyr::mutate(origValue=value); tblSepPrimaryIntlAvShip%>%as.data.frame()
# Rbind Transport, Intl. Shipping and Aviation back to all other Final Energy types
tblMod<-tbl%>%dplyr::filter(class1!="a oil") %>%
dplyr::bind_rows(tblSepPrimaryIntlAvShip) # Remove Transport sector from Original tbl
} else {
rlang::inform(paste("tblFinalNrgIntlAvShip does not exist so skipping subset of final energy to remove intl. shipping and aviation."))
tblMod <- tbl
}
tblMod <- tblMod %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tblMod)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
# chart(tbl,xData="x",yData="value",useNewLabels = 0)
paramx <- "gdpPerCapita"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# GDP MER per Capita MER by region
queryx <- "GDP per capita MER by region"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "gdpPerCapita",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value,
units = "GDP per Capita (Thousand 1990 USD per Person)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = "class1",
classLabel1 = "GDP Per Capita",
classPalette1 = "pal_16",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "gdp"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# GDP MER by region
queryx <- "GDP MER by region"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "gdp",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value/1000,
units = "GDP (Billion 1990 USD)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = "class1",
classLabel1 = "GDP",
classPalette1 = "pal_16",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
tblgdp<-tbl
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "gdpGrowthRate"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# GDP Growth Rate by region
queryx <- "GDP Growth Rate (Percent)"
if ("GDP MER by region" %in% queriesx) {
tbl <- tblgdp # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::group_by(scenario,region) %>%
dplyr::mutate(param = "gdpGrowthRate",
sources = "Sources",
value = ((value/dplyr::lag(value,order_by=x))^(1/5)-1)*100,
units = "GDP Growth Rate (Percent)",
vintage = paste("Vint_", x, sep = ""),
classLabel1 = "GDP growth rate",
origQuery = "Calculated",
origValue = value,
origUnits = units,
origX = x) %>%
dplyr::ungroup() %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# rlang::inform(paste("Paramater 'GDP MER by region' not found in database, so cannot calculate" ,queryx, sep = ""))
}}
paramx <- "livestock_MeatDairybyTechMixed"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# Population
queryx <- "meat and dairy production by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::filter(subsector=="Mixed")%>% # "Mixed" "Pastoral" "Imports"
dplyr::mutate(param = "livestock_MeatDairybyTechMixed",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value,
units = "Livestock Production Mixed Feed (Mt)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "sector",
classPalette1 = "pal_all",
class2 = technology,
classLabel2 = "technology",
classPalette2 = "pal_all") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "livestock_MeatDairybySubsector"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# Population
queryx <- "meat and dairy production by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "livestock_MeatDairybySubsector",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value,
units = "Livestock Production (Mt)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "sector",
classPalette1 = "pal_all",
class2 = subsector,
classLabel2 = "subsector",
classPalette2 = "pal_all") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "livestock_MeatDairybyTechPastoral"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# Population
queryx <- "meat and dairy production by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::filter(subsector=="Pastoral")%>% # "Mixed" "Pastoral" "Imports"
dplyr::mutate(param = "livestock_MeatDairybyTechPastoral",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value,
units = "Livestock Production Pastoral (Mt)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "sector",
classPalette1 = "pal_all",
class2 = technology,
classLabel2 = "technology",
classPalette2 = "pal_all") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "livestock_MeatDairybyTechImports"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# Population
queryx <- "meat and dairy production by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::filter(subsector=="Imports")%>% # "Mixed" "Pastoral" "Imports"
dplyr::mutate(param = "livestock_MeatDairybyTechImports",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value,
units = "Livestock Production Imported Feed (Mt)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "sector",
classPalette1 = "pal_all",
class2 = technology,
classLabel2 = "technology",
classPalette2 = "pal_all") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "pop"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# Population
queryx <- "Population by region"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "pop",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value/1000,
units = "Population (Millions)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = "class1",
classLabel1 = "Population",
classPalette1 = "pal_16",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "agProdbyIrrRfd"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# Ag production by tech
queryx <- "ag production by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
if(any(regionsSelect %in% gcamextractor::regions_US52)){
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect,"USA"))
} else {
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect))
}
}
tbl <- tbl %>%
dplyr::filter(Units=="Mt")%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "agProdbyIrrRfd",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origUnits = Units,
origX = year,
subRegion=gsub(".*_","",subsector),
origValue = value,
scenario = scenNewNames,
value = value,
units = "Ag Production (Mt)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = dplyr::case_when(grepl("IRR",technology)~"irrigation",
grepl("RFD",technology)~"rainfed",
TRUE~"NA"),
classLabel1 = "Water Source",
classPalette1 = "pal_16",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2") %>%
dplyr::filter(class1!="NA")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "agProdBiomass"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# Ag Production by Crop Type Biomass EJ
queryx <- "ag production by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
if(any(regionsSelect %in% gcamextractor::regions_US52)){
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect,"USA"))
} else {
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect))
}
}
tbl <- tbl %>%
dplyr::filter(Units=="EJ",sector==output)%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "agProdBiomass",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
units = "Biomass Production (EJ)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "Crop",
classPalette1 = "pal_all",
subRegion=gsub(".*_","",subsector),
class2 = gsub("_.*RFD","_RFD",technology),
class2 = gsub("_.*IRR","_IRR",class2),
classLabel2 = "Detail",
classPalette2 = "pal_all")%>%
dplyr::select(origScen,origQuery, origValue, origUnits, origX, region, subRegion, param, scenario,
value, units, vintage, x, xLabel, aggregate, class1, classLabel1, classPalette1,
class2, classLabel2, classPalette2)%>%dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "agProdForest"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# Ag Production by Crop Type Forest
queryx <- "ag production by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
if(any(regionsSelect %in% gcamextractor::regions_US52)){
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect,"USA"))
} else {
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect))
}
}
tbl <- tbl %>%
dplyr::filter(Units=="billion m3",sector==output)%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "agProdForest",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
value = value,
units = "Forest Production (billion m3)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "Forest",
classPalette1 = "pal_all",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2",
subRegion= region)%>%
dplyr::select(origScen,origQuery, origValue, origUnits, origX, region, subRegion, param, scenario,
value, units, vintage, x, xLabel, aggregate, class1, classLabel1, classPalette1,
class2, classLabel2, classPalette2)%>%dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "agProdByCrop"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# Ag Production by Crop Type
queryx <- "ag production by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
if(any(regionsSelect %in% gcamextractor::regions_US52)){
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect,"USA"))
} else {
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect))
}
}
tbl <- tbl %>%
dplyr::filter(Units=="Mt",sector==output, sector!="Pasture")%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "agProdByCrop",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
value = value,
units = "Ag Production (Mt)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "Crop",
classPalette1 = "pal_all",
subRegion=gsub(".*_","",subsector),
class2 = gsub("_.*RFD","_RFD",technology),
class2 = gsub("_.*IRR","_IRR",class2),
classLabel2 = "Detail",
classPalette2 = "pal_all")%>%
dplyr::select(origScen,origQuery, origValue, origUnits, origX, region, subRegion, param, scenario,
value, units, vintage, x, xLabel, aggregate, class1, classLabel1, classPalette1,
class2, classLabel2, classPalette2)%>%dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "fertConsByAgTech"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "fertilizer consumption by ag tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
if(any(regionsSelect %in% gcamextractor::regions_US52)){
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect,"USA"))
} else {
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect))
}
}
tbl <- tbl %>%
dplyr::filter(!sector %in% c("N fertilizer")) %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = paramx,
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
value = value,
units = "Fertilizer Consumption (Mt N)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "Crop",
classPalette1 = "pal_all",
subRegion=gsub(".*_","",subsector),
class2 = gsub(".*RFD","RFD",technology),
class2 = gsub(".*IRR","IRR",class2),
classLabel2 = "Detail",
classPalette2 = "pal_all")%>%
dplyr::select(origScen,origQuery, origValue, origUnits, origX, region, subRegion, param, scenario,
value, units, vintage, x, xLabel, aggregate, class1, classLabel1, classPalette1,
class2, classLabel2, classPalette2)%>%dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "landIrrRfd"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# land allocation by crop and water source
queryx <- "land allocation by crop and water source"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(!is.na(water))%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "landIrrRfd",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value,
units = "Irr vs Rfd Land (1000 km2)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = water,
classLabel1 = "Water Source",
classPalette1 = "pal_all",
class2 = crop,
classLabel2 = "crop",
classPalette2 = "pal_all") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "landIrrCrop"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# land allocation by crop and water source
queryx <- "land allocation by crop and water source"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(!is.na(water),water=="IRR")%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "landIrrCrop",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value,
units = "Irr Crop Land (1000 km2)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = crop,
classLabel1 = "crop",
classPalette1 = "pal_all",
class2 = "class2",
classLabel2 = "class2",
classPalette2 = "pal_all") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "landRfdCrop"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# land allocation by crop and water source
queryx <- "land allocation by crop and water source"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(!is.na(water),water=="RFD")%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "landRfdCrop",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value,
units = "Rainfed Crop Land (1000 km2)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = crop,
classLabel1 = "crop",
classPalette1 = "pal_all",
class2 = "class2",
classLabel2 = "class2",
classPalette2 = "pal_all") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "landAlloc"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# aggregated land allocation
queryx <- "aggregated land allocation"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::mutate(
class2=landleaf,
landleaf=gsub("forest\\s\\(managed\\)","forest",landleaf),
landleaf=gsub("forest\\s\\(unmanaged\\)","forest",landleaf),
landleaf=gsub("pasture\\s\\(grazed\\)","pasture",landleaf),
landleaf=gsub("pasture\\s\\(other\\)","pasture",landleaf),
landleaf=gsub("otherarable","crops",landleaf),
landleaf=gsub("biomass","biomass",landleaf),
landleaf=gsub("grass","naturalOther",landleaf),
landleaf=gsub("shrubs","naturalOther",landleaf),
landleaf=gsub("rock\\sand\\sdesert","naturalOther",landleaf),
landleaf=gsub("tundra","naturalOther",landleaf))%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "landAlloc",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value,
units = "Land Allocation (1000 km2)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = landleaf,
classLabel1 = "Land Type",
classPalette1 = "pal_all",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "inputs"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "inputs by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::mutate(
subRegion=region,
class1=input,
class2=sector)%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "inputs",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
value = value,
units = Units,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classLabel1 = "input",
classPalette1 = "pal_all",
classLabel2 = "sector",
classPalette2 = "pal_all") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "outputs"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "outputs by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::mutate(
subRegion=region,
class1=output,
class2=sector)%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "outputs",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
value = value,
units = Units,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classLabel1 = "output",
classPalette1 = "pal_all",
classLabel2 = "sector",
classPalette2 = "pal_all") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "landAllocDetail"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# aggregated land allocation
queryx <- "detailed land allocation"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::mutate(
subRegion=gsub("^[^_]*_","",landleaf),
subRegion=gsub("_.*","",subRegion),
class1=gsub("_.*","",landleaf),
class2=gsub("^[^_]*_[^_]*_","",landleaf))%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "landAllocDetail",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
value = value,
units = "Land Allocation (1000 km2)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classLabel1 = "Land Type",
classPalette1 = "pal_all",
classLabel2 = "Source",
classPalette2 = "pal_all") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "landAllocByCrop"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# aggregated land allocation
queryx <- "land allocation by crop"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::mutate(
class2=landleaf,
landleaf=gsub("biomass_grass","Biomass",landleaf),
landleaf=gsub("biomass_tree","Biomass",landleaf),
landleaf=gsub("ProtectedUnmanagedForest","Delete",landleaf),
landleaf=gsub("ProtectedUnmanagedPasture","Delete",landleaf),
landleaf=gsub("UnmanagedPasture","Delete",landleaf),
landleaf=gsub("OtherArableLand","Delete",landleaf),
landleaf=gsub("UnmanagedForest","Delete",landleaf),
landleaf=gsub("ProtectedGrassland","Delete",landleaf),
landleaf=gsub("ProtectedShrubland","Delete",landleaf),
landleaf=gsub("RockIceDesert","Delete",landleaf),
landleaf=gsub("Shrubland","Delete",landleaf),
landleaf=gsub("Tundra","Delete",landleaf),
landleaf=gsub("Pasture","Delete",landleaf),
landleaf=gsub("Forest","Delete",landleaf),
landleaf=gsub("Grassland","Delete",landleaf),
landleaf=gsub("UrbanLand","Delete",landleaf)) %>%
dplyr::filter(!landleaf %in% c('Delete')) %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "landAllocByCrop",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value,
units = "Crop Land (1000 km2)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = landleaf,
classLabel1 = "Land Type",
classPalette1 = "pal_all",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
# Emissions -----------------------------
## emissLUC ===========================
# need LUC for CO2BySector, GHGBYSector, and GHGByGas
if(any(c("emissCO2BySector", "emissCO2BySectorNoBio", "emissGHGBySectorGWPAR5", "emissGHGBySectorNoBioGWPAR5", "emissGHGByGasGWPAR5", "emissGHGByGasNoBioGWPAR5", "emissLUC") %in% paramsSelectx)){
queryx <- "Land Use Change Emission (future)"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::left_join(gcamextractor::conv_GgTg_to_MTC,by="Units") %>%
dplyr::mutate(origValue=value,value=value*Convert*gcamextractor::convert$conv_C_CO2, # convert from MTC to MTCO2eq
origUnits=Units,units="Emissions LUC - (MTCO2)")%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(sources = "Sources",
origScen = scenario,
origQuery = queryx,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value,
origValue = origValue,
units = "LUC CO2 Emissions (MTCO2eq)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classPalette1 = "pal_all",
classPalette2 = "classPalette2",
ghg = "CO2",
sector = "LUC") %>%
dplyr::select(scenario, region, subRegion, sources, x, xLabel, vintage, units, value,
aggregate, classPalette1, classPalette2,
origScen, origQuery, origValue, origUnits, origX, ghg, sector) %>%
dplyr::group_by(scenario, region, subRegion, sources, x, xLabel, vintage, units,
aggregate, classPalette1, classPalette2,
origScen, origQuery, origUnits, origX, ghg, sector) %>%
dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup() %>%
dplyr::filter(!is.na(value))
tblLUEmiss<-tbl
}
} # end CO2 LUC query
# add LUC to data if emissLUC param is chosen
if("emissLUC" %in% paramsSelect){
tblEmissLUC <- tblLUEmiss %>%
dplyr::rename(class1 = sector, class2 = ghg) %>%
dplyr::mutate(classLabel1 = "sector",
classLabel2 = "ghg",
param = "emissLUC")
datax <- dplyr::bind_rows(datax, tblEmissLUC)
}
## emissCO2BySector ===========================
# need CO2 for CO2BySector, GHGBySector, and GHGByGas
if(any(c("emissCO2BySector", "emissGHGBySectorGWPAR5", "emissGHGByGasGWPAR5", "emissGHGBySectorPowerGWPAR5") %in% paramsSelectx)){
queryx <- "CO2 emissions by sector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx)
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(
origValue=value,
value=value*44/12, # convert from MTC to MTCO2eq
origUnits=Units,
units="CO2 emissions - (MTCO2)",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origX = year, subRegion=region,
scenario = scenNewNames,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classPalette1 = "pal_all",
classPalette2 = "pal_all",
ghg = "CO2") %>%
dplyr::select(scenario, region, subRegion, sources, x, xLabel, vintage, units, value,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery, origValue, origUnits, origX)
tblCO2Emiss <- tbl
}
}
# Aggregate sectors
if(any(c("emissCO2BySector", "emissGHGBySectorGWPAR5", "emissGHGByGasGWPAR5") %in% paramsSelectx)){
#emiss_sector_mapping <- utils::read.csv(CO2mappingFile, skip=1)
tblCO2EmissAgg <- tblCO2Emiss %>%
dplyr::mutate(
sector=dplyr::case_when(
grepl("refining",sector,ignore.case=T)~"refining",
grepl("regional biomass|regional biomassOil|regional corn for ethanol|regional sugar for ethanol|biomass", sector,ignore.case=T)~"biomass",
grepl("trn_aviation_intl", sector)~"International Aviation",
grepl("trn_shipping_intl", sector) ~ "International Shipping",
grepl("trn_",sector,ignore.case=T)~"transport",
grepl("comm |resid ",sector,ignore.case=T)~"building",
grepl("electricity|elec_|electricity |csp_backup",sector,ignore.case=T)~"electricity",
grepl("H2",sector,ignore.case=T)~"hydrogen",
grepl("cement|N fertilizer|industrial|ind ",sector,ignore.case=T)~"industry",
grepl("gas pipeline|gas processing|unconventional oil production|gas to liquids",sector,ignore.case=T)~"industry",
grepl("Beef|Dairy|Pork|Poultry",sector,ignore.case=T)~"livestock",
grepl("FiberCrop|MiscCrop|OilCrop|OtherGrain|PalmFruit|Corn|Rice|Root_Tuber|RootTuber|SheepGoat|SugarCrop|UnmanagedLand|Wheat|FodderGrass|FodderHerb",sector,ignore.case=T)~"crops",
TRUE~sector)) %>%
dplyr::group_by(scenario, region, subRegion, sources, x, xLabel, vintage, units,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery, origUnits, origX) %>%
dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T))) %>% dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
}
## emissCO2BySectorNoBio ===========================
# need CO2 for CO2BySectorNoBio, GHGBySectorNoBio, and GHGByGasNoBio
if(any(c("emissCO2BySectorNoBio", "emissGHGBySectorNoBioGWPAR5", "emissGHGByGasNoBioGWPAR5", "emissGHGBySectorBuildingsGWPAR5") %in% paramsSelectx)){
queryx <- "CO2 emissions by sector (no bio)"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
#emiss_sector_mapping <- utils::read.csv(CO2mappingFile, skip=1)
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(
origValue=value,
value=value*44/12, # convert from MTC to MTCO2eq
origUnits=Units,
units="CO2 emissions - (MTCO2)",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origX = year, subRegion=region,
scenario = scenNewNames,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classPalette1 = "pal_all",
classPalette2 = "pal_all",
ghg = "CO2") %>%
dplyr::select(scenario, region, subRegion, sources, x, xLabel, vintage, units, value,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery, origValue, origUnits, origX)
tblCO2EmissNoBio <- tbl
}
} # end CO2 by sector (no bio) query
# Aggregate sectors
if(any(c("emissCO2BySectorNoBio", "emissGHGBySectorNoBioGWPAR5", "emissGHGByGasNoBioGWPAR5") %in% paramsSelectx)){
tblCO2EmissNoBioAgg <- tblCO2EmissNoBio %>%
dplyr::mutate(
sector=dplyr::case_when(
grepl("refining",sector,ignore.case=T)~"refining",
grepl("regional biomass|regional biomassOil|regional corn for ethanol|regional sugar for ethanol", sector,ignore.case=T)~"biomass",
grepl("trn_aviation_intl", sector)~"International Aviation",
grepl("trn_shipping_intl", sector) ~ "International Shipping",
grepl("trn_",sector,ignore.case=T)~"transport",
grepl("comm |resid ",sector,ignore.case=T)~"building",
grepl("electricity|elec_|electricity |csp_backup",sector,ignore.case=T)~"electricity",
grepl("H2",sector,ignore.case=T)~"hydrogen",
grepl("cement|N fertilizer|industrial|ind |alumin|",sector,ignore.case=T)~"industry",
grepl("gas pipeline|gas processing|unconventional oil production|gas to liquids|wholesale gas|delivered gas|delivered biomass",sector,ignore.case=T)~"industry",
grepl("Beef|Dairy|Pork|Poultry",sector,ignore.case=T)~"livestock",
grepl("FiberCrop|MiscCrop|OilCrop|OtherGrain|PalmFruit|Corn|Rice|Root_Tuber|RootTuber|SheepGoat|SugarCrop|UnmanagedLand|Wheat|FodderGrass|FodderHerb",sector,ignore.case=T)~"crops",
TRUE~sector)) %>%
dplyr::group_by(scenario, region, subRegion, sources, x, xLabel, vintage, units,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery, origUnits, origX) %>%
dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T))) %>% dplyr::ungroup() %>%
dplyr::filter(!is.na(value))
}
# add CO2 by sector to data if emissCO2BySector param is chosen
if("emissCO2BySector" %in% paramsSelectx){
# LUC
tblEmissCO2BySector_LU <- tblLUEmiss %>%
dplyr::rename(class1 = sector, class2 = ghg) %>%
dplyr::mutate(classLabel1 = "sector",
classLabel2 = "ghg")
# other sectors
tblEmissCO2BySector_CO2 <- tblCO2EmissAgg %>%
dplyr::rename(class1 = sector, class2 = ghg) %>%
dplyr::mutate(classLabel1 = "sector",
classLabel2 = "ghg")
# other sectors
tblEmissCO2BySector_CO2 <- tblCO2Emiss %>%
dplyr::rename(class1 = sector, class2 = ghg) %>%
dplyr::mutate(classLabel1 = "sector",
classLabel2 = "ghg")
# all CO2
tblEmissCO2BySector <- dplyr::bind_rows(tblEmissCO2BySector_LU,
#tblEmissCO2BySector_seq,
tblEmissCO2BySector_CO2) %>%
dplyr::mutate(param = "emissCO2BySector",
units="CO2 emissions - (MTCO2)")
datax <- dplyr::bind_rows(datax, tblEmissCO2BySector)
}
# add CO2 by sector (no bio) to data if emissCO2BySectorNoBio param is chosen
if("emissCO2BySectorNoBio" %in% paramsSelectx){
# LUC
tblEmissCO2BySector_LU <- tblLUEmiss %>%
dplyr::rename(class1 = sector, class2 = ghg) %>%
dplyr::mutate(classLabel1 = "sector",
classLabel2 = "ghg")
# other sectors
tblEmissCO2BySectorNoBio_CO2 <- tblCO2EmissNoBioAgg %>%
dplyr::rename(class1 = sector, class2 = ghg) %>%
dplyr::mutate(classLabel1 = "sector",
classLabel2 = "ghg")
# all CO2
tblEmissCO2BySectorNoBio <- dplyr::bind_rows(tblEmissCO2BySector_LU,
#tblEmissCO2BySector_seq,
tblEmissCO2BySectorNoBio_CO2) %>%
dplyr::mutate(param = "emissCO2BySectorNoBio",
units="CO2 emissions - (MTCO2)")
datax <- dplyr::bind_rows(datax, tblEmissCO2BySectorNoBio)
}
## emissGHGBySectorGWPAR5 ===========================
# need nonCO2 for GHGBySector and GHGByGas
if(any(c("emissGHGBySectorGWPAR5", "emissGHGBySectorNoBioGWPAR5", "emissGHGByGasGWPAR5", "emissGHGByGasNoBioGWPAR5", "emissGHGBySectorBuildingsGWPAR5", "emissGHGBySectorPowerGWPAR5") %in% paramsSelectx)){
queryx <- "nonCO2 emissions by sector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx)
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
#emiss_sector_mapping <- utils::read.csv(CO2mappingFile, skip=1)
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(ghg = dplyr::case_when ((grepl("HFC", ghg)) ~ "HFCs",
(grepl("SF6", ghg)) ~ "SF6",
(grepl("CO2", ghg)) ~ "CO2",
(grepl("N2O", ghg)) ~ "N2O",
(grepl("CH4", ghg)) ~ "CH4",
(grepl("SO2", ghg)) ~ "SO2",
(grepl("NH3", ghg)) ~ "NH3",
(grepl("CF4", ghg)) ~ "CF4",
(grepl("C2F6", ghg)) ~ "C2F6",
TRUE ~ "Other"))%>%
dplyr::filter(!ghg %in% c('SO2', 'NH3', 'Other')) %>%
#dplyr::left_join(emiss_sector_mapping, by=c('class2' = 'class1')) %>%
#dplyr::mutate(class2=agg_sector) %>%
#dplyr::select(-agg_sector) %>%
dplyr::left_join(gcamextractor::GWP,by="ghg") %>%
dplyr::left_join(gcamextractor::conv_GgTg_to_MTC,by="Units") %>%
dplyr::filter(ghg!='CO2') %>%
dplyr::mutate(origValue=value,
value=value*GWPAR5*Convert,
origUnits=Units,
origUnits = dplyr::case_when(ghg=="Other"~"Units",TRUE~origUnits),
units="GHG Emissions GWPAR5 (MTCO2eq)",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origX = year, subRegion=region,
scenario = scenNewNames,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classPalette2 = "pal_all",
classPalette1 = "pal_all") %>%
dplyr::select(scenario, region, subRegion, sources, x, xLabel, vintage, units, value,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery, origValue, origUnits, origX)
tblNonCO2Emiss <- tbl
} else {
print("NonCO2 WAS NOT IN QUERIES")
tblNonCO2Emiss <- tibble::tibble()
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}
# Aggregate Sectors
if(any(c("emissGHGBySectorGWPAR5", "emissGHGBySectorNoBioGWPAR5", "emissGHGByGasGWPAR5", "emissGHGByGasNoBioGWPAR5") %in% paramsSelectx)){
#emiss_sector_mapping <- utils::read.csv(CO2mappingFile, skip=1)
print(str(tblNonCO2Emiss))
tblNonCO2EmissAgg <- tblNonCO2Emiss %>%
dplyr::mutate(
sector=dplyr::case_when(
grepl("refining",sector,ignore.case=T)~"refining",
grepl("regional biomass|regional biomassOil|regional corn for ethanol|biomass" ,sector,ignore.case=T)~"biomass",
grepl("trn_",sector,ignore.case=T)~"transport",
grepl("comm |resid ",sector,ignore.case=T)~"building",
grepl("electricity|elec_|electricity |csp_backup",sector,ignore.case=T)~"electricity",
grepl("H2",sector,ignore.case=T)~"hydrogen",
grepl("cement|N fertilizer|industrial|ind ",sector,ignore.case=T)~"industry",
grepl("gas pipeline|gas processing|unconventional oil production|gas to liquids",sector,ignore.case=T)~"industry",
grepl("Beef|Dairy|Pork|Poultry",sector,ignore.case=T)~"livestock",
grepl("FiberCrop|MiscCrop|OilCrop|OtherGrain|PalmFruit|Corn|Rice|Root_Tuber|RootTuber|SheepGoat|SugarCrop|UnmanagedLand|Wheat|FodderGrass|FodderHerb",sector,ignore.case=T)~"crops",
TRUE~sector)) %>%
dplyr::group_by(scenario, region, subRegion, sources, x, xLabel, vintage, units,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
}
# nonCO2 emissions for GCAM USA if relevant
queryx <- "nonCO2 emissions by sector USA"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
#emiss_sector_mapping <- utils::read.csv(CO2mappingFile, skip=1)
tbl <- tbl %>%
dplyr::filter(ghg!="CO2")%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(ghg = dplyr::case_when ((grepl("HFC", ghg)) ~ "HFCs",
(grepl("SF6", ghg)) ~ "SF6",
(grepl("CO2", ghg)) ~ "CO2",
(grepl("N2O", ghg)) ~ "N2O",
(grepl("CH4", ghg)) ~ "CH4",
(grepl("SO2", ghg)) ~ "SO2",
(grepl("NH3", ghg)) ~ "NH3",
(grepl("CF4", ghg)) ~ "CF4",
(grepl("C2F6", ghg)) ~ "C2F6",
TRUE ~ "Other"))%>%
dplyr::filter(!ghg %in% c('SO2', 'NH3', 'Other')) %>%
#dplyr::left_join(emiss_sector_mapping, by=c('class2' = 'class1')) %>%
#dplyr::mutate(class2=agg_sector) %>%
#dplyr::select(-agg_sector) %>%
dplyr::mutate(
sector=dplyr::case_when(
grepl("refining",sector,ignore.case=T)~"refining",
grepl("regional biomass|regional biomassOil|regional corn for ethanol|biomass" ,sector,ignore.case=T)~"biomass",
grepl("trn_",sector,ignore.case=T)~"transport",
grepl("comm |resid ",sector,ignore.case=T)~"building",
grepl("electricity|elec_|electricity |csp_backup",sector,ignore.case=T)~"electricity",
grepl("H2",sector,ignore.case=T)~"hydrogen",
grepl("cement|N fertilizer|industrial|ind ",sector,ignore.case=T)~"industry",
grepl("gas pipeline|gas processing|unconventional oil production|gas to liquids",sector,ignore.case=T)~"industry",
grepl("Beef|Dairy|Pork|Poultry",sector,ignore.case=T)~"livestock",
grepl("FiberCrop|MiscCrop|OilCrop|OtherGrain|PalmFruit|Corn|Rice|Root_Tuber|RootTuber|SheepGoat|SugarCrop|UnmanagedLand|Wheat|FodderGrass|FodderHerb",sector,ignore.case=T)~"crops",
TRUE~sector)) %>%
dplyr::left_join(gcamextractor::GWP,by="ghg") %>%
dplyr::left_join(gcamextractor::conv_GgTg_to_MTC,by="Units") %>%
dplyr::filter(!ghg=='CO2') %>%
dplyr::mutate(origValue=value,
value=value*GWPAR5*Convert,
origUnits=Units,
origUnits = dplyr::case_when(ghg=="Other"~"Units",TRUE~origUnits),
units="GHG Emissions GWPAR5 (MTCO2eq)")%>%
dplyr::mutate(sources = "Sources",
origScen = scenario,
origQuery = queryx,
origX = year, subRegion=region,
scenario = scenNewNames,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classPalette2 = "pal_all",
classPalette1 = "pal_all") %>%
dplyr::select(scenario, region, subRegion, sources, x, xLabel, vintage, units, value,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, sources, x, xLabel, vintage, units,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
tblNonCO2EmissUSA <- tbl
} else {
tblNonCO2EmissUSA <- tibble::tibble()
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}
} # end nonCO2 query
## emissGHGByResProdGWPAR5 ===========================
# need nonCO2 res prod for GHGBySector and GHGByGas
if(any(c("emissGHGBySectorGWPAR5", "emissGHGBySectorNoBioGWPAR5", "emissGHGByGasGWPAR5", "emissGHGByGasNoBioGWPAR5", "emissGHGByResProdGWPAR5") %in% paramsSelectx)){
#rlang::inform(paste0("Running param: ", paramx,"..."))
# GHG emissions by resource production, using AR5 GWP values
queryx <- "nonCO2 emissions by resource production"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
#emiss_sector_mapping <- utils::read.csv(CO2mappingFile, skip=1)
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(sector = resource) %>%
dplyr::mutate(ghg = dplyr::case_when ((grepl("HFC", ghg)) ~ "HFCs",
(grepl("SF6", ghg)) ~ "SF6",
(grepl("CO2_FUG", ghg)) ~ "CO2_FUG",
(grepl("CO2", ghg)) ~ "CO2",
(grepl("N2O", ghg)) ~ "N2O",
(grepl("CH4", ghg)) ~ "CH4",
(grepl("SO2", ghg)) ~ "SO2",
(grepl("NH3", ghg)) ~ "NH3",
(grepl("CF4", ghg)) ~ "CF4",
(grepl("C2F6", ghg)) ~ "C2F6",
TRUE ~ "Other"))%>%
dplyr::filter(!ghg %in% c('SO2', 'NH3', 'Other')) %>%
#dplyr::left_join(emiss_sector_mapping, by=c('class2' = 'class1')) %>%
#dplyr::mutate(class2=agg_sector) %>%
#dplyr::select(-agg_sector) %>%
dplyr::left_join(gcamextractor::GWP,by="ghg")%>%
dplyr::left_join(gcamextractor::conv_GgTg_to_MTC,by="Units") %>%
dplyr::mutate(origValue=value,
value=value*GWPAR5*Convert,
origUnits=Units,
origUnits = dplyr::case_when(ghg=="Other"~"Units",TRUE~origUnits),
units="GHG Emissions by Resource GWPAR5 (MTCO2eq)")%>%
dplyr::mutate(sources = "Sources",
origScen = scenario,
origQuery = queryx,
origX = year, subRegion=region,
scenario = scenNewNames,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classPalette1 = "pal_all",
classPalette2 = "pal_all") %>%
dplyr::select(scenario, region, subRegion, sources, x, xLabel, vintage, units, value,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, sources, x, xLabel, vintage, units,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery,origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
tblNonCO2EmissRes <- tbl
}
}
# add GHG by resource production to data if emissGHGByResProdGWPAR5 param is chosen
if("emissGHGByResProdGWPAR5" %in% paramsSelectx){
tblGHGEmissByResProd <- tblNonCO2EmissRes %>%
dplyr::rename(class1 = sector, class2 = ghg) %>%
dplyr::mutate(classLabel1 = "sector",
classLabel2 = "ghg",
param = "emissGHGByResProdGWPAR5",
units = "GHG emissions (MTCO2eq)")
datax <- dplyr::bind_rows(datax, tblGHGEmissByResProd)
}
# add GHG by sector to data if emissGHGBySectorGWPAR5 param is chosen
if("emissGHGBySectorGWPAR5" %in% paramsSelectx){
tblGHGEmissBySector <- dplyr::bind_rows(
tblLUEmiss, tblCO2EmissAgg, tblNonCO2EmissAgg, tblNonCO2EmissUSA,
tblNonCO2EmissRes) %>%
dplyr::rename(class1 = sector, class2 = ghg) %>%
dplyr::mutate(classLabel1 = "sector",
classLabel2 = "ghg",
param = "emissGHGBySectorGWPAR5",
units = "GHG emissions (MTCO2eq)")
datax <- dplyr::bind_rows(datax, tblGHGEmissBySector)
}
# add GHG by gas to data if emissGHGByGasGWPAR5 param is chosen
if("emissGHGByGasGWPAR5" %in% paramsSelectx){
tblGHGEmissByGas <- dplyr::bind_rows(
tblLUEmiss, tblCO2EmissAgg, tblNonCO2EmissAgg, tblNonCO2EmissUSA,
tblNonCO2EmissRes) %>%
dplyr::rename(class1 = ghg, class2 = sector) %>%
dplyr::mutate(classLabel1 = "ghg",
classLabel2 = "sector",
param = "emissGHGByGasGWPAR5",
units = "GHG emissions (MTCO2eq)")
datax <- dplyr::bind_rows(datax, tblGHGEmissByGas)
}
# add GHG by sector (no bio) to data if emissGHGBySectorNoBioGWPAR5 param is chosen
if("emissGHGBySectorNoBioGWPAR5" %in% paramsSelectx){
tblGHGEmissBySectorNoBio <- dplyr::bind_rows(
tblLUEmiss, tblCO2EmissNoBioAgg, tblNonCO2EmissAgg, tblNonCO2EmissUSA,
tblNonCO2EmissRes) %>%
dplyr::rename(class1 = sector, class2 = ghg) %>%
dplyr::mutate(classLabel1 = "sector",
classLabel2 = "ghg",
param = "emissGHGBySectorNoBioGWPAR5",
units = "GHG emissions (MTCO2eq)")
datax <- dplyr::bind_rows(datax, tblGHGEmissBySectorNoBio)
}
# add GHG by gas (no bio) to data if emissGHGByGasNoBioGWPAR5 param is chosen
if("emissGHGByGasNoBioGWPAR5" %in% paramsSelectx){
tblGHGEmissByGasNoBio <- dplyr::bind_rows(
tblLUEmiss, tblCO2EmissNoBioAgg, tblNonCO2EmissAgg, tblNonCO2EmissUSA,
tblNonCO2EmissRes) %>%
dplyr::rename(class1 = ghg, class2 = sector) %>%
dplyr::mutate(classLabel1 = "ghg",
classLabel2 = "sector",
param = "emissGHGByGasNoBioGWPAR5",
units = "GHG emissions (MTCO2eq)")
datax <- dplyr::bind_rows(datax, tblGHGEmissByGasNoBio)
}
# paramx <- "emissLUC"
# if(paramx %in% paramsSelectx){
# rlang::inform(paste0("Running param: ", paramx,"..."))
# # Land Use Change Emission (future)
# queryx <- "Land Use Change Emission (future)"
# if (queryx %in% queriesx) {
# tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
# if (any(!is.null(regionsSelect))) {
# tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
# }
# tbl <- tbl %>%
# dplyr::left_join(gcamextractor::conv_GgTg_to_MTC,by="Units") %>%
# dplyr::mutate(origValue=value,value=value*Convert*gcamextractor::convert$conv_C_CO2,
# origUnits=Units,units="Emissions LUC - (MTCO2eq)") %>%
# dplyr::filter(scenario %in% scenOrigNames)%>%
# dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
# dplyr::mutate(param = "emissLUC",
# sources = "Sources",
# origScen = scenario,
# origQuery = queryx,
# origUnits = Units,
# origX = year, subRegion=region,
# scenario = scenNewNames,
# value = value,
# origValue = origValue,
# units = "LUC CO2 Emissions (MTCO2eq)",
# vintage = paste("Vint_", year, sep = ""),
# x = year,
# xLabel = "Year",
# aggregate = "sum",
# class1 = "class1",
# classLabel1 = "Land Type",
# classPalette1 = "pal_all",
# class2 = "class2",
# classLabel2 = "classLabel2",
# classPalette2 = "classPalette2") %>%
# dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
# aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
# origScen, origQuery, origValue, origUnits, origX)%>%
# dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
# aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
# origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
# dplyr::filter(!is.na(value)) %>%
# dplyr::mutate(class1='LUC')
# tblLUEmiss<-tbl
# datax <- dplyr::bind_rows(datax, tbl)
# } else {
# # if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
# }}
#
# # GHG emissions (non CO2) by subsector, using AR5 GWP values USA
# queryx <- "nonCO2 emissions by sector USA"
# if (queryx %in% queriesx) {
# tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
# if (any(!is.null(regionsSelect))) {
# tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
# }
# #emiss_sector_mapping <- utils::read.csv(CO2mappingFile, skip=1)
# tblUSA <- tbl %>%
# dplyr::filter(ghg!="CO2")%>%
# dplyr::filter(scenario %in% scenOrigNames)%>%
# dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
# dplyr::mutate(class1=ghg, class2=sector) %>%
# dplyr::mutate(class1 = dplyr::case_when ((grepl("HFC", class1)) ~ "HFCs",
# (grepl("SF6", class1)) ~ "SF6",
# (grepl("CO2", class1)) ~ "CO2",
# (grepl("N2O", class1)) ~ "N2O",
# (grepl("CH4", class1)) ~ "CH4",
# (grepl("SO2", class1)) ~ "SO2",
# (grepl("NH3", class1)) ~ "NH3",
# (grepl("CF4", class1)) ~ "CF4",
# (grepl("C2F6", class1)) ~ "C2F6",
# TRUE ~ "Other"))%>%
# dplyr::filter(!class1 %in% c('SO2', 'NH3', 'Other'),
# !(class1 == "SF6" & grepl("grid",region,ignore.case = T)),
# !(class1 %in% c("CH4","HFCs","N2O") & region=="USA")) %>%
# #dplyr::left_join(emiss_sector_mapping, by=c('class2' = 'class1')) %>%
# #dplyr::mutate(class2=agg_sector) %>%
# #dplyr::select(-agg_sector) %>%
# dplyr::mutate(
# class2=dplyr::case_when(
# grepl("refining",class2,ignore.case=T)~"refining",
# grepl("regional biomass|regional biomassOil|regional corn for ethanol|biomass" ,class2,ignore.case=T)~"biomass",
# grepl("trn_",class2,ignore.case=T)~"transport",
# grepl("comm |resid ",class2,ignore.case=T)~"building",
# grepl("electricity|elec_|electricity |csp_backup",class2,ignore.case=T)~"electricity",
# grepl("H2",class2,ignore.case=T)~"hydrogen",
# grepl("cement|N fertilizer|industrial|ind ",class2,ignore.case=T)~"industry",
# grepl("gas pipeline|gas processing|unconventional oil production|gas to liquids",class2,ignore.case=T)~"industry",
# grepl("Beef|Dairy|Pork|Poultry",class2,ignore.case=T)~"livestock",
# grepl("FiberCrop|MiscCrop|OilCrop|OtherGrain|PalmFruit|Corn|Rice|Root_Tuber|RootTuber|SheepGoat|SugarCrop|UnmanagedLand|Wheat|FodderGrass|FodderHerb",class2,ignore.case=T)~"crops",
# TRUE~class2))%>%
# dplyr::left_join(gcamextractor::GWP%>%dplyr::rename(class1=ghg),by="class1")%>%
# dplyr::left_join(gcamextractor::conv_GgTg_to_MTC,by="Units") %>%
# #dplyr::filter(!class1=='CO2') %>%
# dplyr::mutate(origValue=value,
# value=value*GWPAR5*Convert,
# origUnits=Units,
# origUnits = dplyr::case_when(class1=="Other"~"Units",TRUE~origUnits),
# units="GHG Emissions GWPAR5 (MTCO2eq)")%>%
# dplyr::mutate(param = "emissNonCO2BySectorGWPAR5",
# sources = "Sources",
# origScen = scenario,
# origQuery = queryx,
# origX = year, subRegion=region,
# scenario = scenNewNames,
# vintage = paste("Vint_", year, sep = ""),
# x = year,
# xLabel = "Year",
# aggregate = "sum",
# classLabel1 = "GHG",
# classPalette1 = "pal_all",
# classLabel2 = "sector",
# classPalette2 = "pal_all") %>%
# dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
# aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
# origScen, origQuery, origValue, origUnits, origX)%>%
# dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
# aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
# origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
# dplyr::filter(!is.na(value))
# } else {
# tblUSA <- tibble::tibble()
# # if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
# }
#
# # Combine Core and USA
# if(nrow(tblCore)>0){scenariosCore <- unique(tblCore$scenario)}else{
# scenariosCore <- NULL
# }
#
# tblUSA <- tblUSA %>%
# dplyr::filter(!scenario %in% scenariosCore)
#
# datax <- dplyr::bind_rows(datax, tblCore, tblUSA)
#
# }
# paramx <- "emissNonCO2BySector"
# if(paramx %in% paramsSelectx){
# rlang::inform(paste0("Running param: ", paramx,"..."))
#
# # GHG emissions (non CO2) by subsector values
# queryx <- "nonCO2 emissions by sector"
# if (queryx %in% queriesx) {
# tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
# if (any(!is.null(regionsSelect))) {
# tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
# }
# tblCore <- tbl %>%
# dplyr::filter(ghg!="CO2")%>%
# dplyr::filter(scenario %in% scenOrigNames)%>%
# dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
# dplyr::mutate(class1=sector, class2=ghg) %>%
# dplyr::mutate(origValue=value,
# value=value,
# origUnits=Units,
# units=Units)%>%
# dplyr::mutate(param = "emissNonCO2BySector",
# sources = "Sources",
# origScen = scenario,
# origQuery = queryx,
# origX = year, subRegion=region,
# scenario = scenNewNames,
# vintage = paste("Vint_", year, sep = ""),
# x = year,
# xLabel = "Year",
# aggregate = "sum",
# classLabel1 = "Sector",
# classPalette1 = "pal_all",
# classLabel2 = "GHG",
# classPalette2 = "pal_all") %>%
# dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
# aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
# origScen, origQuery, origValue, origUnits, origX)%>%
# dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
# aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
# origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
# dplyr::filter(!is.na(value))
# } else {
# tblCore <- tibble::tibble()
# # if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
# }
#
# # GHG emissions (non CO2) by subsector values USA
# queryx <- "nonCO2 emissions by sector USA"
# if (queryx %in% queriesx) {
# tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
# tblUSA <- tbl %>%
# dplyr::filter(ghg!="CO2")%>%
# dplyr::filter(scenario %in% scenOrigNames)%>%
# dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
# dplyr::mutate(class1=ghg, class2=sector) %>%
# dplyr::mutate(origValue=value,
# value=value,
# origUnits=Units,
# units=Units)%>%
# dplyr::mutate(param = "emissNonCO2BySector",
# sources = "Sources",
# origScen = scenario,
# origQuery = queryx,
# origX = year, subRegion=region,
# scenario = scenNewNames,
# vintage = paste("Vint_", year, sep = ""),
# x = year,
# xLabel = "Year",
# aggregate = "sum",
# classLabel1 = "GHG",
# classPalette1 = "pal_all",
# classLabel2 = "sector",
# classPalette2 = "pal_all",
# class1 = paste0(class1," (",units,")")) %>%
# dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
# aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
# origScen, origQuery, origValue, origUnits, origX)%>%
# dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
# aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
# origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
# dplyr::filter(!is.na(value))
# } else {
# tblUSA <- tibble::tibble()
# # if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
# }
#
# # GHG emissions (non CO2) by subsector values USA
# queryx <- "nonCO2 emissions by sector USA nonUS"
# if (queryx %in% queriesx) {
# tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
# tblUSAnonUS <- tbl %>%
# dplyr::filter(ghg!="CO2")%>%
# dplyr::filter(scenario %in% scenOrigNames)%>%
# dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
# dplyr::mutate(class1=ghg, class2=sector) %>%
# dplyr::mutate(origValue=value,
# value=value,
# origUnits=Units,
# units=Units)%>%
# dplyr::mutate(param = "emissNonCO2BySector",
# sources = "Sources",
# origScen = scenario,
# origQuery = queryx,
# origX = year, subRegion=region,
# scenario = scenNewNames,
# vintage = paste("Vint_", year, sep = ""),
# x = year,
# xLabel = "Year",
# aggregate = "sum",
# classLabel1 = "GHG",
# class1 = paste0(class1," (",units,")"),
# classPalette1 = "pal_all",
# classLabel2 = "sector",
# classPalette2 = "pal_all") %>%
# dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
# aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
# origScen, origQuery, origValue, origUnits, origX)%>%
# dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
# aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
# origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
# dplyr::filter(!is.na(value))
# } else {
# tblUSAnonUS <- tibble::tibble()
# # if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
# }
#
# # Combine Core and USA
# if(nrow(tblCore)>0){scenariosCore <- unique(tblCore$scenario)}else{
# scenariosCore <- NULL
# }
#
# tblUSA <- tblUSA %>%
# dplyr::filter(!scenario %in% scenariosCore)
#
# tblUSAnonUS <- tblUSAnonUS %>%
# dplyr::filter(!scenario %in% scenariosCore)
#
# datax <- dplyr::bind_rows(datax, tblCore, tblUSA, tblUSAnonUS)
#
# }
## emissCO2CumGlobal2010to2100s ===========================
if(any(c("emissCO2CumGlobal2010to2100","emissCO2CumGlobal2010to2100RCP") %in% paramsSelectx)){
paramx <- "emissCO2CumGlobal2010to2100"
# GHG emissions (non CO2) by subsector, using AR5 GWP values
queryx <- "CO2 emissions by sector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
#emiss_sector_mapping <- utils::read.csv(CO2mappingFile, skip=1)
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(class1=sector, class2="class2") %>%
dplyr::mutate(
class1=dplyr::case_when(
grepl("refining",class1,ignore.case=T)~"refining",
grepl("regional biomass|regional biomassOil|regional corn for ethanol|regional sugar for ethanol|biomass" ,class1,ignore.case=T)~"biomass",
grepl("trn_",class1,ignore.case=T)~"transport",
grepl("comm |resid ",class1,ignore.case=T)~"building",
grepl("electricity|elec_|electricity |csp_backup",class1,ignore.case=T)~"electricity",
grepl("H2",class1,ignore.case=T)~"hydrogen",
grepl("cement|N fertilizer|industrial|ind ",class1,ignore.case=T)~"industry",
grepl("gas pipeline|gas processing|unconventional oil production|gas to liquids",class1,ignore.case=T)~"industry",
grepl("Beef|Dairy|Pork|Poultry",class1,ignore.case=T)~"livestock",
grepl("FiberCrop|MiscCrop|OilCrop|OtherGrain|PalmFruit|Corn|Rice|Root_Tuber|RootTuber|SheepGoat|SugarCrop|UnmanagedLand|Wheat|FodderGrass|FodderHerb",class1,ignore.case=T)~"crops",
TRUE~class1))%>%
dplyr::mutate(origValue=value,
origUnits=Units,
units="CO2 (MTC)")%>%
dplyr::mutate(param = "emissCO2BySector",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origX = year, subRegion=region,
scenario = scenNewNames,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classLabel1 = "sector",
classPalette1 = "pal_all",
classLabel2 = "classLabel2",
classPalette2 = "pal_all") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)
# Add Global Emissions
tblGlobal <- tbl %>%
dplyr::mutate(region="Global", subRegion="Global") %>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
# # For selected region
# if (any(!is.null(regionsSelect))) {
# tblSelect <- tbl %>% dplyr::filter(region %in% regionsSelect) %>%
# dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
# aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
# origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
# dplyr::filter(!is.na(value))
# } else {
# tblSelect <- tbl %>%
# dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
# aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
# origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
# dplyr::filter(!is.na(value)) %>%
# dplyr::bind_rows(tblGlobal)}
tblx <- tblGlobal
# tblx <- tblGlobal %>%
# dplyr::bind_rows(tblSelect)
# Cumulative Global Emissions
# Expand data to include years
tblxexpand <- tblx %>%
dplyr::select(scenario,region,subRegion,units,x,value)%>%
dplyr::group_by(scenario,region,subRegion,units,x) %>%
dplyr::summarize_at(dplyr::vars("value"),list(~sum(.,na.rm = T))) %>%
tibble::as_tibble() %>%
tidyr::complete(x=seq(max(2010,min(tblx$x)),max(tblx$x),1),tidyr::nesting(scenario,region,subRegion,units)) %>%
dplyr::ungroup()%>%
dplyr::mutate(value=zoo::na.approx(value,na.rm =FALSE)) %>%
dplyr::arrange(x) %>%
dplyr::filter(!is.na(value)); tblxexpand
tblxexpandcum2010to2100 <- tblxexpand %>%
dplyr::filter(x > 2005) %>%
dplyr::group_by(scenario,region,subRegion,units) %>%
dplyr::mutate(value=cumsum(value)/1000,
units = gsub("MTC","GTC",units),
param = "emissCO2CumGlobal2010to2100",
sources = "sources",
class1 = "class1",
class2 = "class2",
xLabel = "year",
vintage = paste0("vint_",x),
aggregate = "sum",
classLabel1 = "classLabel1",
classPalette1 = "pal_hot",
classLabel2 = "classLabel2",
classPalette2 = "pal_hot",
origScen = scenario,
origQuery = queryx,
origUnits = units,
origX = x,
origValue = value); tblxexpandcum2010to2100
# Comapre CO2 Emissions between core and GCAM-USA Global and the RCP ranges
# CMIP5 Table SPM.3, pg 27 https://www.ipcc.ch/site/assets/uploads/2018/02/WG1AR5_SPM_FINAL.pdf
replen <- length(unique(tblxexpand$x))
rcpranges <- data.frame(scenario=rep("rcpGlobalCumEmissions",replen),
class1 = rep("rcp8.5",replen),
class2 = rep("max",replen),
x = unique(tblxexpand$x),
value = rep(1910,replen)) %>%
dplyr::bind_rows(data.frame(scenario=rep("rcpGlobalCumEmissions",replen),
class1 = rep("rcp8.5",replen),
class2 = rep("min",replen),
x = unique(tblxexpand$x),
value = rep(1415,replen))) %>%
dplyr::bind_rows(data.frame(scenario=rep("rcpGlobalCumEmissions",replen),
class1 = rep("rcp6.0",replen),
class2 = rep("max",replen),
x = unique(tblxexpand$x),
value = rep(1250,replen))) %>%
dplyr::bind_rows(data.frame(scenario=rep("rcpGlobalCumEmissions",replen),
class1 = rep("rcp6.0",replen),
class2 = rep("min",replen),
x = unique(tblxexpand$x),
value = rep(840,replen))) %>%
dplyr::bind_rows(data.frame(scenario=rep("rcpGlobalCumEmissions",replen),
class1 = rep("rcp4.5",replen),
class2 = rep("max",replen),
x = unique(tblxexpand$x),
value = rep(1005,replen))) %>%
dplyr::bind_rows(data.frame(scenario=rep("rcpGlobalCumEmissions",replen),
class1 = rep("rcp4.5",replen),
class2 = rep("min",replen),
x = unique(tblxexpand$x),
value = rep(595,replen))) %>%
dplyr::bind_rows(data.frame(scenario=rep("rcpGlobalCumEmissions",replen),
class1 = rep("rcp2.6",replen),
class2 = rep("max",replen),
x = unique(tblxexpand$x),
value = rep(410,replen))) %>%
dplyr::bind_rows(data.frame(scenario=rep("rcpGlobalCumEmissions",replen),
class1 = rep("rcp2.6",replen),
class2 = rep("min",replen),
x = unique(tblxexpand$x),
value = rep(140,replen))) %>%
tibble::as_tibble(); rcpranges
rcpranges <- rcpranges %>%
dplyr::mutate(units = "CO2 (GTC)",
param = "emissCO2CumGlobal2010to2100RCP",
sources = "sources",
xLabel = "year",
vintage = paste0("vint_",x),
aggregate = "sum",
classLabel1 = "rcp",
classPalette1 = "pal_hot",
classLabel2 = "minmax",
classPalette2 = "pal_hot",
origScen = scenario,
origQuery = queryx,
origUnits = units,
origX = x,
origValue = value,
region="Global",
subRegion="Global") %>%
unique(); rcpranges
datax <- dplyr::bind_rows(datax, tblx, tblxexpandcum2010to2100, rcpranges)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}
}
paramx <- "emissMethaneBySourceGWPAR5"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# GHG emissions (non CO2) by subsector, using AR5 GWP values
queryx <- "nonCO2 emissions by sector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
#emiss_sector_mapping <- utils::read.csv(CO2mappingFile, skip=1)
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(class1=sector, class2=ghg) %>%
dplyr::filter(class2 %in% c('CH4', 'CH4_AGR', 'CH4_AWB')) %>%
dplyr::mutate(
class1=dplyr::case_when(
grepl("refining",class1,ignore.case=T)~"refining",
grepl("regional biomass|regional biomassOil|regional corn for ethanol|biomass" ,class1,ignore.case=T)~"biomass",
grepl("trn_",class1,ignore.case=T)~"transport",
grepl("comm |resid ",class1,ignore.case=T)~"building",
grepl("electricity|elec_|electricity |csp_backup",class1,ignore.case=T)~"electricity",
grepl("H2",class1,ignore.case=T)~"hydrogen",
grepl("cement|N fertilizer|industrial|ind ",class1,ignore.case=T)~"industry",
grepl("gas pipeline|gas processing|unconventional oil production|gas to liquids",class1,ignore.case=T)~"industry",
grepl("Beef|Dairy|Pork|Poultry",class1,ignore.case=T)~"livestock",
grepl("FiberCrop|MiscCrop|OilCrop|OtherGrain|PalmFruit|Corn|Rice|Root_Tuber|RootTuber|SheepGoat|SugarCrop|UnmanagedLand|Wheat|FodderGrass|FodderHerb",class1,ignore.case=T)~"crops",
TRUE~class1))%>%
dplyr::left_join(gcamextractor::GWP%>%dplyr::rename(class2=ghg),by="class2")%>%
dplyr::left_join(gcamextractor::conv_GgTg_to_MTC,by="Units") %>%
dplyr::mutate(origValue=value,
value=value*GWPAR5*Convert,
origUnits=Units,
origUnits = dplyr::case_when(class2=="Other"~"Units",TRUE~origUnits),
units="Methane Emissions GWPAR5 (MTCO2eq)")%>%
dplyr::mutate(param = "emissMethaneBySourceGWPAR5",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origX = year, subRegion=region,
scenario = scenNewNames,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classLabel1 = "sector",
classPalette1 = "pal_all",
classLabel2 = "GHG",
classPalette2 = "pal_all") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## co2SequestrationBySector -----------------------------
if(any(c("co2SequestrationBySector") %in% paramsSelectx)){
queryx <- "CO2 sequestration by sector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
#emiss_sector_mapping <- utils::read.csv(CO2mappingFile, skip=1)
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(
origValue=value,
value=value*gcamextractor::convert$conv_C_CO2*(-1), # convert from MTC to MTCO2eq and make negative
origUnits=Units,
units="CO2 emissions - (MTCO2)",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origX = year, subRegion=region,
scenario = scenNewNames,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classPalette1 = "pal_all",
classPalette2 = "pal_all",
ghg = "CO2") %>%
dplyr::select(scenario, region, subRegion, sources, x, xLabel, vintage, units, value,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery, origValue, origUnits, origX)
tblCO2Seq <- tbl
datax <- dplyr::bind_rows(datax, tblCO2Seq)
}
} # end CO2 sequestration query
## Sectoral details ======================================
# emissCO2BySubsector
# need CO2 by subsector for emissGHGBySectorTransportGWPAR5
if(any(c("emissGHGBySectorTransportGWPAR5", "emissGHGBySectorIndustryGWPAR5") %in% paramsSelectx)){
queryx <- "CO2 emissions by subsector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx)
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(
origValue=value,
value=value*44/12, # convert from MTC to MTCO2eq
origUnits=Units,
units="CO2 emissions - (MTCO2)",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origX = year, subRegion=region,
scenario = scenNewNames,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classPalette1 = "pal_all",
classPalette2 = "pal_all",
ghg = "CO2") %>%
dplyr::select(scenario, region, subRegion, sources, x, xLabel, vintage, units, value,
aggregate, ghg, sector, subsector, classPalette1, classPalette2,
origScen, origQuery, origValue, origUnits, origX)
tblCO2EmissSubsec <- tbl
}
}
# emiss nonCO2 by subsector
# need for emissGHGBySectorTransportGWPAR5
if(any(c("emissGHGBySectorTransportGWPAR5", "emissGHGBySectorIndustryGWPAR5") %in% paramsSelectx)){
queryx <- "nonCO2 emissions by subsector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx)
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
#emiss_sector_mapping <- utils::read.csv(CO2mappingFile, skip=1)
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(ghg = dplyr::case_when ((grepl("HFC", ghg)) ~ "HFCs",
(grepl("SF6", ghg)) ~ "SF6",
(grepl("CO2", ghg)) ~ "CO2",
(grepl("N2O", ghg)) ~ "N2O",
(grepl("CH4", ghg)) ~ "CH4",
(grepl("SO2", ghg)) ~ "SO2",
(grepl("NH3", ghg)) ~ "NH3",
(grepl("CF4", ghg)) ~ "CF4",
(grepl("C2F6", ghg)) ~ "C2F6",
TRUE ~ "Other"))%>%
dplyr::left_join(gcamextractor::GWP,by="ghg") %>%
dplyr::left_join(gcamextractor::conv_GgTg_to_MTC,by="Units") %>%
dplyr::filter(ghg!='CO2') %>%
dplyr::mutate(origValue=value,
value=value*GWPAR5*Convert,
origUnits=Units,
origUnits = dplyr::case_when(ghg=="Other"~"Units",TRUE~origUnits),
units="GHG Emissions GWPAR5 (MTCO2eq)",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origX = year, subRegion=region,
scenario = scenNewNames,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classPalette2 = "pal_all",
classPalette1 = "pal_all") %>%
dplyr::select(scenario, region, subRegion, sources, x, xLabel, vintage, units, value,
aggregate, ghg, sector, subsector, classPalette1, classPalette2,
origScen, origQuery, origValue, origUnits, origX)
tblNonCO2EmissSubsec <- tbl
} else {
tblNonCO2EmissSubsec <- tibble::tibble()
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
### Power ##########################################
paramx <- "emissGHGBySectorPowerGWPAR5"
if(paramx %in% paramsSelectx) {
# CO2 emissions
tblCO2EmissPower <- tblCO2Emiss %>%
dplyr::filter(grepl("elec", sector)) %>%
dplyr::mutate(sector = dplyr::case_when(
grepl("biomass", sector) ~ paste0(ghg, "_biomass"),
grepl("coal", sector) ~ paste0(ghg, "_coal"),
grepl("gas", sector) ~ paste0(ghg, "_natural gas"),
grepl("refined liquids", sector) ~ paste0(ghg, "_refined liquids"),
ghg != "CO2" ~ ghg,
T ~ paste0(sector, "_", ghg))) %>%
dplyr::group_by(scenario, region, subRegion, sources, x, xLabel, vintage, units,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value)) %>%
dplyr::rename(class1 = sector, class2 = ghg) %>%
dplyr::mutate(classLabel1 = "sector",
classLabel2 = "ghg")
# NonCO2 emissions
tblNonCO2EmissPower <- tblNonCO2Emiss %>%
dplyr::filter(grepl("elec", sector)) %>%
dplyr::mutate(sector = dplyr::case_when(
grepl("biomass", sector) ~ paste0(ghg, "_biomass"),
grepl("coal", sector) ~ paste0(ghg, "_coal"),
grepl("gas", sector) ~ paste0(ghg, "_natural gas"),
grepl("refined liquids", sector) ~ paste0(ghg, "_refined liquids"),
ghg != "CO2" ~ ghg,
T ~ paste0(sector, "_", ghg))) %>%
dplyr::group_by(scenario, region, subRegion, sources, x, xLabel, vintage, units,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value)) %>%
dplyr::rename(class1 = sector, class2 = ghg) %>%
dplyr::mutate(classLabel1 = "sector",
classLabel2 = "ghg")
# all CO2
tblEmissGHGPower <- dplyr::bind_rows(tblCO2EmissPower,
tblNonCO2EmissPower) %>%
dplyr::mutate(param = "emissGHGBySectorPowerGWPAR5",
units="GHG emissions - (MTCO2eq)")
datax <- dplyr::bind_rows(datax, tblEmissGHGPower)
}
### Buildings ############################################
paramx <- "emissGHGBySectorBuildingsGWPAR5"
if(paramx %in% paramsSelectx) {
# CO2 emissions
tblCO2EmissBuild <- tblCO2EmissNoBio %>%
dplyr::filter(grepl("comm|resid", sector)) %>%
dplyr::group_by(scenario, region, subRegion, sources, x, xLabel, vintage, units,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value)) %>%
dplyr::rename(class1 = sector, class2 = ghg) %>%
dplyr::mutate(classLabel1 = "sector",
classLabel2 = "ghg")
# NonCO2 emissions
tblNonCO2EmissBuild <- tblNonCO2Emiss %>%
dplyr::filter(grepl("comm|resid", sector)) %>%
dplyr::group_by(scenario, region, subRegion, sources, x, xLabel, vintage, units,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value)) %>%
dplyr::rename(class1 = sector, class2 = ghg) %>%
dplyr::mutate(classLabel1 = "sector",
classLabel2 = "ghg")
# all CO2
tblEmissGHGBuild <- dplyr::bind_rows(tblCO2EmissBuild,
tblNonCO2EmissBuild) %>%
dplyr::mutate(param = "emissGHGBySectorBuildingsGWPAR5",
units="GHG emissions - (MTCO2eq)")
datax <- dplyr::bind_rows(datax, tblEmissGHGBuild)
}
### Transport #############################################
paramx <- "emissGHGBySectorTransportGWPAR5"
if(paramx %in% paramsSelectx) {
# CO2 emissions
tblCO2EmissTrn <- tblCO2EmissSubsec %>%
dplyr::filter(grepl("trn", sector)) %>%
dplyr::mutate(sector = dplyr::case_when(
subsector %in% c("Car", "Large Car and Truck", "Mini Car") ~ "4W LDV",
subsector %in% c("Heavy truck", "Light truck", "Medium truck") ~ "Freight road",
T ~ subsector)) %>%
dplyr::select(-subsector) %>%
dplyr::group_by(scenario, region, subRegion, sources, x, xLabel, vintage, units,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value)) %>%
dplyr::rename(class1 = sector, class2 = ghg) %>%
dplyr::mutate(classLabel1 = "sector",
classLabel2 = "ghg")
# NonCO2 emissions
tblNonCO2EmissTrn <- tblNonCO2EmissSubsec %>%
dplyr::filter(grepl("trn", sector)) %>%
dplyr::mutate(sector = dplyr::case_when(
subsector %in% c("Car", "Large Car and Truck", "Mini Car") ~ "4W LDV",
subsector %in% c("Heavy truck", "Light truck", "Medium truck") ~ "Freight road",
T ~ subsector)) %>%
dplyr::select(-subsector) %>%
dplyr::group_by(scenario, region, subRegion, sources, x, xLabel, vintage, units,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value)) %>%
dplyr::rename(class1 = sector, class2 = ghg) %>%
dplyr::mutate(classLabel1 = "sector",
classLabel2 = "ghg")
# all CO2
tblEmissGHGTrn <- dplyr::bind_rows(tblCO2EmissTrn,
tblNonCO2EmissTrn) %>%
dplyr::mutate(param = "emissGHGBySectorTransportGWPAR5",
units="GHG emissions - (MTCO2eq)")
datax <- dplyr::bind_rows(datax, tblEmissGHGTrn)
}
### Industry #############################################
paramx <- "emissGHGBySectorIndustryGWPAR5"
if(paramx %in% paramsSelectx) {
# CO2 emissions
tblCO2EmissInd <- tblCO2EmissSubsec %>%
dplyr::filter(grepl("ind|N fertilizer|cement", sector)) %>%
dplyr::mutate(sector = dplyr::case_when(
sector == "industrial energy use" ~ subsector,
sector == "industrial feedstocks" ~ sector,
grepl("cement", sector) ~ "cement",
grepl("industrial processes", sector) ~ "industrial processes",
grepl("N fertilizer", sector) ~ "N fertilizer",
T ~ paste0(sector, "_", subsector))) %>%
dplyr::select(-subsector) %>%
dplyr::group_by(scenario, region, subRegion, sources, x, xLabel, vintage, units,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value)) %>%
dplyr::rename(class1 = sector, class2 = ghg) %>%
dplyr::mutate(classLabel1 = "sector",
classLabel2 = "ghg")
# NonCO2 emissions
tblNonCO2EmissInd <- tblNonCO2EmissSubsec %>%
dplyr::filter(grepl("ind|N fertilizer|cement", sector)) %>%
dplyr::mutate(sector = dplyr::case_when(
sector == "industrial energy use" ~ subsector,
sector == "industrial feedstocks" ~ sector,
grepl("cement", sector) ~ "cement",
grepl("industrial processes", sector) ~ "industrial processes",
grepl("N fertilizer", sector) ~ "N fertilizer",
T ~ paste0(sector, "_", subsector))) %>%
dplyr::select(-subsector) %>%
dplyr::group_by(scenario, region, subRegion, sources, x, xLabel, vintage, units,
aggregate, ghg, sector, classPalette1, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value)) %>%
dplyr::rename(class1 = sector, class2 = ghg) %>%
dplyr::mutate(classLabel1 = "sector",
classLabel2 = "ghg")
# all CO2
tblEmissGHGInd <- dplyr::bind_rows(tblCO2EmissInd,
tblNonCO2EmissInd) %>%
dplyr::mutate(param = "emissGHGBySectorIndustryGWPAR5",
units="GHG emissions - (MTCO2eq)")
datax <- dplyr::bind_rows(datax, tblEmissGHGInd)
}
# Transport -----------------------------
## transportPassengerVMTByMode ===========================
paramx<-"transportPassengerVMTByMode"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "transport service output by mode"
vmt_array <- c("trn_aviation_intl", "trn_pass", "trn_pass_road", "trn_pass_road_LDV",
"trn_pass_road_LDV_2W", "trn_pass_road_LDV_4W")
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::filter(sector %in% vmt_array, !mode %in% c('Cycle', 'Walk', '2W', '4W', 'LDV', 'road')) %>%
dplyr::mutate(#mode=gsub("International\\sAviation","Plane",mode),
#mode=gsub("Domestic\\sAviation","Plane",mode),
mode=gsub("HSR","Rail",mode),
mode=gsub("Passenger\\sRail","Rail",mode),
mode=gsub("Bus","Bus",mode),
mode=gsub("Moped","MotorBike",mode),
mode=gsub("Motorcycle\\s[(]50-250cc[)]","MotorBike",mode),
mode=gsub("Motorcycle\\s[:(:][:>:]250cc[:):]","MotorBike",mode),
mode=gsub("Compact\\sCar","LDV",mode),
mode=gsub("Large\\sCar\\sand\\sTruck", "LDV", mode),
mode=gsub("2W\\sand\\s3W", "LDV", mode),
mode=gsub("Large\\sCar\\sand\\sSUV","LDV",mode),
mode=gsub("Mini\\sCar","LDV",mode),
mode=gsub("Subcompact\\sCar","LDV",mode),
mode=gsub("Car", "LDV", mode),
param = "transportPassengerVMTByMode",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "Passenger (million pass-km)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = mode,
classLabel1 = "Mode",
classPalette1 = "pal_all",
class2 = sector,
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## transportFreightVMTByMode =================================================
paramx<-"transportFreightVMTByMode"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "transport service output by mode"
vmt_array <- c("trn_freight", "trn_freight_road")
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::filter(sector %in% vmt_array, !mode %in% c('road')) %>%
dplyr::mutate(mode=dplyr::if_else(mode=="Domestic Ship","Ship",mode),
mode=dplyr::if_else(mode=="Freight Rail","Rail",mode),
#mode=dplyr::if_else(mode=="International Ship","Ship",mode),
mode=dplyr::if_else(mode=="Truck (6-15t)","Truck",mode),
mode=dplyr::if_else(mode=="Truck (0-1t)","Truck",mode),
mode=dplyr::if_else(mode=="Truck (>15t)","Truck",mode),
param = "transportFreightVMTByMode",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "Freight (million ton-km)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = mode,
classLabel1 = "Mode",
classPalette1 = "pal_all",
class2 = sector,
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## transportPassengerGHGByMode ===============================================
paramx<-"transportPassengerGHGByMode"
# GHG emissions by passenger transport mode
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "nonCO2 emissions by subsector"
pass_array <- c("trn_pass", "trn_pass_road", "trn_pass_road_LDV", "trn_pass_road_LDV_4W")
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::filter(sector %in% pass_array,) %>%
dplyr::left_join(gcamextractor::GWP,by="ghg") %>%
dplyr::left_join(gcamextractor::conv_GgTg_to_MTC,by="Units") %>%
dplyr::mutate(origValue=value,
value=value*GWPAR5*Convert,
#subsector=gsub("International\\sAviation","Plane",mode),
#subsector=gsub("Domestic\\sAviation","Plane",mode),
subsector=gsub("Domestic Aviation","Air",subsector),
subsector=gsub("Passenger\\sRail","Rail",subsector),
subsector=gsub("Bus","Bus",subsector),
subsector=gsub("Moped","MotorBike",subsector),
subsector=gsub("Motorcycle\\s[(]50-250cc[)]","MotorBike",subsector),
subsector=gsub("Motorcycle\\s[:(:][:>:]250cc[:):]","MotorBike",subsector),
subsector=gsub("Compact\\sCar","LDV",subsector),
subsector=gsub("Large\\sCar\\sand\\sTruck", "LDV", subsector),
subsector=gsub("2W\\sand\\s3W", "LDV", subsector),
subsector=gsub("Large\\sCar\\sand\\sSUV","LDV",subsector),
subsector=gsub("Mini\\sCar","LDV",subsector),
subsector=gsub("Subcompact\\sCar","LDV",subsector),
subsector=gsub("Car", "LDV", subsector,),
ghg = dplyr::case_when ((grepl("HFC", ghg)) ~ "HFCs",
(grepl("SF6", ghg)) ~ "SF6",
(grepl("CO2", ghg)) ~ "CO2",
(grepl("N2O", ghg)) ~ "N2O",
(grepl("CH4", ghg)) ~ "CH4",
(grepl("SO2", ghg)) ~ "SO2",
(grepl("NH3", ghg)) ~ "NH3",
(grepl("CF4", ghg)) ~ "CF4",
(grepl("C2F6", ghg)) ~ "C2F6",
TRUE ~ "Other"),
param = "transportPassengerGHGByMode",
origUnits=Units,
origUnits = dplyr::case_when(ghg=="Other"~"Units",TRUE~origUnits),
units="GHG Emissions GWPAR5 (MTCO2eq)",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "GHG Emissions by Mode (MTCO2eq)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = subsector,
classLabel1 = "Mode",
classPalette1 = "pal_all",
class2 = ghg,
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## transportFreightGHGByMode =================================================
paramx<-"transportFreightGHGByMode"
# GHG emissions by freight transport mode
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "nonCO2 emissions by subsector"
freight_array <- c("trn_freight", "trn_freight_road")
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::filter(sector %in% freight_array,) %>%
dplyr::left_join(gcamextractor::GWP,by="ghg") %>%
dplyr::left_join(gcamextractor::conv_GgTg_to_MTC,by="Units") %>%
dplyr::mutate(origValue=value,
value=value*GWPAR5*Convert,
#subsector=gsub("International\\sAviation","Plane",mode),
#subsector=gsub("Domestic\\sAviation","Plane",mode),
subsector=gsub("Domestic Ship","Ship",subsector),
subsector=gsub("Freight\\sRail","Rail",subsector),
subsector=gsub("Motorcycle\\s[(]50-250cc[)]","MotorBike",subsector),
subsector=gsub("Motorcycle\\s[:(:][:>:]250cc[:):]","MotorBike",subsector),
subsector=gsub("Compact\\sCar","LDV",subsector),
subsector=gsub("Heavy\\struck", "Road", subsector),
subsector=gsub("Light\\struck", "Road", subsector),
subsector=gsub("Medium\\struck","Road",subsector),
ghg = dplyr::case_when ((grepl("HFC", ghg)) ~ "HFCs",
(grepl("SF6", ghg)) ~ "SF6",
(grepl("CO2", ghg)) ~ "CO2",
(grepl("N2O", ghg)) ~ "N2O",
(grepl("CH4", ghg)) ~ "CH4",
(grepl("SO2", ghg)) ~ "SO2",
(grepl("NH3", ghg)) ~ "NH3",
(grepl("CF4", ghg)) ~ "CF4",
(grepl("C2F6", ghg)) ~ "C2F6",
TRUE ~ "Other"),
param = "transportFreightGHGByMode",
origUnits=Units,
origUnits = dplyr::case_when(ghg=="Other"~"Units",TRUE~origUnits),
units="GHG Emissions GWPAR5 (MTCO2eq)",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "GHG Emissions by Mode (MTCO2eq)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = subsector,
classLabel1 = "Mode",
classPalette1 = "pal_all",
class2 = ghg,
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## energyPrimaryRefLiqProdEJ =================================================
paramx<-"energyPrimaryRefLiqProdEJ"
# Freight VMT (services) by fuel
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "refined liquids production by subsector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(subsector=dplyr::if_else(subsector=="biomass liquids","biomass liquids", subsector),
subsector=dplyr::if_else(subsector=="coal to liquids","coal to liquids", subsector),
subsector=dplyr::if_else(subsector=="gas to liquids","gas to liquids", subsector),
subsector=dplyr::if_else(subsector=="oil refining","oil refining", subsector),
param = "energyPrimaryRefLiqProdEJ",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "Refined Liquids Production (EJ)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = subsector,
classLabel1 = "Liquid",
classPalette1 = "pal_all",
class2 = sector,
classLabel2 = "Refining",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
# Create table that stores total liquids production in refining
QueryTbl <- tbl
TotalLiquidsProdTbl <- QueryTbl %>%
dplyr::group_by(scenario, region, subRegion, x) %>%
dplyr::summarise(TotalLiquids=sum(value))
# Return to original table, and calculate fraction of total liquids production that is biofuels. QueryTbl can now
# be applied to VMT by fuel categories (passenger and freight) below.
FracBioFuel_tbl <- QueryTbl %>%
dplyr::select(scenario, region, subRegion, class1, x, value) %>%
dplyr::left_join(TotalLiquidsProdTbl, by=c('x', 'scenario','subRegion', 'region')) %>%
dplyr::filter(class1=='biomass liquids') %>%
dplyr::mutate(FracBioFuel=value/TotalLiquids) %>%
dplyr::mutate(FracFossilFuel=1-FracBioFuel) %>%
dplyr::select(-value, -TotalLiquids) %>%
dplyr::mutate(class1 = 'liquids') #only apply fraction to liquids
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## transportPassengerVMTByFuel ===============================================
paramx<-"transportPassengerVMTByFuel"
# Passenger VMT (services) by fuel
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "transport service output by tech"
vmt_array <- c("trn_aviation_intl", "trn_pass", "trn_pass_road", "trn_pass_road_LDV",
"trn_pass_road_LDV_2W", "trn_pass_road_LDV_4W")
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::filter(sector %in% vmt_array, !technology %in% c('Cycle', 'Walk', '2W', '4W', 'LDV', 'road')) %>%
dplyr::mutate(technology=gsub("NG","gas", technology),
technology=gsub("FCEV","hydrogen", technology),
technology=gsub("Hydrogen","hydrogen", technology),
technology=gsub("BEV","electricity", technology),
technology=gsub("Electric","electricity", technology),
technology=gsub("Liquids","liquids", technology),
technology=gsub("Hybrid Liquids","liquids", technology),
technology=gsub("Hybrid liquids","liquids", technology),
param = "transportPassengerVMTByFuel",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "Passenger (million pass-km)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = technology,
classLabel1 = "Fuel",
classPalette1 = "pal_all",
class2 = subsector,
classLabel2 = "subsector",
classPalette2 = "classPalette2")
if("energyPrimaryRefLiqProdEJ" %in% paramsSelectx){
# Break out biofuels
tbl <- tbl %>%
dplyr::left_join(FracBioFuel_tbl, by=c('scenario', 'region','subRegion', 'x', 'class1')) %>%
dplyr::mutate(value = dplyr::if_else(class1=='liquids', value*FracBioFuel, value)) %>%
dplyr::select(-FracBioFuel, -FracFossilFuel) %>%
dplyr::mutate(class1=dplyr::if_else(class1=='liquids', 'biofuel', class1))
tbl2 <- tbl %>%
dplyr::left_join(FracBioFuel_tbl %>% dplyr::mutate(class1='biofuel'), by=c('scenario', 'region', 'subRegion','x', 'class1')) %>%
dplyr::filter(class1=='biofuel') %>%
dplyr::mutate(class1='fossil fuel') %>%
dplyr::mutate(value=dplyr::if_else(class1=='fossil fuel', (value/FracBioFuel)*(1-FracBioFuel), value)) %>%
dplyr::select(-FracBioFuel, -FracFossilFuel)
tbl <- rbind(tbl, tbl2)
}
tbl <- tbl %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## transportPassengerVMTByTech ===============================================
paramx<-"transportPassengerVMTByTech"
# Passenger VMT (services) by fuel
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "transport service output by tech"
vmt_array <- c("trn_aviation_intl", "trn_pass", "trn_pass_road", "trn_pass_road_LDV",
"trn_pass_road_LDV_2W", "trn_pass_road_LDV_4W")
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::filter(sector %in% vmt_array, !technology %in% c('Cycle', 'Walk', '2W', '4W', 'LDV', 'road')) %>%
dplyr::mutate(technology=dplyr::case_when(
subsector == "Bus" & technology %in% c("BEV", "FCEV") ~ "Electric bus",
subsector == "Bus" & technology %in% c("Liquids", "NG", "Hybrid Liquids") ~ "Non-electric bus",
subsector %in% c("2W and 3W", "Car", "Large Car and Truck", "Mini Car") & technology %in% c("BEV", "FCEV") ~ "Electric LDV",
subsector %in% c("2W and 3W", "Car", "Large Car and Truck", "Mini Car") & technology == "Hybrid Liquids" ~ "Hybrid LDV",
subsector %in% c("2W and 3W", "Car", "Large Car and Truck", "Mini Car") & technology %in% c("Liquids", "NG") ~ "Other LDV",
subsector == "Passenger Rail" & technology %in% c("Electric", "Tech-Adv-Electric") ~ "Electric rail",
subsector == "Passenger Rail" & technology %in% c("Liquids", "Tech-Adv-Liquid") ~ "Non-electric Rail",
grepl("Aviation", subsector) ~ "Airplane",
subsector == "HSR" ~ "HSR",
T ~ paste0(subsector, "_", technology)),
param = "transportPassengerVMTByTech",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "Passenger (million pass-km)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = technology,
classLabel1 = "Fuel",
classPalette1 = "pal_all",
class2 = subsector,
classLabel2 = "subsector",
classPalette2 = "classPalette2")
if("energyPrimaryRefLiqProdEJ" %in% paramsSelectx){
# Break out biofuels
tbl <- tbl %>%
dplyr::left_join(FracBioFuel_tbl, by=c('scenario', 'region','subRegion', 'x', 'class1')) %>%
dplyr::mutate(value = dplyr::if_else(class1=='liquids', value*FracBioFuel, value)) %>%
dplyr::select(-FracBioFuel, -FracFossilFuel) %>%
dplyr::mutate(class1=dplyr::if_else(class1=='liquids', 'biofuel', class1))
tbl2 <- tbl %>%
dplyr::left_join(FracBioFuel_tbl %>% dplyr::mutate(class1='biofuel'), by=c('scenario', 'region', 'subRegion','x', 'class1')) %>%
dplyr::filter(class1=='biofuel') %>%
dplyr::mutate(class1='fossil fuel') %>%
dplyr::mutate(value=dplyr::if_else(class1=='fossil fuel', (value/FracBioFuel)*(1-FracBioFuel), value)) %>%
dplyr::select(-FracBioFuel, -FracFossilFuel)
tbl <- rbind(tbl, tbl2)
}
tbl <- tbl %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## transportFreightVMTByFuel =================================================
paramx<-"transportFreightVMTByFuel"
# Freight VMT (services) by fuel
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "transport service output by tech"
vmt_array <- c("trn_freight", "trn_freight_road")
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::filter(sector %in% vmt_array, !technology %in% c('road')) %>%
dplyr::mutate(technology=gsub("NG","gas", technology),
technology=gsub("Liquids","liquids", technology),
technology=gsub("Hybrid liquids","liquids", technology),
technology=gsub("Hybrid Liquids","liquids", technology),
technology=gsub("Electric","electricity", technology),
technology=gsub("BEV","electricity", technology),
technology=gsub("FCEV","electricity", technology),
technology=gsub("Coal","coal", technology),
param = "transportFreightVMTByFuel",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "Freight (million ton-km)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = technology,
classLabel1 = "Fuel",
classPalette1 = "pal_all",
class2 = subsector,
classLabel2 = "subsector",
classPalette2 = "classPalette2")
if("energyPrimaryRefLiqProdEJ" %in% paramsSelectx){
# Break out biofuels
tbl <- tbl %>%
dplyr::left_join(FracBioFuel_tbl, by=c('scenario', 'region','subRegion', 'x', 'class1')) %>%
dplyr::mutate(value = dplyr::if_else(class1=='liquids', value*FracBioFuel, value)) %>%
dplyr::select(-FracBioFuel, -FracFossilFuel) %>%
dplyr::mutate(class1=dplyr::if_else(class1=='liquids', 'biofuel', class1))
tbl2 <- tbl %>%
dplyr::left_join(FracBioFuel_tbl %>% dplyr::mutate(class1='biofuel'), by=c('scenario', 'region','subRegion', 'x', 'class1')) %>%
dplyr::filter(class1=='biofuel') %>%
dplyr::mutate(class1='fossil fuel') %>%
dplyr::mutate(value=dplyr::if_else(class1=='fossil fuel', (value/FracBioFuel)*(1-FracBioFuel), value)) %>%
dplyr::select(-FracBioFuel, -FracFossilFuel)
tbl <- rbind(tbl, tbl2)
}
tbl <- tbl %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## transportFreightVMTByTech =================================================
paramx<-"transportFreightVMTByTech"
# Freight VMT (services) by tech
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "transport service output by tech"
vmt_array <- c("trn_freight", "trn_freight_road")
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::filter(sector %in% vmt_array, !technology %in% c('road')) %>%
dplyr::mutate(technology = dplyr::case_when(
subsector == "Domestic Ship" ~ "Shipping",
subsector == "Freight Rail" & technology == "Coal" ~ "Coal Rail",
subsector == "Freight Rail" & technology %in% c("Electric", "FCEV", "BEV") ~ "Electric Rail",
subsector == "Freight Rail" & technology %in% c("Liquids", "Hybrid Liquids") ~ "Liquids Rail",
sector == "trn_freight_road" & technology %in% c("BEV", "FCEV") ~ "Electric truck",
sector == "trn_freight_road" & technology %in% c("Liquids", "Hybrid Liquids") ~ "Liquids truck",
sector == "trn_freight_road" & technology == "NG" ~ "NG truck",
T ~ paste0(subsector, "_", technology)
),
param = "transportFreightVMTByTech",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "Freight (million ton-km)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = technology,
classLabel1 = "Fuel",
classPalette1 = "pal_all",
class2 = subsector,
classLabel2 = "subsector",
classPalette2 = "classPalette2")
if("energyPrimaryRefLiqProdEJ" %in% paramsSelectx){
# Break out biofuels
tbl <- tbl %>%
dplyr::left_join(FracBioFuel_tbl, by=c('scenario', 'region','subRegion', 'x', 'class1')) %>%
dplyr::mutate(value = dplyr::if_else(class1=='liquids', value*FracBioFuel, value)) %>%
dplyr::select(-FracBioFuel, -FracFossilFuel) %>%
dplyr::mutate(class1=dplyr::if_else(class1=='liquids', 'biofuel', class1))
tbl2 <- tbl %>%
dplyr::left_join(FracBioFuel_tbl %>% dplyr::mutate(class1='biofuel'), by=c('scenario', 'region','subRegion', 'x', 'class1')) %>%
dplyr::filter(class1=='biofuel') %>%
dplyr::mutate(class1='fossil fuel') %>%
dplyr::mutate(value=dplyr::if_else(class1=='fossil fuel', (value/FracBioFuel)*(1-FracBioFuel), value)) %>%
dplyr::select(-FracBioFuel, -FracFossilFuel)
tbl <- rbind(tbl, tbl2)
}
tbl <- tbl %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## energyFinalSubsecByFuelTranspEJ ===========================================
paramx<-"energyFinalSubsecByFuelTranspEJ"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "transport final energy by fuel"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::rename(sector=input) %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(sector=gsub("elect_td_trn","electricity",sector),
sector=gsub("delivered gas","gas",sector),
sector=gsub("refined liquids enduse","liquids",sector),
sector=gsub("H2 enduse","hydrogen",sector),
sector=gsub("delivered coal","coal",sector),
param = "energyFinalSubsecByFuelTranspEJ",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = "Transport Final Energy by Fuel (EJ)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "Fuel",
classPalette1 = "pal_all",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")
# if("energyPrimaryRefLiqProdEJ" %in% unique(datax$param)){
# # Break out biofuels
# tbl <- tbl %>%
# dplyr::left_join(FracBioFuel_tbl, by=c('scenario', 'region', 'x', 'class1')) %>%
# dplyr::mutate(value = dplyr::if_else(class1=='liquids', value*FracBioFuel, value)) %>%
# dplyr::select(-FracBioFuel, -FracFossilFuel) %>%
# dplyr::mutate(class1=dplyr::if_else(class1=='liquids', 'biofuel', class1))
# tbl2 <- tbl %>%
# dplyr::left_join(FracBioFuel_tbl %>% dplyr::mutate(class1='biofuel'), by=c('scenario', 'region', 'x', 'class1')) %>%
# dplyr::filter(class1=='biofuel') %>%
# dplyr::mutate(class1='fossil fuel liquids') %>%
# dplyr::mutate(value=dplyr::if_else(class1=='fossil fuel liquids', (value/FracBioFuel)*(1-FracBioFuel), value)) %>%
# dplyr::select(-FracBioFuel, -FracFossilFuel)
# tbl <- rbind(tbl, tbl2)
# }
tbl <- tbl %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
if(!is.null(tblFinalNrgIntlAvShip)){
# Separat out Intl. Shipping and Aviation refined liquids from Primary Energy Oil
tblTransportFinalOil <- tbl%>%dplyr::filter(class1=="liquids") %>%
dplyr::mutate(class2="class2",classLabel2="classLabel2",classPalette2="classPalette2") %>%
dplyr::select(-origValue)# Subset Transport Sector
tblFinalNrgIntlAvShipMod <- tblFinalNrgIntlAvShip %>%
dplyr::mutate(param=unique(tblTransportFinalOil$param),
class1=paste(class1,"liquids",sep=" "),
sources=unique(tblTransportFinalOil$sources),
origQuery=unique(tblTransportFinalOil$origQuery),
origUnits=unique(tblTransportFinalOil$origUnits),
units=unique(tblTransportFinalOil$units),
xLabel=unique(tblTransportFinalOil$xLabel),
aggregate=unique(tblTransportFinalOil$aggregate),
class2=unique(tblTransportFinalOil$class2),
classLabel2=unique(tblTransportFinalOil$classLabel2),
classPalette2=unique(tblTransportFinalOil$classPalette2),
classLabel1=unique(tblTransportFinalOil$classLabel1),
classPalette1=unique(tblTransportFinalOil$classPalette1))%>%
dplyr::select(-origValue)# Prepare in intl. transport in correct format
# Separate out Intl. Shipping and Aviation
tblSepTransportFinalIntlAvShip <- tblTransportFinalOil %>%
dplyr::bind_rows(tblFinalNrgIntlAvShipMod) %>%
tidyr::spread(key="class1",value="value") %>%
dplyr::mutate(`liquids`=`liquids` -`International Aviation liquids`-`International Ship liquids`)%>%
dplyr::rename(`liquids intl av`=`International Aviation liquids`,
`liquids intl shp`=`International Ship liquids`) %>%
tidyr::gather(key="class1",value="value",
-scenario, -region, -subRegion, -param, -sources, -class2, -x, -xLabel, -vintage, -units, -aggregate,
-classLabel1, -classPalette1, -classLabel2, -classPalette2,
-origScen,-origQuery,-origUnits,-origX)%>%
dplyr::mutate(origValue=value); tblSepTransportFinalIntlAvShip%>%as.data.frame()
# Rbind Transport, Intl. Shipping and Aviation back to all other Final Energy types
tblMod<-tbl%>%dplyr::filter(class1!="liquids") %>%
dplyr::bind_rows(tblSepTransportFinalIntlAvShip) # Remove Transport sector from Original tbl
} else {
rlang::inform(paste("tblFinalNrgIntlAvShip does not exist so skipping subset of final energy to remove intl. shipping and aviation."))
tblMod <- tbl
}
tblMod <- tblMod %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tblMod)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
# Water ----------------------------------------------------------------------
## watConsumBySec ============================================================
paramx <- "watConsumBySec"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# water consumption by sector
queryx <- "water consumption by state, sector, basin (includes desal)"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if(nrow(tbl)>0){
# If GCAM USA then remove "USA" region and use states
# if(any(gcamextractor::regions_US52 %in% unique(tbl$region))){
# tbl <- tbl %>% dplyr::filter(region!="USA") # Remove region USA and use states instead
# }
}
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(sector=dplyr::case_when(
grepl("desalination",technology,ignore.case=T)~"desalination",
sector=="water_td_an_C"~"animal",
sector=="water_td_dom_C"~"domestic",
sector=="water_td_muni_C"~"domestic",
sector=="water_td_elec_C"~"electric",
sector=="water_td_ind_C"~"industry",
sector=="water_td_pri_C"~"primary",
grepl("_irr_",sector)~"irrigation",
TRUE~sector)) %>%
dplyr::mutate(param = "watConsumBySec",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value,
units = "Water Consumption by Sector (km3)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "Sector",
classPalette1 = "pal_all",
class2 = subsector,
classLabel2 = "basin",
classPalette2 = "pal_all")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## watWithdrawBySec ==========================================================
paramx<- "watWithdrawBySec"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# water consumption by sector
queryx <- "water withdrawals by state, sector, basin (includes desal)"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
# if(nrow(tbl)>0){
# # If GCAM USA then remove "USA" region and use states
# if(any(gcamextractor::regions_US52 %in% unique(tbl$region))){
# tbl <- tbl %>% dplyr::filter(region!="USA") # Remove region USA and use states instead
# }
# }
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(sector=dplyr::case_when(
grepl("desalination",technology,ignore.case=T)~"desalination",
sector=="water_td_an_W"~"livestock",
sector=="water_td_dom_W"~"municipal",
sector=="water_td_muni_W"~"municipal",
sector=="water_td_elec_W"~"electricity",
sector=="water_td_ind_W"~"industry",
sector=="water_td_pri_W"~"mining",
grepl("_irr_",sector)~"agriculture",
TRUE~sector)) %>%
dplyr::mutate(param = "watWithdrawBySec",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value,
units = "Water Withdrawal by Sector (km3)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "Sector",
classPalette1 = "pal_wet",
class2 = subsector,
classLabel2 = "basin",
classPalette2 = "pal_all")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## watWithdrawByCrop =========================================================
paramx <- "watWithdrawByCrop"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# water withdrawals by sector
queryx <- "water withdrawals by crop"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
# Need to add in conveyance losses for USA when running GCAM USA
# gcamusa.CONVEYANCE_LOSSES <- 0.829937455747218 from constants.R
if(nrow(tbl)>0){
if(any(unique(tbl$region) %in% gcamextractor::regions_US52)){
tbl <- tbl %>%
dplyr::mutate(value = dplyr::case_when(region=="USA"~value/0.829937455747218,
TRUE~value)) %>%
dplyr::filter(!region %in% gcamextractor::regions_US52)
}
}
if (any(!is.null(regionsSelect))) {
if(any(regionsSelect %in% gcamextractor::regions_US52)){
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect,"USA"))
} else {
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect))
}
}
tbl <- tbl %>%
dplyr::filter(sector!="industry", sector!="mining" , sector!="municipal"
, sector!="electricity" , sector!="livestock", !grepl("water_td_",sector))%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "watWithdrawByCrop",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value,
units = "Water Withdrawals by Crop (km3)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "Crop",
classPalette1 = "pal_all",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## watBioPhysCons ============================================================
paramx <- "watBioPhysCons"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# biophysical water demand by crop type and land region
queryx <- "biophysical water demand by crop type and land region"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "watBioPhysCons",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value,
units = "Biophysical Water Consumption (km3)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "Crop",
classPalette1 = "pal_16",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## watIrrWithdrawBasin =======================================================
paramx <- "watIrrWithdrawBasin"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# water withdrawals by water mapping source
queryx <- "water withdrawals by water mapping source"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(grepl("_irr_",input))%>%
dplyr::mutate(input=gsub("water_td_irr_","",input),
input=gsub("_W","",input))%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "watIrrWithdrawBasin",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value,
units = "Irrigation Water Withdrawal (km3)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = input,
classLabel1 = "Basin",
classPalette1 = "pal_16",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## watIrrConsBasin ===========================================================
paramx <- "watIrrConsBasin"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# water consumption by water mapping source
queryx <- "water consumption by water mapping source"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(grepl("_irr_",input))%>%
dplyr::mutate(input=gsub("water_td_irr_","",input),
input=gsub("_C","",input))%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "watIrrConsBasin",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
value = value,
units = "Irrigation Water Consumption (km3)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = input,
classLabel1 = "Basin",
classPalette1 = "pal_16",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## watSupRunoffBasin =========================================================
paramx <- "watSupRunoffBasin"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# water consumption by water mapping source
queryx <- "Basin level available runoff"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::mutate(subRegion=gsub(" ","_",gsub("\\_.*","",basin)))%>%
dplyr::select(-basin)%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "watSupRunoffBasin",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
value = value,
units = "Runoff (km3)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1="class1",
classLabel1 = "runoff",
classPalette1 = "pal_wet",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "pal_wet") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## waterWithdrawROGW =========================================================
paramx <- "waterWithdrawROGW"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
# water consumption by water mapping source
queryx <- "Water withdrawals by water source (runoff vs. groundwater)"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
if(any(regionsSelect %in% gcamextractor::regions_US52)){
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect,"USA"))
} else {
tbl <- tbl %>% dplyr::filter(region %in% c(regionsSelect))
}
}
tbl <- tbl %>%
dplyr::mutate(subRegion=gsub(" ","_",gsub("\\_.*","",resource)))%>%
dplyr::select(-resource)%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "waterWithdrawROGW",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
value = value,
units = "km3",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1=subresource,
classLabel1 = "source",
classPalette1 = "pal_all",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "pal_all") %>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
# Buildings ------------------------------------------------------------------
## serviceOutputByTechBuildings ==============================================
paramx <- "serviceOutputByTechBuildings"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "building service output by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames,
grepl("comm|resid", sector))%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(
class1 = paste0(sector, " (", technology, ")"),
param = "serviceOutputByTechBuildings",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year, subRegion=region,
scenario = scenNewNames,
units = Units,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classLabel1 = "technology",
classPalette1 = "pal_all",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## buildingFloorspace ========================================================
paramx <- "buildingFloorspace"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "building floorspace"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames) %>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(
class1 = nodeinput,
param = "buildingFloorspace",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
subRegion=region,
scenario = scenNewNames,
units = Units,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classLabel1 = "nodeinput",
classPalette1 = "pal_all",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
# Hydrogen -------------------------------------------------------------------
## hydrogenProdByTech ========================================================
paramx <- "hydrogenProdByTech"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "hydrogen production by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames) %>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(
param = "hydrogenProdByTech",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
subRegion=region,
scenario = scenNewNames,
units = Units,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = subsector,
classLabel1 = "subsector",
classPalette1 = "pal_all",
class2 = technology,
classLabel2 = "technology",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## hydrogenUtilizationByTech =================================================
paramx <- "hydrogenUtilizationByTech"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "hydrogen utilization by technology"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames) %>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(
param = "hydrogenUtilizationByTech",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
subRegion=region,
scenario = scenNewNames,
units = Units,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "sector",
classPalette1 = "pal_all",
class2 = subsector,
classLabel2 = "subsector",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## hydrogenPricesBySector ====================================================
paramx <- "hydrogenPricesBySector"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "hydrogen prices by sector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames) %>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(
param = "hydrogenPricesBySector",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
subRegion=region,
scenario = scenNewNames,
units = Units,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = fuel,
classLabel1 = "fuel",
classPalette1 = "pal_all",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## hydrogenCostsByTech =======================================================
paramx <- "hydrogenCostsByTech"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "hydrogen costs by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames) %>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(
param = "hydrogenCostsByTech",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
subRegion=region,
scenario = scenNewNames,
units = Units,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "sector",
classPalette1 = "pal_all",
class2 = paste0(subsector, "_", technology),
classLabel2 = "subsector_technology",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## hydrogenInputsByTech ======================================================
paramx <- "hydrogenInputsByTech"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "hydrogen inputs by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames) %>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(
param = "hydrogenInputsByTech",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
subRegion=region,
scenario = scenNewNames,
units = Units,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "sector",
classPalette1 = "pal_all",
class2 = paste0(subsector, "_", technology, "_", fuel),
classLabel2 = "subsector_technology_fuel",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
## hydrogenOutputsByTech =====================================================
paramx <- "hydrogenOutputsByTech"
if(paramx %in% paramsSelectx){
rlang::inform(paste0("Running param: ", paramx,"..."))
queryx <- "hydrogen outputs by technology"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (any(!is.null(regionsSelect))) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(scenario %in% scenOrigNames) %>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(
param = "hydrogenOutputsByTech",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
subRegion=region,
scenario = scenNewNames,
units = Units,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "sector",
classPalette1 = "pal_all",
class2 = paste0(sector, "_", technology),
classLabel2 = "subsector_technology",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, subRegion, param, sources, class1, class2, x, xLabel, vintage, units,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origUnits, origX)%>%dplyr::summarize_at(dplyr::vars("value","origValue"),list(~sum(.,na.rm = T)))%>%dplyr::ungroup()%>%
dplyr::filter(!is.na(value))
datax <- dplyr::bind_rows(datax, tbl)
} else {
# if(queryx %in% queriesSelectx){rlang::inform(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
} # Close datax assignments
if(nrow(datax)>0){
datax <- datax %>%
unique()
# ...........
# unit Conversions
# ...........
# dataxEJtoMTOE <- datax %>% dplyr::filter(grepl("\\(EJ\\)",units)) %>%
# dplyr::mutate(value=value*gcamextractor::convert$conv_EJ_to_MTOE,
# units = gsub("\\(EJ\\)","(Mtoe)",units),
# param = gsub("EJ","MTOE",param)); dataxEJtoMTOE
#
# dataxEJtoTWh <- datax %>% dplyr::filter(grepl("\\(EJ\\)",units)) %>%
# dplyr::mutate(value=value*gcamextractor::convert$conv_EJ_to_TWh,
# units = gsub("\\(EJ\\)","(TWh)",units),
# param = gsub("EJ","TWh",param))
#datax <- dplyr::bind_rows(datax,dataxEJtoMTOE,dataxEJtoTWh)
# Remove repeated USA regions
for(scenario_i in unique(datax$scenario)){
for(param_i in unique(datax$param)){
regions_i <-(datax %>% dplyr::filter(param==param_i,scenario==scenario_i))$region%>%unique(); regions_i
if(any(grepl("USA",regions_i)) & length(regions_i[regions_i %in% gcamextractor::regions_US52])>1){
datax <- datax %>%
dplyr::mutate(region = dplyr::case_when(param==param_i &
scenario==scenario_i &
(region=="USA" & !param %in% c("emissNonCO2BySectorGWPAR5",
"emissNonCO2BySector",
"emissCO2BySector",
"emissCO2CumGlobal2010to2100",
"emissCO2CumGlobal2010to2100RCP"))~ "RegionRemove",
TRUE ~ region)) %>%
dplyr::filter(!grepl("remove",region,ignore.case = T)) %>%
dplyr::filter(!grepl("remove",subRegion,ignore.case = T))
}
subRegions_i <-(datax %>% dplyr::filter(param==param_i,scenario==scenario_i))$subRegion%>%unique(); subRegions_i
if(any(grepl("USA",subRegions_i)) & length(subRegions_i[subRegions_i %in% gcamextractor::regions_US52])>1){
datax <- datax %>%
dplyr::mutate(subRegion = dplyr::case_when(param==param_i &
scenario==scenario_i &
(subRegion=="USA" & !param %in% c("emissNonCO2BySectorGWPAR5",
"emissNonCO2BySector",
"emissCO2BySector",
"emissCO2CumGlobal2010to2100",
"emissCO2CumGlobal2010to2100RCP"))~ "subRegionRemove",
TRUE ~ subRegion)) %>%
dplyr::filter(!grepl("remove",region,ignore.case = T)) %>%
dplyr::filter(!grepl("remove",subRegion,ignore.case = T))
}
}
}
# datax$scenario%>%unique()
# datax$param%>%unique()
# chart(tbl,xData="x",yData="value",useNewLabels = 0)
# Check
# unique(datax$param)%>%sort();unique(datax$scenario)%>%sort()
# datax%>%as.data.frame()%>%dplyr::select(scenario,class1,class2,x,param,value)%>%
# dplyr::filter(x %in% c(2010:2050),param=="elecNewCapGW",scenario=="GCAMRef")%>%
# dplyr::group_by(scenario,x)%>%dplyr::summarize(sum=sum(value))
#.....................
# Save Data in CSV
#.....................
#.................................
# Expand data to include all scenarios and states for CERF
#.................................
if(any(c('elec_lifetime_scurve_yr', 'elec_lifetime_yr',
'elec_fuel_co2_content_tonsperMBTU',
'elec_carbon_capture_rate_fraction',
'elec_carbon_capture_escl_rate_fraction') %in% paramsSelectx)){
scenarios_expand <- data.frame("scenarios_new" = scenarios) %>%
dplyr::mutate(scenario = "scenario")
if(!is.null(scenNewNames)){
scenarios_expand <- scenarios_expand %>%
dplyr::rename(scenarios_old=scenarios_new)%>%
dplyr::left_join(data.frame(scenarios_old=scenOrigNames,
scenarios_new=scenNewNames,
by="scenarios_old"))
}
datax_expand_scenarios <- datax %>%
dplyr::filter(param %in% c('elec_lifetime_scurve_yr', 'elec_lifetime_yr',
'elec_fuel_co2_content_tonsperMBTU',
'elec_carbon_capture_rate_fraction',
'elec_carbon_capture_escl_rate_fraction')) %>%
dplyr::filter(scenario=="scenario") %>%
dplyr::left_join(scenarios_expand, by="scenario") %>%
dplyr::select(-scenario) %>%
dplyr::rename(scenario=scenarios_new)
datax <- datax %>%
dplyr::filter(!((param %in% c('elec_lifetime_scurve_yr', 'elec_lifetime_yr',
'elec_fuel_co2_content_tonsperMBTU',
'elec_carbon_capture_rate_fraction',
'elec_carbon_capture_escl_rate_fraction')) &
(scenario=="scenario"))) %>%
dplyr::bind_rows(datax_expand_scenarios)
subRegions_expand <- data.frame("subRegions_new" = gcamextractor::regions_US49) %>%
dplyr::mutate(subRegion = "Global")
datax_expand_regions <- datax %>%
dplyr::filter(param %in% c('elec_lifetime_scurve_yr', 'elec_lifetime_yr',
'elec_fuel_co2_content_tonsperMBTU',
'elec_carbon_capture_rate_fraction',
'elec_carbon_capture_escl_rate_fraction')) %>%
dplyr::filter(region=="Global") %>%
dplyr::left_join(subRegions_expand, by="subRegion") %>%
dplyr::mutate(region = "USA") %>%
dplyr::select(-subRegion) %>%
dplyr::rename(subRegion = subRegions_new)
datax <- datax %>%
dplyr::filter(!((param %in% c('elec_lifetime_scurve_yr', 'elec_lifetime_yr',
'elec_fuel_co2_content_tonsperMBTU',
'elec_carbon_capture_rate_fraction',
'elec_carbon_capture_escl_rate_fraction')) &
((region == "Global")))) %>%
dplyr::bind_rows(datax_expand_regions)
x_expand <- data.frame("x_new" = datax$x%>%unique(),"x" = c("x_expand")) %>%
dplyr::filter(x_new >=2015); x_expand
datax_expand_x <- datax %>%
dplyr::filter(is.na(x)) %>%
dplyr::mutate(x = "x_expand") %>%
dplyr::left_join(x_expand, by="x") %>%
dplyr::select(-x) %>%
dplyr::rename(x = x_new)
datax <- datax %>%
dplyr::filter(!((param %in% c('elec_lifetime_scurve_yr', 'elec_lifetime_yr',
'elec_fuel_co2_content_tonsperMBTU',
'elec_carbon_capture_rate_fraction',
'elec_carbon_capture_escl_rate_fraction')) &
((is.na(x))))) %>%
dplyr::bind_rows(datax_expand_x)
# Update vintages for elec_fuel_co2_content_tonsperMBTU
datax <- datax %>%
dplyr::mutate(vintage = dplyr::if_else((vintage == "vintage" &
param == "elec_fuel_co2_content_tonsperMBTU"),paste0("Vint_",x),vintage))
}
# Rename US regions
datax <- datax %>%
dplyr::mutate(region = dplyr::if_else(region %in% c(gcamextractor::map_state_to_gridregion$grid_region%>%unique(),
gcamextractor::regions_US52),"USA",region)) %>%
unique()
#.............................................
if(!all(regionsSelect %in% unique(datax$region))){
rlang::inform(paste("Regions not available in data: ", paste(regionsSelect[!(regionsSelect %in% unique(datax$region))],collapse=", "), sep=""))
rlang::inform(paste("Running remaining regions: ", paste(regionsSelect[(regionsSelect %in% unique(datax$region))],collapse=", "), sep=""))
}
if(saveData){
# All Data
utils::write.csv(datax,
file = paste(folder, "/gcamDataTable_Extended",nameAppend, ".csv", sep = ""), row.names = F)
rlang::inform(paste("GCAM data table saved to: ",
gsub("//","/",paste(folder, "/gcamDataTable_Extended",nameAppend,".csv", sep = ""))))
# Data
utils::write.csv(datax %>% dplyr::select("scenario","region","subRegion","param","classLabel1","class1","classLabel2","class2",
"xLabel","x","vintage","units","value"),
file = paste(folder, "/gcamDataTable",nameAppend, ".csv", sep = ""), row.names = F)
rlang::inform(paste("GCAM data table saved to: ",
gsub("//","/",paste(folder, "/gcamDataTable",nameAppend,".csv", sep = ""))))
}
# aggregate regions
if(!is.null(regionsAggregate)){
# if regionsAggregate is a vector, convert to list
if(!is.list(regionsAggregate)){
regionsAggregate <- list(regionsAggregate)
}
useCustomName <- F
# check length of names vector matches length of groups list
if(!is.null(regionsAggregateNames)){
if(length(regionsAggregateNames) == length(regionsAggregate)){
useCustomName <- T
} else {rlang::inform("Number of aggregate region names does not match number of aggregate region groups. Using default aggregate names.")}
}
# perform aggregation for each group of regions
for(i in 1:length(regionsAggregate)){
group = regionsAggregate[[i]]
# assign custom region aggregate name if given
if(useCustomName){aggName = regionsAggregateNames[i]}
# generate default aggregated region name if not given
else {aggName = paste(group, collapse = "_")}
# perform aggregation for summed parameters
dataxAggRegionsSums <- datax %>%
dplyr::filter(aggregate=="sum",
region %in% group) %>%
dplyr::group_by(dplyr::across(-c(region, subRegion, value, origValue))) %>%
dplyr::summarise(value=sum(value)) %>%
dplyr::mutate(region = aggName,
subRegion = aggName)
# perform aggregation for averaged parameters
dataxAggRegionsMeans <- datax %>%
dplyr::filter(aggregate=="mean",
region %in% group) %>%
dplyr::group_by(dplyr::across(-c(region, subRegion, value, origValue))) %>%
dplyr::summarise(value=mean(value)) %>%
dplyr::mutate(region = aggName,
subRegion = aggName)
# combine aggregated data with original data
datax<-dplyr::bind_rows(datax, dataxAggRegionsSums, dataxAggRegionsMeans)%>%dplyr::ungroup()
}
}
# Aggregate across Class 2
if(!removeVintages){
dataxAggsums<-datax%>%
dplyr::filter(aggregate=="sum")%>%
dplyr::select(-c(class1,classLabel1,classPalette1, origQuery, origUnits))%>%
dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
dplyr::summarize_at(c("value"),list(~sum(.,na.rm = T))) %>%
dplyr::ungroup()
dataxAggmeans<-datax%>%
dplyr::filter(aggregate=="mean")%>%
dplyr::select(-c(class1,classLabel1,classPalette1, origQuery, origUnits))%>%
dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
dplyr::summarize_at(c("value"),list(~mean(.,na.rm = T)))%>%
dplyr::ungroup()
dataxAggClass<-dplyr::bind_rows(dataxAggsums,dataxAggmeans)%>%dplyr::ungroup()} else {
dataxAggsums<-datax%>%
dplyr::filter(aggregate=="sum")%>%
dplyr::select(-c(class1,classLabel1,classPalette1, origQuery, origUnits, vintage))%>%
dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
dplyr::summarize_at(c("value"),list(~sum(.,na.rm = T))) %>%
dplyr::ungroup()
dataxAggmeans<-datax%>%
dplyr::filter(aggregate=="mean")%>%
dplyr::select(-c(class1,classLabel1,classPalette1, origQuery, origUnits, vintage))%>%
dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
dplyr::summarize_at(c("value"),list(~mean(.,na.rm = T)))%>%
dplyr::ungroup()
dataxAggClass<-dplyr::bind_rows(dataxAggsums,dataxAggmeans)%>%dplyr::ungroup()
}
dataAggClass2 = dataxAggClass %>% dplyr::rename(class=class2,classLabel=classLabel2,classPalette=classPalette2) %>% unique()
if(saveData){
if(!removeVintages){
utils::write.csv(dataxAggClass %>%
dplyr::rename(class=class2,classLabel=classLabel2,classPalette=classPalette2)%>%
dplyr::select("scenario","region","subRegion","param","classLabel","class","classLabel",
"xLabel","x","vintage","aggregate","units","value"),
file = gsub("//","/",paste(folder,
"/gcamDataTable_aggClass2",
nameAppend,".csv", sep = "")),row.names = F)} else {
utils::write.csv(dataxAggClass %>%
dplyr::rename(class=class2,classLabel=classLabel2,classPalette=classPalette2)%>%
dplyr::select("scenario","region","subRegion","param","classLabel","class","classLabel",
"xLabel","x","aggregate","units","value"),
file = gsub("//","/",paste(folder,
"/gcamDataTable_aggClass2",
nameAppend,".csv", sep = "")),row.names = F)
}
rlang::inform(paste("GCAM data aggregated to class 2 saved to: ",gsub("//","/",paste(folder,
"/gcamDataTable_aggClass2",
nameAppend,".csv", sep = "")),sep=""))
}
# Aggregate across Class 1
if(!removeVintages){
dataxAggsums<-datax%>%
dplyr::filter(aggregate=="sum")%>%
dplyr::select(-c(class2,classLabel2,classPalette2, origQuery, origUnits))%>%
dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
dplyr::summarize_at(c("value"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()
dataxAggmeans<-datax%>%
dplyr::filter(aggregate=="mean")%>%
dplyr::select(-c(class2,classLabel2,classPalette2, origQuery, origUnits))%>%
dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
dplyr::summarize_at(c("value"),list(~mean(.,na.rm = T)))%>%
dplyr::ungroup()
dataxAggClass<-dplyr::bind_rows(dataxAggsums,dataxAggmeans)%>%dplyr::ungroup()} else {
dataxAggsums<-datax%>%
dplyr::filter(aggregate=="sum")%>%
dplyr::select(-c(class2,classLabel2,classPalette2, origQuery, origUnits, vintage))%>%
dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
dplyr::summarize_at(c("value"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()
dataxAggmeans<-datax%>%
dplyr::filter(aggregate=="mean")%>%
dplyr::select(-c(class2,classLabel2,classPalette2, origQuery, origUnits, vintage))%>%
dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
dplyr::summarize_at(c("value"),list(~mean(.,na.rm = T)))%>%
dplyr::ungroup()
dataxAggClass<-dplyr::bind_rows(dataxAggsums,dataxAggmeans)%>%dplyr::ungroup()
}
dataAggClass1 = dataxAggClass %>% dplyr::rename(class=class1,classLabel=classLabel1,classPalette=classPalette1) %>% unique()
if(saveData){
if(!removeVintages){
utils::write.csv(dataxAggClass %>%
dplyr::rename(class=class1,classLabel=classLabel1,classPalette=classPalette1) %>%
dplyr::select("scenario","region","subRegion","param","classLabel","class","classLabel",
"xLabel","x","vintage","aggregate","units","value"),
file = gsub("//","/",paste(folder,
"/gcamDataTable_aggClass1",
nameAppend,".csv", sep = "")),row.names = F)} else {
utils::write.csv(dataxAggClass %>%
dplyr::rename(class=class1,classLabel=classLabel1,classPalette=classPalette1) %>%
dplyr::select("scenario","region","subRegion","param","classLabel","class","classLabel",
"xLabel","x","aggregate","units","value"),
file = gsub("//","/",paste(folder,
"/gcamDataTable_aggClass1",
nameAppend,".csv", sep = "")),row.names = F)
}
rlang::inform(paste("GCAM data aggregated to class 1 saved to: ",gsub("//","/",paste(folder,
"/gcamDataTable_aggClass1",
nameAppend,".csv", sep = "")),sep=""))
}
# Aggregate across Param
if(!removeVintages){
dataxAggsums<-datax%>%
dplyr::filter(aggregate=="sum")%>%
dplyr::select(-c(class2,classLabel2,classPalette2,class1,classLabel1))%>%
dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
dplyr::summarize_at(c("value"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()
dataxAggmeans<-datax%>%
dplyr::filter(aggregate=="mean")%>%
dplyr::select(-c(class2,classLabel2,classPalette2,class1,classLabel1))%>%
dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
dplyr::summarize_at(c("value"),list(~mean(.,na.rm = T)))%>%
dplyr::ungroup()
dataxAggClass<-dplyr::bind_rows(dataxAggsums,dataxAggmeans)%>%dplyr::ungroup()} else {
dataxAggsums<-datax%>%
dplyr::filter(aggregate=="sum")%>%
dplyr::select(-c(class2,classLabel2,classPalette2,class1,classLabel1, vintage))%>%
dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
dplyr::summarize_at(c("value"),list(~sum(.,na.rm = T)))%>%
dplyr::ungroup()
dataxAggmeans<-datax%>%
dplyr::filter(aggregate=="mean")%>%
dplyr::select(-c(class2,classLabel2,classPalette2,class1,classLabel1, vintage))%>%
dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
dplyr::summarize_at(c("value"),list(~mean(.,na.rm = T)))%>%
dplyr::ungroup()
dataxAggClass<-dplyr::bind_rows(dataxAggsums,dataxAggmeans)%>%dplyr::ungroup()
}
dataAggParam = dataxAggClass %>% dplyr::rename(classPalette=classPalette1) %>% unique()
if(saveData){
if(!removeVintages){
utils::write.csv(dataxAggClass %>%
dplyr::rename(classPalette=classPalette1) %>%
dplyr::select("scenario","region","subRegion","param","xLabel","x","vintage","aggregate","units","value"),
file = gsub("//","/",paste(folder,
"/gcamDataTable_aggParam",
nameAppend,".csv", sep = "")),row.names = F)} else {
utils::write.csv(dataxAggClass %>%
dplyr::rename(classPalette=classPalette1) %>%
dplyr::select("scenario","region","subRegion","param","xLabel","x","aggregate","units","value"),
file = gsub("//","/",paste(folder,
"/gcamDataTable_aggParam",
nameAppend,".csv", sep = "")),row.names = F)
}
rlang::inform(paste("GCAM data aggregated to param saved to: ",gsub("//","/",paste(folder,
"/gcamDataTable_aggParam",
nameAppend,".csv", sep = "")),sep=""))
}
}else{rlang::inform(paste0("No data for any of the regions, params or queries selected"))} # Close datax nrow check
}else{ # CLose Param Check
rlang::inform(paste("None of the parameters in paramsSelect: ", paste(paramsSelect,collapse=",")," are available."))}
rlang::inform(paste0("Outputs returned as list containing data, scenarios and queries."))
rlang::inform(paste0("For example if df <- readgcam(dataProjFile = gcamextractor::example_GCAMv52_2050_proj)"))
rlang::inform(paste0("Then you can view the outputs as df$data, df$dataAggClass1, df$dataAggClass2, df$dataAggParam, df$scenarios, df$queries."))
rlang::inform((gsub("//","/",paste("All outputs in : ",normalizePath(folder),sep=""))))
rlang::inform(paste0("readgcam run completed."))
if(!removeVintages){
listOut <- list(dataAll = datax,
data = datax %>% dplyr::select("scenario","region","subRegion","param","classLabel1","class1","classLabel2","class2",
"xLabel","x","vintage","aggregate","units","value"),
dataAggClass1 = dataAggClass1 %>% dplyr::select("scenario","region","subRegion","param","classLabel","class","classLabel",
"xLabel","x","vintage","aggregate","units","value"),
dataAggClass2 = dataAggClass2 %>% dplyr::select("scenario","region","subRegion","param","classLabel","class","classLabel",
"xLabel","x","vintage","aggregate","units","value"),
dataAggParam = dataAggParam %>% dplyr::select("scenario","region","subRegion","param","xLabel","x","vintage","aggregate","units","value"),
scenarios = scenarios,
queries = queries)
}else{
listOut <- list(dataAll = datax,
data = datax %>% dplyr::select("scenario","region","subRegion","param","classLabel1","class1","classLabel2","class2",
"xLabel","x","aggregate","units","value"),
dataAggClass1 = dataAggClass1 %>% dplyr::select("scenario","region","subRegion","param","classLabel","class","classLabel",
"xLabel","x","aggregate","units","value"),
dataAggClass2 = dataAggClass2 %>% dplyr::select("scenario","region","subRegion","param","classLabel","class","classLabel",
"xLabel","x","aggregate","units","value"),
dataAggParam = dataAggParam %>% dplyr::select("scenario","region","subRegion","param","xLabel","x","aggregate","units","value"),
scenarios = scenarios,
queries = queries)
}
if(nrow(datax)>0){
return(listOut)} else {
rlang::warn("No data extracted for chosen arguments.")
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.