update floating wind settings

This commit is contained in:
Philipp Glaum 2023-11-06 15:46:46 +01:00
parent 786a2461e2
commit 728d74caa8
11 changed files with 44 additions and 12 deletions

View File

@ -211,6 +211,8 @@ renewable:
# until done more rigorously in #153 # until done more rigorously in #153
corine: [44, 255] corine: [44, 255]
natura: true natura: true
ship_threshold: 400
excluder_resolution: 200
min_depth: 60 min_depth: 60
max_depth: 1000 max_depth: 1000
potential: simple # or conservative potential: simple # or conservative

View File

@ -32,7 +32,7 @@ electricity:
Store: [H2] Store: [H2]
Link: [H2 pipeline] Link: [H2 pipeline]
renewable_carriers: [solar, onwind, offwind-ac, offwind-dc] renewable_carriers: [solar, onwind, offwind-ac, offwind-dc, offwind-float]
atlite: atlite:
@ -53,6 +53,9 @@ renewable:
offwind-dc: offwind-dc:
cutout: be-03-2013-era5 cutout: be-03-2013-era5
max_depth: false max_depth: false
offwind-float:
cutout: be-03-2013-era5
max_depth: false
solar: solar:
cutout: be-03-2013-era5 cutout: be-03-2013-era5

View File

@ -39,7 +39,7 @@ electricity:
Store: [H2] Store: [H2]
Link: [H2 pipeline] Link: [H2 pipeline]
renewable_carriers: [solar, onwind, offwind-ac, offwind-dc] renewable_carriers: [solar, onwind, offwind-ac, offwind-dc, offwind-float]
atlite: atlite:
default_cutout: be-03-2013-era5 default_cutout: be-03-2013-era5
@ -59,6 +59,9 @@ renewable:
offwind-dc: offwind-dc:
cutout: be-03-2013-era5 cutout: be-03-2013-era5
max_depth: false max_depth: false
offwind-float:
cutout: be-03-2013-era5
max_depth: false
solar: solar:
cutout: be-03-2013-era5 cutout: be-03-2013-era5

View File

@ -36,7 +36,7 @@ electricity:
Store: [H2] Store: [H2]
Link: [H2 pipeline] Link: [H2 pipeline]
renewable_carriers: [solar, onwind, offwind-ac, offwind-dc] renewable_carriers: [solar, onwind, offwind-ac, offwind-dc, offwind-float]
atlite: atlite:
default_cutout: be-03-2013-era5 default_cutout: be-03-2013-era5
@ -56,6 +56,9 @@ renewable:
offwind-dc: offwind-dc:
cutout: be-03-2013-era5 cutout: be-03-2013-era5
max_depth: false max_depth: false
offwind-float:
cutout: be-03-2013-era5
max_depth: false
solar: solar:
cutout: be-03-2013-era5 cutout: be-03-2013-era5

View File

@ -39,7 +39,7 @@ electricity:
Store: [H2] Store: [H2]
Link: [H2 pipeline] Link: [H2 pipeline]
renewable_carriers: [solar, onwind, offwind-ac, offwind-dc] renewable_carriers: [solar, onwind, offwind-ac, offwind-dc, offwind-float]
sector: sector:
min_part_load_fischer_tropsch: 0 min_part_load_fischer_tropsch: 0
@ -62,6 +62,9 @@ renewable:
offwind-dc: offwind-dc:
cutout: be-03-2013-era5 cutout: be-03-2013-era5
max_depth: false max_depth: false
offwind-float:
cutout: be-03-2013-era5
max_depth: false
solar: solar:
cutout: be-03-2013-era5 cutout: be-03-2013-era5

View File

@ -24,13 +24,13 @@ custom_powerplants,--,"use `pandas.query <https://pandas.pydata.org/pandas-docs/
,,, ,,,
conventional_carriers,--,"Any subset of {nuclear, oil, OCGT, CCGT, coal, lignite, geothermal, biomass}","List of conventional power plants to include in the model from ``resources/powerplants.csv``. If an included carrier is also listed in ``extendable_carriers``, the capacity is taken as a lower bound." conventional_carriers,--,"Any subset of {nuclear, oil, OCGT, CCGT, coal, lignite, geothermal, biomass}","List of conventional power plants to include in the model from ``resources/powerplants.csv``. If an included carrier is also listed in ``extendable_carriers``, the capacity is taken as a lower bound."
,,, ,,,
renewable_carriers,--,"Any subset of {solar, onwind, offwind-ac, offwind-dc, hydro}",List of renewable generators to include in the model. renewable_carriers,--,"Any subset of {solar, onwind, offwind-ac, offwind-dc, offwind-float, hydro}",List of renewable generators to include in the model.
estimate_renewable_capacities,,, estimate_renewable_capacities,,,
-- enable,,bool,Activate routine to estimate renewable capacities -- enable,,bool,Activate routine to estimate renewable capacities
-- from_opsd,--,bool,Add renewable capacities from `OPSD database <https://data.open-power-system-data.org/renewable_power_plants/2020-08-25>`_. The value is depreciated but still can be used. -- from_opsd,--,bool,Add renewable capacities from `OPSD database <https://data.open-power-system-data.org/renewable_power_plants/2020-08-25>`_. 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 -- 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." -- 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 -- 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." -- -- 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." -- -- PV,--,{solar},"List of PyPSA-Eur carriers that is considered as (IRENA, OPSD) PV technology."

