From 728d74caa889e42003a2146243c7ff9b9719cc3a Mon Sep 17 00:00:00 2001
From: Philipp Glaum
Date: Mon, 6 Nov 2023 15:46:46 +0100
Subject: [PATCH] update floating wind settings
---
config/config.default.yaml | 2 ++
config/test/config.electricity.yaml | 5 ++++-
config/test/config.myopic.yaml | 5 ++++-
config/test/config.overnight.yaml | 5 ++++-
config/test/config.perfect.yaml | 5 ++++-
doc/configtables/electricity.csv | 4 ++--
doc/configuration.rst | 20 ++++++++++++++++++--
doc/wildcards.rst | 4 ++--
rules/build_sector.smk | 1 +
scripts/plot_summary.py | 1 +
scripts/solve_network.py | 4 ++--
11 files changed, 44 insertions(+), 12 deletions(-)
diff --git a/config/config.default.yaml b/config/config.default.yaml
index e4541f80..dc4de3a3 100644
--- a/config/config.default.yaml
+++ b/config/config.default.yaml
@@ -211,6 +211,8 @@ renewable:
# until done more rigorously in #153
corine: [44, 255]
natura: true
+ ship_threshold: 400
+ excluder_resolution: 200
min_depth: 60
max_depth: 1000
potential: simple # or conservative
diff --git a/config/test/config.electricity.yaml b/config/test/config.electricity.yaml
index b750bf62..a2c90659 100644
--- a/config/test/config.electricity.yaml
+++ b/config/test/config.electricity.yaml
@@ -32,7 +32,7 @@ electricity:
Store: [H2]
Link: [H2 pipeline]
- renewable_carriers: [solar, onwind, offwind-ac, offwind-dc]
+ renewable_carriers: [solar, onwind, offwind-ac, offwind-dc, offwind-float]
atlite:
@@ -53,6 +53,9 @@ renewable:
offwind-dc:
cutout: be-03-2013-era5
max_depth: false
+ offwind-float:
+ cutout: be-03-2013-era5
+ max_depth: false
solar:
cutout: be-03-2013-era5
diff --git a/config/test/config.myopic.yaml b/config/test/config.myopic.yaml
index 0bb85ec6..8763f4d4 100644
--- a/config/test/config.myopic.yaml
+++ b/config/test/config.myopic.yaml
@@ -39,7 +39,7 @@ electricity:
Store: [H2]
Link: [H2 pipeline]
- renewable_carriers: [solar, onwind, offwind-ac, offwind-dc]
+ renewable_carriers: [solar, onwind, offwind-ac, offwind-dc, offwind-float]
atlite:
default_cutout: be-03-2013-era5
@@ -59,6 +59,9 @@ renewable:
offwind-dc:
cutout: be-03-2013-era5
max_depth: false
+ offwind-float:
+ cutout: be-03-2013-era5
+ max_depth: false
solar:
cutout: be-03-2013-era5
diff --git a/config/test/config.overnight.yaml b/config/test/config.overnight.yaml
index a2a0f5a4..121b58bb 100644
--- a/config/test/config.overnight.yaml
+++ b/config/test/config.overnight.yaml
@@ -36,7 +36,7 @@ electricity:
Store: [H2]
Link: [H2 pipeline]
- renewable_carriers: [solar, onwind, offwind-ac, offwind-dc]
+ renewable_carriers: [solar, onwind, offwind-ac, offwind-dc, offwind-float]
atlite:
default_cutout: be-03-2013-era5
@@ -56,6 +56,9 @@ renewable:
offwind-dc:
cutout: be-03-2013-era5
max_depth: false
+ offwind-float:
+ cutout: be-03-2013-era5
+ max_depth: false
solar:
cutout: be-03-2013-era5
diff --git a/config/test/config.perfect.yaml b/config/test/config.perfect.yaml
index c99f4122..9f54d244 100644
--- a/config/test/config.perfect.yaml
+++ b/config/test/config.perfect.yaml
@@ -39,7 +39,7 @@ electricity:
Store: [H2]
Link: [H2 pipeline]
- renewable_carriers: [solar, onwind, offwind-ac, offwind-dc]
+ renewable_carriers: [solar, onwind, offwind-ac, offwind-dc, offwind-float]
sector:
min_part_load_fischer_tropsch: 0
@@ -62,6 +62,9 @@ renewable:
offwind-dc:
cutout: be-03-2013-era5
max_depth: false
+ offwind-float:
+ cutout: be-03-2013-era5
+ max_depth: false
solar:
cutout: be-03-2013-era5
diff --git a/doc/configtables/electricity.csv b/doc/configtables/electricity.csv
index 4c04fee6..7d101b1e 100644
--- a/doc/configtables/electricity.csv
+++ b/doc/configtables/electricity.csv
@@ -24,13 +24,13 @@ custom_powerplants,--,"use `pandas.query `_. The value is depreciated but still can be used.
-- year,--,bool,Renewable capacities are based on existing capacities reported by IRENA (IRENASTAT) for the specified year
-- expansion_limit,--,float or false,"Artificially limit maximum IRENA capacities to a factor. For example, an ``expansion_limit: 1.1`` means 110% of capacities . If false are chosen, the estimated renewable potentials determine by the workflow are used."
-- technology_mapping,,,Mapping between PyPSA-Eur and powerplantmatching technology names
--- -- Offshore,--,"Any subset of {offwind-ac, offwind-dc}","List of PyPSA-Eur carriers that is considered as (IRENA, OPSD) onshore technology."
+-- -- Offshore,--,"Any subset of {offwind-ac, offwind-dc, offwind-float}","List of PyPSA-Eur carriers that is considered as (IRENA, OPSD) onshore technology."
-- -- Offshore,--,{onwind},"List of PyPSA-Eur carriers that is considered as (IRENA, OPSD) offshore technology."
-- -- PV,--,{solar},"List of PyPSA-Eur carriers that is considered as (IRENA, OPSD) PV technology."
diff --git a/doc/configuration.rst b/doc/configuration.rst
index ceda1141..4171bcc9 100644
--- a/doc/configuration.rst
+++ b/doc/configuration.rst
@@ -265,6 +265,23 @@ Define and specify the ``atlite.Cutout`` used for calculating renewable potentia
.. literalinclude:: ../config/config.default.yaml
:language: yaml
:start-at: offwind-dc:
+ :end-before: offwind-float:
+
+.. csv-table::
+ :header-rows: 1
+ :widths: 22,7,22,33
+ :file: configtables/offwind-dc.csv
+
+.. note::
+ Both ``offwind-ac`` and ``offwind-dc`` have the same assumption on
+ ``capacity_per_sqkm`` and ``correction_factor``.
+
+``offwind-float``
+---------------
+
+.. literalinclude:: ../config/config.default.yaml
+ :language: yaml
+ :start-at: offwind-float:
:end-before: solar:
.. csv-table::
@@ -273,9 +290,8 @@ Define and specify the ``atlite.Cutout`` used for calculating renewable potentia
:file: configtables/offwind-dc.csv
.. note::
- both ``offwind-ac`` and ``offwind-dc`` have the same assumption on
+ ``offwind-ac``, ``offwind-dc`` , ``offwind-float`` have the same assumption on
``capacity_per_sqkm`` and ``correction_factor``.
-
``solar``
---------------
diff --git a/doc/wildcards.rst b/doc/wildcards.rst
index 75eec192..d7b87489 100644
--- a/doc/wildcards.rst
+++ b/doc/wildcards.rst
@@ -35,8 +35,8 @@ The ``{technology}`` wildcard
The ``{technology}`` wildcard specifies for which renewable energy technology to produce availability time
series and potentials using the rule :mod:`build_renewable_profiles`.
-It can take the values ``onwind``, ``offwind-ac``, ``offwind-dc``, and ``solar`` but **not** ``hydro``
-(since hydroelectric plant profiles are created by a different rule).
+It can take the values ``onwind``, ``offwind-ac``, ``offwind-dc``,``offwind-float``, and ``solar`` but **not** ``hydro``
+(since hydroelectric plant profiles are created by a different rule)``
.. _simpl:
diff --git a/rules/build_sector.smk b/rules/build_sector.smk
index 5a9e8646..16bbba98 100644
--- a/rules/build_sector.smk
+++ b/rules/build_sector.smk
@@ -748,6 +748,7 @@ rule prepare_sector_network:
else "data/costs_{planning_horizons}.csv",
profile_offwind_ac=RESOURCES + "profile_offwind-ac.nc",
profile_offwind_dc=RESOURCES + "profile_offwind-dc.nc",
+ profile_offwind_float=RESOURCES + "profile_offwind-float.nc",
h2_cavern=RESOURCES + "salt_cavern_potentials_s{simpl}_{clusters}.csv",
busmap_s=RESOURCES + "busmap_elec_s{simpl}.csv",
busmap=RESOURCES + "busmap_elec_s{simpl}_{clusters}.csv",
diff --git a/scripts/plot_summary.py b/scripts/plot_summary.py
index 2651878a..0aa51419 100644
--- a/scripts/plot_summary.py
+++ b/scripts/plot_summary.py
@@ -62,6 +62,7 @@ def rename_techs(label):
"offwind": "offshore wind",
"offwind-ac": "offshore wind (AC)",
"offwind-dc": "offshore wind (DC)",
+ "offwind-float": "offshore wind (Float)",
"onwind": "onshore wind",
"ror": "hydroelectricity",
"hydro": "hydroelectricity",
diff --git a/scripts/solve_network.py b/scripts/solve_network.py
index 224d4714..4399c220 100644
--- a/scripts/solve_network.py
+++ b/scripts/solve_network.py
@@ -115,7 +115,7 @@ def add_land_use_constraint_perfect(n):
def _add_land_use_constraint(n):
# warning: this will miss existing offwind which is not classed AC-DC and has carrier 'offwind'
- for carrier in ["solar", "onwind", "offwind-ac", "offwind-dc"]:
+ for carrier in ["solar", "onwind", "offwind-ac", "offwind-dc", "offwind-float"]:
extendable_i = (n.generators.carrier == carrier) & n.generators.p_nom_extendable
n.generators.loc[extendable_i, "p_nom_min"] = 0
@@ -150,7 +150,7 @@ def _add_land_use_constraint_m(n, planning_horizons, config):
grouping_years = config["existing_capacities"]["grouping_years"]
current_horizon = snakemake.wildcards.planning_horizons
- for carrier in ["solar", "onwind", "offwind-ac", "offwind-dc"]:
+ for carrier in ["solar", "onwind", "offwind-ac", "offwind-dc", "offwind-float"]:
existing = n.generators.loc[n.generators.carrier == carrier, "p_nom"]
ind = list(
{i.split(sep=" ")[0] + " " + i.split(sep=" ")[1] for i in existing.index}