Update NPi2025 technology capacity targets#2271
Update NPi2025 technology capacity targets#2271lea-hayez wants to merge 21 commits intoremindmodel:developfrom
Conversation
fschreyer
left a comment
There was a problem hiding this comment.
Thanks for your work!
Overall, the results look good to me. Some code modifications I'd still recommend.
Also, before merging this it would be good to first generate new input data and increment the input data revision cfg$inputRevision in the config/default.cfg file in the present PR to include this data. Otherwise, this REMIND version would run with input data generated with older mrremind versions before your update of capacity targets.
RahelMA
left a comment
There was a problem hiding this comment.
Thanks for the great work! Do I see this correctly: Due to the coal implementation being postponed, this PR mainly has the purpose of setting the new input data cfg$inputRevision <- "7.77"?
If so, I only see one missing *!
| p40_TechBound(ttot,all_regi,all_te) "NPI capacity targets for solar (pv, csp), wind (total, onshore, offshore), nuclear, hydro, biomass, nuclear (GW)" | ||
| p40_ElecBioBound(ttot,all_regi) "level for lower bound on biomass tech. absolute capacities, in GW" | ||
| p40_CoalBound(ttot,iso_regi) "level for upper bound on absolute capacities, in GW for all technologies except electromobility" | ||
| p40_CoalCapBound(ttot,iso_regi) "level for upper bound on absolute capacities, in GW for all technologies except electromobility" |
There was a problem hiding this comment.
I think you would also want to add * for not having a parameter that is not used!
There was a problem hiding this comment.
As I mentioned earlier, I don't see a point in having any commented code (I am quite sure that this is also RSE policy). Code that has been added and is not used anymore can be deleted as it can always be restored via your git history.
| vm_cap.lo(t,regi,"windoff","1")$(t.val gt 2025) = p40_TechBound(t,regi,"windoff")*0.001; | ||
| vm_cap.lo(t,regi,"wind","1")$(t.val gt 2025) = p40_TechBound(t,regi,"wind")*0.001; | ||
| *vm_cap.lo(t,regi,"elh2","1")$(t.val gt 2025) = p40_TechBound(t,regi,"elh2")*0.001; | ||
| *vm_cap.lo(t,regi,"geohdr","1")$(t.val gt 2025) = p40_TechBound(t,regi,"geohdr")*0.001; quick fix needs adjustments in the mrremind Inputdata generation including new IRENA |
There was a problem hiding this comment.
this can now be dropped as you have it in the input data?
| *vm_cap.lo(t,regi,"elh2","1")$(t.val gt 2025) = p40_TechBound(t,regi,"elh2")*0.001; | ||
| *vm_cap.lo(t,regi,"geohdr","1")$(t.val gt 2025) = p40_TechBound(t,regi,"geohdr")*0.001; quick fix needs adjustments in the mrremind Inputdata generation including new IRENA | ||
| vm_cap.lo(t,regi,"geohdr","1")$( (t.val gt 2025) AND sameas(regi, "OAS")) = p40_TechBound(t,regi,"geohdr")*0.001; | ||
| *vm_cap.up(t,regi,"coalchp","1")$(t.val gt 2025) = p40_TechBound(t,regi,"coalchp")*0.001; !!max bound for Canada use the netzero calculator, check coal phase out module |
There was a problem hiding this comment.
this was never active right?
|
@LaviniaBaumstark this PR includes the change of input data from 7.76 to 7.77, ready to merge whether! |
| p40_TechBound(ttot,all_regi,all_te) "NPI capacity targets for solar (pv, csp), wind (total, onshore, offshore), nuclear, hydro, biomass, nuclear (GW)" | ||
| p40_ElecBioBound(ttot,all_regi) "level for lower bound on biomass tech. absolute capacities, in GW" | ||
| p40_CoalBound(ttot,iso_regi) "level for upper bound on absolute capacities, in GW for all technologies except electromobility" | ||
| * p40_CoalCapBound(ttot,iso_regi) "level for upper bound on absolute capacities, in GW for all technologies except electromobility" |
There was a problem hiding this comment.
please delete not active parameters
| *** coal bound: all technologies transforming PE coal into SE electricity. Cannot apply to current input data, as lower bound on historical data affect strongly dynamics in OAS and CHA. | ||
| *q40_coalCapBound(t,regi)$(t.val gt 2025 | ||
| * AND p40_TechBound(t,regi,"coalchp") gt 0).. | ||
| * sum(pe2se("pecoal","seel",te), |
There was a problem hiding this comment.
please do not add a non active equation, we no not want to have code which is out-commented
Purpose of this PR
Update of technological capacity targets in the NPI2025 scenario, based on the scenario protocol from ELEVATE (update from October 2025). See selected policies here: /p/projects/rd3mod/inputdata/sources/NewClimate/NPi_PBL_2025.xlsx The coal bounds still need to be correctly read in remind, or correctly ignored in mrremind (see below). So no coal bound in REMIND added yet.
See full NPi comparison here: /p/tmp/leaha/remind/compScen-NewClimate-77-noCoalp-2026-02-05_14.09.20-H12.pdf
- SSP2−NPi2025−develop−77 : current develop with new input data 7.77
- SSP2−NPi2025−develop−76 : current develop previous input data 7.76
- SSP2−NPi2025−NewClimate−77−noCoalp : new input data 7.77 and remind adjustment
-> excludes coal bound, it needs a fix in mrremind to ignore all countries but EUR and CAZ. Currently, it would read all historical and target data as lower bound, which does not allow coal development in regions such as CAZ or CHA.)
Overview of changes:
Minor changes in total CO2 emissions:

Slight increase in biomass use:

New nuclear in OAS and NEU:

Drop of EU offshore wind target of 300GW by 2050 (FF55):

Delayed hydro target in Turkey (from 32GW in 2023 to 35GW in 2035):

Related changes in input data generation: pik-piam/mrremind#774
Type of change
Indicate the items relevant for your PR by replacing ◻️ with ☑️.
Do not delete any lines. This makes it easier to understand which areas are affected by your changes and which are not.
Parts concerned
Impact
Checklist
Do not delete any line. Leave unfinished elements unchecked so others know how far along you are.
In the end all checkboxes must be ticked before you can merge.
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)Further information (optional)