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

Electricity Generation Through Enhanced Geothermal Systems #298

Open
wants to merge 1,538 commits into
base: master
Choose a base branch
from

Conversation

LukasFrankenQ
Copy link

@LukasFrankenQ LukasFrankenQ commented Feb 7, 2023

Addresses Issue PyPSA/pypsa-eur#541.

This PR adds potential for electricity generation through enhanced geothermal systems (EGS) as in this paper. The data's resolution is on the level of countries.

EGS draws heat from great depths (1-10 km) to achieve the temperatures of 100-150 C required for electricity generation through steam turbines or binary cycle power plants.

The EGS heat can also be used for (duh) heating. This is currently not implemented, as we are still in contact with the authors of the paper to obtain the relevant cost estimations. However, in terms of implementation both electricity and heat would be quite canonical, and in that sense I thought it sensible to move forward with the electricity part and create a new PR for heat at a later stage.

Open questions (that probably should find good answers before merging):

  1. Currently, the egs-scripts draw from egs_costs.xlsx (20kb) and egs_global_potential.xlsx (500kb), which are simply stored in data/. Is this okay or should they be added to the databundle?
  2. How EGS electricity changes the system is still under investigation. Its costs are assumed to be subject to a strong learning rate, and a naive (and temporally sparse) run with 2050 costs builds egs capacity up to the posed constraints in Germany, Austria, Switzerland and parts of Italy. I am currently setting up the infrastructure (i.e. the Edinburgh cluster) to test the implications more rigorously through experiments with multiple investment periods. Results will be summarized in a short report.
  3. The implementation uses pycountry, which is a tremendously slim package, which I would love to add to the environment.yaml. I suppose I would make a PR at pypsa/pypsa-eur for this?

Possible Improvements:

  1. Heat becomes available through drilling at various depths. Through the cost of drilling, potential becomes a function of LCOE, and the paper shares its data thus as: x MW available at LCOE <= 5 Euro/MWh, y MW available at LCOE of 5-10 Euro/MWh, etc.... The present implementation coarsens this binning, to the LCOE steps 0-50, 50-100, and 100-150 Euro/MWh. To accommodate the linear nature of the model, each of the bins is implemented as a separate generator sitting on the same bus. Our freedom with regards to choice of bins is limited, as it is dictated by the data provided through mail exchange with the paper authors. However, I am happy to discuss how we can obtain capital and marginal cost from LCOE, to make our own choice of binning, it should be possible while respecting the different discount rates etc..

  2. The implementation of heat and electricity could potentially be coupled, since EGS can lend itself to generation through CHP. Landau is such an example, where hot water from the well at 160 C is used for electricity generation and the residual heat with temperature 70-80 C for district heating. See here, here, and here.

Big thanks to @lisazeyen for tips along the way!

@LukasFrankenQ
Copy link
Author

Also, I do not know why github thinks I made a whole new Snakefile...

@LukasFrankenQ LukasFrankenQ changed the title Potential For Electricity Generation Through Enhanced Geothermal Systems Electricity Generation Through Enhanced Geothermal Systems Feb 7, 2023
@LukasFrankenQ LukasFrankenQ marked this pull request as draft February 8, 2023 14:19
@lisazeyen
Copy link
Collaborator

@LukasFrankenQ thanks a lot for your PR!
We should add the additional data to the data bundle and not the the github repository. Can you convert the excel to an csv and change the code accordingly?

config.default.yaml Outdated Show resolved Hide resolved
scripts/prepare_sector_network.py Outdated Show resolved Hide resolved
scripts/prepare_sector_network.py Outdated Show resolved Hide resolved
scripts/prepare_sector_network.py Outdated Show resolved Hide resolved
scripts/prepare_sector_network.py Outdated Show resolved Hide resolved
scripts/prepare_sector_network.py Outdated Show resolved Hide resolved
scripts/prepare_sector_network.py Outdated Show resolved Hide resolved
@LukasFrankenQ
Copy link
Author

@LukasFrankenQ thanks a lot for your PR! We should add the additional data to the data bundle and not the the github repository. Can you convert the excel to an csv and change the code accordingly?

Absolutely! Should I send them over to be added on zenodo?

LukasFrankenQ and others added 22 commits February 19, 2023 23:23
updates:
- [github.com/PyCQA/docformatter: v1.6.0.rc1 → v1.5.1](PyCQA/docformatter@v1.6.0.rc1...v1.5.1)
- [github.com/macisamuele/language-formatters-pre-commit-hooks: v2.6.0 → v2.7.0](macisamuele/language-formatters-pre-commit-hooks@v2.6.0...v2.7.0)
fneum and others added 30 commits March 23, 2023 13:40
Bugfix typo in CPLEX configuration settings
updates:
- [github.com/psf/black: 23.1.0 → 23.3.0](psf/black@23.1.0...23.3.0)
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.

None yet

6 participants