#' metis.readgcam
#'
#' This function connects to a gcamdatabase and uses a query file to
#' out results into a table ready for plotting.
#' @param dirOutputs Full path to directory for outputs
#' @param folderName Default = NULL
#' @param nameAppend Default="". Name to append to saved files.
#' @param gcamdatabase Default = NULL. Full path to GCAM database folder.
#' @param queryFile Defualt = NULL. When NULL metis loads pre-saved xml file metis::xmlMetisQueries
#' @param dataProjFile Default = NULL. Optional. A default 'dataProj.proj' is produced if no .Proj file is specified.
#' @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 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 paramsSelect Default = "All".
#'
#' 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","energyFinalByFuelBySectorEJ","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",
#' "elecNewCapCost","elecNewCapGW","elecAnnualRetPrematureCost","elecAnnualRetPrematureGW","elecCumCapCost","elecCumCapGW","elecCumRetPrematureCost","elecCumRetPrematureGW",
#'
#' # transport
#' "transportPassengerVMTByMode", "transportFreightVMTByMode", "transportPassengerVMTByFuel", "transportFreightVMTByFuel",
#'
#' # 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", "emissNonCO2BySectorGWPAR5","emissNonCO2BySectorGTPAR5","emissNonCO2BySectorOrigUnits",
#' "emissNonCO2ByResProdGWPAR5", "emissBySectorGWPAR5FFI","emissMethaneBySourceGWPAR5",
#' "emissByGasGWPAR5FFI", "emissByGasGWPAR5LUC", "emissBySectorGWPAR5LUC",
#' "emissNonCO2ByResProdGTPAR5", "emissBySectorGTPAR5FFI","emissMethaneBySourceGTPAR5",
#' "emissByGasGTPAR5FFI", "emissByGasGTPAR5LUC","emissBySectorGTPAR5LUC",
#' "emissCO2BySectorNoBio"
#' @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 metis charts.
#' @keywords gcam, gcam database, query
#' @export
metis.readgcam <- function(gcamdatabase = NULL,
queryFile = NULL,
dataProjFile = paste(getwd(), "/outputs/dataProj.proj", sep = ""),
scenOrigNames = "All",
scenNewNames = NULL,
reReadData = T,
dirOutputs = paste(getwd(), "/outputs", sep = ""),
regionsSelect = NULL,
paramsSelect="All",
folderName=NULL,
nameAppend="",
saveData = T
){
# gcamdatabase = NULL
# queryFile = paste(getwd(),"/dataFiles/gcam/metisQueries.xml",sep="")
# dataProjFile = paste(getwd(), "/outputs/dataProj.proj", sep = "")
# scenOrigNames = "All"
# scenNewNames = NULL
# reReadData = T
# dirOutputs = paste(getwd(), "/outputs", sep = "")
# regionsSelect = NULL
# paramsSelect="All"
# folderName=NULL
# 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->
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 -> dataTemplate->tblFinalNrgIntlAvShip->datax->group->basin
#---------------------
# Params and Queries
#---------------------
paramQueryMap <- tibble::tribble(
~group, ~param, ~query,
"energy","energyPrimaryByFuelEJ","primary energy consumption by region (direct equivalent) ORDERED SUBSECTORS",
"energy","energyPrimaryRefLiqProdEJ", "refined liquids production by subsector",
"energy","energyFinalConsumBySecEJ", "total final energy by aggregate sector",
"energy","energyFinalByFuelBySectorEJ", "Final energy by detailed end-use sector and fuel",
"energy","energyFinalSubsecByFuelTranspEJ", "transport final energy by fuel",
"energy","energyFinalSubsecByFuelBuildEJ", "building final energy by fuel",
"energy","energyFinalSubsecByFuelIndusEJ", "industry final energy by fuel",
"energy","energyFinalSubsecBySectorBuildEJ", "building final energy by subsector",
"energy","energyFinalConsumByIntlShpAvEJ", "transport final energy by mode and fuel",
"energy","energyPrimaryByFuelMTOE", "primary energy consumption by region (direct equivalent) ORDERED SUBSECTORS",
"energy","energyPrimaryRefLiqProdMTOE", "refined liquids production by subsector",
"energy","energyFinalConsumBySecMTOE", "total final energy by aggregate sector",
"energy","energyFinalbyFuelMTOE", "Final energy by detailed end-use sector and fuel",
"energy","energyFinalSubsecByFuelTranspMTOE", "transport final energy by fuel",
"energy","energyFinalSubsecByFuelBuildMTOE", "building final energy by fuel",
"energy","energyFinalSubsecByFuelIndusMTOE", "industry final energy by fuel",
"energy","energyFinalSubsecBySectorBuildMTOE", "building final energy by subsector",
"energy","energyFinalConsumByIntlShpAvMTOE", "transport final energy by mode and fuel",
"energy","energyPrimaryByFuelTWh", "primary energy consumption by region (direct equivalent) ORDERED SUBSECTORS",
"energy","energyPrimaryRefLiqProdTWh", "refined liquids production by subsector",
"energy","energyFinalConsumBySecTWh", "total final energy by aggregate sector",
"energy","energyFinalbyFuelTWh", "Final energy by detailed end-use sector and fuel",
"energy","energyFinalSubsecByFuelTranspTWh", "transport final energy by fuel",
"energy","energyFinalSubsecByFuelBuildTWh", "building final energy by fuel",
"energy","energyFinalSubsecByFuelIndusTWh", "industry final energy by fuel",
"energy","energyFinalSubsecBySectorBuildTWh", "building final energy by subsector",
"energy","energyFinalConsumByIntlShpAvTWh", "transport final energy by mode and fuel",
# Electricity
"electricity","elecByTechTWh", c("industry final energy by fuel","elec gen by gen tech cogen USA","elec gen by gen tech USA","elec gen by gen tech and cooling tech"),
"electricity","elecCapByFuel", c("industry final energy by fuel","elec gen by gen tech cogen USA","elec gen by gen tech USA","elec gen by gen tech and cooling tech"),
"electricity","elecFinalBySecTWh", "Final energy by detailed end-use sector and fuel",
"electricity","elecFinalByFuelTWh", "Final energy by detailed end-use sector and fuel",
"electricity","elecNewCapCost", c("elec gen by gen tech and cooling tech and vintage","Electricity generation by aggregate technology"),
"electricity","elecNewCapGW", c("elec gen by gen tech and cooling tech and vintage","Electricity generation by aggregate technology"),
"electricity","elecAnnualRetPrematureCost", c("elec gen by gen tech and cooling tech and vintage","Electricity generation by aggregate technology"),
"electricity","elecAnnualRetPrematureGW", c("elec gen by gen tech and cooling tech and vintage","Electricity generation by aggregate technology"),
"electricity","elecCumCapCost", c("elec gen by gen tech and cooling tech and vintage","Electricity generation by aggregate technology"),
"electricity","elecCumCapGW", c("elec gen by gen tech and cooling tech and vintage","Electricity generation by aggregate technology"),
"electricity","elecCumRetPrematureCost", c("elec gen by gen tech and cooling tech and vintage","Electricity generation by aggregate technology"),
"electricity","elecCumRetPrematureGW", c("elec gen by gen tech and cooling tech and vintage","Electricity generation by aggregate technology"),
# Transport
"transport","transportPassengerVMTByMode", "transport service output by mode",
"transport","transportFreightVMTByMode", "transport service output by mode",
"transport","transportPassengerVMTByFuel","transport service output by tech (new)",
"transport","transportFreightVMTByFuel", "transport service output by tech (new)",
# Water
"water","watConsumBySec", "water consumption by state, sector, basin (includes desal)",
"water","watWithdrawBySec", "water withdrawals by state, sector, basin (includes desal)",
"water","watWithdrawByCrop", "water withdrawals by crop",
"water","watBioPhysCons", "biophysical water demand by crop type and land region",
"water","watIrrWithdrawBasin", "water withdrawals by water mapping source",
"water","watIrrConsBasin", "water consumption by water mapping source",
"water","watSupRunoffBasin", "Basin level available runoff",
# Socio-economics
"socioecon","gdpPerCapita", "GDP per capita MER by region",
"socioecon","gdp", "GDP MER by region",
"socioecon","gdpGrowthRate", "GDP Growth Rate (Percent)",
"socioecon","pop", "Population by region",
# Agriculture
"ag","agProdbyIrrRfd", "ag production by tech",
"ag","agProdBiomass", "Ag Production by Crop Type",
"ag","agProdForest", "Ag Production by Crop Type",
"ag","agProdByCrop", "Ag Production by Crop Type",
#Livestock
"livestock","livestock_MeatDairybyTechMixed", "meat and dairy production by tech",
"livestock","livestock_MeatDairybyTechPastoral", "meat and dairy production by tech",
"livestock","livestock_MeatDairybyTechImports", "meat and dairy production by tech",
"livestock","livestock_MeatDairybySubsector", "meat and dairy production by tech",
# Land use
"land","landIrrRfd", "land allocation by crop and water source",
"land","landIrrCrop", "land allocation by crop and water source",
"land","landRfdCrop", "land allocation by crop and water source",
"land","landAlloc", "aggregated land allocation",
"land","landAllocByCrop", "land allocation by crop",
# Emissions
"emissions","emissNonCO2BySectorGWPAR5", "nonCO2 emissions by sector",
"emissions","emissNonCO2BySectorGTPAR5", "nonCO2 emissions by sector",
"emissions","emissNonCO2BySectorOrigUnits", "nonCO2 emissions by sector",
"emissions","emissLUC", "Land Use Change Emission (future)",
"emissions","emissCO2BySectorNoBio", "CO2 emissions by sector (no bio)",
"emissions","emissNonCO2ByResProdGWPAR5", "nonCO2 emissions by resource production",
"emissions","emissMethaneBySourceGWPAR5", "nonCO2 emissions by sector",
"emissions","emissByGasGWPAR5FFI", c("nonCO2 emissions by resource production","nonCO2 emissions by sector"),
"emissions","emissByGasGWPAR5LUC", c("nonCO2 emissions by resource production","nonCO2 emissions by sector"),
"emissions","emissBySectorGWPAR5FFI", c("nonCO2 emissions by resource production","nonCO2 emissions by sector"),
"emissions","emissBySectorGWPAR5LUC", c("nonCO2 emissions by resource production","nonCO2 emissions by sector"),
"emissions","emissNonCO2ByResProdGTPAR5", "nonCO2 emissions by resource production",
"emissions","emissMethaneBySourceGTPAR5", "nonCO2 emissions by sector",
"emissions","emissByGasGTPAR5FFI", c("nonCO2 emissions by resource production","nonCO2 emissions by sector"),
"emissions","emissByGasGTPAR5LUC", c("nonCO2 emissions by resource production","nonCO2 emissions by sector"),
"emissions","emissBySectorGTPAR5FFI", c("nonCO2 emissions by resource production","nonCO2 emissions by sector"),
"emissions","emissBySectorGTPAR5LUC", c("nonCO2 emissions by resource production","nonCO2 emissions by sector")
); paramQueryMap
# 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)))
print(paste("queriesSelect chosen include the following querySets: ",paste(paramsSelect,collapse=", "),".",sep=""))
print(paste("Which include the following queries: ",paste(queriesSelectx,collapse=", "),".",sep=""))
#print(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)))
print(paste("queriesSelect chosen include the following queries: ",paste(queriesSelectx,collapse=", "),".",sep=""))
# print(paste("Other queries not run include: ",paste(as.vector(unlist(querySets))[!as.vector(unlist(querySets)) %in% queriesSelectx],collapse=", "),".",sep=""))
}else {
queriesSelectx <- NULL
print(paste("Params in metisQueries.xml include: ",paste(as.vector(unlist(unique(paramQueryMap$param))),collapse=", "),".",sep=""))
print("")
print(paste("Chosen paramsSelect: ",paste(paramsSelect,collapse=", "),".",sep=""))
stop("None of the params chosen are available.")
}
}}else{
queriesSelectx <- as.vector(unlist(unique(paramQueryMap$query)))
}
#-----------------------------
# Create necessary directories if they dont exist.
#----------------------------
if (!dir.exists(dirOutputs)){
dir.create(dirOutputs)} # Output Directory
if (!dir.exists(paste(dirOutputs, "/", folderName, sep = ""))){
dir.create(paste(dirOutputs, "/", folderName, sep = ""))}
if (!dir.exists(paste(dirOutputs, "/", folderName,"/readGCAM",sep=""))){
dir.create(paste(dirOutputs, "/", folderName,"/readGCAM",sep=""))} # Output Directory
if (!dir.exists(paste(dirOutputs, "/", folderName, "/readGCAM/Tables_gcam", sep = ""))){
dir.create(paste(dirOutputs, "/", folderName, "/readGCAM/Tables_gcam", sep = ""))} # GCAM output directory
if (!dir.exists(paste(dirOutputs, "/", folderName, "/readGCAM/Tables_Templates", sep = ""))){
dir.create(paste(dirOutputs, "/", folderName, "/readGCAM/Tables_Templates", sep = ""))} # GCAM output directory
if (!dir.exists(paste(dirOutputs, "/", folderName, "/readGCAM/Tables_Local", sep = ""))){
dir.create(paste(dirOutputs, "/", folderName, "/readGCAM/Tables_Local", sep = ""))} # GCAM output directory
#----------------
# Set file paths
#----------------
if(is.null(gcamdatabase)){
gcamdatabasePath = NULL
gcamdatabaseName = NULL
}else{
if(is.character(gcamdatabase)){
if(dir.exists(gcamdatabase)){
gcamdatabasePath <- gsub("/$","",gsub("[^/]+$","",gcamdatabase)); gcamdatabasePath
gcamdatabaseName <- basename(gcamdatabase); gcamdatabaseName
print(paste("Connecting to GCAM database provided ",gcamdatabase,"...",sep=""))
}else{print(paste("The GCAM database path provided dos not exist: ", gcamdatabase, sep=""))}
}else{
print(paste("gcamdatabase provided is not a character string to the GCAM database path. Please check your entry."))
}
}
if(is.null(queryFile)){
XML::saveXML(metis::xmlMetisQueries, file=paste(dirOutputs, "/", folderName,"/readGCAM/metisQueries.xml", sep = ""))
queryFile <- paste(dirOutputs, "/", folderName,"/readGCAM/metisQueries.xml", sep = "")
queryPath <- gsub("[^/]+$","",queryFile)
queryxml <- basename(queryFile)
}else{
if(is.character(queryFile)){
if(file.exists(queryFile)){
queryPath <- gsub("[^/]+$","",queryFile)
queryxml <- basename(queryFile)
print(paste("Connecting to the queryFile provided ",queryFile,"...",sep=""))
}else{print(paste("The queryFile path provided dos not exist: ", queryFile, sep=""))}
}else{
print(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(dirOutputs, "/", folderName,"/readGCAM/", sep = ""))
}else{
if(is.list(dataProjFile)){
dataProjPath <- gsub("//","/",paste(dirOutputs, "/", folderName,"/readGCAM/", sep = ""))
dataProj <- paste("dataProj", sep = "")
}else{
if(is.character(dataProjFile)){
if(grepl("/",dataProjFile)){
if(file.exists(dataProjFile)){
dataProjPath <- gsub("[^/]+$","",dataProjFile)
dataProj <- basename(dataProjFile)
print(paste("Connecting to the dataProjFile provided ",dataProjFile,"...",sep=""))}else{
dataProjPath <- gsub("[^/]+$","",dataProjFile)
dataProj <- basename(dataProjFile)
print(gsub("//","/",paste("Will save GCAM data to ",dataProjPath,"/",dataProjFile,"...",sep="")))
}
}else{
dataProjPath <- gsub("//","/",paste(dirOutputs, "/", folderName,"/readGCAM/", sep = ""))
dataProj <- dataProjFile
print(paste("Will save data to: ", dataProjPath,"/",dataProjFile, sep=""))
}
}else{
print(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
print("scenOrigNames is NULL so cannot assign scenNewNames.")
print("To set new names for scenarios please enter original names in scenOrigNames and then corresponding new names in scenNewNames.")
} else {
if(any(c("all","All","ALL") %in% scenOrigNames)){
scenNewNames <- NULL
print("scenOrigNames is All so cannot assign scenNewNames.")
print("To set new names for scenarios please enter original names in scenOrigNames and then corresponding new names in scenNewNames.")
}
}
#---------------------------------------------
# Read gcam database or existing dataProj.proj
#--------------------------------------------
# In case user sets reReadData=F T and provides a .proj file instead of a gcamdatabase
if((is.null(gcamdatabasePath) | is.null(gcamdatabaseName)) &
reReadData==T){
if(is.list(dataProjFile)){
reReadData=F
print("Setting reReadData to F because no gcamdatabase is provided but a valid dataProjFile provided.")
}else{
if(file.exists(dataProjFile)){
reReadData=F
print("Setting reReadData to F because no gcamdatabase is provided but a valid dataProjFile provided.")
}}
}
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 metis::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]
print(paste("scenOrigNames set to NULL so using only first scenario: ",scenarios[1],sep=""))
print(paste("from all available scenarios: ",paste(scenarios,collapse=", "),sep=""))
print("To run all scenarios please set scenOrigNames to 'All'")
} else {
if(any(c("all","All","ALL") %in% scenOrigNames)){
scenOrigNames <- scenarios
print(paste("scenOrigNames set to 'All' so using all available scenarios: ",paste(scenarios,collapse=", "),sep=""))
} else {
if(any(scenOrigNames %in% scenarios)){
print(paste("scenOrigNames available in scenarios are :",paste(scenOrigNames[scenOrigNames %in% scenarios],collapse=", "),sep=""))
if(length(scenOrigNames[!scenOrigNames %in% scenarios])>0){
print(paste("scenOrigNames not available in scenarios are :",paste(scenOrigNames[!scenOrigNames %in% scenarios],collapse=", "),sep=""))}
if(length(scenarios[!scenarios %in% scenOrigNames])>0){
print(paste("Other scenarios not selected are :",paste(scenarios[!scenarios %in% scenOrigNames],collapse=", "),sep=""))}
} else {
print(paste("None of the scenOrigNames : ",paste(scenOrigNames,collapse=", "),sep=""))
print(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 queriwsSelect 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))
for(i in 1:length(xmltop)){
for(j in 1:length(queriesSelectx)){
if(any(grepl(gsub("\\(","\\\\(",gsub("\\)","\\\\)",queriesSelectx[j])), as.character(xmltop[[i]]))))
top <- XML::addChildren(top, xmltop[[i]])
}
}
XML::saveXML(top, file=gsub("//","/",paste(queryPath, "/subSetQueries.xml", sep = "")))
} else {
print(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{
print(gsub("//","/",paste("Reading queries from queryFile created: ", queryPath,"/subSetQueries.xml.",sep="")))
}
# Check for gcamdatbasePath and gcamdatabasename
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
# Save Message from rgcam::localDBConn to a text file and then extract names
zz <- file(paste(getwd(),"/test.txt",sep=""), open = "wt")
sink(zz,type="message")
rgcam::localDBConn(gcamdatabasePath,gcamdatabaseName)
sink()
closeAllConnections()
# Read temp file
con <- file(paste(getwd(),"/test.txt",sep=""),open = "r")
first_line <- readLines(con,n=1); first_line
closeAllConnections()
if(grepl("error",first_line,ignore.case = T)){stop(paste(first_line))}
print(first_line)
if(file.exists(paste(getwd(),"/test.txt",sep=""))){unlink(paste(getwd(),"/test.txt",sep=""))}
# Extract scenario names from saved line
s1 <- gsub(".*:","",first_line);s1
s2 <- gsub(" ","",s1);s2
scenarios <- as.vector(unlist(strsplit(s2,",")))
print(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]
print(paste("scenOrigNames set to NULL so using only first scenario: ",scenarios[1],sep=""))
print(paste("from all available scenarios: ",paste(scenarios,collapse=", "),sep=""))
print("To run all scenarios please set scenOrigNames to 'All'")
} else {
if(any(c("all","All","ALL") %in% scenOrigNames)){
scenOrigNames <- scenarios
print(paste("scenOrigNames set to 'All' so using all available scenarios: ",paste(scenarios,collapse=", "),sep=""))
} else {
if(any(scenOrigNames %in% scenarios)){
print(paste("scenOrigNames available in scenarios are :",paste(scenOrigNames[scenOrigNames %in% scenarios],collapse=", "),sep=""))
if(length(scenOrigNames[!scenOrigNames %in% scenarios])>0){
print(paste("scenOrigNames not available in scenarios are :",paste(scenOrigNames[!scenOrigNames %in% scenarios],collapse=", "),sep=""))}
if(length(scenarios[!scenarios %in% scenOrigNames])>0){
print(paste("Other scenarios not selected are :",paste(scenarios[!scenarios %in% scenOrigNames],collapse=", "),sep=""))}
} else {
print(paste("None of the scenOrigNames : ",paste(scenOrigNames,collapse=", "),sep=""))
print(paste("are in the available scenarios : ",paste(scenarios,collapse=", "),sep=""))
stop("Please check scenOrigNames and rerun.")
}
}
}
for (scenario_i in scenOrigNames) {
dataProj.proj <- rgcam::addScenario(conn = rgcam::localDBConn(gcamdatabasePath, gcamdatabaseName), proj = gsub("//","/",paste(dataProjPath, "/", dataProj, sep = "")),
scenario = scenario_i, queryFile = gsub("//","/",paste(queryPath, "/subSetQueries.xml", sep = ""))) # 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
# Set new scenario names if provided
if (is.null(scenNewNames)) {
scenNewNames <- scenOrigNames}else{
scenNewNames <- scenNewNames[1:length(scenOrigNames)]
}
# Get All Regions
if(length(queries)==0){stop("No queries found. PLease check data.")}
tbl <- rgcam::getQuery(dataProjLoaded, queries[1]) # Tibble
regionsAll<-unique(tbl$region)
if(any(c("all","All","ALL") %in% regionsSelect)){regionsSelect<-regionsAll; regionsSelectAll=T}else{
regionsSelectAll=F
}
# Read in paramaters from query file to create formatted table
if(any(c("all","All","ALL") %in% paramsSelect)){queriesx <- queries} else{
if(!any(queriesSelectx %in% queries)){stop("None of the selected queries are available in the data that has been read.
Please check your data if reRead was set to F. Otherwise check the paramSelect entries and the queryxml file.")} else {
if(length(queriesSelectx[!(queriesSelectx %in% queries)])>0){
print(paste("Queries not available in queryxml: ", paste(queriesSelectx[!(queriesSelectx %in% queries)],collapse=", "), sep=""))
print(paste("Running remaining queriesSelect: ", paste(queriesSelectx[(queriesSelectx %in% queries)],collapse=", "), sep=""))}
queriesx <- queriesSelectx}}
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}
}
# 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]
paramx<-"energyFinalConsumByIntlShpAvEJ"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
queryx <- "transport final energy by mode and fuel"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!is.null(regionsSelect)) {
tbl <- tbl %>% dplyr::filter(region %in% 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,
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_metis",
class2 = gsub(" enduse","",input),
classLabel2 = "Fuel",
classPalette2 = "pal_metis")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx<-"energyFinalConsumBySecEJ"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
queryx <- "total final energy by aggregate sector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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,
scenario = scenNewNames,
units = "Final Energy by Sector (EJ)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "Sector",
classPalette1 = "pal_metis",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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=="transportation") %>%
dplyr::mutate(class2="class2",classLabel2="classLabel2",classPalette2="classPalette2") %>%
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(transportation=transportation-`International Aviation`-`International Ship`)%>%
dplyr::rename(`transport intl av`=`International Aviation`,
`transport intl shp`=`International Ship`) %>%
tidyr::gather(key="class1",value="value",
-scenario, -region, -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!="transportation") %>%
dplyr::bind_rows(tblSepTransportIntlAvShip) # Remove Transport sector from Original tbl
} else {
print(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, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx<-"energyFinalSubsecBySectorBuildEJ"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
queryx <- "building final energy by subsector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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,
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_metis",
class2 = subsector,
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx<-"energyFinalByFuelBySectorEJ"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
queryx <- "Final energy by detailed end-use sector and fuel"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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("industrial energy use","industry",sector),
sector=gsub("industrial feedstocks","industry",sector),
sector=gsub("N fertilizer","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","buildings",sector),
sector=gsub("comm heating","buildings",sector),
sector=gsub("comm others","buildings",sector),
sector=gsub("resid cooling","buildings",sector),
sector=gsub("resid heating","buildings",sector),
sector=gsub("resid others","buildings",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("wholesale gas","gas",input),
input=gsub("traditional biomass","biomass",input),
input=gsub("delivered gas","gas",input),
input=gsub("district heat","Other",input),
param = "energyFinalByFuelBySectorEJ",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
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_metis",
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, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx<-"energyFinalSubsecByFuelBuildEJ"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
queryx <- "building final energy by fuel"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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_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,
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_metis",
class2 = sector,
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx<-"energyFinalSubsecByFuelIndusEJ"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
queryx <- "industry final energy by fuel"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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,
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_metis",
class2 = sector,
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx<-"elecFinalBySecTWh"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
queryx <- "Final energy by detailed end-use sector and fuel"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!is.null(regionsSelect)) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(grepl("elect",input))%>%
dplyr::filter(!grepl("trn",input))%>%
dplyr::mutate(sector=gsub("cement","industry",sector),
sector=gsub("comm cooling","buildings",sector),
sector=gsub("comm heating","buildings",sector),
sector=gsub("comm others","buildings",sector),
sector=gsub("industrial energy use","industry",sector),
sector=gsub("resid\\scooling","buildings",sector),
sector=gsub("resid\\sheating","buildings",sector),
sector=gsub("resid\\sothers","buildings",sector),
sector=gsub("trn\\_freight","transportation",sector),
sector=gsub("trn\\_pass\\_road\\_LDV\\_2W","transportation",sector),
sector=gsub("trn\\_pass\\_road\\_LDV\\_4W","transportation",sector),
sector=gsub("trn\\_pass","transportation",sector),
sector = dplyr::case_when(grepl("trn_",sector)~"transportation",
TRUE~sector))%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
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,
scenario = scenNewNames,
value = value * metis.assumptions()$convEJ2TWh,
units = "Final Electricity by Sector (TWh)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "Sector",
classPalette1 = "pal_metis",
class2 = input,
classLabel2 = "input",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx<-"elecFinalByFuelTWh"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
queryx <- "Final energy by detailed end-use sector and fuel"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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,
scenario = scenNewNames,
value = value * metis.assumptions()$convEJ2TWh,
units = "Final Electricity by Fuel (TWh)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = input,
classLabel1 = "Fuel",
classPalette1 = "pal_metis",
class2 = sector,
classLabel2 = "Sector",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx<-"energyPrimaryByFuelEJ"
# primary energy consumption by region (direct equivalent)
if(paramx %in% paramsSelectx){
queryx <- "primary energy consumption by region (direct equivalent) ORDERED SUBSECTORS"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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","b bioenergy",fuel),
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
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_metis",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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, -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 {
print(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, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "elecByTechTWh"
if(paramx %in% paramsSelectx){
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 (!is.null(regionsSelect)) {
tbl <- tbl %>%
dplyr::filter(region %in% regionsSelect)
}
if (nrow(tbl)>0) {
tbl <- tbl %>%
dplyr::filter(region %in% metis.assumptions()$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,
scenario = scenNewNames,
value = value * metis.assumptions()$convEJ2TWh,
units = "Electricity Generation by Fuel (TWh)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = subsector,
classLabel1 = "Fuel",
classPalette1 = "pal_metis",
class2 = paste(technology,sector,sep=" "),
classLabel2 = "Technology",
classPalette2 = "pal_metis")
}else {
if(queryx %in% queriesSelectx){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}
#-------------
# For GCAM USA cogen
#-------------
queryx <- "elec gen by gen tech cogen USA"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!is.null(regionsSelect)) {
tbl <- tbl %>%
dplyr::filter(region %in% regionsSelect)
}
if (nrow(tbl)>0) {
tbl <- tbl %>%
dplyr::filter(region %in% metis.assumptions()$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,
scenario = scenNewNames,
value = value * metis.assumptions()$convEJ2TWh,
units = "Electricity Generation by Fuel (TWh)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = subsector,
classLabel1 = "Fuel",
classPalette1 = "pal_metis",
class2 = technology,
classLabel2 = "Technology",
classPalette2 = "pal_metis")
}else {
if(queryx %in% queriesSelectx){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}
#--------------------
# GCAM other Regions
#------------------------
queryx <- "elec gen by gen tech and cooling tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!is.null(regionsSelect)) {
tbl <- tbl %>%
dplyr::filter(region %in% regionsSelect) %>%
dplyr::filter(!region %in% metis.assumptions()$US52)
}
tblGCAMReg <- 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,
scenario = scenNewNames,
value = value * metis.assumptions()$convEJ2TWh,
units = "Electricity Generation by Fuel (TWh)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = subsector,
classLabel1 = "Fuel",
classPalette1 = "pal_metis",
class2 = technology,
classLabel2 = "Technology",
classPalette2 = "pal_metis")
}else {
if(queryx %in% queriesSelectx){print(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::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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}
}
# Capacity Calculation based on exogenous cap factors
if(!is.null(tblelecByTechTWh)){
capfactors <- metis::data_capfactors
capfactors
paramx <- "elecCapByFuel"
if(paramx %in% paramsSelectx){
tbl <- tblelecByTechTWh # Tibble
#rm(tblelecByTechTWh)
if (!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, 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){
print(paste("elecByTechTWh did not run so skipping param elecCapByFuel."))}
}
# Electricity Investments
paramx <- c("elecNewCapCost","elecNewCapGW","elecAnnualRetPrematureCost","elecAnnualRetPrematureGW",
"elecCumCapCost","elecCumCapGW","elecCumRetPrematureCost","elecCumRetPrematureGW")
if(any(paramx %in% paramsSelectx)){
# Electricity generation by aggregate technology
queryx <- "elec gen by gen tech and cooling tech and vintage"
queryx2 <- "Electricity generation by aggregate technology"
if (queryx %in% queriesx & queryx2 %in% queries) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!is.null(regionsSelect)) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tblx <- rgcam::getQuery(dataProjLoaded, queryx2) # Tibble
if (!is.null(regionsSelect)) {
tblx <- tblx %>% dplyr::filter(region %in% regionsSelect)
}
counter <- 0
# NEW--must do loop throug scenarios due to current design of script
start_year_i = max(min(unique(tbl$year)),metis.assumptions()$GCAMbaseYear)
end_year_i = max(unique(tbl$year))
temp_list = list()
for (scen in scenarios){
elec_gen_vintage <- tbl %>%
dplyr::filter(scenario==scen) %>%
tidyr::spread(year, value) %>%
dplyr::mutate_all(~replace(., is.na(.), 0))
temp_list <- metis.elecInvest(elec_gen_vintage, world_regions=regionsSelect, start_year=start_year_i, end_year=end_year_i)
start_yr_hydro <- start_year_i
end_year <- end_year_i
temp_df <- tblx %>%
dplyr::filter(scenario==scen) %>%
dplyr::rename(agg_tech=technology) %>%
dplyr::filter(year>=start_yr_hydro, year<=end_year) %>%
tidyr::spread(year, value)%>%
dplyr::mutate_all(~replace(., is.na(.), 0))
if(counter==0){
addition_costs <- temp_list
# Include hydropower cost/installed capacity needs, which isn't handled in the SA_elec script because it is not vintaged.
addition_costs[['elec_prod']] <- temp_df
}else{
addition_costs[['elec_prod']] <- rbind(addition_costs[['elec_prod']], temp_df)
for (key in names(addition_costs)){
addition_costs[[key]] <- rbind(addition_costs[[key]], temp_list[[key]])
# Include hydropower cost/installed capacity needs, which isn't handled in the SA_elec script because it is not vintaged.
}
}
counter <- counter+1
}
addition_costsWhydro <- metis.hydroInvest(addition_costs=addition_costs, start_year=start_year_i)$addition_costs
tbl1<-tbl2<-tbl3<-tbl4<-tbl5<-tbl6<-tbl7<-tbl8<-tibble::tibble()
# newCap_cost
if(nrow(addition_costsWhydro[["newCap_cost"]])>0){
tbl1 <- addition_costsWhydro[["newCap_cost"]] %>%
tidyr::gather(key="year",value=value,-Units,-scenario,-region,-agg_tech)%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::rename(technology=agg_tech)%>%
dplyr::mutate(year=as.numeric(year),
param = "elecNewCapCost",
technology=gsub("biomass","bioenergy",technology),
technology=gsub("Biomass","Bioenergy",technology),
technology=gsub("b\\sbiomass","b bioenergy",technology),
technology=gsub("g\\sBiomass","g Bioenergy",technology),
technology=gsub("h\\sBiomass\\sw\\/CCS","h Bioenergy w/CCS",technology),
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
units = "New Elec Cap Cost (Billion 2010 USD)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = technology,
classLabel1 = "Fuel",
classPalette1 = "pal_metis",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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))
}
# newCap_GW
if(nrow(addition_costs[["newCap_GW"]])>0){
tbl2 <- addition_costs[["newCap_GW"]] %>%
tidyr::gather(key="year",value=value,-Units,-scenario,-region,-agg_tech)%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::rename(technology=agg_tech)%>%
dplyr::mutate(year=as.numeric(year),
param = "elecNewCapGW",
technology=gsub("biomass","bioenergy",technology),
technology=gsub("Biomass","Bioenergy",technology),
technology=gsub("b\\sbiomass","b bioenergy",technology),
technology=gsub("g\\sBiomass","g Bioenergy",technology),
technology=gsub("h\\sBiomass\\sw\\/CCS","h Bioenergy w/CCS",technology),
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
units = "New Elec Cap (GW)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = technology,
classLabel1 = "Fuel",
classPalette1 = "pal_metis",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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))
}
# retPremature_cost
if(nrow(addition_costs[["annualPrematureRet_cost"]])>0){
tbl3 <- addition_costs[["annualPrematureRet_cost"]] %>%
tidyr::gather(key="year",value=value,-Units,-scenario,-region,-agg_tech)%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::rename(technology=agg_tech)%>%
dplyr::mutate(year=as.numeric(year),
param = "elecAnnualRetPrematureCost",
technology=gsub("biomass","bioenergy",technology),
technology=gsub("Biomass","Bioenergy",technology),
technology=gsub("b\\sbiomass","b bioenergy",technology),
technology=gsub("g\\sBiomass","g Bioenergy",technology),
technology=gsub("h\\sBiomass\\sw\\/CCS","h Bioenergy w/CCS",technology),
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
units = "Premature Elec Retire Cost (billion 2010 USD)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = technology,
classLabel1 = "Fuel",
classPalette1 = "pal_metis",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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))
}
# retPremature_GW
if(nrow(addition_costs[["annualPrematureRet_GW"]])>0){
tbl4 <- addition_costs[["annualPrematureRet_GW"]] %>%
tidyr::gather(key="year",value=value,-Units,-scenario,-region,-agg_tech)%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::rename(technology=agg_tech)%>%
dplyr::mutate(year=as.numeric(year),
param = "elecAnnualRetPrematureGW",
technology=gsub("biomass","bioenergy",technology),
technology=gsub("Biomass","Bioenergy",technology),
technology=gsub("b\\sbiomass","b bioenergy",technology),
technology=gsub("g\\sBiomass","g Bioenergy",technology),
technology=gsub("h\\sBiomass\\sw\\/CCS","h Bioenergy w/CCS",technology),
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
units = "Premature Elec Retire (GW)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = technology,
classLabel1 = "Fuel",
classPalette1 = "pal_metis",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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))
}
# newCap_cost
if(nrow(addition_costsWhydro[["cumCap_cost"]])>0){
tbl5 <- addition_costsWhydro[["cumCap_cost"]] %>%
tidyr::gather(key="year",value=value,-Units,-scenario,-region,-agg_tech)%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::rename(technology=agg_tech)%>%
dplyr::mutate(year=as.numeric(year),
param = "elecCumCapCost",
technology=gsub("biomass","bioenergy",technology),
technology=gsub("Biomass","Bioenergy",technology),
technology=gsub("b\\sbiomass","b bioenergy",technology),
technology=gsub("g\\sBiomass","g Bioenergy",technology),
technology=gsub("h\\sBiomass\\sw\\/CCS","h Bioenergy w/CCS",technology),
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
units = "New Elec Cap Cost (billion 2010 USD)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = technology,
classLabel1 = "Fuel",
classPalette1 = "pal_metis",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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))
}
# newCap_GW
if(nrow(addition_costs[["cumCap_GW"]])>0){
tbl6 <- addition_costs[["cumCap_GW"]] %>%
tidyr::gather(key="year",value=value,-Units,-scenario,-region,-agg_tech)%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::rename(technology=agg_tech)%>%
dplyr::mutate(year=as.numeric(year),
param = "elecCumCapGW",
technology=gsub("biomass","bioenergy",technology),
technology=gsub("Biomass","Bioenergy",technology),
technology=gsub("b\\sbiomass","b bioenergy",technology),
technology=gsub("g\\sBiomass","g Bioenergy",technology),
technology=gsub("h\\sBiomass\\sw\\/CCS","h Bioenergy w/CCS",technology),
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
units = "New Elec Cap (GW)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = technology,
classLabel1 = "Fuel",
classPalette1 = "pal_metis",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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))
}
# retPremature_cost
if(nrow(addition_costs[["cumPrematureRet_cost"]])>0){
tbl7 <- addition_costs[["cumPrematureRet_cost"]] %>%
tidyr::gather(key="year",value=value,-Units,-scenario,-region,-agg_tech)%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::rename(technology=agg_tech)%>%
dplyr::mutate(year=as.numeric(year),
param = "elecCumRetPrematureCost",
technology=gsub("biomass","bioenergy",technology),
technology=gsub("Biomass","Bioenergy",technology),
technology=gsub("b\\sbiomass","b bioenergy",technology),
technology=gsub("g\\sBiomass","g Bioenergy",technology),
technology=gsub("h\\sBiomass\\sw\\/CCS","h Bioenergy w/CCS",technology),
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
units = "Premature Elec Retire Cost (billion 2010 USD)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = technology,
classLabel1 = "Fuel",
classPalette1 = "pal_metis",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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))
}
# retPremature_GW
if(nrow(addition_costs[["cumPrematureRet_GW"]])>0){
tbl8 <- addition_costs[["cumPrematureRet_GW"]] %>%
tidyr::gather(key="year",value=value,-Units,-scenario,-region,-agg_tech)%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::rename(technology=agg_tech)%>%
dplyr::mutate(year=as.numeric(year),
param = "elecCumRetPrematureGW",
technology=gsub("biomass","bioenergy",technology),
technology=gsub("Biomass","Bioenergy",technology),
technology=gsub("b\\sbiomass","b bioenergy",technology),
technology=gsub("g\\sBiomass","g Bioenergy",technology),
technology=gsub("h\\sBiomass\\sw\\/CCS","h Bioenergy w/CCS",technology),
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
units = "Premature Elec Retire (GW)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = technology,
classLabel1 = "Fuel",
classPalette1 = "pal_metis",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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, tbl1,tbl2,tbl3,tbl4,tbl5,tbl6,tbl7,tbl8)
} else {
if(queryx %in% queriesSelectx){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
# metis.chart(tbl,xData="x",yData="value",useNewLabels = 0)
paramx <- "watConsumBySec"
if(paramx %in% paramsSelectx){
# 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(metis.assumptions()$US52 %in% unique(tbl$region))){
tbl <- tbl %>% dplyr::filter(region!="USA") # Remove region USA and use states instead
}
}
if (!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(
sector=="water_td_an_C"~"animal",
sector=="water_td_dom_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,
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_metis",
class2 = subsector,
classLabel2 = "basin",
classPalette2 = "pal_metis")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx<- "watWithdrawBySec"
if(paramx %in% paramsSelectx){
# 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(metis.assumptions()$US52 %in% unique(tbl$region))){
tbl <- tbl %>% dplyr::filter(region!="USA") # Remove region USA and use states instead
}
}
if (!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(
sector=="water_td_an_W"~"livestock",
sector=="water_td_dom_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,
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_metis",
class2 = subsector,
classLabel2 = "basin",
classPalette2 = "pal_metis")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "watWithdrawByCrop"
if(paramx %in% paramsSelectx){
# 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% metis.assumptions()$US52)){
tbl <- tbl %>%
dplyr::mutate(value = dplyr::case_when(region=="USA"~value/0.829937455747218,
TRUE~value)) %>%
dplyr::filter(!region %in% metis.assumptions()$US52)
}
}
if (!is.null(regionsSelect)) {
if(any(regionsSelect %in% metis.assumptions()$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,
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_metis",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "watBioPhysCons"
if(paramx %in% paramsSelectx){
# 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 (!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,
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, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "watIrrWithdrawBasin"
if(paramx %in% paramsSelectx){
# water withdrawals by water mapping source
queryx <- "water withdrawals by water mapping source"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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,
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, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "watIrrConsBasin"
if(paramx %in% paramsSelectx){
# water consumption by water mapping source
queryx <- "water consumption by water mapping source"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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,
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, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "watSupRunoffBasin"
if(paramx %in% paramsSelectx){
# water consumption by water mapping source
queryx <- "Basin level available runoff"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!is.null(regionsSelect)) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::mutate(class1=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",
classLabel1 = "basin",
classPalette1 = "pal_wet",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2") %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "gdpPerCapita"
if(paramx %in% paramsSelectx){
# 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 (!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,
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, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "gdp"
if(paramx %in% paramsSelectx){
# GDP MER by region
queryx <- "GDP MER by region"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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,
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, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "gdpGrowthRate"
if(paramx %in% paramsSelectx){
# GDP Growth Rate by region
queryx <- "GDP Growth Rate (Percent)"
if ("GDP MER by region" %in% queriesx) {
tbl <- tblgdp # Tibble
if (!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, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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 {
print(paste("Paramater 'GDP MER by region' not found in database, so cannot calculate" ,queryx, sep = ""))
}}
paramx <- "livestock_MeatDairybyTechMixed"
if(paramx %in% paramsSelectx){
# Population
queryx <- "meat and dairy production by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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,
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_metis",
class2 = technology,
classLabel2 = "technology",
classPalette2 = "pal_metis") %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "livestock_MeatDairybySubsector"
if(paramx %in% paramsSelectx){
# Population
queryx <- "meat and dairy production by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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,
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_metis",
class2 = subsector,
classLabel2 = "subsector",
classPalette2 = "pal_metis") %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "livestock_MeatDairybyTechPastoral"
if(paramx %in% paramsSelectx){
# Population
queryx <- "meat and dairy production by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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,
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_metis",
class2 = technology,
classLabel2 = "technology",
classPalette2 = "pal_metis") %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "livestock_MeatDairybyTechImports"
if(paramx %in% paramsSelectx){
# Population
queryx <- "meat and dairy production by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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,
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_metis",
class2 = technology,
classLabel2 = "technology",
classPalette2 = "pal_metis") %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "pop"
if(paramx %in% paramsSelectx){
# Population
queryx <- "Population by region"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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,
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, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "agProdbyIrrRfd"
if(paramx %in% paramsSelectx){
# Ag production by tech
queryx <- "ag production by tech"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!is.null(regionsSelect)) {
tbl <- tbl %>% dplyr::filter(region %in% 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,
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, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "agProdBiomass"
if(paramx %in% paramsSelectx){
# Ag Production by Crop Type Biomass EJ
queryx <- "Ag Production by Crop Type"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!is.null(regionsSelect)) {
tbl <- tbl %>% dplyr::filter(region %in% 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 (Mt)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "Crop",
classPalette1 = "pal_metis",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(origScen,origQuery, origValue, origUnits, origX, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "agProdForest"
if(paramx %in% paramsSelectx){
# Ag Production by Crop Type Forest
queryx <- "Ag Production by Crop Type"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!is.null(regionsSelect)) {
tbl <- tbl %>% dplyr::filter(region %in% 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 = "Ag Production (billion m3)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = sector,
classLabel1 = "Forest",
classPalette1 = "pal_metis",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(origScen,origQuery, origValue, origUnits, origX, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "agProdByCrop"
if(paramx %in% paramsSelectx){
# Ag Production by Crop Type
queryx <- "Ag Production by Crop Type"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!is.null(regionsSelect)) {
tbl <- tbl %>% dplyr::filter(region %in% 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_metis",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(origScen,origQuery, origValue, origUnits, origX, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "landIrrRfd"
if(paramx %in% paramsSelectx){
# 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 (!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,
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_metis",
class2 = crop,
classLabel2 = "crop",
classPalette2 = "pal_metis") %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "landIrrCrop"
if(paramx %in% paramsSelectx){
# 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 (!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,
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_metis",
class2 = "class2",
classLabel2 = "class2",
classPalette2 = "pal_metis") %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "landRfdCrop"
if(paramx %in% paramsSelectx){
# 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 (!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,
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_metis",
class2 = "class2",
classLabel2 = "class2",
classPalette2 = "pal_metis") %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "landAlloc"
if(paramx %in% paramsSelectx){
# aggregated land allocation
queryx <- "aggregated land allocation"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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","naturalOther",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,
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_metis",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2") %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "landAllocByCrop"
if(paramx %in% paramsSelectx){
# aggregated land allocation
queryx <- "land allocation by crop"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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,
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_metis",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2") %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "emissLUC"
if(paramx %in% paramsSelectx){
# Land Use Change Emission (future)
queryx <- "Land Use Change Emission (future)"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!is.null(regionsSelect)) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::left_join(metis.assumptions()$convertGgTgMTC,by="Units") %>%
dplyr::mutate(origValue=value,value=value*Convert*44/12,
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,
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_metis",
class2 = "class2",
classLabel2 = "classLabel2",
classPalette2 = "classPalette2") %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "emissCO2BySectorNoBio"
if(paramx %in% paramsSelectx){
queryx <- "CO2 emissions by sector (no bio)"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!is.null(regionsSelect)) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
#emiss_sector_mapping <- read.csv(CO2mappingFile, skip=1)
tbl <- tbl %>%
dplyr::left_join(metis.assumptions()$convertGgTgMTC,by="Units") %>%
dplyr::mutate(origValue=value,value=value*Convert*44/12,
origUnits=Units,units="CO2 Emissions by Sector (MTCO2eq)")%>%
dplyr::mutate(
class1=sector,
class2=sector) %>%
#dplyr::left_join(emiss_sector_mapping, by=c('class1')) %>%
#dplyr::mutate(class1=agg_sector) %>%
#dplyr::select(-agg_sector) %>%
dplyr::mutate(
class1=gsub("comm\\scooling","Buildings",class1),
class1=gsub("comm\\scooking","Buildings",class1),
class1=gsub("comm\\sheating","Buildings",class1),
class1=gsub("comm\\sothers","Buildings",class1),
class1=gsub("comm\\sother","Buildings",class1),
class1=gsub("comm\\shot\\swater","Buildings",class1),
class1=gsub("elec\\_biomass\\s\\(conv\\)","Electricity",class1),
class1=gsub("elec\\_biomass\\s\\(IGCC\\)","Electricity",class1),
class1=gsub("elec\\_biomass\\s\\(conv\\sCCS\\)","Electricity",class1),
class1=gsub("elec\\_biomass\\s\\(IGCC\\sCCS\\)","Electricity",class1),
class1=gsub("elec\\_coal\\s\\(conv\\spul\\)","Electricity",class1),
class1=gsub("elec\\_coal\\s\\(IGCC\\)","Electricity",class1),
class1=gsub("elec\\_coal\\s\\(conv\\s\\pul\\sCCS\\)","Electricity",class1),
class1=gsub("elec\\_coal\\s\\(IGCC\\sCCS\\)","Electricity",class1),
class1=gsub("elec\\_gas\\s\\(IGCC\\sCCS\\)","Electricity",class1),
class1=gsub("elec\\_gas\\s\\(steam/CT\\)","Electricity",class1),
class1=gsub("elec\\_gas\\s\\(CC\\sCCS\\)","Electricity",class1),
class1=gsub("elec\\_gas\\s\\(CC\\)","Electricity",class1),
class1=gsub("elec\\_refined\\sliquids\\s\\(CC\\)","Electricity",class1),
class1=gsub("elec\\_refined\\sliquids\\s\\(steam/CT\\)","Electricity",class1),
class1=gsub("elec\\_refined\\sliquids\\s\\(CC\\sCCS\\)","Electricity",class1),
class1=dplyr::if_else(class1=="electricity","Electricity",class1),
class1=gsub("electricity_net_ownuse","Electricity",class1),
class1=gsub("base\\s\\load\\sgeneration","Electricity",class1),
class1=gsub("subpeak\\sgeneration","Electricity",class1),
class1=gsub("peak\\sgeneration","Electricity",class1),
class1=gsub("intermediate\\sgeneration","Electricity",class1),
class1=gsub("gas\\spipeline","Refining and Hydrogen Production",class1),
class1=gsub("gas\\sprocessing","Refining and Hydrogen Production",class1),
class1=gsub("H2\\scentral\\sproduction","Refining and Hydrogen Production",class1),
class1=gsub("H2\\sforecourt\\sproduction","Refining and Hydrogen Production",class1),
class1=gsub("oil\\srefining","Refining and Hydrogen Production",class1),
class1=gsub("gas\\sto\\sliquids","Refining and Hydrogen Production",class1),
class1=gsub("coal\\sto\\sliquids","Refining and Hydrogen Production",class1),
class1=gsub("industrial\\senergy\\suse","Industry",class1),
class1=gsub("industrial\\sfeedstocks","Industry",class1),
class1=gsub("industrial\\sprocesses","Industry",class1),
class1=gsub("urban\\sprocesses","Waste",class1),
class1=gsub("N\\sfertilizer","Industry",class1),
class1=gsub("process\\sheat\\scement","Industry",class1),
class1=gsub("cement","Industry",class1),
class1=dplyr::if_else(class1=="refining","Refining and Hydrogen Production",class1),
class1=gsub("regional\\sbiomassOil","Refining and Hydrogen Production",class1),
class1=gsub("regional\\ssugar\\sfor\\sethanol","Refining and Hydrogen Production",class1),
class1=gsub("regional\\sbiomass","Refining and Hydrogen Production",class1),
class1=gsub("regional\\scorn\\sfor\\sethanol","Refining and Hydrogen Production",class1),
class1=gsub("resid\\scooling","Buildings",class1),
class1=gsub("resid\\sheating","Buildings",class1),
class1=gsub("resid\\sothers","Buildings",class1),
class1=gsub("resid\\sother","Buildings",class1),
class1=gsub("resid\\shot\\swater","Buildings",class1),
class1=gsub("resid\\scooking","Buildings",class1),
class1=gsub("resid\\sclothes\\sdryer","Buildings",class1),
class1=gsub("district\\sheat","Buildings",class1),
class1=gsub("trn\\_aviation\\_intl","Transport Intl Av",class1),
class1=gsub("trn\\_shipping\\_intl","Transport Intl Shp",class1),
class1=dplyr::if_else(class1=="trn_freight_road","Transport",class1),
class1=dplyr::if_else(class1=="trn_freight","Transport",class1),
class1=dplyr::if_else(class1=="trn_pass","Transport",class1),
class1=gsub("trn\\_pass\\_road\\_LDV\\_2W","Transport",class1),
class1=gsub("trn\\_pass\\_road\\_LDV\\_4W","Transport",class1),
class1=dplyr::if_else(class1=="trn_pass_road","Transport",class1),
class1=gsub("transport\\_LDV","Transport",class1),
class1=gsub("transport\\_bus","Transport",class1),
class1=dplyr::if_else(class1=="trn_pass","Transport",class1),
class1=gsub("unconventional\\soil\\sproduction","Refining and Hydrogen Production",class1),
class1=gsub("conventional\\sgas","Refining and Hydrogen Production",class1),
class1=gsub("unconventional\\sgas\\sother","Refining and Hydrogen Production",class1),
class1=gsub("delivered\\sgas","Industry",class1),
class1=gsub("tight\\sgas","Refining and Hydrogen Production",class1),
class1=gsub("delivered\\sbiomass","Industry",class1),
class1=gsub("refined\\sliquids\\senduse","Industry",class1),
class1=gsub("refined\\sliquids\\sindustrial","Industry",class1),
class1=gsub("wholesale\\sgas","Industry",class1),
class1=gsub("natural\\sgas","Refining and Hydrogen Production",class1),
class1=gsub("biomass\\sliquids","Refining and Hydrogen Production",class1),
class1=gsub("coalbed\\smethane","Refining and Hydrogen Production",class1),
class1=gsub("shale\\sgas","Refining and Hydrogen Production",class1),
class1=dplyr::if_else(class1=="coal","Refining and Hydrogen Production",class1),
class1=gsub("crude oil","Refining and Hydrogen Production",class1),
class1=gsub("electricity\\sdomestic\\ssupply","Refining and Hydrogen Production",class1),
class1=gsub("Beef","Livestock",class1),
class1=gsub("Dairy","Livestock",class1),
class1=gsub("FiberCrop","Crops",class1),
class1=gsub("MiscCrop","Crops",class1),
class1=gsub("OilCrop","Crops",class1),
class1=gsub("OtherGrain","Crops",class1),
class1=gsub("PalmFruit","Crops",class1),
class1=gsub("Pork","Livestock",class1),
class1=gsub("Poultry","Livestock",class1),
class1=gsub("Corn","Crops",class1),
class1=gsub("Rice","Crops",class1),
class1=gsub("Root_Tuber","Crops",class1),
class1=gsub("SheepGoat","Crops",class1),
class1=gsub("SugarCrop","Crops",class1),
class1=gsub("UnmanagedLand","Crops",class1),
class1=gsub("Wheat","Crops",class1),
class1=gsub("biomass","Crops",class1),
class1=gsub("FodderGrass","Crops",class1),
class1=gsub("FodderHerb","Crops",class1),
class1=dplyr::if_else(class1=="biomass","Crops",class1),
class1=gsub("backup\\_electricity","Electricity",class1),
class1=gsub("csp\\_backup","Electricity",class1))%>%
dplyr::filter(scenario %in% scenOrigNames)%>%
dplyr::left_join(tibble::tibble(scenOrigNames, scenNewNames), by = c(scenario = "scenOrigNames")) %>%
dplyr::mutate(param = "emissCO2BySectorNoBio",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origX = year,
scenario = scenNewNames,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classLabel1 = "sector",
classPalette1 = "pal_metis",
classLabel2 = "sectorDetail",
classPalette2 = "pal_metis") %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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)}
}
paramx <- "emissNonCO2BySectorGWPAR5"
if(paramx %in% paramsSelectx){
# 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 (!is.null(regionsSelect)) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
#emiss_sector_mapping <- 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(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')) %>%
#dplyr::left_join(emiss_sector_mapping, by=c('class2' = 'class1')) %>%
#dplyr::mutate(class2=agg_sector) %>%
#dplyr::select(-agg_sector) %>%
dplyr::mutate(
class2=gsub("comm\\scooling","Buildings",class2),
class2=gsub("comm\\scooking","Buildings",class2),
class2=gsub("comm\\sheating","Buildings",class2),
class2=gsub("comm\\sothers","Buildings",class2),
class2=gsub("comm\\sother","Buildings",class2),
class2=gsub("comm\\shot\\swater","Buildings",class2),
class2=gsub("elec\\_biomass\\s\\(conv\\)","Electricity",class2),
class2=gsub("elec\\_biomass\\s\\(IGCC\\)","Electricity",class2),
class2=gsub("elec\\_biomass\\s\\(conv\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_biomass\\s\\(IGCC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(conv\\spul\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(IGCC\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(conv\\s\\pul\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(IGCC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(IGCC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(steam/CT\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(CC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(CC\\)","Electricity",class2),
class2=gsub("elec\\_refined\\sliquids\\s\\(CC\\)","Electricity",class2),
class2=gsub("elec\\_refined\\sliquids\\s\\(steam/CT\\)","Electricity",class2),
class2=gsub("elec\\_refined\\sliquids\\s\\(CC\\sCCS\\)","Electricity",class2),
class2=dplyr::if_else(class2=="electricity","Electricity",class2),
class2=gsub("electricity_net_ownuse","Electricity",class2),
class2=gsub("base\\s\\load\\sgeneration","Electricity",class2),
class2=gsub("subpeak\\sgeneration","Electricity",class2),
class2=gsub("peak\\sgeneration","Electricity",class2),
class2=gsub("intermediate\\sgeneration","Electricity",class2),
class2=gsub("gas\\spipeline","Refining and Hydrogen Production",class2),
class2=gsub("gas\\sprocessing","Refining and Hydrogen Production",class2),
class2=gsub("H2\\scentral\\sproduction","Refining and Hydrogen Production",class2),
class2=gsub("H2\\sforecourt\\sproduction","Refining and Hydrogen Production",class2),
class2=gsub("oil\\srefining","Refining and Hydrogen Production",class2),
class2=gsub("gas\\sto\\sliquids","Refining and Hydrogen Production",class2),
class2=gsub("coal\\sto\\sliquids","Refining and Hydrogen Production",class2),
class2=gsub("industrial\\senergy\\suse","Industry",class2),
class2=gsub("industrial\\sfeedstocks","Industry",class2),
class2=gsub("industrial\\sprocesses","Industry",class2),
class2=gsub("urban\\sprocesses","Waste",class2),
class2=gsub("N\\sfertilizer","Industry",class2),
class2=gsub("process\\sheat\\scement","Industry",class2),
class2=gsub("cement","Industry",class2),
class2=dplyr::if_else(class2=="refining","Refining and Hydrogen Production",class2),
class2=gsub("regional\\sbiomassOil","Refining and Hydrogen Production",class2),
class2=gsub("regional\\ssugar\\sfor\\sethanol","Refining and Hydrogen Production",class2),
class2=gsub("regional\\sbiomass","Refining and Hydrogen Production",class2),
class2=gsub("regional\\scorn\\sfor\\sethanol","Refining and Hydrogen Production",class2),
class2=gsub("resid\\scooling","Buildings",class2),
class2=gsub("resid\\sheating","Buildings",class2),
class2=gsub("resid\\sothers","Buildings",class2),
class2=gsub("resid\\sother","Buildings",class2),
class2=gsub("resid\\shot\\swater","Buildings",class2),
class2=gsub("resid\\scooking","Buildings",class2),
class2=gsub("resid\\sclothes\\sdryer","Buildings",class2),
class2=gsub("district\\sheat","Buildings",class2),
class2=dplyr::if_else(class2=="trn_freight_road","Transport",class2),
class2=dplyr::if_else(class2=="trn_freight","Transport",class2),
class2=dplyr::if_else(class2=="trn_pass","Transport",class2),
class2=gsub("trn\\_pass\\_road\\_LDV\\_2W","Transport",class2),
class2=gsub("trn\\_pass\\_road\\_LDV\\_4W","Transport",class2),
class2=dplyr::if_else(class2=="trn_pass_road","Transport",class2),
class2=gsub("trn\\_aviation\\_intl","Transport Intl Av",class2),
class2=gsub("trn\\_shipping\\_intl","Transport Intl Shp",class2),
class2=gsub("transport\\_LDV","Transport",class2),
class2=gsub("transport\\_bus","Transport",class2),
class2=dplyr::if_else(class2=="trn_pass","Transport",class2),
class2=gsub("unconventional\\soil\\sproduction","Refining and Hydrogen Production",class2),
class2=gsub("conventional\\sgas","Refining and Hydrogen Production",class2),
class2=gsub("unconventional\\sgas\\sother","Refining and Hydrogen Production",class2),
class2=gsub("delivered\\sgas","Industry",class2),
class2=gsub("tight\\sgas","Refining and Hydrogen Production",class2),
class2=gsub("delivered\\sbiomass","Industry",class2),
class2=gsub("refined\\sliquids\\senduse","Industry",class2),
class2=gsub("refined\\sliquids\\sindustrial","Industry",class2),
class2=gsub("wholesale\\sgas","Industry",class2),
class2=gsub("natural\\sgas","Refining and Hydrogen Production",class2),
class2=gsub("biomass\\sliquids","Refining and Hydrogen Production",class2),
class2=gsub("coalbed\\smethane","Refining and Hydrogen Production",class2),
class2=gsub("shale\\sgas","Refining and Hydrogen Production",class2),
class2=dplyr::if_else(class2=="coal","Refining and Hydrogen Production",class2),
class2=gsub("crude oil","Refining and Hydrogen Production",class2),
class2=gsub("electricity\\sdomestic\\ssupply","Refining and Hydrogen Production",class2),
class2=gsub("Beef","Livestock",class2),
class2=gsub("Dairy","Livestock",class2),
class2=gsub("FiberCrop","Crops",class2),
class2=gsub("MiscCrop","Crops",class2),
class2=gsub("OilCrop","Crops",class2),
class2=gsub("OtherGrain","Crops",class2),
class2=gsub("PalmFruit","Crops",class2),
class2=gsub("Pork","Livestock",class2),
class2=gsub("Poultry","Livestock",class2),
class2=gsub("Corn","Crops",class2),
class2=gsub("Rice","Crops",class2),
class2=gsub("Root_Tuber","Crops",class2),
class2=gsub("SheepGoat","Crops",class2),
class2=gsub("SugarCrop","Crops",class2),
class2=gsub("UnmanagedLand","Crops",class2),
class2=gsub("Wheat","Crops",class2),
class2=gsub("biomass","Crops",class2),
class2=gsub("FodderGrass","Crops",class2),
class2=gsub("FodderHerb","Crops",class2),
class2=dplyr::if_else(class2=="biomass","Crops",class2),
class2=gsub("backup\\_electricity","Electricity",class2),
class2=gsub("csp\\_backup","Electricity",class2))%>%
dplyr::left_join(metis.assumptions()$GWP%>%dplyr::rename(class1=ghg),by="class1")%>%
dplyr::left_join(metis.assumptions()$convertGgTgMTC,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,
scenario = scenNewNames,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classLabel1 = "GHG",
classPalette1 = "pal_metis",
classLabel2 = "sector",
classPalette2 = "pal_metis") %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "emissMethaneBySourceGWPAR5"
if(paramx %in% paramsSelectx){
# 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 (!is.null(regionsSelect)) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
#emiss_sector_mapping <- 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=gsub("comm\\scooling","Buildings",class1),
class1=gsub("comm\\scooking","Buildings",class1),
class1=gsub("comm\\sheating","Buildings",class1),
class1=gsub("comm\\sothers","Buildings",class1),
class1=gsub("comm\\sother","Buildings",class1),
class1=gsub("comm\\shot\\swater","Buildings",class1),
class1=gsub("elec\\_biomass\\s\\(conv\\)","Electricity",class1),
class1=gsub("elec\\_biomass\\s\\(IGCC\\)","Electricity",class1),
class1=gsub("elec\\_biomass\\s\\(conv\\sCCS\\)","Electricity",class1),
class1=gsub("elec\\_biomass\\s\\(IGCC\\sCCS\\)","Electricity",class1),
class1=gsub("elec\\_coal\\s\\(conv\\spul\\)","Electricity",class1),
class1=gsub("elec\\_coal\\s\\(IGCC\\)","Electricity",class1),
class1=gsub("elec\\_coal\\s\\(conv\\s\\pul\\sCCS\\)","Electricity",class1),
class1=gsub("elec\\_coal\\s\\(IGCC\\sCCS\\)","Electricity",class1),
class1=gsub("elec\\_gas\\s\\(IGCC\\sCCS\\)","Electricity",class1),
class1=gsub("elec\\_gas\\s\\(steam/CT\\)","Electricity",class1),
class1=gsub("elec\\_gas\\s\\(CC\\sCCS\\)","Electricity",class1),
class1=gsub("elec\\_gas\\s\\(CC\\)","Electricity",class1),
class1=gsub("elec\\_refined\\sliquids\\s\\(CC\\)","Electricity",class1),
class1=gsub("elec\\_refined\\sliquids\\s\\(steam/CT\\)","Electricity",class1),
class1=gsub("elec\\_refined\\sliquids\\s\\(CC\\sCCS\\)","Electricity",class1),
class1=dplyr::if_else(class1=="electricity","Electricity",class1),
class1=gsub("electricity_net_ownuse","Electricity",class1),
class1=gsub("base\\s\\load\\sgeneration","Electricity",class1),
class1=gsub("subpeak\\sgeneration","Electricity",class1),
class1=gsub("peak\\sgeneration","Electricity",class1),
class1=gsub("intermediate\\sgeneration","Electricity",class1),
class1=gsub("gas\\spipeline","Refining and Hydrogen Production",class1),
class1=gsub("gas\\sprocessing","Refining and Hydrogen Production",class1),
class1=gsub("H2\\scentral\\sproduction","Refining and Hydrogen Production",class1),
class1=gsub("H2\\sforecourt\\sproduction","Refining and Hydrogen Production",class1),
class1=gsub("oil\\srefining","Refining and Hydrogen Production",class1),
class1=gsub("gas\\sto\\sliquids","Refining and Hydrogen Production",class1),
class1=gsub("coal\\sto\\sliquids","Refining and Hydrogen Production",class1),
class1=gsub("industrial\\senergy\\suse","Industry",class1),
class1=gsub("industrial\\sfeedstocks","Industry",class1),
class1=gsub("industrial\\sprocesses","Industry",class1),
class1=gsub("urban\\sprocesses","Waste",class1),
class1=gsub("N\\sfertilizer","Industry",class1),
class1=gsub("process\\sheat\\scement","Industry",class1),
class1=gsub("cement","Industry",class1),
class1=dplyr::if_else(class1=="refining","Refining and Hydrogen Production",class1),
class1=gsub("regional\\sbiomassOil","Refining and Hydrogen Production",class1),
class1=gsub("regional\\ssugar\\sfor\\sethanol","Refining and Hydrogen Production",class1),
class1=gsub("regional\\sbiomass","Refining and Hydrogen Production",class1),
class1=gsub("regional\\scorn\\sfor\\sethanol","Refining and Hydrogen Production",class1),
class1=gsub("resid\\scooling","Buildings",class1),
class1=gsub("resid\\sheating","Buildings",class1),
class1=gsub("resid\\sothers","Buildings",class1),
class1=gsub("resid\\sother","Buildings",class1),
class1=gsub("resid\\shot\\swater","Buildings",class1),
class1=gsub("resid\\scooking","Buildings",class1),
class1=gsub("resid\\sclothes\\sdryer","Buildings",class1),
class1=gsub("district\\sheat","Buildings",class1),
class1=gsub("trn\\_aviation\\_intl","Transport Intl Av",class1),
class1=gsub("trn\\_shipping\\_intl","Transport Intl Shp",class1),
class1=dplyr::if_else(class1=="trn_freight_road","Transport",class1),
class1=dplyr::if_else(class1=="trn_freight","Transport",class1),
class1=dplyr::if_else(class1=="trn_pass","Transport",class1),
class1=gsub("trn\\_pass\\_road\\_LDV\\_2W","Transport",class1),
class1=gsub("trn\\_pass\\_road\\_LDV\\_4W","Transport",class1),
class1=dplyr::if_else(class1=="trn_pass_road","Transport",class1),
class1=gsub("transport\\_LDV","Transport",class1),
class1=gsub("transport\\_bus","Transport",class1),
class1=dplyr::if_else(class1=="trn_pass","Transport",class1),
class1=gsub("unconventional\\soil\\sproduction","Refining and Hydrogen Production",class1),
class1=gsub("conventional\\sgas","Refining and Hydrogen Production",class1),
class1=gsub("unconventional\\sgas\\sother","Refining and Hydrogen Production",class1),
class1=gsub("delivered\\sgas","Industry",class1),
class1=gsub("tight\\sgas","Refining and Hydrogen Production",class1),
class1=gsub("delivered\\sbiomass","Industry",class1),
class1=gsub("refined\\sliquids\\senduse","Industry",class1),
class1=gsub("refined\\sliquids\\sindustrial","Industry",class1),
class1=gsub("wholesale\\sgas","Industry",class1),
class1=gsub("natural\\sgas","Refining and Hydrogen Production",class1),
class1=gsub("biomass\\sliquids","Refining and Hydrogen Production",class1),
class1=gsub("coalbed\\smethane","Refining and Hydrogen Production",class1),
class1=gsub("shale\\sgas","Refining and Hydrogen Production",class1),
class1=dplyr::if_else(class1=="coal","Refining and Hydrogen Production",class1),
class1=gsub("crude oil","Refining and Hydrogen Production",class1),
class1=gsub("electricity\\sdomestic\\ssupply","Refining and Hydrogen Production",class1),
class1=gsub("Beef","Livestock",class1),
class1=gsub("Dairy","Livestock",class1),
class1=gsub("FiberCrop","Crops",class1),
class1=gsub("MiscCrop","Crops",class1),
class1=gsub("OilCrop","Crops",class1),
class1=gsub("OtherGrain","Crops",class1),
class1=gsub("PalmFruit","Crops",class1),
class1=gsub("Pork","Livestock",class1),
class1=gsub("Poultry","Livestock",class1),
class1=gsub("Corn","Crops",class1),
class1=gsub("Rice","Crops",class1),
class1=gsub("Root_Tuber","Crops",class1),
class1=gsub("SheepGoat","Crops",class1),
class1=gsub("SugarCrop","Crops",class1),
class1=gsub("UnmanagedLand","Crops",class1),
class1=gsub("Wheat","Crops",class1),
class1=gsub("biomass","Crops",class1),
class1=gsub("FodderGrass","Crops",class1),
class1=gsub("FodderHerb","Crops",class1),
class1=dplyr::if_else(class1=="biomass","Crops",class1),
class1=gsub("backup\\_electricity","Electricity",class1),
class1=gsub("csp\\_backup","Electricity",class1))%>%
dplyr::left_join(metis.assumptions()$GWP%>%dplyr::rename(class2=ghg),by="class2")%>%
dplyr::left_join(metis.assumptions()$convertGgTgMTC,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,
scenario = scenNewNames,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classLabel1 = "sector",
classPalette1 = "pal_metis",
classLabel2 = "GHG",
classPalette2 = "pal_metis") %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "emissNonCO2ByResProdGWPAR5"
if(paramx %in% paramsSelectx){
# 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 (!is.null(regionsSelect)) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
#emiss_sector_mapping <- 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 = ghg, class2 = resource) %>%
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')) %>%
#dplyr::left_join(emiss_sector_mapping, by=c('class2' = 'class1')) %>%
#dplyr::mutate(class2=agg_sector) %>%
#dplyr::select(-agg_sector) %>%
dplyr::mutate(
class2=gsub("comm\\scooling","Buildings",class2),
class2=gsub("comm\\scooking","Buildings",class2),
class2=gsub("comm\\sheating","Buildings",class2),
class2=gsub("comm\\sothers","Buildings",class2),
class2=gsub("comm\\sother","Buildings",class2),
class2=gsub("comm\\shot\\swater","Buildings",class2),
class2=gsub("elec\\_biomass\\s\\(conv\\)","Electricity",class2),
class2=gsub("elec\\_biomass\\s\\(IGCC\\)","Electricity",class2),
class2=gsub("elec\\_biomass\\s\\(conv\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_biomass\\s\\(IGCC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(conv\\spul\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(IGCC\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(conv\\s\\pul\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(IGCC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(IGCC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(steam/CT\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(CC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(CC\\)","Electricity",class2),
class2=gsub("elec\\_refined\\sliquids\\s\\(CC\\)","Electricity",class2),
class2=gsub("elec\\_refined\\sliquids\\s\\(steam/CT\\)","Electricity",class2),
class2=gsub("elec\\_refined\\sliquids\\s\\(CC\\sCCS\\)","Electricity",class2),
class2=dplyr::if_else(class2=="electricity","Electricity",class2),
class2=gsub("electricity_net_ownuse","Electricity",class2),
class2=gsub("base\\s\\load\\sgeneration","Electricity",class2),
class2=gsub("subpeak\\sgeneration","Electricity",class2),
class2=gsub("peak\\sgeneration","Electricity",class2),
class2=gsub("intermediate\\sgeneration","Electricity",class2),
class2=gsub("gas\\spipeline","Refining and Hydrogen Production",class2),
class2=gsub("gas\\sprocessing","Refining and Hydrogen Production",class2),
class2=gsub("H2\\scentral\\sproduction","Refining and Hydrogen Production",class2),
class2=gsub("H2\\sforecourt\\sproduction","Refining and Hydrogen Production",class2),
class2=gsub("oil\\srefining","Refining and Hydrogen Production",class2),
class2=gsub("gas\\sto\\sliquids","Refining and Hydrogen Production",class2),
class2=gsub("coal\\sto\\sliquids","Refining and Hydrogen Production",class2),
class2=gsub("industrial\\senergy\\suse","Industry",class2),
class2=gsub("industrial\\sfeedstocks","Industry",class2),
class2=gsub("industrial\\sprocesses","Industry",class2),
class2=gsub("urban\\sprocesses","Waste",class2),
class2=gsub("N\\sfertilizer","Industry",class2),
class2=gsub("process\\sheat\\scement","Industry",class2),
class2=gsub("cement","Industry",class2),
class2=dplyr::if_else(class2=="refining","Refining and Hydrogen Production",class2),
class2=gsub("regional\\sbiomassOil","Refining and Hydrogen Production",class2),
class2=gsub("regional\\ssugar\\sfor\\sethanol","Refining and Hydrogen Production",class2),
class2=gsub("regional\\sbiomass","Refining and Hydrogen Production",class2),
class2=gsub("regional\\scorn\\sfor\\sethanol","Refining and Hydrogen Production",class2),
class2=gsub("resid\\scooling","Buildings",class2),
class2=gsub("resid\\sheating","Buildings",class2),
class2=gsub("resid\\sothers","Buildings",class2),
class2=gsub("resid\\sother","Buildings",class2),
class2=gsub("resid\\shot\\swater","Buildings",class2),
class2=gsub("resid\\scooking","Buildings",class2),
class2=gsub("resid\\sclothes\\sdryer","Buildings",class2),
class2=gsub("district\\sheat","Buildings",class2),
class2=gsub("trn\\_aviation\\_intl","Transport Intl Av",class2),
class2=gsub("trn\\_shipping\\_intl","Transport Intl Shp",class2),
class2=dplyr::if_else(class2=="trn_freight_road","Transport",class2),
class2=dplyr::if_else(class2=="trn_freight","Transport",class2),
class2=dplyr::if_else(class2=="trn_pass","Transport",class2),
class2=gsub("trn\\_pass\\_road\\_LDV\\_2W","Transport",class2),
class2=gsub("trn\\_pass\\_road\\_LDV\\_4W","Transport",class2),
class2=dplyr::if_else(class2=="trn_pass_road","Transport",class2),
class2=gsub("transport\\_LDV","Transport",class2),
class2=gsub("transport\\_bus","Transport",class2),
class2=dplyr::if_else(class2=="trn_pass","Transport",class2),
class2=gsub("unconventional\\soil\\sproduction","Refining and Hydrogen Production",class2),
class2=gsub("conventional\\sgas","Refining and Hydrogen Production",class2),
class2=gsub("unconventional\\sgas\\sother","Refining and Hydrogen Production",class2),
class2=gsub("delivered\\sgas","Industry",class2),
class2=gsub("tight\\sgas","Refining and Hydrogen Production",class2),
class2=gsub("delivered\\sbiomass","Industry",class2),
class2=gsub("refined\\sliquids\\senduse","Industry",class2),
class2=gsub("refined\\sliquids\\sindustrial","Industry",class2),
class2=gsub("wholesale\\sgas","Industry",class2),
class2=gsub("natural\\sgas","Refining and Hydrogen Production",class2),
class2=gsub("biomass\\sliquids","Refining and Hydrogen Production",class2),
class2=gsub("coalbed\\smethane","Refining and Hydrogen Production",class2),
class2=gsub("shale\\sgas","Refining and Hydrogen Production",class2),
class2=dplyr::if_else(class2=="coal","Refining and Hydrogen Production",class2),
class2=gsub("crude oil","Refining and Hydrogen Production",class2),
class2=gsub("electricity\\sdomestic\\ssupply","Refining and Hydrogen Production",class2),
class2=gsub("Beef","Livestock",class2),
class2=gsub("Dairy","Livestock",class2),
class2=gsub("FiberCrop","Crops",class2),
class2=gsub("MiscCrop","Crops",class2),
class2=gsub("OilCrop","Crops",class2),
class2=gsub("OtherGrain","Crops",class2),
class2=gsub("PalmFruit","Crops",class2),
class2=gsub("Pork","Livestock",class2),
class2=gsub("Poultry","Livestock",class2),
class2=gsub("Corn","Crops",class2),
class2=gsub("Rice","Crops",class2),
class2=gsub("Root_Tuber","Crops",class2),
class2=gsub("SheepGoat","Crops",class2),
class2=gsub("SugarCrop","Crops",class2),
class2=gsub("UnmanagedLand","Crops",class2),
class2=gsub("Wheat","Crops",class2),
class2=gsub("biomass","Crops",class2),
class2=gsub("FodderGrass","Crops",class2),
class2=gsub("FodderHerb","Crops",class2),
class2=dplyr::if_else(class2=="biomass","Crops",class2),
class2=gsub("backup\\_electricity","Electricity",class2),
class2=gsub("csp\\_backup","Electricity",class2))%>%
dplyr::left_join(metis.assumptions()$GWP%>%dplyr::rename(class1=ghg),by="class1")%>%
dplyr::left_join(metis.assumptions()$convertGgTgMTC,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="Non-CO2 Emissions by Resource GWPAR5 (MTCO2eq)")%>%
dplyr::mutate(param = "emissNonCO2ByResProdGWPAR5",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origX = year,
scenario = scenNewNames,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classLabel1 = "GHG",
classPalette1 = "pal_metis",
classLabel2 = "sector",
classPalette2 = "pal_metis") %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
# Emissions Fossil FUels and Industry (FFI) basically everything but LUC GWP AR5
if(any(c("emissNonCO2ByResProdGWPAR5", "emissNonCO2BySectorGWPAR5") %in% unique(datax$param))){
paramx <- "emissBySectorGWPAR5FFI"
if(paramx %in% paramsSelectx){
# GHG emissions by resource production, using AR5 GWP values
totalFFINonCO2 <- datax %>% dplyr::filter(param %in% c("emissNonCO2ByResProdGWPAR5", "emissNonCO2BySectorGWPAR5")) %>%
dplyr::filter(!class1=='CO2')
# dplyr::rename so that the nonCO2 classes 1 and 2 are consistent with the CO2 classes 1 and 2
totalFFINonCO2 <- totalFFINonCO2 %>%
dplyr::mutate(class_temp = class2) %>%
dplyr::mutate(class2 = class1) %>%
dplyr::mutate(class1=class_temp) %>%
dplyr::select(-class_temp)
totalFFICO2 <- datax %>% dplyr::filter(param %in% c("emissCO2BySectorNoBio")) %>% dplyr::mutate(class2 = "CO2")
totalFFICO2Eq <- rbind(totalFFICO2, totalFFINonCO2)
totalFFICO2Eq$param <- 'emissBySectorGWPAR5FFI'
totalFFICO2Eq <- totalFFICO2Eq %>%
dplyr::mutate(origQuery="comb_origQueries",
origUnits="comb_origUnits",
units="GHG Emissions GWPAR5 (MTCO2eq)",
classLabel1 = "sector",
classLabel2 = "subSector",
classPalette1 = 'pal_metis')%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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))
# Take this new parameter and put it in datax (main dataframe for ready-to-plot results)
datax <- rbind(datax, totalFFICO2Eq)
}} else {
if(any(c("nonCO2 emissions by resource production","nonCO2 emissions by sector") %in% queriesSelectx)){
print(paste("totalFFINonCO2 did not run so skipping param emissBySectorGWPAR5FFI",sep=""))}
}
# Emissions with LUC GWP AR5
if(any(c("emissNonCO2ByResProdGWPAR5", "emissNonCO2BySectorGWPAR5") %in% unique(datax$param))){
paramx <- "emissBySectorGWPAR5LUC"
if(paramx %in% paramsSelectx){
# Same as FFI Emiss by Sec, except we are now adding LUC. So really it is the whole emissions picture (or close to it)
totalFFINonCO2 <- datax %>% dplyr::filter(param %in% c("emissNonCO2ByResProdGWPAR5", "emissNonCO2BySectorGWPAR5")) %>%
dplyr::filter(!class1=='CO2')
# dplyr::rename so that the nonCO2 classes 1 and 2 are consistent with the CO2 classes 1 and 2
totalFFINonCO2 <- totalFFINonCO2 %>%
dplyr::mutate(class_temp = class2) %>%
dplyr::mutate(class2 = class1) %>%
dplyr::mutate(class1=class_temp) %>%
dplyr::select(-class_temp)
totalFFICO2 <- datax %>% dplyr::filter(param %in% c("emissCO2BySectorNoBio", "emissLUC")) %>% dplyr::mutate(class2 = "CO2")
totalFFICO2Eq <- rbind(totalFFICO2, totalFFINonCO2)
totalFFICO2Eq$param <- 'emissBySectorGWPAR5LUC'
totalFFICO2Eq$Class1Palette <- 'pal_metis'
totalFFICO2Eq <- totalFFICO2Eq %>%
dplyr::mutate(origQuery="comb_origQueries",
origUnits="comb_origUnits",
units="GHG Emissions GWPAR5 (MTCO2eq)",
classLabel1 = "sector",
classLabel2 = "subSector",
classPalette1 = 'pal_metis')%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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))
# Take this new parameter and put it in datax (main dataframe for ready-to-plot results)
datax <- rbind(datax, totalFFICO2Eq)
}} else {
if(any(c("nonCO2 emissions by resource production","nonCO2 emissions by sector") %in% queriesSelectx)){
print(paste("totalFFINonCO2 did not run so skipping param emissBySectorGWPAR5LUC",sep=""))}
}
# Total Emissions without LUC GWP Summarized
if(any(c("emissNonCO2ByResProdGWPAR5", "emissNonCO2BySectorGWPAR5") %in% unique(datax$param))){
paramx <- "emissByGasGWPAR5FFI"
if(paramx %in% paramsSelectx){
# GHG emissions by resource production, using AR5 GWP values
totalFFINonCO2 <- datax %>% dplyr::filter(param %in% c("emissNonCO2ByResProdGWPAR5", "emissNonCO2BySectorGWPAR5")) %>%
dplyr::filter(!class1=='CO2')
# dplyr::rename so that the nonCO2 classes 1 and 2 are consistent with the CO2 classes 1 and 2
totalFFICO2 <- datax %>% dplyr::filter(param %in% c("emissCO2BySectorNoBio")) %>% dplyr::mutate(class1 = "CO2")
totalFFICO2Eq <- rbind(totalFFICO2, totalFFINonCO2)
totalFFICO2Eq$param <- 'emissByGasGWPAR5FFI'
totalFFICO2Eq <- totalFFICO2Eq %>%
dplyr::mutate(origQuery="comb_origQueries",
origUnits="comb_origUnits",
units="GHG Emissions GWPAR5 (MTCO2eq)",
classLabel1 = "sector",
classLabel2 = "subSector",
classPalette1 = 'pal_metis')%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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))
# Take this new parameter and put it in datax (main dataframe for ready-to-plot results)
datax <- rbind(datax, totalFFICO2Eq)
}
} else {
if(any(c("nonCO2 emissions by resource production","nonCO2 emissions by sector") %in% queriesSelectx)){
print(paste("totalFFINonCO2 did not run so skipping param emissByGasGWPAR5FFI",sep=""))}
}
# Total Emissions with LUC GWP Summarized
if(any(c("emissNonCO2ByResProdGWPAR5", "emissNonCO2BySectorGWPAR5",
"emissLUC","emissCO2BySectorNoBio") %in% unique(datax$param))){
paramx <- "emissByGasGWPAR5LUC"
if(paramx %in% paramsSelectx){
totalFFICO2 <- datax %>% dplyr::filter(param %in% c("emissCO2BySectorNoBio")) %>%
dplyr::mutate(class1=dplyr::if_else(class1=="LUC", "CO2 LUC", "CO2"))
# GHG emissions by resource production, using AR5 GWP values
NonCo2_LUC <- datax %>% dplyr::filter(param %in% c("emissNonCO2ByResProdGWPAR5", "emissNonCO2BySectorGWPAR5",
"emissLUC")) %>%
dplyr::filter(!class1=='CO2') %>%
dplyr::mutate(class1=dplyr::if_else(class1=="LUC", "CO2 LUC", class1))
totalCO2Eq <- rbind(totalFFICO2, NonCo2_LUC)
# dplyr::rename so that the nonCO2 classes 1 and 2 are consistent with the CO2 classes 1 and 2
totalCO2Eq$param <- 'emissByGasGWPAR5LUC'
totalCO2Eq <- totalCO2Eq %>%
dplyr::mutate(origQuery="comb_origQueries",
origUnits="comb_origUnits",
units="GHG Emissions GWPAR5 (MTCO2eq)",
classLabel1 = "sector",
classLabel2 = "subSector",
classPalette1 = 'pal_metis')%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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))
# Take this new parameter and put it in datax (main dataframe for ready-to-plot results)
datax <- rbind(datax, totalCO2Eq)
}
} else {
if(any(c("nonCO2 emissions by resource production","nonCO2 emissions by sector") %in% queriesSelectx)){
print(paste("totalFFINonCO2 did not run so skipping param emissByGasGWPAR5LUC",sep=""))}
}
#-----------------------
# AR5 GTP
#----------------------
paramx <- "emissNonCO2BySectorGTPAR5"
if(paramx %in% paramsSelectx){
# GHG emissions by subsector
queryx <- "nonCO2 emissions by sector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!is.null(regionsSelect)) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- 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')) %>%
dplyr::mutate(
class2=gsub("comm\\scooling","Buildings",class2),
class2=gsub("comm\\scooking","Buildings",class2),
class2=gsub("comm\\sheating","Buildings",class2),
class2=gsub("comm\\sothers","Buildings",class2),
class2=gsub("comm\\sother","Buildings",class2),
class2=gsub("comm\\shot\\swater","Buildings",class2),
class2=gsub("elec\\_biomass\\s\\(conv\\)","Electricity",class2),
class2=gsub("elec\\_biomass\\s\\(IGCC\\)","Electricity",class2),
class2=gsub("elec\\_biomass\\s\\(conv\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_biomass\\s\\(IGCC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(conv\\spul\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(IGCC\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(conv\\s\\pul\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(IGCC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(IGCC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(steam/CT\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(CC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(CC\\)","Electricity",class2),
class2=gsub("elec\\_refined\\sliquids\\s\\(CC\\)","Electricity",class2),
class2=gsub("elec\\_refined\\sliquids\\s\\(steam/CT\\)","Electricity",class2),
class2=gsub("elec\\_refined\\sliquids\\s\\(CC\\sCCS\\)","Electricity",class2),
class2=dplyr::if_else(class2=="electricity","Electricity",class2),
class2=gsub("electricity_net_ownuse","Electricity",class2),
class2=gsub("base\\s\\load\\sgeneration","Electricity",class2),
class2=gsub("subpeak\\sgeneration","Electricity",class2),
class2=gsub("peak\\sgeneration","Electricity",class2),
class2=gsub("intermediate\\sgeneration","Electricity",class2),
class2=gsub("gas\\spipeline","Refining and Hydrogen Production",class2),
class2=gsub("gas\\sprocessing","Refining and Hydrogen Production",class2),
class2=gsub("H2\\scentral\\sproduction","Refining and Hydrogen Production",class2),
class2=gsub("H2\\sforecourt\\sproduction","Refining and Hydrogen Production",class2),
class2=gsub("oil\\srefining","Refining and Hydrogen Production",class2),
class2=gsub("gas\\sto\\sliquids","Refining and Hydrogen Production",class2),
class2=gsub("coal\\sto\\sliquids","Refining and Hydrogen Production",class2),
class2=gsub("industrial\\senergy\\suse","Industry",class2),
class2=gsub("industrial\\sfeedstocks","Industry",class2),
class2=gsub("industrial\\sprocesses","Industry",class2),
class2=gsub("urban\\sprocesses","Waste",class2),
class2=gsub("N\\sfertilizer","Industry",class2),
class2=gsub("process\\sheat\\scement","Industry",class2),
class2=gsub("cement","Industry",class2),
class2=dplyr::if_else(class2=="refining","Refining and Hydrogen Production",class2),
class2=gsub("regional\\sbiomassOil","Refining and Hydrogen Production",class2),
class2=gsub("regional\\ssugar\\sfor\\sethanol","Refining and Hydrogen Production",class2),
class2=gsub("regional\\sbiomass","Refining and Hydrogen Production",class2),
class2=gsub("regional\\scorn\\sfor\\sethanol","Refining and Hydrogen Production",class2),
class2=gsub("resid\\scooling","Buildings",class2),
class2=gsub("resid\\sheating","Buildings",class2),
class2=gsub("resid\\sothers","Buildings",class2),
class2=gsub("resid\\sother","Buildings",class2),
class2=gsub("resid\\shot\\swater","Buildings",class2),
class2=gsub("resid\\scooking","Buildings",class2),
class2=gsub("resid\\sclothes\\sdryer","Buildings",class2),
class2=gsub("district\\sheat","Buildings",class2),
class2=gsub("trn\\_aviation\\_intl","Transport Intl Av",class2),
class2=gsub("trn\\_shipping\\_intl","Transport Intl Shp",class2),
class2=dplyr::if_else(class2=="trn_freight_road","Transport",class2),
class2=dplyr::if_else(class2=="trn_freight","Transport",class2),
class2=dplyr::if_else(class2=="trn_pass","Transport",class2),
class2=gsub("trn\\_pass\\_road\\_LDV\\_2W","Transport",class2),
class2=gsub("trn\\_pass\\_road\\_LDV\\_4W","Transport",class2),
class2=dplyr::if_else(class2=="trn_pass_road","Transport",class2),
class2=gsub("transport\\_LDV","Transport",class2),
class2=gsub("transport\\_bus","Transport",class2),
class2=dplyr::if_else(class2=="trn_pass","Transport",class2),
class2=gsub("unconventional\\soil\\sproduction","Refining and Hydrogen Production",class2),
class2=gsub("conventional\\sgas","Refining and Hydrogen Production",class2),
class2=gsub("unconventional\\sgas\\sother","Refining and Hydrogen Production",class2),
class2=gsub("delivered\\sgas","Industry",class2),
class2=gsub("tight\\sgas","Refining and Hydrogen Production",class2),
class2=gsub("delivered\\sbiomass","Industry",class2),
class2=gsub("refined\\sliquids\\senduse","Industry",class2),
class2=gsub("refined\\sliquids\\sindustrial","Industry",class2),
class2=gsub("wholesale\\sgas","Industry",class2),
class2=gsub("natural\\sgas","Refining and Hydrogen Production",class2),
class2=gsub("biomass\\sliquids","Refining and Hydrogen Production",class2),
class2=gsub("coalbed\\smethane","Refining and Hydrogen Production",class2),
class2=gsub("shale\\sgas","Refining and Hydrogen Production",class2),
class2=dplyr::if_else(class2=="coal","Refining and Hydrogen Production",class2),
class2=gsub("crude oil","Refining and Hydrogen Production",class2),
class2=gsub("electricity\\sdomestic\\ssupply","Refining and Hydrogen Production",class2),
class2=gsub("Beef","Livestock",class2),
class2=gsub("Dairy","Livestock",class2),
class2=gsub("FiberCrop","Crops",class2),
class2=gsub("MiscCrop","Crops",class2),
class2=gsub("OilCrop","Crops",class2),
class2=gsub("OtherGrain","Crops",class2),
class2=gsub("PalmFruit","Crops",class2),
class2=gsub("Pork","Livestock",class2),
class2=gsub("Poultry","Livestock",class2),
class2=gsub("Corn","Crops",class2),
class2=gsub("Rice","Crops",class2),
class2=gsub("Root_Tuber","Crops",class2),
class2=gsub("SheepGoat","Crops",class2),
class2=gsub("SugarCrop","Crops",class2),
class2=gsub("UnmanagedLand","Crops",class2),
class2=gsub("Wheat","Crops",class2),
class2=gsub("biomass","Crops",class2),
class2=gsub("FodderGrass","Crops",class2),
class2=gsub("FodderHerb","Crops",class2),
class2=dplyr::if_else(class2=="biomass","Crops",class2),
class2=gsub("backup\\_electricity","Electricity",class2),
class2=gsub("csp\\_backup","Electricity",class2))%>%
dplyr::left_join(metis.assumptions()$GWP%>%dplyr::rename(class1=ghg),by="class1")%>%
dplyr::left_join(metis.assumptions()$convertGgTgMTC,by="Units") %>%
dplyr::mutate(origValue=value,
value=dplyr::case_when(!is.na(GTPAR5) ~ value*GTPAR5*Convert,
TRUE ~ value*GWPAR5*Convert),
origUnits=Units,
origUnits = dplyr::case_when(class1=="Other"~"Units",TRUE~origUnits),
units="GHG Emissions GTPAR5 (MTCO2eq)")%>%
dplyr::mutate(param = "emissNonCO2BySectorGTPAR5",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origX = year,
scenario = scenNewNames,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classLabel1 = "GHG",
classPalette1 = "pal_metis",
classLabel2 = "sector",
classPalette2 = "pal_metis") %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "emissMethaneBySourceGTPAR5"
if(paramx %in% paramsSelectx){
# GHG emissions (non CO2) by subsector, using AR5 GTP values
queryx <- "nonCO2 emissions by sector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!is.null(regionsSelect)) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
#emiss_sector_mapping <- 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=gsub("comm\\scooling","Buildings",class1),
class1=gsub("comm\\scooking","Buildings",class1),
class1=gsub("comm\\sheating","Buildings",class1),
class1=gsub("comm\\sothers","Buildings",class1),
class1=gsub("comm\\sother","Buildings",class1),
class1=gsub("comm\\shot\\swater","Buildings",class1),
class1=gsub("elec\\_biomass\\s\\(conv\\)","Electricity",class1),
class1=gsub("elec\\_biomass\\s\\(IGCC\\)","Electricity",class1),
class1=gsub("elec\\_biomass\\s\\(conv\\sCCS\\)","Electricity",class1),
class1=gsub("elec\\_biomass\\s\\(IGCC\\sCCS\\)","Electricity",class1),
class1=gsub("elec\\_coal\\s\\(conv\\spul\\)","Electricity",class1),
class1=gsub("elec\\_coal\\s\\(IGCC\\)","Electricity",class1),
class1=gsub("elec\\_coal\\s\\(conv\\s\\pul\\sCCS\\)","Electricity",class1),
class1=gsub("elec\\_coal\\s\\(IGCC\\sCCS\\)","Electricity",class1),
class1=gsub("elec\\_gas\\s\\(IGCC\\sCCS\\)","Electricity",class1),
class1=gsub("elec\\_gas\\s\\(steam/CT\\)","Electricity",class1),
class1=gsub("elec\\_gas\\s\\(CC\\sCCS\\)","Electricity",class1),
class1=gsub("elec\\_gas\\s\\(CC\\)","Electricity",class1),
class1=gsub("elec\\_refined\\sliquids\\s\\(CC\\)","Electricity",class1),
class1=gsub("elec\\_refined\\sliquids\\s\\(steam/CT\\)","Electricity",class1),
class1=gsub("elec\\_refined\\sliquids\\s\\(CC\\sCCS\\)","Electricity",class1),
class1=dplyr::if_else(class1=="electricity","Electricity",class1),
class1=gsub("electricity_net_ownuse","Electricity",class1),
class1=gsub("base\\s\\load\\sgeneration","Electricity",class1),
class1=gsub("subpeak\\sgeneration","Electricity",class1),
class1=gsub("peak\\sgeneration","Electricity",class1),
class1=gsub("intermediate\\sgeneration","Electricity",class1),
class1=gsub("gas\\spipeline","Refining and Hydrogen Production",class1),
class1=gsub("gas\\sprocessing","Refining and Hydrogen Production",class1),
class1=gsub("H2\\scentral\\sproduction","Refining and Hydrogen Production",class1),
class1=gsub("H2\\sforecourt\\sproduction","Refining and Hydrogen Production",class1),
class1=gsub("oil\\srefining","Refining and Hydrogen Production",class1),
class1=gsub("gas\\sto\\sliquids","Refining and Hydrogen Production",class1),
class1=gsub("coal\\sto\\sliquids","Refining and Hydrogen Production",class1),
class1=gsub("industrial\\senergy\\suse","Industry",class1),
class1=gsub("industrial\\sfeedstocks","Industry",class1),
class1=gsub("industrial\\sprocesses","Industry",class1),
class1=gsub("urban\\sprocesses","Waste",class1),
class1=gsub("N\\sfertilizer","Industry",class1),
class1=gsub("process\\sheat\\scement","Industry",class1),
class1=gsub("cement","Industry",class1),
class1=dplyr::if_else(class1=="refining","Refining and Hydrogen Production",class1),
class1=gsub("regional\\sbiomassOil","Refining and Hydrogen Production",class1),
class1=gsub("regional\\ssugar\\sfor\\sethanol","Refining and Hydrogen Production",class1),
class1=gsub("regional\\sbiomass","Refining and Hydrogen Production",class1),
class1=gsub("regional\\scorn\\sfor\\sethanol","Refining and Hydrogen Production",class1),
class1=gsub("resid\\scooling","Buildings",class1),
class1=gsub("resid\\sheating","Buildings",class1),
class1=gsub("resid\\sothers","Buildings",class1),
class1=gsub("resid\\sother","Buildings",class1),
class1=gsub("resid\\shot\\swater","Buildings",class1),
class1=gsub("resid\\scooking","Buildings",class1),
class1=gsub("resid\\sclothes\\sdryer","Buildings",class1),
class1=gsub("district\\sheat","Buildings",class1),
class1=gsub("trn\\_aviation\\_intl","Transport Intl Av",class1),
class1=gsub("trn\\_shipping\\_intl","Transport Intl Shp",class1),
class1=dplyr::if_else(class1=="trn_freight_road","Transport",class1),
class1=dplyr::if_else(class1=="trn_freight","Transport",class1),
class1=dplyr::if_else(class1=="trn_pass","Transport",class1),
class1=gsub("trn\\_pass\\_road\\_LDV\\_2W","Transport",class1),
class1=gsub("trn\\_pass\\_road\\_LDV\\_4W","Transport",class1),
class1=dplyr::if_else(class1=="trn_pass_road","Transport",class1),
class1=gsub("transport\\_LDV","Transport",class1),
class1=gsub("transport\\_bus","Transport",class1),
class1=dplyr::if_else(class1=="trn_pass","Transport",class1),
class1=gsub("unconventional\\soil\\sproduction","Refining and Hydrogen Production",class1),
class1=gsub("conventional\\sgas","Refining and Hydrogen Production",class1),
class1=gsub("unconventional\\sgas\\sother","Refining and Hydrogen Production",class1),
class1=gsub("delivered\\sgas","Industry",class1),
class1=gsub("tight\\sgas","Refining and Hydrogen Production",class1),
class1=gsub("delivered\\sbiomass","Industry",class1),
class1=gsub("refined\\sliquids\\senduse","Industry",class1),
class1=gsub("refined\\sliquids\\sindustrial","Industry",class1),
class1=gsub("wholesale\\sgas","Industry",class1),
class1=gsub("natural\\sgas","Refining and Hydrogen Production",class1),
class1=gsub("biomass\\sliquids","Refining and Hydrogen Production",class1),
class1=gsub("coalbed\\smethane","Refining and Hydrogen Production",class1),
class1=gsub("shale\\sgas","Refining and Hydrogen Production",class1),
class1=dplyr::if_else(class1=="coal","Refining and Hydrogen Production",class1),
class1=gsub("crude oil","Refining and Hydrogen Production",class1),
class1=gsub("electricity\\sdomestic\\ssupply","Refining and Hydrogen Production",class1),
class1=gsub("Beef","Livestock",class1),
class1=gsub("Dairy","Livestock",class1),
class1=gsub("FiberCrop","Crops",class1),
class1=gsub("MiscCrop","Crops",class1),
class1=gsub("OilCrop","Crops",class1),
class1=gsub("OtherGrain","Crops",class1),
class1=gsub("PalmFruit","Crops",class1),
class1=gsub("Pork","Livestock",class1),
class1=gsub("Poultry","Livestock",class1),
class1=gsub("Corn","Crops",class1),
class1=gsub("Rice","Crops",class1),
class1=gsub("Root_Tuber","Crops",class1),
class1=gsub("SheepGoat","Crops",class1),
class1=gsub("SugarCrop","Crops",class1),
class1=gsub("UnmanagedLand","Crops",class1),
class1=gsub("Wheat","Crops",class1),
class1=gsub("biomass","Crops",class1),
class1=gsub("FodderGrass","Crops",class1),
class1=gsub("FodderHerb","Crops",class1),
class1=dplyr::if_else(class1=="biomass","Crops",class1),
class1=gsub("backup\\_electricity","Electricity",class1),
class1=gsub("csp\\_backup","Electricity",class1))%>%
dplyr::left_join(metis.assumptions()$GWP%>%dplyr::rename(class2=ghg),by="class2")%>%
dplyr::left_join(metis.assumptions()$convertGgTgMTC,by="Units") %>%
dplyr::mutate(origValue=value,
value=dplyr::case_when(!is.na(GTPAR5) ~ value*GTPAR5*Convert,
TRUE ~ value*GWPAR5*Convert),
origUnits=Units,
origUnits = dplyr::case_when(class2=="Other"~"Units",TRUE~origUnits),
units="Methane Emissions GTPAR5 (MTCO2eq)")%>%
dplyr::mutate(param = "emissMethaneBySourceGTPAR5",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origX = year,
scenario = scenNewNames,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classLabel1 = "sector",
classPalette1 = "pal_metis",
classLabel2 = "GHG",
classPalette2 = "pal_metis") %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx <- "emissNonCO2ByResProdGTPAR5"
if(paramx %in% paramsSelectx){
# GHG emissions by resource production, using AR5 GTP values
queryx <- "nonCO2 emissions by resource production"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!is.null(regionsSelect)) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
#emiss_sector_mapping <- 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 = ghg, class2 = resource) %>%
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')) %>%
#dplyr::left_join(emiss_sector_mapping, by=c('class2' = 'class1')) %>%
#dplyr::mutate(class2=agg_sector) %>%
#dplyr::select(-agg_sector) %>%
dplyr::mutate(
class2=gsub("comm\\scooling","Buildings",class2),
class2=gsub("comm\\scooking","Buildings",class2),
class2=gsub("comm\\sheating","Buildings",class2),
class2=gsub("comm\\sothers","Buildings",class2),
class2=gsub("comm\\sother","Buildings",class2),
class2=gsub("comm\\shot\\swater","Buildings",class2),
class2=gsub("elec\\_biomass\\s\\(conv\\)","Electricity",class2),
class2=gsub("elec\\_biomass\\s\\(IGCC\\)","Electricity",class2),
class2=gsub("elec\\_biomass\\s\\(conv\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_biomass\\s\\(IGCC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(conv\\spul\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(IGCC\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(conv\\s\\pul\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(IGCC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(IGCC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(steam/CT\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(CC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(CC\\)","Electricity",class2),
class2=gsub("elec\\_refined\\sliquids\\s\\(CC\\)","Electricity",class2),
class2=gsub("elec\\_refined\\sliquids\\s\\(steam/CT\\)","Electricity",class2),
class2=gsub("elec\\_refined\\sliquids\\s\\(CC\\sCCS\\)","Electricity",class2),
class2=dplyr::if_else(class2=="electricity","Electricity",class2),
class2=gsub("electricity_net_ownuse","Electricity",class2),
class2=gsub("base\\s\\load\\sgeneration","Electricity",class2),
class2=gsub("subpeak\\sgeneration","Electricity",class2),
class2=gsub("peak\\sgeneration","Electricity",class2),
class2=gsub("intermediate\\sgeneration","Electricity",class2),
class2=gsub("gas\\spipeline","Refining and Hydrogen Production",class2),
class2=gsub("gas\\sprocessing","Refining and Hydrogen Production",class2),
class2=gsub("H2\\scentral\\sproduction","Refining and Hydrogen Production",class2),
class2=gsub("H2\\sforecourt\\sproduction","Refining and Hydrogen Production",class2),
class2=gsub("oil\\srefining","Refining and Hydrogen Production",class2),
class2=gsub("gas\\sto\\sliquids","Refining and Hydrogen Production",class2),
class2=gsub("coal\\sto\\sliquids","Refining and Hydrogen Production",class2),
class2=gsub("industrial\\senergy\\suse","Industry",class2),
class2=gsub("industrial\\sfeedstocks","Industry",class2),
class2=gsub("industrial\\sprocesses","Industry",class2),
class2=gsub("urban\\sprocesses","Waste",class2),
class2=gsub("N\\sfertilizer","Industry",class2),
class2=gsub("process\\sheat\\scement","Industry",class2),
class2=gsub("cement","Industry",class2),
class2=dplyr::if_else(class2=="refining","Refining and Hydrogen Production",class2),
class2=gsub("regional\\sbiomassOil","Refining and Hydrogen Production",class2),
class2=gsub("regional\\ssugar\\sfor\\sethanol","Refining and Hydrogen Production",class2),
class2=gsub("regional\\sbiomass","Refining and Hydrogen Production",class2),
class2=gsub("regional\\scorn\\sfor\\sethanol","Refining and Hydrogen Production",class2),
class2=gsub("resid\\scooling","Buildings",class2),
class2=gsub("resid\\sheating","Buildings",class2),
class2=gsub("resid\\sothers","Buildings",class2),
class2=gsub("resid\\sother","Buildings",class2),
class2=gsub("resid\\shot\\swater","Buildings",class2),
class2=gsub("resid\\scooking","Buildings",class2),
class2=gsub("resid\\sclothes\\sdryer","Buildings",class2),
class2=gsub("district\\sheat","Buildings",class2),
class2=gsub("trn\\_aviation\\_intl","Transport Intl Av",class2),
class2=gsub("trn\\_shipping\\_intl","Transport Intl Shp",class2),
class2=dplyr::if_else(class2=="trn_freight_road","Transport",class2),
class2=dplyr::if_else(class2=="trn_freight","Transport",class2),
class2=dplyr::if_else(class2=="trn_pass","Transport",class2),
class2=gsub("trn\\_pass\\_road\\_LDV\\_2W","Transport",class2),
class2=gsub("trn\\_pass\\_road\\_LDV\\_4W","Transport",class2),
class2=dplyr::if_else(class2=="trn_pass_road","Transport",class2),
class2=gsub("transport\\_LDV","Transport",class2),
class2=gsub("transport\\_bus","Transport",class2),
class2=dplyr::if_else(class2=="trn_pass","Transport",class2),
class2=gsub("unconventional\\soil\\sproduction","Refining and Hydrogen Production",class2),
class2=gsub("conventional\\sgas","Refining and Hydrogen Production",class2),
class2=gsub("unconventional\\sgas\\sother","Refining and Hydrogen Production",class2),
class2=gsub("delivered\\sgas","Industry",class2),
class2=gsub("tight\\sgas","Refining and Hydrogen Production",class2),
class2=gsub("delivered\\sbiomass","Industry",class2),
class2=gsub("refined\\sliquids\\senduse","Industry",class2),
class2=gsub("refined\\sliquids\\sindustrial","Industry",class2),
class2=gsub("wholesale\\sgas","Industry",class2),
class2=gsub("natural\\sgas","Refining and Hydrogen Production",class2),
class2=gsub("biomass\\sliquids","Refining and Hydrogen Production",class2),
class2=gsub("coalbed\\smethane","Refining and Hydrogen Production",class2),
class2=gsub("shale\\sgas","Refining and Hydrogen Production",class2),
class2=dplyr::if_else(class2=="coal","Refining and Hydrogen Production",class2),
class2=gsub("crude oil","Refining and Hydrogen Production",class2),
class2=gsub("electricity\\sdomestic\\ssupply","Refining and Hydrogen Production",class2),
class2=gsub("Beef","Livestock",class2),
class2=gsub("Dairy","Livestock",class2),
class2=gsub("FiberCrop","Crops",class2),
class2=gsub("MiscCrop","Crops",class2),
class2=gsub("OilCrop","Crops",class2),
class2=gsub("OtherGrain","Crops",class2),
class2=gsub("PalmFruit","Crops",class2),
class2=gsub("Pork","Livestock",class2),
class2=gsub("Poultry","Livestock",class2),
class2=gsub("Corn","Crops",class2),
class2=gsub("Rice","Crops",class2),
class2=gsub("Root_Tuber","Crops",class2),
class2=gsub("SheepGoat","Crops",class2),
class2=gsub("SugarCrop","Crops",class2),
class2=gsub("UnmanagedLand","Crops",class2),
class2=gsub("Wheat","Crops",class2),
class2=gsub("biomass","Crops",class2),
class2=gsub("FodderGrass","Crops",class2),
class2=gsub("FodderHerb","Crops",class2),
class2=dplyr::if_else(class2=="biomass","Crops",class2),
class2=gsub("backup\\_electricity","Electricity",class2),
class2=gsub("csp\\_backup","Electricity",class2))%>%
dplyr::left_join(metis.assumptions()$GWP%>%dplyr::rename(class1=ghg),by="class1")%>%
dplyr::left_join(metis.assumptions()$convertGgTgMTC,by="Units") %>%
dplyr::filter(!class1=='CO2') %>%
dplyr::mutate(origValue=value,
value=dplyr::case_when(!is.na(GTPAR5) ~ value*GTPAR5*Convert,
TRUE ~ value*GWPAR5*Convert),
origUnits=Units,
origUnits = dplyr::case_when(class1=="Other"~"Units",TRUE~origUnits),
units="Non-CO2 Emissions by Resource GTPAR5 (MTCO2eq)")%>%
dplyr::mutate(param = "emissNonCO2ByResProdGTPAR5",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origX = year,
scenario = scenNewNames,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classLabel1 = "GHG",
classPalette1 = "pal_metis",
classLabel2 = "sector",
classPalette2 = "pal_metis") %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
# Emissions Fossil FUels and Industry (FFI) basically everything but LUC GTP AR5
if(any(c("emissNonCO2ByResProdGTPAR5", "emissNonCO2BySectorGTPAR5") %in% unique(datax$param))){
paramx <- "emissBySectorGTPAR5FFI"
if(paramx %in% paramsSelectx){
# GHG emissions by resource production, using AR5 GTP values
totalFFINonCO2 <- datax %>% dplyr::filter(param %in% c("emissNonCO2ByResProdGTPAR5", "emissNonCO2BySectorGTPAR5")) %>%
dplyr::filter(!class1=='CO2')
# dplyr::rename so that the nonCO2 classes 1 and 2 are consistent with the CO2 classes 1 and 2
totalFFINonCO2 <- totalFFINonCO2 %>%
dplyr::mutate(class_temp = class2) %>%
dplyr::mutate(class2 = class1) %>%
dplyr::mutate(class1=class_temp) %>%
dplyr::select(-class_temp)
totalFFICO2 <- datax %>% dplyr::filter(param %in% c("emissCO2BySectorNoBio"))%>%dplyr::mutate(class2="CO2")
totalFFICO2Eq <- rbind(totalFFICO2, totalFFINonCO2)
totalFFICO2Eq$param <- 'emissBySectorGTPAR5FFI'
totalFFICO2Eq <- totalFFICO2Eq %>%
dplyr::mutate(origQuery="comb_origQueries",
origUnits="comb_origUnits",
units="GHG Emissions GTPAR5 (MTCO2eq)",
classLabel1 = "sector",
classLabel2 = "subSector",
classPalette1 = 'pal_metis')%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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))
# Take this new parameter and put it in datax (main dataframe for ready-to-plot results)
datax <- rbind(datax, totalFFICO2Eq)
}} else {
if(any(c("nonCO2 emissions by resource production","nonCO2 emissions by sector") %in% queriesSelectx)){
print(paste("totalFFINonCO2 did not run so skipping paramemissBySectorGTPAR5FFI",sep=""))}
}
# Emissions LUC basically GTP AR5
if(any(c("emissNonCO2ByResProdGTPAR5", "emissNonCO2BySectorGTPAR5") %in% unique(datax$param))){
paramx <- "emissBySectorGTPAR5LUC"
if(paramx %in% paramsSelectx){
# Same as FFI Emiss by Sec, except we are now adding LUC. So really it is the whole emissions picture (or close to it)
totalFFINonCO2 <- datax %>% dplyr::filter(param %in% c("emissNonCO2ByResProdGTPAR5", "emissNonCO2BySectorGTPAR5")) %>%
dplyr::filter(!class1=='CO2')
# dplyr::rename so that the nonCO2 classes 1 and 2 are consistent with the CO2 classes 1 and 2
totalFFINonCO2 <- totalFFINonCO2 %>%
dplyr::mutate(class_temp = class2) %>%
dplyr::mutate(class2 = class1) %>%
dplyr::mutate(class1=class_temp) %>%
dplyr::select(-class_temp)
totalFFICO2 <- datax %>% dplyr::filter(param %in% c("emissCO2BySectorNoBio", "emissLUC"))%>%dplyr::mutate(class2="CO2")
totalFFICO2Eq <- rbind(totalFFICO2, totalFFINonCO2)
totalFFICO2Eq$param <- 'emissBySectorGTPAR5LUC'
totalFFICO2Eq$Class1Palette <- 'pal_metis'
totalFFICO2Eq <- totalFFICO2Eq %>%
dplyr::mutate(origQuery="comb_origQueries",
origUnits="comb_origUnits",
units="GHG Emissions GTPAR5 (MTCO2eq)",
classLabel1 = "sector",
classLabel2 = "subSector",
classPalette1 = 'pal_metis')%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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))
# Take this new parameter and put it in datax (main dataframe for ready-to-plot results)
datax <- rbind(datax, totalFFICO2Eq)
}} else {
if(any(c("nonCO2 emissions by resource production","nonCO2 emissions by sector") %in% queriesSelectx)){
print(paste("totalFFINonCO2 did not run so skipping param emissBySectorGTPAR5LUC",sep=""))}
}
# Total Emissions without LUC GTP Summarized
if(any(c("emissNonCO2ByResProdGTPAR5", "emissNonCO2BySectorGTPAR5") %in% unique(datax$param))){
paramx <- "emissByGasGTPAR5FFI"
if(paramx %in% paramsSelectx){
# GHG emissions by resource production, using AR5 GTP values
totalFFINonCO2 <- datax %>% dplyr::filter(param %in% c("emissNonCO2ByResProdGTPAR5", "emissNonCO2BySectorGTPAR5")) %>%
dplyr::filter(!class1=='CO2')
# dplyr::rename so that the nonCO2 classes 1 and 2 are consistent with the CO2 classes 1 and 2
totalFFICO2 <- datax %>% dplyr::filter(param %in% c("emissCO2BySectorNoBio")) %>%dplyr::mutate(class1="CO2")
totalFFICO2Eq <- rbind(totalFFICO2, totalFFINonCO2)
totalFFICO2Eq$param <- 'emissByGasGTPAR5FFI'
totalFFICO2Eq <- totalFFICO2Eq %>%
dplyr::mutate(origQuery="comb_origQueries",
origUnits="comb_origUnits",
units="GHG Emissions GTPAR5 (MTCO2eq)",
classLabel1 = "sector",
classLabel2 = "subSector",
classPalette1 = 'pal_metis')%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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))
# Take this new parameter and put it in datax (main dataframe for ready-to-plot results)
datax <- rbind(datax, totalFFICO2Eq)
}
} else {
if(any(c("nonCO2 emissions by resource production","nonCO2 emissions by sector") %in% queriesSelectx)){
print(paste("totalFFINonCO2 did not run so skipping param emissByGasGTPAR5FFI",sep=""))}
}
# Total Emissions with LUC GTP Summarized
if(any(c("emissNonCO2ByResProdGTPAR5", "emissNonCO2BySectorGTPAR5",
"emissLUC","emissCO2BySectorNoBio") %in% unique(datax$param))){
paramx <- "emissByGasGTPAR5LUC"
if(paramx %in% paramsSelectx){
totalFFICO2 <- datax %>% dplyr::filter(param %in% c("emissCO2BySectorNoBio"))%>%dplyr::mutate(class1="CO2")
# GHG emissions by resource production, using AR5 GTP values
NonCo2_LUC <- datax %>% dplyr::filter(param %in% c("emissNonCO2ByResProdGTPAR5", "emissNonCO2BySectorGTPAR5",
"emissLUC")) %>%
dplyr::filter(!class1=='CO2')%>%dplyr::mutate(class1=dplyr::if_else(class1=="LUC", "CO2 LUC", class1))
totalCO2Eq <- rbind(totalFFICO2, NonCo2_LUC)
# dplyr::rename so that the nonCO2 classes 1 and 2 are consistent with the CO2 classes 1 and 2
totalCO2Eq$param <- 'emissByGasGTPAR5LUC'
totalCO2Eq <- totalCO2Eq %>%
dplyr::mutate(origQuery="comb_origQueries",
origUnits="comb_origUnits",
units="GHG Emissions GTPAR5 (MTCO2eq)",
classLabel1 = "sector",
classLabel2 = "subSector",
classPalette1 = 'pal_metis')%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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))
# Take this new parameter and put it in datax (main dataframe for ready-to-plot results)
datax <- rbind(datax, totalCO2Eq)
}
} else {
if(any(c("nonCO2 emissions by resource production","nonCO2 emissions by sector") %in% queriesSelectx)){
print(paste("totalFFINonCO2 did not run so skipping param emissByGasGTPAR5LUC",sep=""))}
}
paramx <- "emissNonCO2BySectorOrigUnits"
if(paramx %in% paramsSelectx){
# GHG emissions by subsector
queryx <- "nonCO2 emissions by sector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!is.null(regionsSelect)) {
tbl <- tbl %>% dplyr::filter(region %in% regionsSelect)
}
tbl <- tbl %>%
dplyr::filter(ghg!="CO2")%>%
dplyr::mutate(origValue=value,
origUnits=Units,
units="Variable Units")%>%
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)) ~ paste("HFCs",units,sep="_"),
(grepl("SF6", class1)) ~ paste("SF6",units,sep="_"),
(grepl("CO2", class1)) ~ paste("CO2",units,sep="_"),
(grepl("N2O", class1)) ~ paste("N2O",units,sep="_"),
(grepl("CH4", class1)) ~ paste("CH4",units,sep="_"),
(grepl("NH3", class1)) ~ paste("NH3",units,sep="_"),
(grepl("NOx", class1)) ~ paste("NOx",units,sep="_"),
(grepl("VOC", class1)) ~ paste("VOC",units,sep="_"),
(grepl("SO2", class1)) ~ paste("SO2",units,sep="_"),
(grepl("CF4", class1)) ~ "CF4",
(grepl("C2F6", class1)) ~ "C2F6",
TRUE ~ "Other"))%>%
dplyr::filter(!class1 %in% c('SO2', 'NH3', 'Other')) %>%
dplyr::mutate(
class2=gsub("comm\\scooling","Buildings",class2),
class2=gsub("comm\\scooking","Buildings",class2),
class2=gsub("comm\\sheating","Buildings",class2),
class2=gsub("comm\\sothers","Buildings",class2),
class2=gsub("comm\\sother","Buildings",class2),
class2=gsub("comm\\shot\\swater","Buildings",class2),
class2=gsub("elec\\_biomass\\s\\(conv\\)","Electricity",class2),
class2=gsub("elec\\_biomass\\s\\(IGCC\\)","Electricity",class2),
class2=gsub("elec\\_biomass\\s\\(conv\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_biomass\\s\\(IGCC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(conv\\spul\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(IGCC\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(conv\\s\\pul\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_coal\\s\\(IGCC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(IGCC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(steam/CT\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(CC\\sCCS\\)","Electricity",class2),
class2=gsub("elec\\_gas\\s\\(CC\\)","Electricity",class2),
class2=gsub("elec\\_refined\\sliquids\\s\\(CC\\)","Electricity",class2),
class2=gsub("elec\\_refined\\sliquids\\s\\(steam/CT\\)","Electricity",class2),
class2=gsub("elec\\_refined\\sliquids\\s\\(CC\\sCCS\\)","Electricity",class2),
class2=dplyr::if_else(class2=="electricity","Electricity",class2),
class2=gsub("electricity_net_ownuse","Electricity",class2),
class2=gsub("base\\s\\load\\sgeneration","Electricity",class2),
class2=gsub("subpeak\\sgeneration","Electricity",class2),
class2=gsub("peak\\sgeneration","Electricity",class2),
class2=gsub("intermediate\\sgeneration","Electricity",class2),
class2=gsub("gas\\spipeline","Refining and Hydrogen Production",class2),
class2=gsub("gas\\sprocessing","Refining and Hydrogen Production",class2),
class2=gsub("H2\\scentral\\sproduction","Refining and Hydrogen Production",class2),
class2=gsub("H2\\sforecourt\\sproduction","Refining and Hydrogen Production",class2),
class2=gsub("oil\\srefining","Refining and Hydrogen Production",class2),
class2=gsub("gas\\sto\\sliquids","Refining and Hydrogen Production",class2),
class2=gsub("coal\\sto\\sliquids","Refining and Hydrogen Production",class2),
class2=gsub("industrial\\senergy\\suse","Industry",class2),
class2=gsub("industrial\\sfeedstocks","Industry",class2),
class2=gsub("industrial\\sprocesses","Industry",class2),
class2=gsub("urban\\sprocesses","Waste",class2),
class2=gsub("N\\sfertilizer","Industry",class2),
class2=gsub("process\\sheat\\scement","Industry",class2),
class2=gsub("cement","Industry",class2),
class2=dplyr::if_else(class2=="refining","Refining and Hydrogen Production",class2),
class2=gsub("regional\\sbiomassOil","Refining and Hydrogen Production",class2),
class2=gsub("regional\\ssugar\\sfor\\sethanol","Refining and Hydrogen Production",class2),
class2=gsub("regional\\sbiomass","Refining and Hydrogen Production",class2),
class2=gsub("regional\\scorn\\sfor\\sethanol","Refining and Hydrogen Production",class2),
class2=gsub("resid\\scooling","Buildings",class2),
class2=gsub("resid\\sheating","Buildings",class2),
class2=gsub("resid\\sothers","Buildings",class2),
class2=gsub("resid\\sother","Buildings",class2),
class2=gsub("resid\\shot\\swater","Buildings",class2),
class2=gsub("resid\\scooking","Buildings",class2),
class2=gsub("resid\\sclothes\\sdryer","Buildings",class2),
class2=gsub("district\\sheat","Buildings",class2),
class2=gsub("trn\\_aviation\\_intl","Transport Intl Av",class2),
class2=gsub("trn\\_shipping\\_intl","Transport Intl Shp",class2),
class2=dplyr::if_else(class2=="trn_freight_road","Transport",class2),
class2=dplyr::if_else(class2=="trn_freight","Transport",class2),
class2=dplyr::if_else(class2=="trn_pass","Transport",class2),
class2=gsub("trn\\_pass\\_road\\_LDV\\_2W","Transport",class2),
class2=gsub("trn\\_pass\\_road\\_LDV\\_4W","Transport",class2),
class2=dplyr::if_else(class2=="trn_pass_road","Transport",class2),
class2=gsub("transport\\_LDV","Transport",class2),
class2=gsub("transport\\_bus","Transport",class2),
class2=dplyr::if_else(class2=="trn_pass","Transport",class2),
class2=gsub("unconventional\\soil\\sproduction","Refining and Hydrogen Production",class2),
class2=gsub("conventional\\sgas","Refining and Hydrogen Production",class2),
class2=gsub("unconventional\\sgas\\sother","Refining and Hydrogen Production",class2),
class2=gsub("delivered\\sgas","Industry",class2),
class2=gsub("tight\\sgas","Refining and Hydrogen Production",class2),
class2=gsub("delivered\\sbiomass","Industry",class2),
class2=gsub("refined\\sliquids\\senduse","Industry",class2),
class2=gsub("refined\\sliquids\\sindustrial","Industry",class2),
class2=gsub("wholesale\\sgas","Industry",class2),
class2=gsub("natural\\sgas","Refining and Hydrogen Production",class2),
class2=gsub("biomass\\sliquids","Refining and Hydrogen Production",class2),
class2=gsub("coalbed\\smethane","Refining and Hydrogen Production",class2),
class2=gsub("shale\\sgas","Refining and Hydrogen Production",class2),
class2=dplyr::if_else(class2=="coal","Refining and Hydrogen Production",class2),
class2=gsub("crude oil","Refining and Hydrogen Production",class2),
class2=gsub("electricity\\sdomestic\\ssupply","Refining and Hydrogen Production",class2),
class2=gsub("Beef","Livestock",class2),
class2=gsub("Dairy","Livestock",class2),
class2=gsub("FiberCrop","Crops",class2),
class2=gsub("MiscCrop","Crops",class2),
class2=gsub("OilCrop","Crops",class2),
class2=gsub("OtherGrain","Crops",class2),
class2=gsub("PalmFruit","Crops",class2),
class2=gsub("Pork","Livestock",class2),
class2=gsub("Poultry","Livestock",class2),
class2=gsub("Corn","Crops",class2),
class2=gsub("Rice","Crops",class2),
class2=gsub("Root_Tuber","Crops",class2),
class2=gsub("SheepGoat","Crops",class2),
class2=gsub("SugarCrop","Crops",class2),
class2=gsub("UnmanagedLand","Crops",class2),
class2=gsub("Wheat","Crops",class2),
class2=gsub("biomass","Crops",class2),
class2=gsub("FodderGrass","Crops",class2),
class2=gsub("FodderHerb","Crops",class2),
class2=dplyr::if_else(class2=="biomass","Crops",class2),
class2=gsub("backup\\_electricity","Electricity",class2),
class2=gsub("csp\\_backup","Electricity",class2))%>%
dplyr::mutate(param = "emissNonCO2BySectorOrigUnits",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origX = year,
scenario = scenNewNames,
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
classLabel1 = "GHG",
classPalette1 = "pal_metis",
classLabel2 = "sector",
classPalette2 = "pal_metis",
origUnits = dplyr::case_when(class1=="Other"~"Units",TRUE~origUnits)) %>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx<-"transportPassengerVMTByMode"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
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 (!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","Plane",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\\sSUV","LDV",mode),
mode=gsub("Mini\\sCar","LDV",mode),
mode=gsub("Subcompact\\sCar","LDV",mode),
param = "transportPassengerVMTByMode",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
units = "Pasenger (million pass-km)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = mode,
classLabel1 = "Mode",
classPalette1 = "pal_metis",
class2 = sector,
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx<-"transportFreightVMTByMode"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
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 (!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,
scenario = scenNewNames,
units = "Freight (million ton-km)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = mode,
classLabel1 = "Mode",
classPalette1 = "pal_metis",
class2 = sector,
classLabel2 = "classLabel2",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx<-"energyPrimaryRefLiqProdEJ"
# Freight VMT (services) by fuel
if(paramx %in% paramsSelectx){
queryx <- "refined liquids production by subsector"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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,
scenario = scenNewNames,
units = "Refined Liquids Production (EJ)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = subsector,
classLabel1 = "Liquid",
classPalette1 = "pal_metis",
class2 = sector,
classLabel2 = "Refining",
classPalette2 = "classPalette2")%>%
dplyr::select(scenario, region, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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, 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, class1, x, value) %>%
dplyr::left_join(TotalLiquidsProdTbl, by=c('x', 'scenario', '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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx<-"transportPassengerVMTByFuel"
# Passenger VMT (services) by fuel
if(paramx %in% paramsSelectx){
queryx <- "transport service output by tech (new)"
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 (!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("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,
scenario = scenNewNames,
units = "Passenger (million pass-km)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = technology,
classLabel1 = "Fuel",
classPalette1 = "pal_metis",
class2 = subsector,
classLabel2 = "subsector",
classPalette2 = "classPalette2")
if("energyPrimaryRefLiqProdEJ" %in% paramsSelectx){
# 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') %>%
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, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx<-"transportFreightVMTByFuel"
# Freight VMT (services) by fuel
if(paramx %in% paramsSelectx){
queryx <- "transport service output by tech (new)"
vmt_array <- c("trn_freight", "trn_freight_road")
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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("Electric","electricity", technology),
technology=gsub("Coal","coal", technology),
param = "transportFreightVMTByFuel",
sources = "Sources",
origScen = scenario,
origQuery = queryx,
origValue = value,
origUnits = Units,
origX = year,
scenario = scenNewNames,
units = "Freight (million ton-km)",
vintage = paste("Vint_", year, sep = ""),
x = year,
xLabel = "Year",
aggregate = "sum",
class1 = technology,
classLabel1 = "Fuel",
classPalette1 = "pal_metis",
class2 = subsector,
classLabel2 = "subsector",
classPalette2 = "classPalette2")
if("energyPrimaryRefLiqProdEJ" %in% paramsSelectx){
# 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') %>%
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, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(paste("Query '", queryx, "' not found in database", sep = ""))}
}}
paramx<-"energyFinalSubsecByFuelTranspEJ"
# Total final energy by aggregate end-use sector
if(paramx %in% paramsSelectx){
queryx <- "transport final energy by fuel"
if (queryx %in% queriesx) {
tbl <- rgcam::getQuery(dataProjLoaded, queryx) # Tibble
if (!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,
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_metis",
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, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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, -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 {
print(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, param, sources, class1, class2, x, xLabel, vintage, units, value,
aggregate, classLabel1, classPalette1,classLabel2, classPalette2,
origScen, origQuery, origValue, origUnits, origX)%>%
dplyr::group_by(scenario, region, 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){print(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*metis.assumptions()$convEJ2MTOE,
units = gsub("\\(EJ\\)","(Mtoe)",units),
param = gsub("EJ","MTOE",param))
dataxEJtoTWh <- datax %>% dplyr::filter(grepl("(EJ)",units)) %>%
dplyr::mutate(value=value*metis.assumptions()$convEJ2TWh,
units = gsub("\\(EJ\\)","(TWh)",units),
param = gsub("EJ","TWh",param))
datax <- dplyr::bind_rows(datax,dataxEJtoMTOE,dataxEJtoTWh)
datax<-datax%>%unique()
# metis.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))
#---------------------
# Create Data Template
#---------------------
dataTemplate <- datax %>%
dplyr::mutate(scenario = "Local Data", value = 0, sources="Sources", x=2010) %>%
dplyr::select(scenario, region, sources, param, units, class1,class2, x, value) %>%
unique()
fullTemplateMap <- datax %>%
dplyr::select(units, param, class1, class2, units, xLabel, aggregate,
classLabel1, classPalette1, classLabel2, classPalette2) %>%
unique()
if(saveData){
#---------------------
# Save Data in CSV
#---------------------
if(!all(regionsSelect %in% unique(datax$region))){
print(paste("Regions not available in data: ", paste(regionsSelect[!(regionsSelect %in% unique(datax$region))],collapse=", "), sep=""))
print(paste("Running remaining regions: ", paste(regionsSelect[(regionsSelect %in% unique(datax$region))],collapse=", "), sep=""))
}
if (!dir.exists(paste(getwd(),"/dataFiles", sep = ""))){
dir.create(paste(getwd(),"/dataFiles", sep = ""))} # dataFiles directory (should already exist)
if (!dir.exists(paste(getwd(),"/dataFiles/mapping", sep = ""))){
dir.create(paste(getwd(),"/dataFiles/mapping", sep = ""))} # mapping directory
# Template Maps
if (file.exists(paste(getwd(),"/dataFiles/mapping/template_Regional_mapping.csv", sep = ""))){
fullTemplateMapExisting <- data.table::fread(file=paste(getwd(),"/dataFiles/mapping/template_Regional_mapping.csv", sep = ""),encoding="Latin-1")
fullTemplateMap <- fullTemplateMap %>% dplyr::bind_rows(fullTemplateMapExisting) %>% unique()
}
utils::write.csv(fullTemplateMap, file = paste(getwd(),"/dataFiles/mapping/template_Regional_mapping.csv", sep = ""),row.names = F)
# All Data
utils::write.csv(datax, file = paste(dirOutputs, "/", folderName, "/readGCAM/Tables_gcam/gcamDataTable_AllRegions_", min(range(datax$x)),
"to", max(range(datax$x)),nameAppend, ".csv", sep = ""), row.names = F)
print(paste("GCAM data table saved to: ", paste(dirOutputs, "/", folderName, "/readGCAM/Tables_gcam/gcamDataTable_AllRegions",nameAppend,".csv", sep = "")))
utils::write.csv(dataTemplate, file = paste(dirOutputs, "/", folderName, "/readGCAM/Tables_Templates/template_Regional_AllRegions",
nameAppend,".csv", sep = ""),row.names = F)
print(paste("GCAM data template saved to: ", paste(dirOutputs, "/", folderName, "/readGCAM/Tables_Templates/template_Regional_AllRegions",nameAppend,".csv", sep = "")))
# Aggregate across Class 1
dataxAggsums<-datax%>%
dplyr::filter(aggregate=="sum")%>%
dplyr::select(-c(class1,classLabel1,classPalette1))%>%
dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
dplyr::summarize_at(c("value"),list(~sum(.,na.rm = T)))
dataxAggmeans<-datax%>%
dplyr::filter(aggregate=="mean")%>%
dplyr::select(-c(class1,classLabel1,classPalette1))%>%
dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
dplyr::summarize_at(c("value"),list(~mean(.,na.rm = T)))
dataxAggClass<-dplyr::bind_rows(dataxAggsums,dataxAggmeans)%>%dplyr::ungroup()
utils::write.csv(dataxAggClass,
file = gsub("//","/",paste(dirOutputs, "/", folderName,
"/readGCAM/Tables_gcam/gcamDataTable_AllRegions_aggClass1",
nameAppend,".csv", sep = "")),row.names = F)
print(paste("GCAM data aggregated to class 1 saved to: ",gsub("//","/",paste(dirOutputs, "/", folderName,
"/readGCAM/Tables_gcam/gcamDataTable_AllRegions_aggClass1",
nameAppend,".csv", sep = "")),sep=""))
dataTemplateAggClass <- dataxAggClass %>%
dplyr::mutate(scenario = "Local Data", value = 0, sources="Sources", x=2010) %>%
dplyr::select(scenario, region, sources, param, units, class1,x, value) %>%
unique()
utils::write.csv(dataTemplateAggClass, file = paste(dirOutputs, "/", folderName, "/readGCAM/Tables_Templates/template_Regional_AllRegionsAggClass1",nameAppend,".csv", sep = ""),
row.names = F)
print(paste("GCAM data template aggregated to class 1 saved to: ", paste(dirOutputs, "/", folderName, "/readGCAM/Tables_Templates/template_Regional_AllRegionsAggClass1",nameAppend,".csv", sep = "")))
# Aggregate across Class 1
dataxAggsums<-datax%>%
dplyr::filter(aggregate=="sum")%>%
dplyr::select(-c(class2,classLabel2,classPalette2))%>%
dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
dplyr::summarize_at(c("value"),list(~sum(.,na.rm = T)))
dataxAggmeans<-datax%>%
dplyr::filter(aggregate=="mean")%>%
dplyr::select(-c(class2,classLabel2,classPalette2))%>%
dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
dplyr::summarize_at(c("value"),list(~mean(.,na.rm = T)))
dataxAggClass<-dplyr::bind_rows(dataxAggsums,dataxAggmeans)%>%dplyr::ungroup()
utils::write.csv(dataxAggClass,
file = gsub("//","/",paste(dirOutputs, "/", folderName,
"/readGCAM/Tables_gcam/gcamDataTable_AllRegions_aggClass2",
nameAppend,".csv", sep = "")),row.names = F)
print(paste("GCAM data aggregated to class 2 saved to: ",gsub("//","/",paste(dirOutputs, "/", folderName,
"/readGCAM/Tables_gcam/gcamDataTable_AllRegions_aggClass2",
nameAppend,".csv", sep = "")),sep=""))
dataTemplateAggClass <- dataxAggClass %>%
dplyr::mutate(scenario = "Local Data", value = 0, sources="Sources", x=2010) %>%
dplyr::select(scenario, region, sources, param, units, class2,x, value) %>%
unique()
utils::write.csv(dataTemplateAggClass, file = paste(dirOutputs, "/", folderName, "/readGCAM/Tables_Templates/template_Regional_AllRegionsAggClass2",nameAppend,".csv", sep = ""),
row.names = F)
print(paste("GCAM data template aggregated to class 2 saved to: ", paste(dirOutputs, "/", folderName, "/readGCAM/Tables_Templates/template_Regional_AllRegionsAggClass2",nameAppend,".csv", sep = "")))
# Aggregate across Param
dataxAggsums<-datax%>%
dplyr::filter(aggregate=="sum")%>%
dplyr::select(-c(class2,classLabel2,classPalette2,class1,classLabel1,classPalette1))%>%
dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
dplyr::summarize_at(c("value"),list(~sum(.,na.rm = T)))
dataxAggmeans<-datax%>%
dplyr::filter(aggregate=="mean")%>%
dplyr::select(-c(class2,classLabel2,classPalette2,class1,classLabel1,classPalette1))%>%
dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
dplyr::summarize_at(c("value"),list(~mean(.,na.rm = T)))
dataxAggClass<-dplyr::bind_rows(dataxAggsums,dataxAggmeans)%>%dplyr::ungroup()
utils::write.csv(dataxAggClass,
file = gsub("//","/",paste(dirOutputs, "/", folderName,
"/readGCAM/Tables_gcam/gcamDataTable_AllRegions_aggParam",
nameAppend,".csv", sep = "")),row.names = F)
print(paste("GCAM data aggregated to param saved to: ",gsub("//","/",paste(dirOutputs, "/", folderName,
"/readGCAM/Tables_gcam/gcamDataTable_AllRegions_aggParam",
nameAppend,".csv", sep = "")),sep=""))
dataTemplateAggClass <- dataxAggClass %>%
dplyr::mutate(scenario = "Local Data", value = 0, sources="Sources", x=2010) %>%
dplyr::select(scenario, region, sources, param, units, x, value) %>%
unique()
utils::write.csv(dataTemplateAggClass, file = paste(dirOutputs, "/", folderName, "/readGCAM/Tables_Templates/template_Regional_AllRegionsAggParam",nameAppend,".csv", sep = ""),
row.names = F)
print(paste("GCAM data template aggregated to param saved to: ", paste(dirOutputs, "/", folderName, "/readGCAM/Tables_Templates/template_Regional_AllRegionsAggParam",nameAppend,".csv", sep = "")))
# Print output for each region
# for (region_i in regionsSelect[(regionsSelect %in% unique(datax$region))]) {
#
# print(paste("Saving data table for region: ",region_i,"...", sep = ""))
# utils::write.csv(datax %>% dplyr::filter(region == region_i),
# file = paste(dirOutputs, "/", folderName, "/readGCAM/Tables_gcam/gcamDataTable_",region_i,nameAppend,".csv", sep = ""),row.names = F)
#
# # Aggregate across classes
# dataxAggsums<-datax%>%
# dplyr::filter(aggregate=="sum")%>%
# dplyr::select(-tidyselect::contains("class"))%>%
# dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
# dplyr::summarize_at(c("value"),list(~sum(.,na.rm = T)))
# dataxAggmeans<-datax%>%
# dplyr::filter(aggregate=="mean")%>%
# dplyr::select(-tidyselect::contains("class"))%>%
# dplyr::group_by_at(dplyr::vars(-value,-origValue))%>%
# dplyr::summarize_at(c("value"),list(~mean(.,na.rm = T)))
# dataxAgg<-dplyr::bind_rows(dataxAggsums,dataxAggmeans)%>%dplyr::ungroup()
#
# utils::write.csv(dataxAgg %>% dplyr::filter(region == region_i),
# file = gsub("//","/",paste(dirOutputs, "/", folderName, "/readGCAM/Tables_gcam/gcamDataTable_",
# region_i,"_aggClass",nameAppend,".csv", sep = "")),row.names = F)
#
# # utils::write.csv(dataTemplate %>% dplyr::filter(region == region_i),
# # file = gsub("//","/",paste(dirOutputs, "/", folderName, "/readGCAM/Tables_Templates/template_Regional_",
# # region_i,nameAppend,".csv", sep = "")),row.names = F)
# # #utils::write.csv(dataTemplate %>% dplyr::filter(region == region_i),
# # file = paste(dirOutputs, "/", folderName, "/Tables/Tables_Local/local_Regional_",region_i,".csv", sep = ""),row.names = F)
#
# print(gsub("//","/",paste("Table saved to: ",dirOutputs, "/", folderName,
# "/readGCAM/Tables_gcam/gcamDataTable_",region_i,"_aggClass",nameAppend,".csv", sep = "")))
# }
} # Close if saveData
}else{print("No data for any of the regions, params or queries selected")} # Close datax nrow check
}else{ # CLose Param Check
print(paste("None of the parameters in paramsSelect: ", paste(paramsSelect,collapse=",")," are available."))}
print("Outputs returned as list containing data, dataTemplate, scenarios and queries.")
print("View as listName$data, listName$dataTemplate, listName$scenarios, listName$queries.")
print("metis.readgcam run completed.")
return(list(data = datax, dataTemplate = dataTemplate, scenarios = scenarios, queries = queries))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.