Split geological CO2 storage into onshore and offshore. Use new storage potentials#2296
Split geological CO2 storage into onshore and offshore. Use new storage potentials#2296dklein-pik merged 30 commits intoremindmodel:developfrom
Conversation
Requires new input data f_geoStorPot.cs3r from mrremind::calcPotentialGeologicalStorage
Rename categories
…storage potential
…grade anyway but more technologies to come (ccsinjeon and ccsinjeoff), each with its own storage potential defined by pm_dataccs.
…_co2CCS" This reverts commit 78fbc81.
Reduce dimensions of q_emiCdrAll to calculate the sum of ccsinjeon and ccsinjeoff and not individually
…instead of zero to avoid devision by zero
…logy ccsinje into ccsinjeon and ccsinjeoff)
There was a problem hiding this comment.
Pull request overview
This pull request introduces a distinction between onshore and offshore geological CO2 storage in the REMIND model. The main technology ccsinje has been split into ccsinjeon (onshore) and ccsinjeoff (offshore), with different cost structures, storage potentials, and characteristics.
Changes:
- Split CCS injection technology from single
ccsinjetoccsinjeon(onshore) andccsinjeoff(offshore) - Updated geological storage potential data to use new source with separate onshore/offshore potentials
- Modified equations to simplify v_co2capture variable by removing unused dimensions
Reviewed changes
Copilot reviewed 20 out of 21 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| core/sets.gms | Defines new CCS injection technologies (ccsinjeon, ccsinjeoff) and teccsinje set; updates all relevant mappings |
| core/declarations.gms | Changes pm_dataccs indexing from rlf to technology names; simplifies v_co2capture dimensions |
| core/equations.gms | Updates CCS equations to reflect new technology split; simplifies q_balcapture signature |
| core/datainput.gms | Implements new c_geoStorPotScen parameter logic to assign storage potentials to onshore/offshore technologies |
| core/bounds.gms | Updates bounds for both onshore and offshore storage; includes near-term pipeline project bounds (onshore only) |
| core/postsolve.gms | Simplifies pm_share_CCS_CCO2 calculation due to reduced v_co2capture dimensions |
| core/input/files | Changes input file from pm_dataccs.cs3r to f_geoStorPot.cs3r |
| core/input/generisdata_tech.prn | Adds offshore technology parameters (50% higher costs than onshore) |
| core/input/generisdata_vintages.prn | Adds vintage data for both CCS injection technologies |
| modules/21_tax/on/ | Updates CCS tax calculations to use technology-specific parameters |
| modules/04_PE_FE_parameters/iea2014/datainput.gms | Adds electricity co-production coefficient for offshore storage |
| modules/32_power/IntC/equations.gms | Minor whitespace formatting improvements |
| modules/33_CDR/portfolio/ | Simplifies equation signatures by removing unused dimensions |
| modules/47_regipol/none/bounds.gms | Updates Germany-specific CCS bounds |
| main.gms | Adds c_geoStorPotScen parameter with documentation; updates cm_frac_CCS comment |
| config/default.cfg | Updates input revision to 7.83 for new storage data |
| DESCRIPTION | Updates remind2 dependency to >= 2.0.3 for updated reporting |
| CHANGELOG.md | Documents the changes in appropriate sections |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| elseif (c_geoStorPotScen eq 3), | ||
| pm_dataccs(all_regi, "quan", "ccsinjeon") = f_geoStorPot(all_regi, "mixedOld"); | ||
| pm_dataccs(all_regi, "quan", "ccsinjeoff") = 0.00001; | ||
| ); |
There was a problem hiding this comment.
When c_geoStorPotScen is set to 3 (the old/default scenario), offshore storage potential is set to a very small value (0.00001 GtC) which effectively disables it. This means scenario 3 is not truly backward compatible with the old behavior where there was no distinction between onshore and offshore. Consider documenting this more explicitly in the parameter description or adjusting the implementation to better replicate the old behavior by distributing the "mixedOld" potential between onshore and offshore based on historical usage patterns.
…r dimensions of a few equations and variables changed during split of ccsinje) New input data
|
This does so far not change REMIND default behaviour. The parametrisation for ccsinjeon follows our standard parametrisation for ccsine and for ccsinjeoff there are mock-up parameters now in the code for testing the new structure. This PR provides the code-structure to split geological storage into onshore and offshore, but I will update the parametrisation of ccsinjeoff according to the cost assessment from the "systematic review on geological storage of carbon" that will hopefully be published in the coming weeks. This will likely also affect parametrisation of ccsinjeon. Only thereafter will we decide on how that may or should affect REMIND standard scenarios. |
Purpose of this PR
Split geological CO2 transport and storage technology (
ccsinje) into onshore (ccsinjeon) and offshore (ccsinjeoff).ccsinjeonandccsinjeoff, notccsinjeanymore.ccsinjeon, the same old storage potential is used by default, that has been used forccsinjeso far.ccsinjeonhas inherited its parameterization fromccsinje.ccsinjeoffis currently practically disabled (its storage potential is set to 0.00001 GtC, to prevent division by zero).c_geoStorPotScen.From Anne's comment below:
Type of change
Parts concerned
Impact
Checklist
make test) after my final commit and all tests pass (FAIL 0)remind2if and where it was neededforbiddenColumnNamesin readCheckScenarioConfig.R in case the PR leads to deprecated switchesCHANGELOG.mdcorrectly (added, changed, fixed, removed, input data/calibration)