Skip to content

Commit

Permalink
adjust whitespace
Browse files Browse the repository at this point in the history
  • Loading branch information
orichters committed Jun 5, 2024
1 parent 5a6981c commit 22606cc
Showing 1 changed file with 112 additions and 112 deletions.
224 changes: 112 additions & 112 deletions R/reportEmiAirPol.R
Original file line number Diff line number Diff line change
Expand Up @@ -33,120 +33,120 @@ reportEmiAirPol <- function(gdx,regionSubsetList=NULL,t=c(seq(2005,2060,5),seq(2

if (! realisation == "exoGAINS") stop("not allowed air pollution realization.")

######### initialisation ###########
airpollutants <- c("so2","bc","oc","CO","VOC","NOx","NH3")

######### internal function ###########
generateReportingEmiAirPol <- function(pollutant,i_emiAPexsolve=pm_emiAPexsolve,i_emiAPexo=pm_emiAPexo){
######### initialisation ###########
airpollutants <- c("so2","bc","oc","CO","VOC","NOx","NH3")

######### internal function ###########
generateReportingEmiAirPol <- function(pollutant,i_emiAPexsolve=pm_emiAPexsolve,i_emiAPexo=pm_emiAPexo){
poll_rep <- toupper(pollutant)
tmp <- NULL

# reduce to the pollutant
emiAPexsolve <- collapseNames(i_emiAPexsolve[,,pollutant])
emiAPexo <- collapseNames(i_emiAPexo[,,pollutant])
getSets(emiAPexo) <- getSets(emiAPexsolve)

# add indprocess to indst
emiAPexsolve[,,"indst"] <- emiAPexsolve[,,"indst"] + emiAPexsolve[,,"indprocess"]

# Replace REMIND sector names by reporting ones
mapping = data.frame(
remind = c("power", "indst", "res", "trans", "solvents", "extraction"),
reporting = c(paste0("Emi|", poll_rep, "|Energy Supply|Electricity (Mt ", poll_rep, "/yr)"),
paste0("Emi|", poll_rep, "|Energy Demand|Industry (Mt ", poll_rep, "/yr)"),
paste0("Emi|", poll_rep, "|Energy Demand|Buildings (Mt ", poll_rep, "/yr)"),
paste0("Emi|", poll_rep, "|Energy Demand|Transport|Ground Trans (Mt ", poll_rep, "/yr)"),
paste0("Emi|", poll_rep, "|Solvents (Mt ", poll_rep, "/yr)"),
paste0("Emi|", poll_rep, "|Energy Supply|Extraction (Mt ", poll_rep, "/yr)")))

emiAPexsolve <- setNames(emiAPexsolve[,,mapping$remind],as.character(mapping$reporting))

tmp <-
mbind(emiAPexsolve,
setNames(emiAPexo[,,"AgWasteBurning"], paste0("Emi|",poll_rep,"|Land Use|Agricultural Waste Burning (Mt ",poll_rep,"/yr)")),
setNames(emiAPexo[,,"Agriculture"], paste0("Emi|",poll_rep,"|Land Use|Agriculture (Mt ",poll_rep,"/yr)")),
setNames(emiAPexo[,,"ForestBurning"], paste0("Emi|",poll_rep,"|Land Use|Forest Burning (Mt ",poll_rep,"/yr)")),
setNames(emiAPexo[,,"GrasslandBurning"],paste0("Emi|",poll_rep,"|Land Use|Savannah Burning (Mt ",poll_rep,"/yr)")),
setNames(emiAPexo[,,"Waste"], paste0("Emi|",poll_rep,"|Waste (Mt ",poll_rep,"/yr)")))


# Set NAs to 0
tmp[is.na(tmp)] <- 0

return(tmp)
}

####### conversion factors ##########
pm_conv_TWa_EJ <- 31.536
conv_MtSO2_to_MtS <- 1/2 # 32/(32+2*16)

####### read in needed data #########
## sets
ttot <- as.numeric(readGDX(gdx, name=c("ttot"), format="first_found"))
## parameter
pm_emiAPexsolve <- readGDX(gdx, name=c("pm_emiAPexsolve"), field="l", format="first_found")[,ttot,]
pm_emiAPexo <- readGDX(gdx, name=c("pm_emiAPexo"), field="l", format="first_found")[,ttot,airpollutants]
pm_emiAPexoGlob <- readGDX(gdx, name=c("pm_emiAPexoGlob"), field="l", format="first_found")[,ttot,airpollutants]

####### prepare parameter ########################
magclass::getNames(pm_emiAPexsolve) <- gsub("SOx","so2",magclass::getNames(pm_emiAPexsolve))
magclass::getNames(pm_emiAPexsolve) <- gsub("NMVOC","VOC",magclass::getNames(pm_emiAPexsolve))

####### calculate reporting parameters ############
# Loop over air pollutants and call reporting generating function
out <- do.call("mbind", lapply(airpollutants, generateReportingEmiAirPol))

# Add global values
out <- mbind(out, dimSums(out,dim=1))
# add other region aggregations
if (!is.null(regionSubsetList))
out <- mbind(out, calc_regionSubset_sums(out, regionSubsetList))

# Loop over air pollutants and add some variables
for (pollutant in airpollutants) {
poll_rep <- toupper(pollutant)
tmp <- NULL

# reduce to the pollutant
emiAPexsolve <- collapseNames(i_emiAPexsolve[,,pollutant])
emiAPexo <- collapseNames(i_emiAPexo[,,pollutant])
getSets(emiAPexo) <- getSets(emiAPexsolve)

# add indprocess to indst
emiAPexsolve[,,"indst"] <- emiAPexsolve[,,"indst"] + emiAPexsolve[,,"indprocess"]

# Replace REMIND sector names by reporting ones
mapping = data.frame(
remind = c("power", "indst", "res", "trans", "solvents", "extraction"),
reporting = c(paste0("Emi|", poll_rep, "|Energy Supply|Electricity (Mt ", poll_rep, "/yr)"),
paste0("Emi|", poll_rep, "|Energy Demand|Industry (Mt ", poll_rep, "/yr)"),
paste0("Emi|", poll_rep, "|Energy Demand|Buildings (Mt ", poll_rep, "/yr)"),
paste0("Emi|", poll_rep, "|Energy Demand|Transport|Ground Trans (Mt ", poll_rep, "/yr)"),
paste0("Emi|", poll_rep, "|Solvents (Mt ", poll_rep, "/yr)"),
paste0("Emi|", poll_rep, "|Energy Supply|Extraction (Mt ", poll_rep, "/yr)")))

emiAPexsolve <- setNames(emiAPexsolve[,,mapping$remind],as.character(mapping$reporting))

tmp <-
mbind(emiAPexsolve,
setNames(emiAPexo[,,"AgWasteBurning"], paste0("Emi|",poll_rep,"|Land Use|Agricultural Waste Burning (Mt ",poll_rep,"/yr)")),
setNames(emiAPexo[,,"Agriculture"], paste0("Emi|",poll_rep,"|Land Use|Agriculture (Mt ",poll_rep,"/yr)")),
setNames(emiAPexo[,,"ForestBurning"], paste0("Emi|",poll_rep,"|Land Use|Forest Burning (Mt ",poll_rep,"/yr)")),
setNames(emiAPexo[,,"GrasslandBurning"],paste0("Emi|",poll_rep,"|Land Use|Savannah Burning (Mt ",poll_rep,"/yr)")),
setNames(emiAPexo[,,"Waste"], paste0("Emi|",poll_rep,"|Waste (Mt ",poll_rep,"/yr)")))


# Set NAs to 0
tmp[is.na(tmp)] <- 0

return(tmp)
}

####### conversion factors ##########
pm_conv_TWa_EJ <- 31.536
conv_MtSO2_to_MtS <- 1/2 # 32/(32+2*16)

####### read in needed data #########
## sets
ttot <- as.numeric(readGDX(gdx, name=c("ttot"), format="first_found"))
## parameter
pm_emiAPexsolve <- readGDX(gdx, name=c("pm_emiAPexsolve"), field="l", format="first_found")[,ttot,]
pm_emiAPexo <- readGDX(gdx, name=c("pm_emiAPexo"), field="l", format="first_found")[,ttot,airpollutants]
pm_emiAPexoGlob <- readGDX(gdx, name=c("pm_emiAPexoGlob"), field="l", format="first_found")[,ttot,airpollutants]

####### prepare parameter ########################
magclass::getNames(pm_emiAPexsolve) <- gsub("SOx","so2",magclass::getNames(pm_emiAPexsolve))
magclass::getNames(pm_emiAPexsolve) <- gsub("NMVOC","VOC",magclass::getNames(pm_emiAPexsolve))

####### calculate reporting parameters ############
# Loop over air pollutants and call reporting generating function
out <- do.call("mbind", lapply(airpollutants, generateReportingEmiAirPol))

# Add global values
out <- mbind(out, dimSums(out,dim=1))
# add other region aggregations
if (!is.null(regionSubsetList))
out <- mbind(out, calc_regionSubset_sums(out, regionSubsetList))

# Loop over air pollutants and add some variables
for (pollutant in airpollutants) {
poll_rep <- toupper(pollutant)
tmp <- NULL
# Add Aviation and Int. Shipping emissions
tmp <- mbind(tmp,setNames(pm_emiAPexoGlob["GLO",,"InternationalShipping"][,,pollutant],paste0("Emi|",poll_rep,"|Energy Demand|Transport|International Shipping (Mt ",poll_rep,"/yr)")),
setNames(pm_emiAPexoGlob["GLO",,"Aviation"][,,pollutant], paste0("Emi|",poll_rep,"|Energy Demand|Transport|Aviation (Mt ",poll_rep,"/yr)"))
)
tmp1 <- new.magpie(getRegions(out),getYears(out),magclass::getNames(tmp),fill=0)
tmp1["GLO",,] <- tmp["GLO",,]
out <- mbind(out,tmp1)
# Aggregation: Transport and Energy Supply
out <- mbind(out,
setNames(dimSums(out[,,
c(paste0("Emi|",poll_rep,"|Energy Demand|Transport|Ground Trans (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Energy Demand|Transport|International Shipping (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Energy Demand|Transport|Aviation (Mt ",poll_rep,"/yr)"))],dim = 3),
paste0("Emi|",poll_rep,"|Energy Demand|Transport (Mt ",poll_rep,"/yr)")),
setNames(dimSums(out[,,
c(paste0("Emi|",poll_rep,"|Energy Supply|Electricity (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Energy Supply|Extraction (Mt ",poll_rep,"/yr)"))],dim = 3),
paste0("Emi|",poll_rep,"|Energy Supply (Mt ",poll_rep,"/yr)"))
)
# Aggregation: Energy Demand + Energy Supply, Land Use
out <- mbind(out,
setNames(dimSums(out[,,c(paste0("Emi|",poll_rep,"|Energy Demand|Industry (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Energy Demand|Buildings (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Energy Demand|Transport (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Energy Supply (Mt ",poll_rep,"/yr)"))],dim = 3),
paste0("Emi|",poll_rep,"|Energy Supply and Demand (Mt ",poll_rep,"/yr)")),
setNames(dimSums(out[,,c(paste0("Emi|",poll_rep,"|Land Use|Savannah Burning (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Land Use|Forest Burning (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Land Use|Agriculture (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Land Use|Agricultural Waste Burning (Mt ",poll_rep,"/yr)"))],dim = 3),
paste0("Emi|",poll_rep,"|Land Use (Mt ",poll_rep,"/yr)"))
)
# Compute total
out <- mbind(out,
setNames(dimSums(out[,,c(paste0("Emi|",poll_rep,"|Energy Supply and Demand (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Solvents (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Land Use (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Waste (Mt ",poll_rep,"/yr)"))],dim=3),
paste0("Emi|",poll_rep," (Mt ",poll_rep,"/yr)"))
)
}
# Add Aviation and Int. Shipping emissions
tmp <- mbind(tmp,setNames(pm_emiAPexoGlob["GLO",,"InternationalShipping"][,,pollutant],paste0("Emi|",poll_rep,"|Energy Demand|Transport|International Shipping (Mt ",poll_rep,"/yr)")),
setNames(pm_emiAPexoGlob["GLO",,"Aviation"][,,pollutant], paste0("Emi|",poll_rep,"|Energy Demand|Transport|Aviation (Mt ",poll_rep,"/yr)"))
)
tmp1 <- new.magpie(getRegions(out),getYears(out),magclass::getNames(tmp),fill=0)
tmp1["GLO",,] <- tmp["GLO",,]
out <- mbind(out,tmp1)
# Aggregation: Transport and Energy Supply
out <- mbind(out,
setNames(dimSums(out[,,
c(paste0("Emi|",poll_rep,"|Energy Demand|Transport|Ground Trans (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Energy Demand|Transport|International Shipping (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Energy Demand|Transport|Aviation (Mt ",poll_rep,"/yr)"))],dim = 3),
paste0("Emi|",poll_rep,"|Energy Demand|Transport (Mt ",poll_rep,"/yr)")),
setNames(dimSums(out[,,
c(paste0("Emi|",poll_rep,"|Energy Supply|Electricity (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Energy Supply|Extraction (Mt ",poll_rep,"/yr)"))],dim = 3),
paste0("Emi|",poll_rep,"|Energy Supply (Mt ",poll_rep,"/yr)"))
)
# Aggregation: Energy Demand + Energy Supply, Land Use
out <- mbind(out,
setNames(dimSums(out[,,c(paste0("Emi|",poll_rep,"|Energy Demand|Industry (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Energy Demand|Buildings (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Energy Demand|Transport (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Energy Supply (Mt ",poll_rep,"/yr)"))],dim = 3),
paste0("Emi|",poll_rep,"|Energy Supply and Demand (Mt ",poll_rep,"/yr)")),
setNames(dimSums(out[,,c(paste0("Emi|",poll_rep,"|Land Use|Savannah Burning (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Land Use|Forest Burning (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Land Use|Agriculture (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Land Use|Agricultural Waste Burning (Mt ",poll_rep,"/yr)"))],dim = 3),
paste0("Emi|",poll_rep,"|Land Use (Mt ",poll_rep,"/yr)"))
)
# Compute total
out <- mbind(out,
setNames(dimSums(out[,,c(paste0("Emi|",poll_rep,"|Energy Supply and Demand (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Solvents (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Land Use (Mt ",poll_rep,"/yr)"),
paste0("Emi|",poll_rep,"|Waste (Mt ",poll_rep,"/yr)"))],dim=3),
paste0("Emi|",poll_rep," (Mt ",poll_rep,"/yr)"))
)
}

getSets(out)[3] <- "variable"
return(out)
Expand Down

0 comments on commit 22606cc

Please sign in to comment.