Skip to content

Commit

Permalink
Merge pull request #615 from 0UmfHxcvx5J7JoaOhFSs5mncnisTJJ6q/dev/pla…
Browse files Browse the repository at this point in the history
…stic_waste_ccs

adopt reportEmi() for plastic waste incineration CCS
  • Loading branch information
0UmfHxcvx5J7JoaOhFSs5mncnisTJJ6q authored Jun 25, 2024
2 parents c3f8677 + a0c8c41 commit d5caef5
Show file tree
Hide file tree
Showing 5 changed files with 122 additions and 51 deletions.
2 changes: 1 addition & 1 deletion .buildlibrary
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
ValidationKey: '227618695'
ValidationKey: '227832100'
AcceptedWarnings:
- 'Warning: package ''.*'' was built under R version'
- 'Warning: namespace ''.*'' is not available and has been replaced'
Expand Down
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ cff-version: 1.2.0
message: If you use this software, please cite it using the metadata from this file.
type: software
title: 'remind2: The REMIND R package (2nd generation)'
version: 1.144.1
date-released: '2024-06-21'
version: 1.145.0
date-released: '2024-06-24'
abstract: Contains the REMIND-specific routines for data and model output manipulation.
authors:
- family-names: Rodrigues
Expand Down
4 changes: 2 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Type: Package
Package: remind2
Title: The REMIND R package (2nd generation)
Version: 1.144.1
Date: 2024-06-21
Version: 1.145.0
Date: 2024-06-24
Authors@R: c(
person("Renato", "Rodrigues", , "[email protected]", role = c("aut", "cre")),
person("Lavinia", "Baumstark", role = "aut"),
Expand Down
157 changes: 114 additions & 43 deletions R/reportEmi.R
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,13 @@ reportEmi <- function(gdx, output = NULL, regionSubsetList = NULL,
vm_incinerationEmi <- matchDim(vm_incinerationEmi, v37_plasticsCarbon,
fill = 0)
}

vm_incinerationCCS <- readGDX(gdx, 'vm_incinerationCCS', field = 'l',
restore_zeros = FALSE, spatial = 2,
react = 'silent')[,t,]
if (is.null(vm_incinerationCCS)) {
rm('vm_incinerationCCS')
}
vm_nonIncineratedPlastics <- readGDX(gdx, "vm_nonIncineratedPlastics", field = "l", restore_zeros = FALSE,
spatial = 2, react = "silent")[,t,]
}
Expand Down Expand Up @@ -491,7 +498,13 @@ reportEmi <- function(gdx, output = NULL, regionSubsetList = NULL,
"Emi|CO2|Energy|Waste|+|Feedstocks unknown fate (Mt CO2/yr)"),

setNames(
dimSums(mselect(vm_incinerationEmi, all_enty = entySEfos), dim = 3)
( dimSums(mselect(vm_incinerationEmi, all_enty = entySEfos), dim = 3)
+ if (exists('vm_incinerationCCS')) {
dimSums(vm_incinerationCCS, dim = 3) * (1 - p_share_CCS)
} else {
0
}
)
* GtC_2_MtCO2,
"Emi|CO2|Energy|Waste|+|Plastics Incineration (Mt CO2/yr)")
)
Expand Down Expand Up @@ -1313,28 +1326,53 @@ reportEmi <- function(gdx, output = NULL, regionSubsetList = NULL,
)

