Skip to content

Commit

Permalink
Merge pull request #890 from PyPSA/air-hp-rural
Browse files Browse the repository at this point in the history
add air-sourced heat pumps to rural areas
  • Loading branch information
fneum authored Jan 24, 2024
2 parents 17d0e16 + bdc36dc commit da1e286
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 21 deletions.
4 changes: 4 additions & 0 deletions doc/release_notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,12 @@ Upcoming Release

* Cluster residential and services heat buses by default. Can be disabled with ``cluster_heat_buses: false``.

* Air-sourced heat pumps can now also be built in rural areas. Previously, only
ground-sourced heat pumps were considered for this category.

* Bugfix: Correctly read out number of solver threads from configuration file.


PyPSA-Eur 0.9.0 (5th January 2024)
==================================

Expand Down
43 changes: 22 additions & 21 deletions scripts/prepare_sector_network.py
Original file line number Diff line number Diff line change
Expand Up @@ -1803,28 +1803,29 @@ def add_heat(n, costs):

## Add heat pumps

heat_pump_type = "air" if "urban" in name else "ground"

costs_name = f"{name_type} {heat_pump_type}-sourced heat pump"
efficiency = (
cop[heat_pump_type][nodes[name]]
if options["time_dep_hp_cop"]
else costs.at[costs_name, "efficiency"]
)
heat_pump_types = ["air"] if "urban" in name else ["ground", "air"]

for heat_pump_type in heat_pump_types:
costs_name = f"{name_type} {heat_pump_type}-sourced heat pump"
efficiency = (
cop[heat_pump_type][nodes[name]]
if options["time_dep_hp_cop"]
else costs.at[costs_name, "efficiency"]
)

n.madd(
"Link",
nodes[name],
suffix=f" {name} {heat_pump_type} heat pump",
bus0=nodes[name],
bus1=nodes[name] + f" {name} heat",
carrier=f"{name} {heat_pump_type} heat pump",
efficiency=efficiency,
capital_cost=costs.at[costs_name, "efficiency"]
* costs.at[costs_name, "fixed"],
p_nom_extendable=True,
lifetime=costs.at[costs_name, "lifetime"],
)
n.madd(
"Link",
nodes[name],
suffix=f" {name} {heat_pump_type} heat pump",
bus0=nodes[name],
bus1=nodes[name] + f" {name} heat",
carrier=f"{name} {heat_pump_type} heat pump",
efficiency=efficiency,
capital_cost=costs.at[costs_name, "efficiency"]
* costs.at[costs_name, "fixed"],
p_nom_extendable=True,
lifetime=costs.at[costs_name, "lifetime"],
)

if options["tes"]:
n.add("Carrier", name + " water tanks")
Expand Down

0 comments on commit da1e286

Please sign in to comment.