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

Bugfix: windoff capacity factor was too low #1853

Merged
merged 2 commits into from
Oct 11, 2024

Conversation

lecfab
Copy link
Contributor

@lecfab lecfab commented Oct 4, 2024

Purpose of this PR

This PR puts fixes vm_capFac windoff that had very low near-term values in most regions. I think it is good to integrate this PR as part of the release validation.

VRE capacity factors are interpolated between historical values (p_aux_capacityFactorHistOverREMIND) and a default factor 1. For offshore however, p_aux_capacityFactorHistOverREMIND was not set in some regions, therefore taking the value zero and leading to very low capacity factors in the near-term:

# /p/projects/remind/modeltests/remind/output/SSP2-PkBudg650-AMT_2024-09-28_01.49.00/
# dumpgdx fulldata.gdx vm_capFac 202.*,windoff,l,
# 2020
2020  LAM  windoff  L  0.25
2020  OAS  windoff  L  0.25
2020  SSA  windoff  L  0.25
2020  EUR  windoff  L  0.772409095660856
2020  NEU  windoff  L  0.25
2020  MEA  windoff  L  0.25
2020  REF  windoff  L  0.25
2020  CAZ  windoff  L  0.25
2020  CHA  windoff  L  0.59905006244186
2020  IND  windoff  L  0.25
2020  JPN  windoff  L  0.25
2020  USA  windoff  L  0.25
# 2025
2025  LAM  windoff  L  0.5
2025  OAS  windoff  L  0.5
2025  SSA  windoff  L  0.5
2025  EUR  windoff  L  0.848272730440571
2025  NEU  windoff  L  0.5
2025  MEA  windoff  L  0.5
2025  REF  windoff  L  0.5
2025  CAZ  windoff  L  0.5
2025  CHA  windoff  L  0.732700041627907
2025  IND  windoff  L  0.5
2025  JPN  windoff  L  0.5
2025  USA  windoff  L  0.5

Type of change

(Make sure to delete from the Type-of-change list the items not relevant to your PR)

  • Bug fix
  • Refactoring
  • New feature
  • Minor change (default scenarios show only small differences)
  • Fundamental change
  • This change requires a documentation update

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
  • All automated model tests pass (FAIL 0 in the output of make test)
  • The changelog CHANGELOG.md has been updated correctly

Further information (optional):

  • Test runs are here: /p/tmp/fabricel/offshoreRemind09/compScen-windFixCFall-2024-10-07_17.28.43-H12-short.pdf Scenarios xxx.1 are the ones with the corrected capacity factors.
  • Comparison of results (what changes by this PR?): Minor differences in NPi.
  • A lot changes in the energy mix of Peak650. More offshore and less onshore, especially in some regions like JPN. Fossils go down more quickly and stay longer in the mix. Carbon price in 2050 is way lower, 650 instead of 870. But all of that could be due to other PRs in the meantime. I think it is good to integrate this PR as part of the release validation.

SE electricity

image

PE

image

@lecfab lecfab added the bug Something isn't working label Oct 8, 2024
p_aux_capacityFactorHistOverREMIND(regi,teVRE) $ (p_histCapFac("2015",regi,teVRE) and p_avCapFac2015(regi,teVRE)) =
p_histCapFac("2015",regi,teVRE) / p_avCapFac2015(regi,teVRE);

loop(t $ (t.val ge 2015 AND t.val lt 2030),
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 consistency, all teVRE now scale their capacity factor between 2015 and 2030. Happy to change that if something else makes more sense @robertpietzcker. Also we could think of using 2020 historical cf instead of 2015.

Previously, it was different for each technology but i could not find why:

  • spv scaled from 2015 to 2030.
  • csp did not use historical cf.
  • wind scaled from 2015 to 2035 (but comments said 2045).
  • windoff scaled from 2015 to 2035 but with missing data causing the bug.


loop(t $ (t.val ge 2015 AND t.val lt 2030),
pm_cf(t,regi,teVRE) =
pm_cf(t,regi,teVRE) !! always 1 for VRE in f_cf, but could be modified by modules
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Before these lines, pm_cf is always 1 for teVRE. It might be modified by modules though .. but i think this would then happen later in the code.
In conclusion, i think we can delete this factor, but not sure..
@robertpietzcker @LaviniaBaumstark

@lecfab lecfab marked this pull request as ready for review October 9, 2024 08:39
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.

thanks for finding and fixing this!

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.

Nice catch!

@lecfab lecfab merged commit 383e131 into remindmodel:develop Oct 11, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants