Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add reporting and calculations for feedstocks and plastics #489

Merged
merged 40 commits into from
Dec 18, 2023

Conversation

mellamoSimon
Copy link
Contributor

This PR adds new (endogenously calculated) feedstock and plastic variables when available, including necessary calculations for emissions and final energy demand. Everything should be hidden behind if clauses to secure backward compatibility.
It also includes some new plots for these variables in cs2.

Felix Schreyer and others added 30 commits February 21, 2022 11:36
…ons factors for energy-related emissions to FE witout non-energy use and add feedstocks emissions with lowered emissions factors to industrial process emissions
…nd energy carriers and remove deprecated non-energy use reporting
…gative emissions to feedstocks carbon contained in non-incinerated plastics
R/reportEmi.R Show resolved Hide resolved
R/reportFE.R Outdated Show resolved Hide resolved
R/reportFE.R Outdated Show resolved Hide resolved
@mellamoSimon mellamoSimon marked this pull request as ready for review November 28, 2023 10:09
Copy link
Contributor

@fschreyer fschreyer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey Simon, looks good overall! :)

Just some clarification questions and comments from my side.

- dimSums(mselect(vm_emiIndCCS_Sub, all_enty1 = "fesos")*p_share_CCS, dim = 3)) * GtC_2_MtCO2,
- dimSums(mselect(vm_emiIndCCS_Sub, all_enty1 = "fesos")*p_share_CCS, dim = 3)
# substract synthetic and biogenic carbon contained in non-incinerated plastics
- dimSums(mselect(vm_nonIncineratedPlastics, all_enty=c("sesobio","sesosyn"), all_enty1 = "fesos"), dim=3)) * GtC_2_MtCO2,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couldn't you also use plastic_CDR variable here like for Emi|CO2|+|Energy. It is the same as this, right? But might be confusing to read if you use different formulations at the two instances.

R/reportEmi.R Outdated
"Emi|CO2|Feedstocks unknown fate (Mt CO2/yr)"),
setNames(dimSums(vm_incinerationEmi, dim=3)* GtC_2_MtCO2,
"Emi|CO2|Plastics incineration (Mt CO2/yr)")
)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These two variables do not really conform to our emissions category taxonomy. Let's maybe think again how to label them and fit into the structure. Are they process or energy-related emissions?

Emi|CO2|Plastics incineration could be incineration for energy purposes (IPCC 1A1) e.g. for power generation or incineration without energy recovery (IPCC 5C). Is that a correct understanding? If so, the first category we would account under Emi|CO2|Energy|Supply|+|Electricity/Heat. The second we would account under Emi|GHG|+++|Waste. (Or we would add a Emi|CO2|+|Waste).

Concerning the Feedstock emissions with "unknown fate", we would also need a decision of whether these emissions are energy-related (IPCC 1) or belong to some other sector.

Maybe it is also good to check again whether the IAM community has already defined something on this (I fear not, though) e.g. by looking at the variable definitions of the NAVIGATE template.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

important point! This is my interpretation of what we discussed with the carbon management team. So I'm roping in @strefler to help make a decision here.
The problem with using Emi|CO2|Energy|Supply|+|Electricity/Heat is that waste incineration is not connected in any way to waste-to-energy in remind. If we are to change this, I would favor using Emi|CO2|+|Waste.
Regarding the feedstock with unknown fate, we decided that the safest option was to assume they are re-emitted. Of course, this means that there is no reporting variable that fits perfectly. maybe also adding it to Emi|CO2|+|Waste is the best way to go but for sure it is not really accurate. Still, I think it would be better than making our process emissions harder to trace back (which I think is a more common requirement in current projects, compared to waste management). I'd like to wait for Jess' decision before modifying any of this

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the records, we fixed it with the new category Emi|CO2|Energy|+|Waste, under which we created: Emi|CO2|Energy|Waste|+|Plastics Incineration and Emi|CO2|Energy|Waste|+|Feedstocks unknown fate

setNames(dimSums(vm_incinerationEmi, dim = 3) * GtC_2_MtCO2,
"Carbon Management|Materials|Plastics|++|Incineration (Mt CO2/yr)"),
# carbon in plastics with other fate
setNames(dimSums(vm_nonIncineratedPlastics, dim = 3) * GtC_2_MtCO2,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about vm_feedstockEmiUnknownFate here? Are they part of vm_nonIncineratedPlastics? Or are they not accounted as CO2 going into materials?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

jup, we are not assigning that to any material. For now the only material is plastic and then carbon fibers will be added

setNames((dimSums(EmiFeCarrier[, , "indst"], dim = 3)
- dimSums(vm_emiIndCCS[, , emiInd37_fuel]* p_share_CCS, dim = 3)
# substract synthetic and biogenic carbon contained in industrial feedstocks
- dimSums(plastic_CDR, dim=3)) * GtC_2_MtCO2,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a quick refresher for my memory. Here, we only substract the plastic carbon from biogenic and synthetic sources and not the carbon from fossil sources because fossil feedstock carbon is not accounted as emissions in EmiFeCarrier in the first place. Correct?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also this means that we account all (non-fossil) carbon stored in materials as negative emissions for industry.

Copy link
Contributor Author

@mellamoSimon mellamoSimon Nov 30, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

jup

# note: only for REMIND-EU SSP2

if ("DEU" %in% getRegions(vm_prodFe) & indu_mod == 'subsectors') {
if ("DEU" %in% getRegions(vm_prodFe) & indu_mod == 'subsectors' & is.null(vm_demFENonEnergySector)) {

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I think our non-energy use reporting for ARIADNE can actually be removed once this is merged. Although you are right it is maybe safe to still keep it here and I will check out our new Germany scenarios with the feedstocks implementation afterwards and then delete this part, if everything looks good.

# add FE w/o non-energy use variables if available
if ("FE|Non-energy Use (EJ/yr)" %in% getNames(out)) {

# bunker correction for distinction of fossil, biomass, hydrogen-based liquids
Copy link
Contributor

@fschreyer fschreyer Nov 29, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't we also add something here to also get FE|w/o Bunkers|w/o Non-energy Use. So the top-level FE variable without both? Or do you have that somewhere already?

@mellamoSimon mellamoSimon removed the request for review from strefler December 8, 2023 14:20
@mellamoSimon mellamoSimon merged commit 09b72be into pik-piam:master Dec 18, 2023
4 checks passed
@mellamoSimon mellamoSimon deleted the feedstocks-final branch December 18, 2023 11:27
# (Note: The non-energy use variables are so far only available for REMIND-EU runs and industry fixed_shares)
# 8. Ad-hoc fix for emissions w/o non-energy use and Aggregation to global and regional values ----

if (is.null(vm_demFENonEnergySector) && (module2realisation["industry", 2] == "fixed_shares")) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This condition breaks reportEmi for some project-specific reportings (for example Ariadne) and will be reverted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants