#' Read in GDX and calculate variables that need variables produced by other report*.R functions, used in convGDX2MIF.R for the
#' reporting
#'
#' Read in GDX and calculate variables that need variables produced by other report*.R functions
#'
#'
#' @param gdx a GDX as created by readGDX, or the file name of a gdx
#' @param output a magpie object containing all needed variables generated by other report*.R functions
#' @param regionSubsetList a list containing regions to create report variables region
#' aggregations. If NULL (default value) only the global region aggregation "GLO" will
#' be created.
#' @author Lavinia Baumstark
#' @examples
#'
#' \dontrun{reportCrossVariables(gdx)}
#'
#' @export
#' @importFrom gdx readGDX
#' @importFrom magclass getYears getRegions mbind setNames dimSums mselect new.magpie setYears
reportCrossVariables <- function(gdx,output=NULL,regionSubsetList=NULL){
if(is.null(output)){
stop("please provide a file containing all needed information")
}
module2realisation <- readGDX(gdx, "module2realisation", react = "silent")
tran_mod = module2realisation[module2realisation$modules == "transport", 2]
####### conversion factors ##########
TWa_2_EJ <- 31.536
tdptwyr2dpgj <- 31.71 #TerraDollar per TWyear to Dollar per GJ
####### read in needed data #########
## sets
pe2se <- readGDX(gdx,"pe2se")
ppfen_stat <- readGDX(gdx,c("ppfen_stationary_dyn38","ppfen_stationary_dyn28","ppfen_stationary"),format="first_found", react = "silent")
sety <- readGDX(gdx,c("entySe","sety"),types="sets",format="first_found", react = "silent")
if (length(ppfen_stat) == 0) ppfen_stat = NULL
## parameter
pm_ts <- readGDX(gdx,name='pm_ts',format="first_found",restore_zeros=FALSE)
pm_ttot_val <- readGDX(gdx,name='pm_ttot_val',format="first_found",restore_zeros=FALSE)
p_ef_dem <- readGDX(gdx, "p_ef_dem")
## equations
sebal.m <- readGDX(gdx,name=c("q_balSe","q_sebal"),types="equations",field="m",format="first_found")
budget.m <- readGDX(gdx,name='qm_budget',types = "equations",field = "m",format = "first_found") # Alternative: calcPrice
demPE <- readGDX(gdx,name=c("vm_demPe","v_pedem"),field="l",restore_zeros=FALSE,format="first_found") * TWa_2_EJ
demPE <- demPE[pe2se]
####### calculate minimal temporal and regional resolution #####
y <- Reduce(intersect,list(getYears(output),getYears(sebal.m)))
r <- Reduce(intersect,list(getRegions(output),getRegions(sebal.m)))
output <- output[,y,]
budget.m <- budget.m[,y,]
sebal.m <- sebal.m[,y,]
pm_ts <- pm_ts[,y,]
####### internal function for cumulated values ############
cumulatedValue <- function(var,i_pm_ts=pm_ts){
ts <- i_pm_ts[,getYears(var),]
tmp <- new.magpie(getRegions(var),getYears(var),magclass::getNames(var),fill=0)
for( t in 2:length(getYears(var))){
tmp[,t,] <- setYears(
dimSums(var[,which(getYears(var) < getYears(var)[t]),] * ts[,which(getYears(var) < getYears(var)[t]),],dim=2)
- setYears(var[,2005,] * ts[,2005,], NULL) / 2 # half of 2005 time step
+ setYears(var[,t ,] * ts[,t ,], NULL) / 2 # half of last time step
, NULL)
}
return(tmp)
}
####### calculate reporting parameters ############
tmp <- NULL
#"light fuel oil" is output of refineries, thus the price should include refinery costs => use sebal, not pebal, use average of sepet and sedie price.
if ("seliq" %in% pe2se$all_enty1) {
tmp <- mbind(tmp,setNames(sebal.m[,,"seliq"]/(budget.m+1e-10) * tdptwyr2dpgj, "Price|Light Fuel Oil|Secondary Level (US$2005/GJ)" ))
} else if ("sepet" %in% sety) {
tmp <- mbind(tmp,setNames(
( sebal.m[,,"sepet"] * output[r,,"SE|Liquids|sepet (EJ/yr)"] + sebal.m[,,"sedie"] * output[r,,"SE|Liquids|sedie (EJ/yr)"])
/ ( output[r,,"SE|Liquids|sepet (EJ/yr)"] + output[r,,"SE|Liquids|sedie (EJ/yr)"])
/ (budget.m / pm_ts + 1e-10) * tdptwyr2dpgj, "Price|Light Fuel Oil|Secondary Level (US$2005/GJ)" ))
} else {
tmp <- mbind(tmp,setNames(
dimSums( sebal.m[,,"seliqbio"] * output[r,,"SE|Liquids|Biomass (EJ/yr)"] + sebal.m[,,"seliqfos"] * output[r,,"SE|Liquids|Fossil (EJ/yr)"])
/ dimSums( output[r,,"SE|Liquids|Biomass (EJ/yr)"] + output[r,,"SE|Liquids|Fossil (EJ/yr)"])
/ (budget.m / pm_ts + 1e-10) * tdptwyr2dpgj, "Price|Light Fuel Oil|Secondary Level (US$2005/GJ)" ))
}
tmp <- mbind(tmp,setNames(
output[r,,"SE|Electricity|Biomass (EJ/yr)"]
* output[r,,"PE|Biomass|Energy Crops (EJ/yr)"]
/ dimSums(mselect(demPE,all_enty="pebiolc"),dim=3), "SE|Electricity|Biomass|Energy Crops (EJ/yr)"))
tmp <- mbind(tmp,setNames(
output[r,,"SE|Electricity|Biomass (EJ/yr)"]
* output[r,,"PE|Biomass|Residues (EJ/yr)"]
/ dimSums(mselect(demPE,all_enty="pebiolc"),dim=3), "SE|Electricity|Biomass|Residues (EJ/yr)"))
tmp <- mbind(tmp,setNames(
output[r,,"SE|Liquids|Biomass (EJ/yr)"]
* output[r,,"PE|Biomass|1st Generation (EJ/yr)"]
/ output[r,,"PE|+|Biomass (EJ/yr)"], "SE|Liquids|Biomass|1st Generation (EJ/yr)"))
tmp <- mbind(tmp,setNames(
output[r,,"SE|Liquids|Biomass (EJ/yr)"]
* output[r,,"PE|Biomass|Residues (EJ/yr)"]
/ output[r,,"PE|+|Biomass (EJ/yr)"], "SE|Liquids|Biomass|Residues (EJ/yr)"))
tmp <- mbind(tmp,setNames(
output[r,,"SE|Liquids|Biomass (EJ/yr)"]
* output[r,,"PE|Biomass|Energy Crops (EJ/yr)"]
/ output[r,,"PE|+|Biomass (EJ/yr)"], "SE|Liquids|Biomass|Energy Crops (EJ/yr)"))
if(tran_mod == "complex"){
if ("seliq" %in% pe2se$all_enty1) {
## before the split to seliqfos/seliqbio, SE level shares can be used to determine
## the bioliquid shares on all levels
tmp <- mbind(tmp,
setNames(
output[r,,"FE|Transport|Pass|Liquids (EJ/yr)"]
* output[r,,"SE|Liquids|Biomass (EJ/yr)"]
/ output[r,,"SE|Liquids (EJ/yr)"],
"FE|Transport|Pass|Liquids|Biomass (EJ/yr)"),
setNames(
output[r,,"FE|Transport|Freight|Liquids (EJ/yr)"]
* output[r,,"SE|Liquids|Biomass (EJ/yr)"]
/ output[r,,"SE|Liquids (EJ/yr)"],
"FE|Transport|Freight|Liquids|Biomass (EJ/yr)"),
setNames(
output[r,,"FE|Transport|Liquids (EJ/yr)"]
* output[r,,"SE|Liquids|Biomass (EJ/yr)"]
/ output[r,,"SE|Liquids (EJ/yr)"],
"FE|Transport|Liquids|Biomass (EJ/yr)"),
setNames(
output[r,,"FE|Transport|Pass|Road|LDV|Liquids (EJ/yr)"]
* output[r,,"SE|Liquids|Biomass (EJ/yr)"]
/ output[r,,"SE|Liquids (EJ/yr)"],
"FE|Transport|Pass|Road|LDV|Liquids|Biomass (EJ/yr)"))
}else{
tmp <- mbind(tmp,setNames(
output[r,,"FE|Transport|Pass|Road|LDV|Liquids (EJ/yr)"]
* output[r,,"FE|Transport|Pass|Liquids|Biomass (EJ/yr)"]
/ output[r,,"FE|Transport|Pass|Liquids (EJ/yr)"], "FE|Transport|Pass|Road|LDV|Liquids|Biomass (EJ/yr)"))
}
tmp <- mbind(tmp,setNames(
output[r,,"FE|Transport|Pass|Road|LDV|Liquids (EJ/yr)"]
* output[r,,"SE|Liquids|Coal (EJ/yr)"]
/ output[r,,"SE|Liquids (EJ/yr)"], "FE|Transport|Pass|Road|LDV|Liquids|Coal (EJ/yr)"))
tmp <- mbind(tmp,setNames(
output[r,,"FE|Transport|Pass|Road|LDV|Liquids (EJ/yr)"]
* output[r,,"SE|Liquids|Oil (EJ/yr)"]
/ output[r,,"SE|Liquids (EJ/yr)"], "FE|Transport|Pass|Road|LDV|Liquids|Oil (EJ/yr)"))
}
tmp <- mbind(tmp,setNames(
output[r,,"Energy Investments (billion US$2005/yr)"]
-output[r,,"Energy Investments|Electricity (billion US$2005/yr)"],"Energy Investments|Non-Elec (billion US$2005/yr)"))
tmp <- mbind(tmp,setNames(
output[r,,"SE|Electricity|Gas (EJ/yr)"] / output[r,,"Cap|Electricity|Gas (GW)"] / TWa_2_EJ * 1000,
"Capacity Factor|Electricity|Gas (GW)"))
# add global values
tmp <- mbind(tmp,dimSums(tmp,dim=1))
# add other region aggregations
if (!is.null(regionSubsetList))
tmp <- mbind(tmp, calc_regionSubset_sums(tmp, regionSubsetList))
# correct global values for intensive variables (prices, LCOES, Capacity factors)
map <- data.frame(region=getRegions(tmp["GLO",,,invert=TRUE]),world="GLO",stringsAsFactors=FALSE)
tmp["GLO",,"Price|Light Fuel Oil|Secondary Level (US$2005/GJ)"] <-
speed_aggregate(tmp[map$region,,"Price|Light Fuel Oil|Secondary Level (US$2005/GJ)"],map,weight=output[map$region,,"SE|Liquids|Oil (EJ/yr)"])
tmp["GLO",,"Capacity Factor|Electricity|Gas (GW)"] <-
speed_aggregate(tmp[map$region,,"Capacity Factor|Electricity|Gas (GW)"],map,weight=output[map$region,,"Cap|Electricity|Gas (GW)"])
# correct region aggregated values for intensive variables (prices, LCOES, Capacity factors)
if (!is.null(regionSubsetList)){
for (region in names(regionSubsetList)){
map <- data.frame(region=regionSubsetList[[region]],parentRegion=region,stringsAsFactors=FALSE)
tmp[region,,"Price|Light Fuel Oil|Secondary Level (US$2005/GJ)"] <- speed_aggregate(tmp[regionSubsetList[[region]],,"Price|Light Fuel Oil|Secondary Level (US$2005/GJ)"],map,weight=output[regionSubsetList[[region]],,"SE|Liquids|Oil (EJ/yr)"])
tmp[region,,"Capacity Factor|Electricity|Gas (GW)"] <- speed_aggregate(tmp[regionSubsetList[[region]],,"Capacity Factor|Electricity|Gas (GW)"],map,weight=output[regionSubsetList[[region]],,"Cap|Electricity|Gas (GW)"])
}
}
# variables that are calculated for all regions including GLO in the same way
tmp <- mbind(
tmp,
setNames(
output[,,"FE (EJ/yr)"] * 1000
/ output[,,"GDP|MER (billion US$2005/yr)"],
"Intensity|GDP|Final Energy (MJ/US$2005)"),
setNames(
output[,,"GDP|MER (billion US$2005/yr)"]
/ output[,,"FE (EJ/yr)"],
"Productivity|GDP|MER|Final Energy (US$2005/GJ)"),
setNames(
output[,,"GDP|PPP (billion US$2005/yr)"]
/ output[,,"FE (EJ/yr)"],
"Productivity|GDP|PPP|Final Energy (US$2005/GJ)"),
setNames(
( output[,,"Emi|CO2|Fossil Fuels and Industry (Mt CO2/yr)"]
- output[,,"Emi|CO2|Fossil Fuels and Industry|Cement process (Mt CO2/yr)"]
)
/ output[,,"FE (EJ/yr)"],
"Intensity|Final Energy|CO2 (Mt CO2/EJ)"),
setNames(
output[,,"Emi|GHGtot (Mt CO2-equiv/yr)"]
/ output[,,"FE (EJ/yr)"],
"Intensity|Final Energy|GHG (Mt CO2-equiv/EJ)"),
setNames(
output[,,"Emi|GHGtot (Mt CO2-equiv/yr)"]
/ output[,,"GDP|MER (billion US$2005/yr)"],
"Intensity|GDP|GHG (Mt CO2-equiv/US$2005)"),
setNames(
output[,,"GDP|MER (billion US$2005/yr)"]
/ output[,,"Population (million)"],
"GDP|per capita|MER (kUS$2005/per capita)"),
setNames(
output[,,"GDP|PPP (billion US$2005/yr)"]
/ output[,,"Population (million)"],
"GDP|per capita|PPP (kUS$2005/per capita)"),
setNames(
output[,,"Welfare|Real and undiscounted|Yearly (arbitrary unit/yr)"]
/ output[,,"Population (million)"],
"Welfare|per capita|Real and undiscounted|Yearly (arbitrary unit/yr)"))
# Energy shares
tmp <- mbind(tmp,setNames( # assume 8% for transmission losses and autoconsumption of power plants
100 * (output[,,"SE|Electricity|Non-Biomass Renewables (EJ/yr)"] + output[,,"SE|Electricity|Biomass (EJ/yr)"])
/ 1.08 / output[,,"FE|+|Electricity (EJ/yr)"], "Secondary Energy|Electricity|Share of renewables in gross demand|Estimation (Percent)"))
tmp <- mbind(tmp,setNames( # divide biomass by 2 to roughly account for conversion losses
100 * (output[,,"PE|Non-Biomass Renewables (EJ/yr)"] + output[,,"PE|+|Biomass (EJ/yr)"]/2)
/ output[,,"FE (EJ/yr)"], "Final Energy|Share of renewables in gross demand|Rough estimation (Percent)"))
# Energy expenditures
tmp <- mbind(tmp,setNames(
output[,,"FE|Transport|Liquids (EJ/yr)"] * output[,,"Price|Final Energy|Liquids|Transport (US$2005/GJ)"] +
output[,,"FE|Transport|Hydrogen (EJ/yr)"] * output[,,"Price|Final Energy|Hydrogen|Transport (US$2005/GJ)"] +
output[,,"FE|Transport|Electricity (EJ/yr)"] * output[,,"Price|Final Energy|Electricity|Transport (US$2005/GJ)"],
"Expenditure|Transport|Fuel (billion $US/yr)"))
# calculate intensities growth
int_gr <- new.magpie(getRegions(tmp),getYears(tmp),c("Intensity Growth|GDP|Final Energy (% pa)","Intensity Growth|GDP|Final Energy to 2005 (% pa)",
"Intensity Growth|GDP|CO2-equiv (% pa)","Intensity Growth|GDP|CO2-equiv to 2005 (% pa)",
"Intensity Growth|Final Energy|CO2-equiv (% pa)","Intensity Growth|Final Energy|CO2-equiv to 2005 (% pa)",
"Intensity Growth|Final Energy|CO2 (% pa)","Intensity Growth|Final Energy|CO2 to 2005 (% pa)"),fill=0)
for (t in getYears(tmp[,which(getYears(tmp,as.integer=TRUE)>2005),])){
int_gr[,t,"Intensity Growth|GDP|Final Energy (% pa)"] <-
(
(
(tmp[,t,"Intensity|GDP|Final Energy (MJ/US$2005)"] / setYears(tmp[,(which(getYears(tmp)==t)-1),"Intensity|GDP|Final Energy (MJ/US$2005)"],t))
^ (1 / ( getYears(tmp[,t,],as.integer=TRUE) - getYears(tmp[,(which(getYears(tmp)==t)-1),],as.integer=TRUE) ) )
) - 1
) * 100
int_gr[,t,"Intensity Growth|GDP|Final Energy to 2005 (% pa)"] <-
(
(
(tmp[,t,"Intensity|GDP|Final Energy (MJ/US$2005)"] / setYears(tmp[,2005,"Intensity|GDP|Final Energy (MJ/US$2005)"],t))
^ (1 / ( getYears(tmp[,t,],as.integer=TRUE) - 2005 ) )
) - 1
) * 100
int_gr[,t,"Intensity Growth|Final Energy|CO2 (% pa)"] <-
(
(
(tmp[,t,"Intensity|Final Energy|CO2 (Mt CO2/EJ)"] / setYears(tmp[,(which(getYears(tmp)==t)-1),"Intensity|Final Energy|CO2 (Mt CO2/EJ)"],t))
^ (1 / ( getYears(tmp[,t,],as.integer=TRUE) - getYears(tmp[,(which(getYears(tmp)==t)-1),],as.integer=TRUE) ) )
) - 1
) * 100
int_gr[,t,"Intensity Growth|Final Energy|CO2 to 2005 (% pa)"] <-
(
(
(tmp[,t,"Intensity|Final Energy|CO2 (Mt CO2/EJ)"] / setYears(tmp[,2005,"Intensity|Final Energy|CO2 (Mt CO2/EJ)"],t))
^ (1 / ( getYears(tmp[,t,],as.integer=TRUE) - 2005 ) )
) - 1
) * 100
int_gr[,t,"Intensity Growth|GDP|CO2-equiv (% pa)"] <-
(
(
(tmp[,t,"Intensity|GDP|GHG (Mt CO2-equiv/US$2005)"] / setYears(tmp[,(which(getYears(tmp)==t)-1),"Intensity|GDP|GHG (Mt CO2-equiv/US$2005)"],t))
^ (1 / ( getYears(tmp[,t,],as.integer=TRUE) - getYears(tmp[,(which(getYears(tmp)==t)-1),],as.integer=TRUE) ) )
) - 1
) * 100
int_gr[,t,"Intensity Growth|GDP|CO2-equiv to 2005 (% pa)"] <-
(
(
(tmp[,t,"Intensity|GDP|GHG (Mt CO2-equiv/US$2005)"] / setYears(tmp[,2005,"Intensity|GDP|GHG (Mt CO2-equiv/US$2005)"],t))
^ (1 / ( getYears(tmp[,t,],as.integer=TRUE) - 2005 ) )
) - 1
) * 100
int_gr[,t,"Intensity Growth|Final Energy|CO2-equiv (% pa)"] <-
(
(
(tmp[,t,"Intensity|Final Energy|GHG (Mt CO2-equiv/EJ)"] / setYears(tmp[,(which(getYears(tmp)==t)-1),"Intensity|Final Energy|GHG (Mt CO2-equiv/EJ)"],t))
^ (1 / ( getYears(tmp[,t,],as.integer=TRUE) - getYears(tmp[,(which(getYears(tmp)==t)-1),],as.integer=TRUE) ) )
) - 1
) * 100
int_gr[,t,"Intensity Growth|Final Energy|CO2-equiv to 2005 (% pa)"] <-
(
(
(tmp[,t,"Intensity|Final Energy|GHG (Mt CO2-equiv/EJ)"] / setYears(tmp[,2005,"Intensity|Final Energy|GHG (Mt CO2-equiv/EJ)"],t))
^ (1 / ( getYears(tmp[,t,],as.integer=TRUE) - 2005 ) )
) - 1
) * 100
}
if (!is.null(ppfen_stat)){
tmp <- mbind(tmp,setNames(
output[,,"FE|Other Sector|Gases (EJ/yr)"]
* output[,,"SE|Gases|Biomass (EJ/yr)"]
/ output[,,"SE|Gases (EJ/yr)"],"FE|Other Sector|Gases|Biomass (EJ/yr)"))
tmp <- mbind(tmp,setNames(
output[,,"FE|Other Sector|Gases (EJ/yr)"]
* output[,,"SE|Gases|Natural Gas (EJ/yr)"]
/ output[,,"SE|Gases (EJ/yr)"],"FE|Other Sector|Gases|Natural Gas (EJ/yr)"))
tmp <- mbind(tmp,setNames(
output[,,"FE|Other Sector|Gases (EJ/yr)"]
* output[,,"SE|Gases|Coal (EJ/yr)"]
/ output[,,"SE|Gases (EJ/yr)"],"FE|Other Sector|Gases|Coal (EJ/yr)"))
}else{
tmp <- mbind(tmp,setNames(
output[,,"FE|Buildings|Gases (EJ/yr)"]
* output[,,"SE|Gases|Biomass (EJ/yr)"]
/ output[,,"SE|Gases (EJ/yr)"],"FE|Buildings|Gases|Biomass (EJ/yr)"))
tmp <- mbind(tmp,setNames(
output[,,"FE|Buildings|Gases (EJ/yr)"]
* output[,,"SE|Gases|Natural Gas (EJ/yr)"]
/ output[,,"SE|Gases (EJ/yr)"],"FE|Buildings|Gases|Natural Gas (EJ/yr)"))
tmp <- mbind(tmp,setNames(
output[,,"FE|Buildings|Gases (EJ/yr)"]
* output[,,"SE|Gases|Coal (EJ/yr)"]
/ output[,,"SE|Gases (EJ/yr)"],"FE|Buildings|Gases|Coal (EJ/yr)"))
tmp <- mbind(tmp,setNames(
output[,,"FE|Industry|Gases (EJ/yr)"]
* output[,,"SE|Gases|Biomass (EJ/yr)"]
/ output[,,"SE|Gases (EJ/yr)"],"FE|Industry|Gases|Biomass (EJ/yr)"))
tmp <- mbind(tmp,setNames(
output[,,"FE|Industry|Gases (EJ/yr)"]
* output[,,"SE|Gases|Natural Gas (EJ/yr)"]
/ output[,,"SE|Gases (EJ/yr)"],"FE|Industry|Gases|Natural Gas (EJ/yr)"))
tmp <- mbind(tmp,setNames(
output[,,"FE|Industry|Gases (EJ/yr)"]
* output[,,"SE|Gases|Coal (EJ/yr)"]
/ output[,,"SE|Gases (EJ/yr)"],"FE|Industry|Gases|Coal (EJ/yr)"))
#Correction of CO2 emissions for uneven shares of biomass in industry and buildings (not distinguished in REMIND)
#Biomass Direct emissions are considered to be 0. The Solids stationary emissions therefore represent the emissions
# from the combustion of coal only
# In reportEmi however, emissions in Industry and Buildings were computed assuming they both had the same share
# of coal and biomass.
# Below, we correct emissions according to the repartition between coal and biomass assumed in reportFE
#(if Industry and Buildings have the same repartition between coal and biomass, delta_Solids_emissions would be 0)
delta_Solids_emissions = setNames(output[,,"Emi|CO2|Energy|SupplyandDemand|Solids|w/ couple prod|Before IndustryCCS (Mt CO2/yr)"]
* (
(output[,,"FE|Buildings|Solids (EJ/yr)"]
/output[,,"FE|Buildings and Industry|Solids (EJ/yr)"]
)
- (output[,,"FE|Buildings|Solids|Coal (EJ/yr)"]
/output[,,"FE|Buildings and Industry|Solids|Coal (EJ/yr)"]
)
),
"Emi|CO2|Buildings|Direct|BiomassCorrection (Mt CO2/yr)")
#Due to the use of shares, the global results are incorrect
delta_Solids_emissions["GLO",,] = 0
delta_Solids_emissions["GLO",,] = dimSums(delta_Solids_emissions, dim = 1)
tmp <- mbind(tmp,
setNames(output[,,"Emi|CO2|Industry|Direct and Indirect|BeforeTradBiomassCorr (Mt CO2/yr)"]
+ delta_Solids_emissions[,,"Emi|CO2|Buildings|Direct|BiomassCorrection (Mt CO2/yr)"],
"Emi|CO2|Industry|Direct and Indirect (Mt CO2/yr)"),
setNames(output[,,"Emi|CO2|Buildings|Direct and Indirect|BeforeTradBiomassCorr (Mt CO2/yr)"]
- delta_Solids_emissions[,,"Emi|CO2|Buildings|Direct|BiomassCorrection (Mt CO2/yr)"],
"Emi|CO2|Buildings|Direct and Indirect (Mt CO2/yr)"),
setNames(output[,,"Emi|CO2|Industry|Direct|BeforeTradBiomassCorr (Mt CO2/yr)"]
+ delta_Solids_emissions[,,"Emi|CO2|Buildings|Direct|BiomassCorrection (Mt CO2/yr)"],
"Emi|CO2|Industry|Direct (Mt CO2/yr)"),
setNames(output[,,"Emi|CO2|Buildings|Direct|BeforeTradBiomassCorr (Mt CO2/yr)"]
- delta_Solids_emissions[,,"Emi|CO2|Buildings|Direct|BiomassCorrection (Mt CO2/yr)"],
"Emi|CO2|Buildings|Direct (Mt CO2/yr)"),
setNames(output[,,"Emi|CO2|Buildings|Solids|BeforeTradBiomassCorr (Mt CO2/yr)"]
- delta_Solids_emissions[,,"Emi|CO2|Buildings|Direct|BiomassCorrection (Mt CO2/yr)"],
"Emi|CO2|Buildings|Solids (Mt CO2/yr)"),
setNames(output[,,"Emi|CO2|Industry|Direct and Indirect|Gross|BeforeTradBiomassCorr (Mt CO2/yr)"]
+ delta_Solids_emissions[,,"Emi|CO2|Buildings|Direct|BiomassCorrection (Mt CO2/yr)"],
"Emi|CO2|Industry|Direct and Indirect|Gross (Mt CO2/yr)"),
setNames(output[,,"Emi|CO2|Buildings|Direct and Indirect|Gross|BeforeTradBiomassCorr (Mt CO2/yr)"]
- delta_Solids_emissions[,,"Emi|CO2|Buildings|Direct|BiomassCorrection (Mt CO2/yr)"],
"Emi|CO2|Buildings|Direct and Indirect|Gross (Mt CO2/yr)"),
setNames(output[,,"Emi|CO2|Buildings|Solids|Gross|BeforeTradBiomassCorr (Mt CO2/yr)"]
- delta_Solids_emissions[,,"Emi|CO2|Buildings|Direct|BiomassCorrection (Mt CO2/yr)"],
"Emi|CO2|Buildings|Solids|Gross (Mt CO2/yr)")
)
}
# calculate additional gross emissions variables
tmp1 <- setNames(tmp[,,"Emi|CO2|Industry|Direct (Mt CO2/yr)"] +
output[,,"Emi|CO2|Carbon Capture and Storage|Biomass|Energy|Demand|Industry (Mt CO2/yr)"],
"Emi|CO2|Energy|Demand|Industry|Gross (Mt CO2/yr)")
# calculate cumulative values
tmp <- mbind(tmp,
setNames(cumulatedValue(tmp1[,,"Emi|CO2|Energy|Demand|Industry|Gross (Mt CO2/yr)"]), "Emi|CO2|Energy|Demand|Industry|Gross|Cumulated (Mt CO2/yr)"),
setNames(cumulatedValue(tmp[,,"Emi|CO2|Buildings|Direct (Mt CO2/yr)"]), "Emi|CO2|Buildings|Direct|Cumulated (Mt CO2/yr)")
)
tmp <- mbind(tmp, tmp1)
tmp6 <- mbind(tmp,
setNames(output[,,"Emi|CO2|Transport|Demand (Mt CO2/yr)"] / output[,,"FE|Transport|Fuels (EJ/yr)"], "FE|Transport|Fossil Carbon Intensity of fuels (kg CO2/GJ)"),
setNames(tmp[,,"Emi|CO2|Buildings|Direct and Indirect (Mt CO2/yr)"] / output[,,"FE|Buildings|Fuels (EJ/yr)"], "FE|Buildings|Fossil Carbon Intensity of fuels (kg CO2/GJ)"),
setNames(tmp[,,"Emi|CO2|Energy|Demand|Industry|Gross (Mt CO2/yr)"] / output[,,"FE|Industry|Fuels (EJ/yr)"], "FE|Industry|Fossil Carbon Intensity of fuels (kg CO2/GJ)"),
setNames(output[,,"Emi|CO2|Fossil Fuels and Industry|Demand (Mt CO2/yr)"] / output[,,"FE|Fuels (EJ/yr)"], "FE|Fossil Carbon Intensity of fuels (kg CO2/GJ)")
)
out <- mbind(tmp6, int_gr)
return(out)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.