add air-sourced heat pumps to rural areas

This commit is contained in:
Fabian Neumann 2024-01-23 18:41:52 +01:00
parent 9f0555863b
commit 2d12f7ddd0
2 changed files with 24 additions and 20 deletions

View File

@ -28,6 +28,8 @@ Upcoming Release
* Cluster residential and services heat buses by default. Can be disabled with ``cluster_heat_buses: false``. * 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.
PyPSA-Eur 0.9.0 (5th January 2024) PyPSA-Eur 0.9.0 (5th January 2024)
================================== ==================================

View File

@ -1803,28 +1803,30 @@ def add_heat(n, costs):
## Add heat pumps ## Add heat pumps
heat_pump_type = "air" if "urban" in name else "ground" heat_pump_types = ["air"] if "urban" in name else ["ground", "air"]
costs_name = f"{name_type} {heat_pump_type}-sourced heat pump" for heat_pump_type in heat_pump_types:
efficiency = (
cop[heat_pump_type][nodes[name]]
if options["time_dep_hp_cop"]
else costs.at[costs_name, "efficiency"]
)
n.madd( costs_name = f"{name_type} {heat_pump_type}-sourced heat pump"
"Link", efficiency = (
nodes[name], cop[heat_pump_type][nodes[name]]
suffix=f" {name} {heat_pump_type} heat pump", if options["time_dep_hp_cop"]
bus0=nodes[name], else costs.at[costs_name, "efficiency"]
bus1=nodes[name] + f" {name} heat", )
carrier=f"{name} {heat_pump_type} heat pump",
efficiency=efficiency, n.madd(
capital_cost=costs.at[costs_name, "efficiency"] "Link",
* costs.at[costs_name, "fixed"], nodes[name],
p_nom_extendable=True, suffix=f" {name} {heat_pump_type} heat pump",
lifetime=costs.at[costs_name, "lifetime"], 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"]: if options["tes"]:
n.add("Carrier", name + " water tanks") n.add("Carrier", name + " water tanks")