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}