1 Unit Values Description
24
25 conventional_carriers -- Any subset of {nuclear, oil, OCGT, CCGT, coal, lignite, geothermal, biomass} List of conventional power plants to include in the model from ``resources/powerplants.csv``. If an included carrier is also listed in ``extendable_carriers``, the capacity is taken as a lower bound.
26
27 renewable_carriers -- Any subset of {solar, onwind, offwind-ac, offwind-dc, hydro} Any subset of {solar, onwind, offwind-ac, offwind-dc, offwind-float, hydro} List of renewable generators to include in the model.
28 estimate_renewable_capacities
29 -- enable bool Activate routine to estimate renewable capacities
30 -- from_opsd -- bool Add renewable capacities from `OPSD database <https://data.open-power-system-data.org/renewable_power_plants/2020-08-25>`_. The value is depreciated but still can be used.
31 -- year -- bool Renewable capacities are based on existing capacities reported by IRENA (IRENASTAT) for the specified year
32 -- 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.
33 -- technology_mapping Mapping between PyPSA-Eur and powerplantmatching technology names
34 -- -- Offshore -- Any subset of {offwind-ac, offwind-dc} Any subset of {offwind-ac, offwind-dc, offwind-float} List of PyPSA-Eur carriers that is considered as (IRENA, OPSD) onshore technology.
35 -- -- Offshore -- {onwind} List of PyPSA-Eur carriers that is considered as (IRENA, OPSD) offshore technology.
36 -- -- PV -- {solar} List of PyPSA-Eur carriers that is considered as (IRENA, OPSD) PV technology.

View File

@ -265,6 +265,23 @@ Define and specify the ``atlite.Cutout`` used for calculating renewable potentia
.. literalinclude:: ../config/config.default.yaml .. literalinclude:: ../config/config.default.yaml
:language: yaml :language: yaml
:start-at: offwind-dc: :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: :end-before: solar:
.. csv-table:: .. csv-table::
@ -273,9 +290,8 @@ Define and specify the ``atlite.Cutout`` used for calculating renewable potentia
:file: configtables/offwind-dc.csv :file: configtables/offwind-dc.csv
.. note:: .. 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``. ``capacity_per_sqkm`` and ``correction_factor``.
``solar`` ``solar``
--------------- ---------------

View File

@ -35,8 +35,8 @@ The ``{technology}`` wildcard
The ``{technology}`` wildcard specifies for which renewable energy technology to produce availability time The ``{technology}`` wildcard specifies for which renewable energy technology to produce availability time
series and potentials using the rule :mod:`build_renewable_profiles`. 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`` 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). (since hydroelectric plant profiles are created by a different rule)``
.. _simpl: .. _simpl:

View File

@ -748,6 +748,7 @@ rule prepare_sector_network:
else "data/costs_{planning_horizons}.csv", else "data/costs_{planning_horizons}.csv",
profile_offwind_ac=RESOURCES + "profile_offwind-ac.nc", profile_offwind_ac=RESOURCES + "profile_offwind-ac.nc",
profile_offwind_dc=RESOURCES + "profile_offwind-dc.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", h2_cavern=RESOURCES + "salt_cavern_potentials_s{simpl}_{clusters}.csv",
busmap_s=RESOURCES + "busmap_elec_s{simpl}.csv", busmap_s=RESOURCES + "busmap_elec_s{simpl}.csv",
busmap=RESOURCES + "busmap_elec_s{simpl}_{clusters}.csv", busmap=RESOURCES + "busmap_elec_s{simpl}_{clusters}.csv",

View File

@ -62,6 +62,7 @@ def rename_techs(label):
"offwind": "offshore wind", "offwind": "offshore wind",
"offwind-ac": "offshore wind (AC)", "offwind-ac": "offshore wind (AC)",
"offwind-dc": "offshore wind (DC)", "offwind-dc": "offshore wind (DC)",
"offwind-float": "offshore wind (Float)",
"onwind": "onshore wind", "onwind": "onshore wind",
"ror": "hydroelectricity", "ror": "hydroelectricity",
"hydro": "hydroelectricity", "hydro": "hydroelectricity",

View File

@ -115,7 +115,7 @@ def add_land_use_constraint_perfect(n):
def _add_land_use_constraint(n): def _add_land_use_constraint(n):
# warning: this will miss existing offwind which is not classed AC-DC and has carrier 'offwind' # 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 extendable_i = (n.generators.carrier == carrier) & n.generators.p_nom_extendable
n.generators.loc[extendable_i, "p_nom_min"] = 0 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"] grouping_years = config["existing_capacities"]["grouping_years"]
current_horizon = snakemake.wildcards.planning_horizons 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"] existing = n.generators.loc[n.generators.carrier == carrier, "p_nom"]
ind = list( ind = list(
{i.split(sep=" ")[0] + " " + i.split(sep=" ")[1] for i in existing.index} {i.split(sep=" ")[0] + " " + i.split(sep=" ")[1] for i in existing.index}