pypsa-eur
pypsa-eur copied to clipboard
feat: add river-water and sea-water sourced heat pumps
Closes # (if applicable).
Changes proposed in this Pull Request
This PR adds potential river-water and sea-water sourced heat pumps based on the implementations by @MajaHIC, @juboerms and @felix-land:
- retrieval of HERA data for river discharge and ambient temperature
- retrieval of Copernicus data for seawater temperatures
- Computation of river-water heat potentials per onshore region (approximation of river water temperature from ambient temperature based on Triebs & Tsatsaronis 2022
- Mapping of seawater temperatures to onshore regions
- Spatial limitation of river-water and sea-water heat to district heating areas (Manz et al. 2024)
- For both river water and sea water, DEA's excess-heat-sourced heat pumps are assumed for cost data - improvement to be tracked in separate issue
- Added interactive plotting of heat source maps for air, river water and sea water (temperature and, where available energy)
- Added interactive plotting of COPs
- Optional interactive plotting of bus balances, s.t. matching string pattern (
plotting:interactive_bus_balance:bus_name_pattern), defaults toNone
Open TODOs
- [x] Introduce lower temperature threshold for sea water utilisation
- [x] Add Copernicus data to bundle
- [x] Add copyright notice for Copernicus data
- [x] Update data retrieval
- [x] Add plotting procedure for heat potentials
- [x] Final sanity checks
Checklist
- [x] I tested my contribution locally and it works as intended.
- [x] Code and workflow changes are sufficiently documented.
- [x] Changed dependencies are added to
envs/environment.yaml. - [x] Changes in configuration options are added in
config/config.default.yaml. - [x] Changes in configuration options are documented in
doc/configtables/*.csv. - [x] Sources of newly added data are documented in
doc/data_sources.rst. - [x] A release note
doc/release_notes.rstis added.
To be tracked in separate issues
- Scaling of heat pump investment costs: #1705
- Restriction of sea-water heat usage: #1706
Testing
Note: I've made these test runs with sea-water heat pump investment costs set to those of air-sourced heat pumps (fixed now but the results have not been re-computed).
Test config
scenario:
clusters:
- 30 # number of clusters
clustering:
resolution_sector: 5h
sector:
heat_pump_sources:
urban central:
- air
- sea_water
- river_water
- geothermal
plotting:
heat_source_map:
enable: true
countries: ['DE', 'DK', 'AT']
electricity:
renewable_carriers: [solar, solar-hsat, onwind, offwind-ac, offwind-dc, offwind-float]
Results
District heat balances
Sea-water heat pumps are built extensively, river-water heat pumps only sparingly. This is expected, due to unlimited sea-water use and river-water heat pump investment costs likely being overestimated.
Example of COP plot
Example of heat source plot
(river water temperature)
The failing CI is a little odd: System.IO.IOException: No space left on device : '/home/runner/actions-runner/cached/_diag/Worker_20250526-162559-utc.log'
Maybe @lkstrp can help?
Here is a first batch of comments, mainly reflecting my observations when testing the feature in PyPSA-DE Thanks! I've incorporated your comments.
So far, test results suggest a CAPEX-based competition between air and water-sourced HPs. With the current costs (to be changed with #1748 ), river-water sourced heat pumps are more expensive and not built. I'd suggest to analyse this further after integrating this feature into #1748.
My intuition is that, without a high spatial resolution and focus on district heating, air-sourced heat pumps could remain proxies for surface-water heat pumps. That's why I'd suggest deactivating the latter in config.default.yaml but include them in testing.
@cpschau Thanks for the feedback! I've resolved most issues. Feel free to commentto / resolve the remaining comments if you disagree.
@cpschau @fneum Thanks for the comments! Should all be addressed. Only the failing CI remains to be solved. Maybe @lkstrp can help?
There were a range of comments that are collapsed. Could you double-check these were addressed too?