iiasa / message-ix-models

Tools for the MESSAGEix-GLOBIOM family of models
https://docs.messageix.org/models
Apache License 2.0
17 stars 34 forks source link

Change technology inputs and replace solar + wind technologies in `tools.costs` #206

Closed measrainsey closed 2 months ago

measrainsey commented 4 months ago

Make changes to the energy module input technologies

All changes made in this PR are contained to the input CSVs, so no changes to the code. The main changes are:

Change inputs for some storage, CSP, hydrogen, and industry technologies

cc @volker-krey

The following changes were made to the input CSVs:

Replace existing wind and solar technologies with new technologies

cc @OFR-IIASA

As part of the SSP update process, solar and wind technologies are being replaced with new (more) technologies. I have copied over the inputs/assumptions from the previous technologies and used them for the new technologies.

solar_pv_ppl has been replaced with:

wind_ppl has been replaced with:

wind_ppf has been replaced with:

How to review

For @khaeru and/or @glatterf42 : Read the diff and note that the CI checks all pass.

PR checklist

khaeru commented 4 months ago

@measrainsey here I'd suggest "Update branch" → "Update with rebase". Should be no conflicts.

codecov[bot] commented 4 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 65.5%. Comparing base (f6de7bb) to head (1788b18). Report is 21 commits behind head on main.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #206 +/- ## ===================================== Coverage 65.5% 65.5% ===================================== Files 204 204 Lines 15822 15822 ===================================== Hits 10378 10378 Misses 5444 5444 ``` | [Files with missing lines](https://app.codecov.io/gh/iiasa/message-ix-models/pull/206?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iiasa) | Coverage Δ | | |---|---|---| | [message\_ix\_models/tests/model/test\_bare.py](https://app.codecov.io/gh/iiasa/message-ix-models/pull/206?src=pr&el=tree&filepath=message_ix_models%2Ftests%2Fmodel%2Ftest_bare.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iiasa#diff-bWVzc2FnZV9peF9tb2RlbHMvdGVzdHMvbW9kZWwvdGVzdF9iYXJlLnB5) | `100.0% <ø> (ø)` | | | [message\_ix\_models/tests/model/test\_structure.py](https://app.codecov.io/gh/iiasa/message-ix-models/pull/206?src=pr&el=tree&filepath=message_ix_models%2Ftests%2Fmodel%2Ftest_structure.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iiasa#diff-bWVzc2FnZV9peF9tb2RlbHMvdGVzdHMvbW9kZWwvdGVzdF9zdHJ1Y3R1cmUucHk=) | `100.0% <100.0%> (ø)` | | | [message\_ix\_models/tests/tools/costs/test\_decay.py](https://app.codecov.io/gh/iiasa/message-ix-models/pull/206?src=pr&el=tree&filepath=message_ix_models%2Ftests%2Ftools%2Fcosts%2Ftest_decay.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iiasa#diff-bWVzc2FnZV9peF9tb2RlbHMvdGVzdHMvdG9vbHMvY29zdHMvdGVzdF9kZWNheS5weQ==) | `100.0% <ø> (ø)` | | | [...ge\_ix\_models/tests/tools/costs/test\_projections.py](https://app.codecov.io/gh/iiasa/message-ix-models/pull/206?src=pr&el=tree&filepath=message_ix_models%2Ftests%2Ftools%2Fcosts%2Ftest_projections.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iiasa#diff-bWVzc2FnZV9peF9tb2RlbHMvdGVzdHMvdG9vbHMvY29zdHMvdGVzdF9wcm9qZWN0aW9ucy5weQ==) | `100.0% <ø> (ø)` | | | [...tests/tools/costs/test\_regional\_differentiation.py](https://app.codecov.io/gh/iiasa/message-ix-models/pull/206?src=pr&el=tree&filepath=message_ix_models%2Ftests%2Ftools%2Fcosts%2Ftest_regional_differentiation.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iiasa#diff-bWVzc2FnZV9peF9tb2RlbHMvdGVzdHMvdG9vbHMvY29zdHMvdGVzdF9yZWdpb25hbF9kaWZmZXJlbnRpYXRpb24ucHk=) | `100.0% <ø> (ø)` | |
measrainsey commented 4 months ago

Sorry, I forgot to check the tests 🤦🏻‍♀️ Turns out they were failing because tests.costs was still checking for the previous solar and wind technologies. I also had to add some of the new technologies to data/technology.yaml, which is used in test_bare_res() in tests.costs, otherwise that test would fail.

https://github.com/iiasa/message-ix-models/blob/48454fd8b367e2d9786d063d6239b120eae02bd0/message_ix_models/data/technology.yaml#L594-L606

Because I added these new technologies, I also had to update some of the tests in tests.model to reflect that the number of technologies have changed from 377 to 381.

All checks passing now, but let me know if my changes might be problematic.

measrainsey commented 3 months ago

Just a note that I added some more technologies: 2005, 2010, 2015, and 2025 bins for the _hist solar and wind technologies. Tests and the technology.yaml have been updated to reflect this as well.

khaeru commented 2 months ago

@measrainsey @glatterf42 from my POV this is (a) up to date with rebase and (b) approved. Can we now merge?

measrainsey commented 2 months ago

@measrainsey @glatterf42 from my POV this is (a) up to date with rebase and (b) approved. Can we now merge?

Yep - if all good with everyone, I'm happy to merge. Thanks!

glatterf42 commented 2 months ago

Rebased to resolve conflicts in doc/whatsnew, but should be good to go :)