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

Implements hourly_supply_electricity_from_renewables and hourly_share_electricity_from_renewables #2813

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

thesethtruth
Copy link

@thesethtruth thesethtruth commented Nov 30, 2022

To discuss:

  • Is this the correct implementation or should I use sustainability_share?
  • Have I included the right technologies (that should be considered renewables)?
  • How to deal with import?
  • How to deal with curtailment/flexibility?

To implement:

  • Correctly determine the share of renewability of the waste (it's a mix of biogenic & non-biogenic)

@thesethtruth thesethtruth changed the title Implements hourly_supply_electricity_from_renewable and hourly_share_electricity_from_renewables Implements hourly_supply_electricity_from_renewables and hourly_share_electricity_from_renewables Nov 30, 2022
@thesethtruth thesethtruth marked this pull request as ready for review November 30, 2022 10:03
@thesethtruth
Copy link
Author

Notifying @noracato and @marliekeverweij.

We want to use such a curve in https://github.com/ZEnMo/Holon-webapp, for now I will just implement this query at our side.

@marliekeverweij
Copy link
Contributor

marliekeverweij commented Nov 30, 2022

Is this the correct implementation or should I use sustainability_share?

Yes, this is the correct implementation. The only risk is in the supply query... if we add new carriers, updating that query could easily be forgotten. But cannot think of another way!

Have I included the right technologies (that should be considered renewables)?

Almost, only waste is not renewable at all times. It's a mix of biogenic & non-biogenic, so we have to do the same trick as for the power plants using network gas: spllitting up the queries into electricity from green gas and electricity from natural gas.

I could pick this up. What is the urgency of this improvement?

How to deal with import?

Good question. In the ETM we consider import as not renewable because on a yearly basis there are always emissions related and we do not have information about the renewable fraction per hour.

How to deal with curtailment/flexibility?

I do not think we have to deal with this, as we are looking at the electricity production. What were your thoughts on this?

@thesethtruth
Copy link
Author

Thanks for the swift reply @marliekeverweij!

  1. Agreed on the risk of adding new carriers, we'll just have to keep an eye open for new renewable technologies!
  2. I've created a task based on your comment on the waste not being completely renewable. Implementation can wait, I'll track it a tech debt over at Track and resolve technical debt towards MVP Zenmo/Holon-webapp#175. For now, it's implemented as multiple queries that are processed in the module itself.
  3. Nice. Let's not deal with import in that case.
  4. My train of thought was that if renewable energy is being produced in each of those hourly curves but subsequently curtailed due to supply overload, it should not be considered part of the renewable fraction of production. But including the hourly curtailment for each non dispatchable technology might be complicated?

@marliekeverweij
Copy link
Contributor

  1. Yess!
  2. Alright!
  3. 👍
  4. Thanks for sharing your thoughts. Tracking the hourly curtailment of each volatile power plant is indeed not easy and something that's not possible at the moment in the ETM. If this is something that's desired?

@thesethtruth
Copy link
Author

Thanks for sharing your thoughts. Tracking the hourly curtailment of each volatile power plant is indeed not easy and something that's not possible at the moment in the ETM. If this is something that's desired?

I think that for our current use case it is fair enough to approximate it without tracking curtailment, considering that it would be more complicated to properly implement that. However, I think it would be right to add a disclaimer (comment in the gql?) that states this limitation. It would be possible to generate an ETM scenario that is utterly overloaded on volatile renewable energy sources which might skew the share of renewables as a result.

Perhaps we should also add a comment that disclaims the dependency on manually adding all renewable energy carriers in the summing query.

@thesethtruth
Copy link
Author

It would be possible to generate an ETM scenario that is utterly overloaded on volatile renewable energy sources which might skew the share of renewables as a result.

Actually, thinking about this again, it might not hold due to the copper plate approach in the ETM? The reason I was thinking of simultaneous curtailment and production was due to local net contraints (e.g. a solar plant is outputting power but is being curtailed because of local (LV, MV) network constraints. Correct me if I'm wrong, but that can't happen in the ETM?

Then; curtailment would only occur when the production out sizes the demand. This impacts the consumption of renewable energy (since not all is consumed because a part is curtailed) but does not affect the share of renewable energy, it would remain at 100% renewable.

The only exception I can think of is that of must-run energy sources. What is the 'merit' or curtailment? Could it occur that volatile renewables are curtailed in favor of keeping must-run sources running? In that case, the share of renewables would be overestimated because of curtailment.

@marliekeverweij
Copy link
Contributor

Actually, thinking about this again, it might not hold due to the copper plate approach in the ETM? The reason I was thinking of simultaneous curtailment and production was due to local net contraints (e.g. a solar plant is outputting power but is being curtailed because of local (LV, MV) network constraints. Correct me if I'm wrong, but that can't happen in the ETM?

True! All volatile producers can deliver their production to the net. However, you can do curtailment / overplanting in the ETM: install more capacity than the grid connection (see here). This does not influence the renewability fraction as this type of curtailment is already subtracted from production.

Then; curtailment would only occur when the production out sizes the demand. This impacts the consumption of renewable energy (since not all is consumed because a part is curtailed) but does not affect the share of renewable energy, it would remain at 100% renewable.

Yes.

The only exception I can think of is that of must-run energy sources. What is the 'merit' or curtailment? Could it occur that volatile renewables are curtailed in favor of keeping must-run sources running? In that case, the share of renewables would be overestimated because of curtailment.

Volatile producers and must-run producers both deliver all their electricity to the net. If the total production exceeds total demand, then curtailment takes place; we sometimes call this type of curtailment last-resort curtailment. I am not sure if this should impact the renewability fraction of produced electricity..

@github-actions
Copy link

github-actions bot commented Feb 1, 2023

This pull request has had no activity for 60 days and will be closed in 7 days. Removing the "Stale" label or posting a comment will prevent it from being closed automatically. You can also add the "Pinned" label to ensure it isn't marked as stale in the future.

@github-actions github-actions bot added the Stale Issue had no activity for 60 days and will be, or has been, closed. label Feb 1, 2023
@github-actions github-actions bot closed this Feb 9, 2023
@thesethtruth
Copy link
Author

@mabijkerk Previously I talked with @marliekeverweij about this issue. Is it still something you would like to implement? I could try to update the PR?

@mabijkerk mabijkerk reopened this Feb 10, 2023
@mabijkerk mabijkerk removed the Stale Issue had no activity for 60 days and will be, or has been, closed. label Feb 10, 2023
@mabijkerk mabijkerk self-requested a review February 10, 2023 14:54
@mabijkerk
Copy link
Member

Thanks for notifying me about this PR @thesethtruth. I can pick this up, but I do have two questions:

1. Imports of electricity

  • I saw your discussion about excluding imported electricity in the selection of renewables. This seems fine to me.
  • However, if you're interested in the share of renewable production in the total electricity supply at every hour, then I think you should include import in the total electricity supply.
  • In other words: import should be added to the denominator in the hourly_share_electricity_from_renewables query.
  • Do you agree?
  • In that case, the query hourly_production_electricity should be replaced by hourly_total_electricity_production

2. Waste

  • If I read the discussion correctly, the waste still needs to be split into biogenic and non-biogenic is that right?

@thesethtruth
Copy link
Author

In other words: import should be added to the denominator in the hourly_share_electricity_from_renewables query.
Do you agree?

Right, that makes sense!

If I read the discussion correctly, the waste still needs to be split into biogenic and non-biogenic is that right?

Correct. If you can point me in the right direction I might be able to do this myself. (an example perhaps?)

mabijkerk added a commit that referenced this pull request Feb 17, 2023
@mabijkerk
Copy link
Member

mabijkerk commented Feb 17, 2023

I have added two queries to master which you can now use in your hourly_supply_electricity_from_renewables query instead of the generic waste query. You can check the commits that reference this PR for more information.

After updating the waste query and changing hourly_production_electricity to hourly_total_electricity_production I think we can merge this! 🙌

@mabijkerk
Copy link
Member

mabijkerk commented Mar 16, 2023

Two final notes on this:

  • Since hydrogen is not produced from renewable sources by default, should we implement it in this way?
  • Is uranium actually recognized as renewable?

We may have to look into it some more and see if we can come up with a more robust solution. In the meantime I have used the following custom query to retrieve hardcoded results from the KEV scenario:

DIVIDE_CURVES(
  SUM_CURVES(
    Q(hourly_supply_electricity_from_biogas),
    Q(hourly_supply_electricity_from_biomass),
    Q(hourly_supply_electricity_from_geothermal),
    Q(hourly_supply_electricity_from_greengas),
    Q(hourly_supply_electricity_from_hydro),
    Q(hourly_supply_electricity_from_hydrogen),
    Q(hourly_supply_electricity_from_solar),
    Q(hourly_supply_electricity_from_uranium),
    Q(hourly_supply_electricity_from_biogenic_waste),
    Q(hourly_supply_electricity_from_wind)
    ),
  Q(hourly_total_electricity_production)
)

@github-actions
Copy link

This pull request has had no activity for 60 days and will be closed in 7 days. Removing the "Stale" label or posting a comment will prevent it from being closed automatically. You can also add the "Pinned" label to ensure it isn't marked as stale in the future.

@github-actions github-actions bot added the Stale Issue had no activity for 60 days and will be, or has been, closed. label May 16, 2023
@mabijkerk mabijkerk removed the Stale Issue had no activity for 60 days and will be, or has been, closed. label May 16, 2023
@thesethtruth
Copy link
Author

I'm sure at some point we'll find the time to implement this!

@github-actions
Copy link

This pull request has had no activity for 60 days and will be closed in 7 days. Removing the "Stale" label or posting a comment will prevent it from being closed automatically. You can also add the "Pinned" label to ensure it isn't marked as stale in the future.

@github-actions github-actions bot added the Stale Issue had no activity for 60 days and will be, or has been, closed. label Jul 16, 2023
@mabijkerk mabijkerk added Pinned Will never be marked as stale or auto-closed. and removed Stale Issue had no activity for 60 days and will be, or has been, closed. labels Jul 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Pinned Will never be marked as stale or auto-closed.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants