Skip to content

Decoupling Waste Sector from Biomass and Industry Config #1654

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

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

Conversation

toniseibold
Copy link
Contributor

@toniseibold toniseibold commented Apr 25, 2025

Closes #1638

Changes proposed in this Pull Request

This PR decouples the waste streams from the biomass and industry config.
So far, non-sequestered HVC was only accounted for if the industry sector was enabled since it was added with the production of naphtha for industry.
Municipal solid waste was added in the function add_biomass.

This PR treats waste as any other sector, collects the data needed (from biomass potentials and the industry demand) and adds buses for non-sequestered HVC and municipal solid waste for each bus region or Europe.

In case there is no technology activated to use the waste msw is not added since the incineration is carbon neutral as of European law.
In case any of config["waste"]["waste_to_energy"] or config["waste"]["waste_to_energy_cc"] is activated, the msw is added to the non-sequestered HVC potential with negative emissions since those are emitted later with the CHPs.

Checklist

  • I tested my contribution locally and it works as intended.
  • Code and workflow changes are sufficiently documented.
  • Changed dependencies are added to envs/environment.yaml.
    not applicable
  • Changes in configuration options are added in config/config.default.yaml.
  • Changes in configuration options are documented in doc/configtables/*.csv.
  • Sources of newly added data are documented in doc/data_sources.rst.
    not applicable
  • A release note doc/release_notes.rst is added.

Tests I ran to make sure the code works as intended:

  • Waste volume supplied by the generators adds up to the potential from the .csv files in all cases (also with waste transport enabled)
  • Code runs with all combinations of the newly introduced config settings
  • Exception that waste_spatial=False and [waste][transport] is caught by not allowing transport in that case
  • Config settings of waste=False and industry=True leads to co2 emissions in the naphtha for industry link
  • Emitted co2 stays constant

@toniseibold
Copy link
Contributor Author

Transport of msw and non-sequestered HVC is not modeled. However, when config["waste"]["enable"] == True the European potential can be used in each bus region where the model sees fit. I'm wondering if I should just allow the options False and True the latter being the regional implementation.

@toniseibold toniseibold requested a review from lindnemi April 25, 2025 14:28
@lindnemi
Copy link
Contributor

lindnemi commented Apr 25, 2025

Great to see you are getting started on this! Here are a few more thoughts:

  • While we are at it we could clarify the naming a bit. Most importantly, i'd suggest to simply have a solid waste bus. At the moment there would be two potential supply streams for this bus: municipal solid waste and HVC waste (which is now called non-sequestered HVC), and three withdrawal stream: waste_to_energy, waste_to_energy_cc and waste_to_air (now called HVC to air).

  • This would also allow to unify the transport. By activating a new config solid_waste_transport all content of the solid waste bus could be transported. For starters, I think we can simply take over the way it is done for biomass/msw in the current master.

  • instead of the option waste:enable:regional/true, we should have two keys: sector:waste:true/false and waste:regional:true/false, to mimick the way it is done for e.g. industry

Let's discuss the details on Monday :)

@fneum
Copy link
Member

fneum commented Apr 28, 2025

xref #1625 (comment)

@toniseibold
Copy link
Contributor Author

I'm not sure if the transport of waste is really necessary - but the option is there.
I also feel a bit unsure about whether it's really necessary to add a whole new config[waste] or if it is better to keep it all in config[sector]
If you have any ideas of how I can visualize the test I did - please let me know.

@toniseibold toniseibold marked this pull request as ready for review April 30, 2025 07:09
@toniseibold toniseibold requested a review from fneum April 30, 2025 09:14
bus3=spatial.co2.process_emissions,
carrier="naphtha for industry",
p_nom_extendable=True,
efficiency2=emitted_co2_per_naphtha * non_sequestered,
Copy link
Contributor

Choose a reason for hiding this comment

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

@fneum I understand the wish to keep existing functionality, but for me one of the major points for this PR was to get rid of this rather obscure part of the model. I would prefer to have the waste emissions where they occur in the real world, i.e. in the waste sector rather than in the industry demand.

If you are worried about additional links: We could configure the default case to be an active waste sector with only one EU load for HVC waste. This would lead to only 1 additional link. Besides, if the right constraints are in place, the setup of generator + link + load is completely determined, and i hope that gurobi would be smart enough to eliminate it during presolve (not sure about that though, could be a good question for the Gurobi workshop in June)

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.

Waste As Individual Config Setting
3 participants