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

Unified SSP techno-economic data #1985

Merged
merged 15 commits into from
Feb 21, 2025
Merged

Conversation

lecfab
Copy link
Contributor

@lecfab lecfab commented Feb 13, 2025

Purpose of this PR

It was hard to maintain different generisdata_tech files different SSPs:

Major elements of this PR:

  • go through all the technologies to choose how their inco0 (and other parameters) should change with SSP narratives. This google sheet shows the reasoning.
  • turn all SSP-specific technoeconomics into in-code relative modifications and remove files generisdata_tech for SSP1, 3, 5
  • rehabilitate cm_VRE_supply_assumptions: it affects inco0 and floorcost for storage as well as learning rate for storage and VRE:
    • 1 optimistic improves values by around 10%
    • 2 pessimistic worsens values by around 10%
    • 3 very pessimistic worsens values by around 30%

Minor elements:

  • merge generisdata_flexibility into generisdata_tech
  • replace incolearn by floorcost
  • remove absolute in-code modification of inco0, learn etc
  • rename the values of c_techAssumptScen to SSP1..5 instead of numbers without meaning
  • add gasftcrec to teCCS as it was missing
  • forbids CCS technologies to be cheaper than non-CCS equivalent (using new set te2teCCS)
  • document https://github.com/remindmodel/development_issues/issues/486#event-16297434367 (side modification)
  • remove old code involving ccscomp, ccspipe etc
  • clean stuff; please review in "Hide whitespace mode":

Type of change

  • Bug fix
  • Refactoring
  • New feature

Checklist:

  • My code follows the coding etiquette
  • I performed a self-review of my own code
  • I explained my changes within the PR, particularly in hard-to-understand areas
  • I checked that the in-code documentation is up-to-date
  • I adjusted the reporting in remind2 where it was needed
  • I adjusted forbiddenColumnNames in readCheckScenarioConfig.R in case the PR leads to deprecated switches
  • I checked the log.txt file of my runs for newly introduced summation, fixing or variable name errors
  • All automated model tests pass, executed after my final commit (FAIL 0 in the output of make test)
  • The changelog CHANGELOG.md has been updated correctly

Comparison of results

Compare scenarios are here: /p/tmp/fabricel/202502-remind-learningDoc.
The former techno-economic assumptions had a lot of bugs due to missed update etc. Hence significant differences after the update:

  • SSP1: more gas, less biomass and hydrogen
  • SSP2: few differences, less wind
  • SSP3: gas replaces coal, lower emissions
  • SSP5: less coal, rerouting of gas, lower emissions

SSP1: more gas, less biomass and hydrogen



SSP2: few differences, less wind

SSP3: gas replaces coal, lower emissions

SSP5: less coal, rerouting of gas, lower emissions

@lecfab lecfab marked this pull request as ready for review February 18, 2025 18:29
@lecfab lecfab requested a review from cchrisgong February 18, 2025 18:30
@tabeado
Copy link
Contributor

tabeado commented Feb 19, 2025

thanks a lot for accepting to keep the ccsinjeCost switch as it was and improving the description!

Copy link
Contributor

@cchrisgong cchrisgong left a comment

Choose a reason for hiding this comment

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

Thanks a lot!
Why is there a lot of coal to liquid without CC in SSA under SSP3? There is less after the change but rather strange...

@lecfab
Copy link
Contributor Author

lecfab commented Feb 21, 2025

Thanks a lot! Why is there a lot of coal to liquid without CC in SSA under SSP3? There is less after the change but rather strange...

Indeed, it's a separate known issue, but this PR can influence it because the Fischer Tropsch costs changed significantly.

@lecfab lecfab merged commit b6e2202 into remindmodel:develop Feb 21, 2025
2 checks passed

*RP* include global flexibility parameters
Copy link
Contributor

Choose a reason for hiding this comment

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

did you have a specific reason to merge the flexibility file with generisdata_tech?

I would prefer to keep them separate, as the stuff in generisdata_tech is really fundamental techno-economic properties, while the values in _flexibility are hand-tuned parameters to create reasonable technology mixes for a variety of power system configurations.

so if you don't have a very strong preference, I would propose to keep it split, @lecfab

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sorry Robert I had merged already as I thought you had finished commenting.

For flexibility data, I found it clearer to add it into the general tech file, as it did not add too much clutter there. I have to admit that I still don't fully understand this parameter.
So it's perfectly ok with me if you re-separate them, and maybe add some documentation to the file?

Copy link
Contributor

@robertpietzcker robertpietzcker left a comment

Choose a reason for hiding this comment

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

wow, what a great effort to make the model more systematic, @lecfab - thanks a lot!

I have added two specific comments below with potential minor changes;
there is one further issue: do you have an idea why there are changes in SSP2 results in the power sector?
from what I see, you didn't implement any changes to input data in the power sector in SSP2, only in SSP1/SSP3?

@lecfab
Copy link
Contributor Author

lecfab commented Mar 3, 2025

why there are changes in SSP2 results in the power sector?
from what I see, you didn't implement any changes to input data in the power sector in SSP2, only in SSP1/SSP3?

That's a puzzle for me too, and I started digging into it: it could come from using floorcost instead of incolearn.
At some point there is a formula $$inco0' = \alpha * inco0$$ where $$\alpha = 1 + tkpremused$$.

  • Formerly, incolearn was fixed, so we had $$floorcost = inco0' - incolearn = \alpha * inco0 - incolearn$$
  • Now, floorcost is fixed using the former value of incolearn: $$floorcost = inco0 - incolearn$$

So this $$\alpha$$ could be responsible for different dynamics for learning technologies in the new version. However, I have a feeling it should actually increase their deployment. So this needs further investigation!

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.

5 participants