From 1bade2215a19f5e3793065c40ab625717c5db9ae Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Fri, 29 Oct 2021 22:01:00 +0200 Subject: [PATCH] floating offshore wind - minimal representation --- Snakefile | 2 +- config.default.yaml | 17 +++++++++++++++++ data/costs.csv | 3 +++ scripts/build_renewable_profiles.py | 5 +++++ 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/Snakefile b/Snakefile index 1196d47b..7a1109c7 100644 --- a/Snakefile +++ b/Snakefile @@ -181,7 +181,7 @@ rule build_renewable_profiles: corine="data/bundle/corine/g250_clc06_V18_5.tif", natura="resources/natura.tiff", gebco=lambda w: ("data/bundle/GEBCO_2014_2D.nc" - if "max_depth" in config["renewable"][w.technology].keys() + if any(key in ["max_depth", "min_depth"] for key in config["renewable"][w.technology].keys()) else []), country_shapes='resources/country_shapes.geojson', offshore_shapes='resources/offshore_shapes.geojson', diff --git a/config.default.yaml b/config.default.yaml index a0ffbe47..2fa80f0e 100755 --- a/config.default.yaml +++ b/config.default.yaml @@ -139,6 +139,23 @@ renewable: min_shore_distance: 30000 potential: simple # or conservative clip_p_max_pu: 1.e-2 + offwind-float: + cutout: europe-2013-era5 + resource: + method: wind + turbine: NREL_ReferenceTurbine_5MW_offshore + # ScholzPhd Tab 4.3.1: 10MW/km^2 + capacity_per_sqkm: 2 + correction_factor: 0.8855 + # proxy for wake losses + # from 10.1016/j.energy.2018.08.153 + # until done more rigorously in #153 + corine: [44, 255] + natura: true + min_depth: 50 + max_depth: 500 + potential: simple # or conservative + clip_p_max_pu: 1.e-2 solar: cutout: europe-2013-sarah resource: diff --git a/data/costs.csv b/data/costs.csv index 8953eb8a..a7412753 100644 --- a/data/costs.csv +++ b/data/costs.csv @@ -24,6 +24,9 @@ offwind-ac-connection-underground,2030,investment,1342,EUR/MW/km,DEA https://ens offwind-dc-station,2030,investment,400,EUR/kWel,Haertel 2017; assuming one onshore and one offshore node + 13% learning reduction offwind-dc-connection-submarine,2030,investment,2000,EUR/MW/km,DTU report based on Fig 34 of https://ec.europa.eu/energy/sites/ener/files/documents/2014_nsog_report.pdf offwind-dc-connection-underground,2030,investment,1000,EUR/MW/km,Haertel 2017; average + 13% learning reduction +offwind-float-station,2030,investment,400,EUR/kWel,Haertel 2017; assuming one onshore and one offshore node + 13% learning reduction +offwind-float-connection-submarine,2030,investment,2000,EUR/MW/km,DTU report based on Fig 34 of https://ec.europa.eu/energy/sites/ener/files/documents/2014_nsog_report.pdf +offwind-float-connection-underground,2030,investment,1000,EUR/MW/km,Haertel 2017; average + 13% learning reduction solar,2030,investment,600,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348 biomass,2030,investment,2209,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348 geothermal,2030,investment,3392,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348 diff --git a/scripts/build_renewable_profiles.py b/scripts/build_renewable_profiles.py index 9ce83de3..ab46ee4f 100644 --- a/scripts/build_renewable_profiles.py +++ b/scripts/build_renewable_profiles.py @@ -31,6 +31,7 @@ Relevant settings distance: natura: max_depth: + min_depth: max_shore_distance: min_shore_distance: capacity_per_sqkm: @@ -242,6 +243,10 @@ if __name__ == '__main__': func = functools.partial(np.greater,-config['max_depth']) excluder.add_raster(paths.gebco, codes=func, crs=4236, nodata=-1000) + if "min_depth" in config: + func = functools.partial(np.greater,-config['min_depth']) + excluder.add_raster(paths.gebco, codes=func, crs=4236, nodata=-1000, invert=True) + if 'min_shore_distance' in config: buffer = config['min_shore_distance'] excluder.add_geometry(paths.country_shapes, buffer=buffer)