# aggregate carbon capture/source variables
out <- mbind(out,

# total captured co2 by bio pe2se technologies
setNames(dimSums(mselect(CCO2Pe2Se, all_te = te.becc), dim = 3) * GtC_2_MtCO2,
"Carbon Management|Carbon Capture|+|Biomass|Pe2Se (Mt CO2/yr)"),
# total captured co2 by fossil pe2se technologies
setNames(dimSums(mselect(CCO2Pe2Se, all_te = teFosCCS), dim = 3) * GtC_2_MtCO2,
"Carbon Management|Carbon Capture|+|Fossil|Pe2Se (Mt CO2/yr)"),
# total co2 captured in industry from energy emissions (to do: split in fossil and bio industry capture)
setNames(dimSums(vm_emiIndCCS[, , emiInd37_fuel], dim = 3) * GtC_2_MtCO2,
"Carbon Management|Carbon Capture|+|Industry Energy (Mt CO2/yr)"),
# total co2 captured in industry from proess emissions (only cemnent process CO2 for now)
setNames(dimSums(vm_emiIndCCS[, , "co2cement_process"], dim = 3) * GtC_2_MtCO2,
"Carbon Management|Carbon Capture|+|Industry Process (Mt CO2/yr)"),
setNames(dimSums(vm_emiIndCCS[, , "co2cement_process"], dim = 3) * GtC_2_MtCO2,
"Carbon Management|Carbon Capture|Industry Process|+|Cement (Mt CO2/yr)"),
# total co2 captured by DAC
setNames(-vm_emiCdrTeDetail[, , "dac"] * GtC_2_MtCO2,
"Carbon Management|Carbon Capture|+|DAC (Mt CO2/yr)"),
# total co2 captured
setNames(vm_co2capture * GtC_2_MtCO2,
"Carbon Management|Carbon Capture (Mt CO2/yr)")
out <- mbind(
out,

# total captured co2 by bio pe2se technologies
setNames(
dimSums(mselect(CCO2Pe2Se, all_te = te.becc), dim = 3)
* GtC_2_MtCO2,
"Carbon Management|Carbon Capture|+|Biomass|Pe2Se (Mt CO2/yr)"),

# total captured co2 by fossil pe2se technologies
setNames(
dimSums(mselect(CCO2Pe2Se, all_te = teFosCCS), dim = 3)
* GtC_2_MtCO2,
"Carbon Management|Carbon Capture|+|Fossil|Pe2Se (Mt CO2/yr)"),

# total co2 captured in industry from energy emissions (to do: split in fossil and bio industry capture)
setNames(
dimSums(vm_emiIndCCS[, , emiInd37_fuel], dim = 3)
* GtC_2_MtCO2,
"Carbon Management|Carbon Capture|+|Industry Energy (Mt CO2/yr)"),

# total co2 captured in industry from process emissions (only cement process
# CO2 for now)
setNames(
dimSums(vm_emiIndCCS[, , "co2cement_process"], dim = 3)
* GtC_2_MtCO2,
"Carbon Management|Carbon Capture|+|Industry Process (Mt CO2/yr)"),

setNames(
dimSums(vm_emiIndCCS[, , "co2cement_process"], dim = 3)
* GtC_2_MtCO2,
"Carbon Management|Carbon Capture|Industry Process|+|Cement (Mt CO2/yr)"),

if (exists('vm_incinerationCCS'))
{
setNames(dimSums(vm_incinerationCCS, dim = 3) * GtC_2_MtCO2,
paste0('Carbon Management|Carbon Capture|+|Waste|',
'Plastics Incineration (Mt CO2/yr)'))
},

# total co2 captured by DAC
setNames(-vm_emiCdrTeDetail[, , "dac"] * GtC_2_MtCO2,
"Carbon Management|Carbon Capture|+|DAC (Mt CO2/yr)"),

# total co2 captured
setNames(vm_co2capture * GtC_2_MtCO2,
"Carbon Management|Carbon Capture (Mt CO2/yr)")
)

# add materials-related carbon management variables only if available
Expand Down Expand Up @@ -1577,26 +1615,54 @@ reportEmi <- function(gdx, output = NULL, regionSubsetList = NULL,
)

# calculate carbon storage variables
out <- mbind(out,

# total captured and stored by pe2se BECCS
setNames(out[, , "Carbon Management|Carbon Capture|+|Biomass|Pe2Se (Mt CO2/yr)"] * p_share_CCS,
"Carbon Management|Storage|+|Biomass|Pe2Se (Mt CO2/yr)"),
setNames(out[, , "Carbon Management|Carbon Capture|+|Fossil|Pe2Se (Mt CO2/yr)"] * p_share_CCS,
"Carbon Management|Storage|+|Fossil|Pe2Se (Mt CO2/yr)"),
setNames(out[, , "Carbon Management|Carbon Capture|+|Industry Energy (Mt CO2/yr)"] * p_share_CCS,
"Carbon Management|Storage|+|Industry Energy (Mt CO2/yr)"),
# subcategories of industry energy CCS depending on whether the FE that industry demands comes from fossil, biomass or synfuel origin
setNames(out[, , "Carbon Management|Carbon Capture|Industry Energy|+|Fossil (Mt CO2/yr)"] * p_share_CCS,
"Carbon Management|Storage|Industry Energy|+|Fossil (Mt CO2/yr)"),
setNames(out[, , "Carbon Management|Carbon Capture|Industry Energy|+|Biomass (Mt CO2/yr)"] * p_share_CCS,
"Carbon Management|Storage|Industry Energy|+|Biomass (Mt CO2/yr)"),
setNames(out[, , "Carbon Management|Carbon Capture|Industry Energy|+|Synfuel (Mt CO2/yr)"] * p_share_CCS,
"Carbon Management|Storage|Industry Energy|+|Synfuel (Mt CO2/yr)"),
setNames(out[, , "Carbon Management|Carbon Capture|+|Industry Process (Mt CO2/yr)"] * p_share_CCS,
"Carbon Management|Storage|+|Industry Process (Mt CO2/yr)"),
setNames(out[, , "Carbon Management|Carbon Capture|+|DAC (Mt CO2/yr)"] * p_share_CCS,
"Carbon Management|Storage|+|DAC (Mt CO2/yr)")
out <- mbind(
out,

# total captured and stored by pe2se BECCS
setNames(
out[, , "Carbon Management|Carbon Capture|+|Biomass|Pe2Se (Mt CO2/yr)"]
* p_share_CCS,
"Carbon Management|Storage|+|Biomass|Pe2Se (Mt CO2/yr)"),
setNames(
out[, , "Carbon Management|Carbon Capture|+|Fossil|Pe2Se (Mt CO2/yr)"]
* p_share_CCS,
"Carbon Management|Storage|+|Fossil|Pe2Se (Mt CO2/yr)"),
setNames(
out[, , "Carbon Management|Carbon Capture|+|Industry Energy (Mt CO2/yr)"]
* p_share_CCS,
"Carbon Management|Storage|+|Industry Energy (Mt CO2/yr)"),

# subcategories of industry energy CCS depending on whether the FE that
# industry demands comes from fossil, biomass or synfuel origin
setNames(
out[, , "Carbon Management|Carbon Capture|Industry Energy|+|Fossil (Mt CO2/yr)"]
* p_share_CCS,
"Carbon Management|Storage|Industry Energy|+|Fossil (Mt CO2/yr)"),
setNames(
out[, , "Carbon Management|Carbon Capture|Industry Energy|+|Biomass (Mt CO2/yr)"]
* p_share_CCS,
"Carbon Management|Storage|Industry Energy|+|Biomass (Mt CO2/yr)"),
setNames(
out[, , "Carbon Management|Carbon Capture|Industry Energy|+|Synfuel (Mt CO2/yr)"]
* p_share_CCS,
"Carbon Management|Storage|Industry Energy|+|Synfuel (Mt CO2/yr)"),
setNames(
out[, , "Carbon Management|Carbon Capture|+|Industry Process (Mt CO2/yr)"]
* p_share_CCS,
"Carbon Management|Storage|+|Industry Process (Mt CO2/yr)"),

if (exists('vm_incinerationCCS'))
{
setNames(
out[,,'Carbon Management|Carbon Capture|+|Waste|Plastics Incineration (Mt CO2/yr)']
* p_share_CCS,
'Carbon Management|Storage|+|Waste|Plastics Incineration (Mt CO2/yr)')
},

setNames(
out[, , "Carbon Management|Carbon Capture|+|DAC (Mt CO2/yr)"]
* p_share_CCS,
"Carbon Management|Storage|+|DAC (Mt CO2/yr)")
)

# calculate carbon storage variables for energy supply CCS
Expand Down Expand Up @@ -2481,6 +2547,11 @@ reportEmi <- function(gdx, output = NULL, regionSubsetList = NULL,
+ dimSums(mselect(vm_incinerationEmi,
all_enty = entySEfos, all_emiMkt = "ETS"),
dim = 3)
+ if (exists('vm_incinerationCCS')) {
dimSums(vm_incinerationCCS, dim = 3) * (1 - p_share_CCS)
} else {
0
}
)
* GtC_2_MtCO2,
"Emi|GHG|ETS|+|Energy Waste (Mt CO2eq/yr)"),
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# The REMIND R package (2nd generation)

R package **remind2**, version **1.144.1**
R package **remind2**, version **1.145.0**

[![CRAN status](https://www.r-pkg.org/badges/version/remind2)](https://cran.r-project.org/package=remind2) [![R build status](https://github.com/pik-piam/remind2/workflows/check/badge.svg)](https://github.com/pik-piam/remind2/actions) [![codecov](https://codecov.io/gh/pik-piam/remind2/branch/master/graph/badge.svg)](https://app.codecov.io/gh/pik-piam/remind2) [![r-universe](https://pik-piam.r-universe.dev/badges/remind2)](https://pik-piam.r-universe.dev/builds)

Expand Down Expand Up @@ -49,7 +49,7 @@ In case of questions / problems please contact Renato Rodrigues <renato.rodrigue

To cite package **remind2** in publications use:

Rodrigues R, Baumstark L, Benke F, Dietrich J, Dirnaichner A, Duerrwaechter J, Führlich P, Giannousakis A, Hasse R, Hilaire J, Klein D, Koch J, Kowalczyk K, Levesque A, Malik A, Merfort A, Merfort L, Morena-Leiva S, Pehl M, Pietzcker R, Rauner S, Richters O, Rottoli M, Schötz C, Schreyer F, Siala K, Sörgel B, Spahr M, Strefler J, Verpoort P, Weigmann P, Rüter T (2024). _remind2: The REMIND R package (2nd generation)_. R package version 1.144.1, <https://github.com/pik-piam/remind2>.
Rodrigues R, Baumstark L, Benke F, Dietrich J, Dirnaichner A, Duerrwaechter J, Führlich P, Giannousakis A, Hasse R, Hilaire J, Klein D, Koch J, Kowalczyk K, Levesque A, Malik A, Merfort A, Merfort L, Morena-Leiva S, Pehl M, Pietzcker R, Rauner S, Richters O, Rottoli M, Schötz C, Schreyer F, Siala K, Sörgel B, Spahr M, Strefler J, Verpoort P, Weigmann P, Rüter T (2024). _remind2: The REMIND R package (2nd generation)_. R package version 1.145.0, <https://github.com/pik-piam/remind2>.

A BibTeX entry for LaTeX users is

Expand All @@ -58,7 +58,7 @@ A BibTeX entry for LaTeX users is
title = {remind2: The REMIND R package (2nd generation)},
author = {Renato Rodrigues and Lavinia Baumstark and Falk Benke and Jan Philipp Dietrich and Alois Dirnaichner and Jakob Duerrwaechter and Pascal Führlich and Anastasis Giannousakis and Robin Hasse and Jérome Hilaire and David Klein and Johannes Koch and Katarzyna Kowalczyk and Antoine Levesque and Aman Malik and Anne Merfort and Leon Merfort and Simón Morena-Leiva and Michaja Pehl and Robert Pietzcker and Sebastian Rauner and Oliver Richters and Marianna Rottoli and Christof Schötz and Felix Schreyer and Kais Siala and Björn Sörgel and Mike Spahr and Jessica Strefler and Philipp Verpoort and Pascal Weigmann and Tonn Rüter},
year = {2024},
note = {R package version 1.144.1},
note = {R package version 1.145.0},
url = {https://github.com/pik-piam/remind2},
}
```

0 comments on commit d5caef5

Please sign in to comment.