-
Notifications
You must be signed in to change notification settings - Fork 258
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
Add geothermal-sourced central heat pumps #1359
Conversation
Validator ReportI am the Validator. Download all artifacts here. ❗ Run failed!Download 'logs' artifact to see more details.
Model Metrics Comparing |
for more information, see https://pre-commit.ci
…ds sink outlet temperature
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
…s' into add-geothermal-sourced-heat-pumps
Note: unpack() doesn't work in snakemake output, so geothermal is specified explicitly as only heat source!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks very good and clean to me! I have only two formal remarks about the data documentation and the technology data version referenced in the config. I would agree to to keep it turned off, until a reasonable value is found for the upper bound. For the latter, one could maybe use the open data from the seenergies project.
Thanks for the review, @cpschau! I've fixed the docs and |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Look good! Small change requests.
for more information, see https://pre-commit.ci
…s' into add-geothermal-sourced-heat-pumps
Co-authored-by: Fabian Neumann <[email protected]>
Co-authored-by: Fabian Neumann <[email protected]>
for more information, see https://pre-commit.ci
…s' into add-geothermal-sourced-heat-pumps
* feat: add utilisation potential retrieval * feat: add build_heat_source_potentials module * feat: update config * feat: extend retrieve.smk * feat: pass potential to update prepare_sector_network * feat: update cop profile module * feat: update build_sector.smk accordingly * fix: use generator + links for heat source * clean up run.py * feat: generalise 'geothermal' to any heat source in Fraunhofer data * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * chor: simplify indexing * style: rename potentials var * fix: return 0 for COP calculation when source inlet temperature exceeds sink outlet temperature * refactor: remove unused function and clean up code in build_cop_profiles.run.py * style: clean-up comments in OnshoreRegionData.py and prepare_sector_network.py * feat: add direct heat source utilisation when source temp > forward temp * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * feat: add costs for geothermal heat source * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * style: pre-commit, add dev to gitignore * feat: replace access to config with unpack where possible Note: unpack() doesn't work in snakemake output, so geothermal is specified explicitly as only heat source! * feat: replace dict access to config in snakemake * doc: add docstrings, clean up code * docs: update release notes * doc: update configtables * doc: update data sourcs * update docs * Update config/config.default.yaml Co-authored-by: Lukas Trippe <[email protected]> * docs: fix data-retrieval docs * feat: turn off geothermal DH heat by default * style: remove "fraunhofer_" in naming * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * style: use snakemake.wildcards.heat_sources rather than additional param * Update doc/configtables/sector.csv Co-authored-by: Fabian Neumann <[email protected]> * Update doc/configtables/sector.csv Co-authored-by: Fabian Neumann <[email protected]> * docs: update sector.csv * refactor: refactor scaling factor calculation in run.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * docs: add direct_utilisation_heat_sources to configtables * udpate release_notes --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Lukas Trippe <[email protected]> Co-authored-by: Fabian Neumann <[email protected]>
This feature adds geothermal-sourced central heating based on utilisation potentials by Manz et al. and technology data from the DEA techn. catalogue.
Changes proposed in this Pull Request
-
retrieve_fraunhofer_heat_source_utilisation_potentials
: retrieve heat source potentials for those heat sources set inconfig
undersector:district_heating:fraunhofer_heat_utilisation_potentials
if the respective source is listed in theconfig
undersector:heat_pump_sources:urban_central
-
build_heat_source_potentials
: map utilisation potentials to onshore-regions and scale them by a) FLH and b) unit (input is TWh)build_cop_profiles
: a) COP for fixed-source temperature geothermal heat is computed as for air-sourced heat pumps, b) for all sources: COP is set to zero if source temperature exceeds forward temperaturebuild_direct_heat_source_utilisation_potentials
: generates profiles in the same format as COP profiles. 1, when (where) forward temperature above source temperature, 0 otherwise.prepare_sector_network
: If heat pump source is infraunhofer_heat_sources
, then add a generator. The corresponding heat pumps convert1 MWe
(electricity) +(COP - 1) MWth
(geothermal heat) toCOP MWth
usable central heat. Also add a direct-utilisation-link (using the aforementioned profiles) that converts the heat source to urban central heat 1-to-1.Notes
config
setting points to thetechnology-data
master, rather than the latest release. I'm not entirely sure how to resolve that.Checklist
envs/environment.yaml
.config/config.default.yaml
.doc/configtables/*.csv
.doc/data_sources.rst
.doc/release_notes.rst
is added.Testing
I've used the following config for testing:
with the following
scenarios.yaml
:Results for the
![image](https://private-user-images.githubusercontent.com/60692940/390831984-92896cce-e74d-4b44-ae3a-b46046c4725a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMDQ1NzAsIm5iZiI6MTczOTAwNDI3MCwicGF0aCI6Ii82MDY5Mjk0MC8zOTA4MzE5ODQtOTI4OTZjY2UtZTc0ZC00YjQ0LWFlM2EtYjQ2MDQ2YzQ3MjVhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDA4NDQzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZlMTVjYTc3ZDkyZjUwMjEyOGQyODAzNWM2NDY5Njk4OTU4N2RhZmU5ODM0NGU4NjMyZjI4OGIzYWRlZGI0ZWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Qq44ZXjPSvuq9_RNSLIZ4Di0woI9IXMayKHuGMlj4Iw)
no-geothermal-365h
scenario seem like a reasonable baseline:In the
![image](https://private-user-images.githubusercontent.com/60692940/390832273-9d42a706-c7c4-4050-8b39-ca82f08573a2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMDQ1NzAsIm5iZiI6MTczOTAwNDI3MCwicGF0aCI6Ii82MDY5Mjk0MC8zOTA4MzIyNzMtOWQ0MmE3MDYtYzdjNC00MDUwLThiMzktY2E4MmYwODU3M2EyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDA4NDQzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTcwOWNlNDEyZDA2MThjN2UzMjQxOWU0NTgwMDRlZDdhMDQ0OWQ1NDkxNDRhMGJlY2Q1NGY0M2ZlNjM4M2E4ZDUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Vbuqul2yU_V8VIjUE5McFTIXp3tCfa1gcRJxYAw_Kw8)
geothermal-365h
scenario, it becomes apparent that we need to use a high spatial resolution, since geothermal heat utilisation varies strongly going from 6 to 20 to 60 clusters (note that the order in the plot is 20, 6, 60):I've quickly checked this and we can see that, if for each region, the geothermal potential is capped by the heat demand (i.e. we take the max. of the two per region) and sum over regions, this number decreases with an increasing number of clusters:
![image](https://private-user-images.githubusercontent.com/60692940/391036970-ce5f595a-67e1-4ddc-b8f8-b45a11df2dab.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMDQ1NzAsIm5iZiI6MTczOTAwNDI3MCwicGF0aCI6Ii82MDY5Mjk0MC8zOTEwMzY5NzAtY2U1ZjU5NWEtNjdlMS00ZGRjLWI4ZjgtYjQ1YTExZGYyZGFiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDA4NDQzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTcyMzlkNWM3ZDNkMmY3YzMzOTE5YTI2NGJhYjEwYTZlZTM4ZDBhZDQ1YjAwMDM3M2M0OTI2ZjhhNzU5YjQ0M2YmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.EP-6UCnm9csCLfL1LSCDGDhIDt_KSfTjaEm_C-aZSRc)
Hence, I propose to turn this feature off by default (I'm just leaving this turned on for the CI but would change this before merging - so please do not merge (or turn off geothermal heat in the config).