2023-02-16 10:50:55 +00:00
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
2020-05-29 07:50:55 +00:00
#
# SPDX-License-Identifier: CC0-1.0
2023-02-16 10:50:55 +00:00
version : 0.7 .0
2019-11-05 11:53:21 +00:00
tutorial : false
2019-11-28 07:22:52 +00:00
logging :
level : INFO
format : '%(levelname)s:%(name)s:%(message)s'
2017-12-18 19:34:15 +00:00
2022-09-16 13:04:04 +00:00
run :
2022-09-08 07:52:00 +00:00
name : "" # use this to keep track of runs with different settings
2023-03-07 19:37:47 +00:00
disable_progressbar : false # set to true to disable the progressbar
2023-03-07 17:11:59 +00:00
shared_resources : false # set to true to share the default resources across runs
2022-09-13 12:51:36 +00:00
shared_cutouts : false # set to true to share the default cutout(s) across runs
2022-09-08 07:52:00 +00:00
2021-07-01 18:09:04 +00:00
foresight : overnight # options are overnight, myopic, perfect (perfect is not yet implemented)
2020-11-30 15:10:11 +00:00
# if you use myopic or perfect foresight, set the investment years in "planning_horizons" below
2018-08-02 10:10:46 +00:00
2017-12-18 19:34:15 +00:00
scenario :
2023-03-06 10:54:08 +00:00
simpl :
2023-03-06 08:27:45 +00:00
- ''
2023-03-06 10:54:08 +00:00
ll : # allowed transmission line volume expansion, can be any float >= 1.0 with a prefix v|c (today) or "copt"
- v1.0
- v1.5
clusters : # number of nodes in Europe, any integer between 37 (1 node per country-zone) and several hundred
- 37
- 128
- 256
- 512
- 1024
2021-07-01 18:09:04 +00:00
opts : # only relevant for PyPSA-Eur
2023-03-06 08:27:45 +00:00
- ''
2021-07-01 18:09:04 +00:00
sector_opts : # this is where the main scenario settings are
2023-03-06 08:27:45 +00:00
- Co2L0-3H-T-H-B-I-A-solar+p3-dist1
2020-04-30 07:56:24 +00:00
# to really understand the options here, look in scripts/prepare_sector_network.py
# Co2Lx specifies the CO2 target in x% of the 1990 values; default will give default (5%);
# Co2L0p25 will give 25% CO2 emissions; Co2Lm0p05 will give 5% negative emissions
2020-04-30 16:38:55 +00:00
# xH is the temporal resolution; 3H is 3-hourly, i.e. one snapshot every 3 hours
# single letters are sectors: T for land transport, H for building heating,
2021-08-16 14:34:15 +00:00
# B for biomass supply, I for industry, shipping and aviation,
# A for agriculture, forestry and fishing
2021-01-14 12:49:17 +00:00
# solar+c0.5 reduces the capital cost of solar to 50\% of reference value
# solar+p3 multiplies the available installable potential by factor 3
2022-09-29 07:12:36 +00:00
# seq400 sets the potential of CO2 sequestration to 400 Mt CO2 per year
2020-04-30 07:56:24 +00:00
# dist{n} includes distribution grids with investment cost of n times cost in data/costs.csv
2021-01-25 13:17:31 +00:00
# for myopic/perfect foresight cb states the carbon budget in GtCO2 (cumulative
# emissions throughout the transition path in the timeframe determined by the
2020-12-30 14:55:08 +00:00
# planning_horizons), be:beta decay; ex:exponential decay
2021-01-25 13:17:31 +00:00
# cb40ex0 distributes a carbon budget of 40 GtCO2 following an exponential
2021-01-15 11:56:21 +00:00
# decay with initial growth rate 0
2022-08-31 11:07:43 +00:00
planning_horizons : # investment years for myopic and perfect; for overnight, year of cost assumptions can be different and is defined under 'costs'
2023-03-06 08:27:45 +00:00
- 2050
2022-08-09 19:30:45 +00:00
# for example, set to
# - 2020
# - 2030
# - 2040
# - 2050
# for myopic foresight
2017-12-18 19:34:15 +00:00
2019-12-09 20:29:15 +00:00
countries : [ 'AL' , 'AT' , 'BA' , 'BE' , 'BG' , 'CH' , 'CZ' , 'DE' , 'DK' , 'EE' , 'ES' , 'FI' , 'FR' , 'GB' , 'GR' , 'HR' , 'HU' , 'IE' , 'IT' , 'LT' , 'LU' , 'LV' , 'ME' , 'MK' , 'NL' , 'NO' , 'PL' , 'PT' , 'RO' , 'RS' , 'SE' , 'SI' , 'SK' ]
2017-12-18 19:34:15 +00:00
2018-01-29 21:28:33 +00:00
snapshots :
start : "2013-01-01"
end : "2014-01-01"
2022-03-04 20:16:19 +00:00
inclusive : 'left' # include start, not end
2017-12-18 19:34:15 +00:00
2018-08-13 12:09:20 +00:00
enable :
2020-02-25 10:28:38 +00:00
prepare_links_p_nom : false
2019-11-19 14:56:44 +00:00
retrieve_databundle : true
2023-03-06 14:18:30 +00:00
retrieve_sector_databundle : true
2020-08-26 08:06:10 +00:00
retrieve_cost_data : true
2019-11-05 11:53:21 +00:00
build_cutout : false
2020-03-16 14:51:47 +00:00
retrieve_cutout : true
2019-11-05 11:53:21 +00:00
build_natura_raster : false
2020-03-16 14:51:47 +00:00
retrieve_natura_raster : true
2020-12-03 14:17:16 +00:00
custom_busmap : false
2018-08-13 12:09:20 +00:00
2020-11-30 15:10:11 +00:00
# CO2 budget as a fraction of 1990 emissions
# this is over-ridden if CO2Lx is set in sector_opts
2020-12-30 14:55:08 +00:00
# this is also over-ridden if cb is set in sector_opts
2020-11-30 12:21:38 +00:00
co2_budget :
2020-11-30 15:10:11 +00:00
2020 : 0.7011648746
2025 : 0.5241935484
2030 : 0.2970430108
2035 : 0.1500896057
2040 : 0.0712365591
2045 : 0.0322580645
2050 : 0
2020-04-30 16:38:55 +00:00
2017-12-18 19:34:15 +00:00
electricity :
voltages : [ 220 ., 300., 380.]
2022-04-05 15:05:50 +00:00
gaslimit : false # global gas usage limit of X MWh_th
2018-01-29 21:28:33 +00:00
co2limit : 7.75e+7 # 0.05 * 3.1e9*0.5
2021-06-28 13:52:37 +00:00
co2base : 1.487e+9
2019-06-17 14:56:13 +00:00
agg_p_nom_limits : data/agg_p_nom_minmax.csv
2017-12-18 19:34:15 +00:00
2022-04-07 12:39:34 +00:00
operational_reserve : # like https://genxproject.github.io/GenX/dev/core/#Reserves
2022-06-23 14:04:49 +00:00
activate : false
2022-04-07 12:39:34 +00:00
epsilon_load : 0.02 # share of total load
epsilon_vres : 0.02 # share of total renewable supply
contingency : 4000 # fixed capacity in MW
2017-12-18 19:34:15 +00:00
max_hours :
2018-02-19 09:19:00 +00:00
battery : 6
H2 : 168
2017-12-18 19:34:15 +00:00
extendable_carriers :
2022-06-09 18:31:50 +00:00
Generator : [ solar, onwind, offwind-ac, offwind-dc, OCGT]
2020-11-25 12:18:30 +00:00
StorageUnit : [ ] # battery, H2
Store : [ battery, H2]
2022-07-21 13:43:28 +00:00
Link : [ ] # H2 pipeline
2017-12-18 19:34:15 +00:00
2022-04-05 13:12:01 +00:00
# use pandas query strings here, e.g. Country not in ['Germany']
2022-04-08 10:23:24 +00:00
powerplants_filter : (DateOut >= 2022 or DateOut != DateOut)
2022-04-05 13:12:01 +00:00
# use pandas query strings here, e.g. Country in ['Germany']
2022-09-16 13:04:04 +00:00
custom_powerplants : false
2017-12-18 19:34:15 +00:00
2020-01-09 13:09:28 +00:00
conventional_carriers : [ nuclear, oil, OCGT, CCGT, coal, lignite, geothermal, biomass]
2022-06-09 18:31:50 +00:00
renewable_carriers : [ solar, onwind, offwind-ac, offwind-dc, hydro]
2020-12-03 22:13:41 +00:00
2022-04-04 17:03:09 +00:00
estimate_renewable_capacities :
2022-09-19 10:55:40 +00:00
enable : true
2022-06-09 18:31:50 +00:00
# Add capacities from OPSD data
from_opsd : true
2022-04-04 17:03:09 +00:00
# Renewable capacities are based on existing capacities reported by IRENA
year : 2020
# Artificially limit maximum capacities to factor * (IRENA capacities),
# i.e. 110% of <years>'s capacities => expansion_limit: 1.1
# false: Use estimated renewable potentials determine by the workflow
expansion_limit : false
technology_mapping :
2022-06-09 18:31:50 +00:00
# Wind is the Fueltype in powerplantmatching, onwind, offwind-{ac,dc} the carrier in PyPSA-Eur
2022-04-04 17:03:09 +00:00
Offshore : [ offwind-ac, offwind-dc]
Onshore : [ onwind]
PV : [ solar]
2019-02-05 22:00:35 +00:00
2023-03-06 10:54:08 +00:00
2018-08-03 09:54:28 +00:00
atlite :
2023-03-06 14:07:09 +00:00
default_cutout : europe-2013-era5
2018-08-03 10:46:42 +00:00
nprocesses : 4
2022-12-27 12:03:12 +00:00
show_progress : false # false saves time
2018-08-03 09:54:28 +00:00
cutouts :
Atlite availability (#224)
* adjust buil_cutout.py and Snakefile
* try adjusting build_renewable_profiles, currently crashing due to weird pyproj error
* build_renewable_profiles: -remove printing gid
* build_renewable_profiles: use dask for paralellization, use dense functions
* build_renewable_profiles:
- revise imports
- add logging for long calculation
- revise explaining comment
- revise distance calculation
* build profiles: adjust to cutout.grid
* * fix area to square km
* rename potmatrix -> capacity_potential
* rename available to availibility
* config.default update cutout params
build_renewable_potentials: major refactoring and simplification
hydro_profiles: update code
* build profiles: fix weight output dimensions
* build profiles: fix typo, fix selection of buses
* build profiles: reinsert paths variable
* follow up
* build profiles: move to dask calculation only
* CI: set build cutout to true (add CDSAPI)
* build profiles: use pyproj, test with gleas and geokit upstream
* environment.yaml fix atlite version
* build profiles: use dask 'processes' for more than 25 regions
* build profiles: specify dask scheduler according to number of regions
* backpedal a bit, only allow scheduler='processes'
* follow up, code style and fixup
* build profiles: add logger info for underwater fraction calc
* config adjust cutout parameters
Snakefile fixup
* config.default.yaml: adjust resolution
* config: use one cutout in total
build_cutout: automatic detetection of geographical boundaries
* env: add python>=3.8 requirement
build_cutout: fixup for region bound
* config: allow base cutout
* folllow up, fix up
* follow up II
* clean up
* clean up II
* build profiles: move back to multiprocessing due to performance issues
* small code style corrections
* move in pool context
* swqitch to ratsterio
* switch to rasterio for availibility calculation
* tiny fixup
* * build continental raster for offshore distance calculation
* adjust Snakefile to new script build_raster
* rename continental raster to onshore raster
add projected_mask function (not yet tested)
add docstrings, modularize
* Snakefile: remove build_onhore_raster rule, build mask directly from geometry instead
build_natura_raster: adjust code, add function for exporting
build_profiles:
* add buffer to shore distance to init_globals function
* update docstrings
* improve handling of nodata grid codes
* add geometry mask if natura raster not activated
(the 255 value is an 'eligible' value for the corine data base,
do this for excluding data outside the shape)
* build_profiles: adjust docstrings
* update environment
* build profiles: fixup reproject woth padding
* follow up, small fixups
* fix resampling method
checkpoint: reproduces solar profile in tut data
* reintegrate plot map
code style
* config: rename cutout into "base"
* build profiles: adjust to new atlite code
* natura raster: small fixup
* build natura raster: compress tiff file
* config: adjust cutout names
* build profiles: cover case if no or partial overlap between natura raster and cutout
* config-tutorial: adjust cutout params
* buid-profifiles: fixup in gebco filter
* follow up
* update config files
* build profiles: select layoutmatrix != 0
* build profiles: speed up average_distance and underwaterfraction
* build profiles: fix typo
* update release notes
build_cutout: only build needed features
* update envs
* config: add temperature to sarah features
* temporary fix for atlite v0.2.1 and new xarray version release
* env: remove xarray specification
* * remove rule build_country_flh
* build profiles: remove sneaked in line
* doc: update configuration.rst (section atlite) and corresponding csv table
* release notes: fix quotes
* build profiles: use 3035 for area calculation
* Update envs/environment.docs.yaml
* Update scripts/build_cutout.py
* Update doc/release_notes.rst
Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
* Update doc/configuration.rst
Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
* Update scripts/build_cutout.py
Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
* update release notes
* release notes: add deprecation of 'keep_all_available_areas'
build profiles: remove warning for 'keep_all_available_areas'
* build cutout: rearrage code, set buffer correctly
* Rename tutorial cutout to remove name clash with real cutout.
* Update release_notes.rst: Rename tutorial cutout.
* retrieve: update cutouts and downloads (alternative) (#237)
* retrieve: update cutouts and downloads
* retrieve: remove unnecessary import
* use snakemake remote file functionality
* Snakefile: update zenodo link
* update natura remote link (closes #234)
* env: update atlite version to 0.2.2
* env: fix dask version due to memory issues
* test: retrieve cutout instead of build
* test: use tutorial cutout for CI
Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2021-04-27 15:58:31 +00:00
# use 'base' to determine geographical bounds and time span from config
2021-05-10 14:58:53 +00:00
# base:
# module: era5
2018-08-03 09:54:28 +00:00
europe-2013-era5 :
2021-05-10 14:58:53 +00:00
module : era5 # in priority order
Atlite availability (#224)
* adjust buil_cutout.py and Snakefile
* try adjusting build_renewable_profiles, currently crashing due to weird pyproj error
* build_renewable_profiles: -remove printing gid
* build_renewable_profiles: use dask for paralellization, use dense functions
* build_renewable_profiles:
- revise imports
- add logging for long calculation
- revise explaining comment
- revise distance calculation
* build profiles: adjust to cutout.grid
* * fix area to square km
* rename potmatrix -> capacity_potential
* rename available to availibility
* config.default update cutout params
build_renewable_potentials: major refactoring and simplification
hydro_profiles: update code
* build profiles: fix weight output dimensions
* build profiles: fix typo, fix selection of buses
* build profiles: reinsert paths variable
* follow up
* build profiles: move to dask calculation only
* CI: set build cutout to true (add CDSAPI)
* build profiles: use pyproj, test with gleas and geokit upstream
* environment.yaml fix atlite version
* build profiles: use dask 'processes' for more than 25 regions
* build profiles: specify dask scheduler according to number of regions
* backpedal a bit, only allow scheduler='processes'
* follow up, code style and fixup
* build profiles: add logger info for underwater fraction calc
* config adjust cutout parameters
Snakefile fixup
* config.default.yaml: adjust resolution
* config: use one cutout in total
build_cutout: automatic detetection of geographical boundaries
* env: add python>=3.8 requirement
build_cutout: fixup for region bound
* config: allow base cutout
* folllow up, fix up
* follow up II
* clean up
* clean up II
* build profiles: move back to multiprocessing due to performance issues
* small code style corrections
* move in pool context
* swqitch to ratsterio
* switch to rasterio for availibility calculation
* tiny fixup
* * build continental raster for offshore distance calculation
* adjust Snakefile to new script build_raster
* rename continental raster to onshore raster
add projected_mask function (not yet tested)
add docstrings, modularize
* Snakefile: remove build_onhore_raster rule, build mask directly from geometry instead
build_natura_raster: adjust code, add function for exporting
build_profiles:
* add buffer to shore distance to init_globals function
* update docstrings
* improve handling of nodata grid codes
* add geometry mask if natura raster not activated
(the 255 value is an 'eligible' value for the corine data base,
do this for excluding data outside the shape)
* build_profiles: adjust docstrings
* update environment
* build profiles: fixup reproject woth padding
* follow up, small fixups
* fix resampling method
checkpoint: reproduces solar profile in tut data
* reintegrate plot map
code style
* config: rename cutout into "base"
* build profiles: adjust to new atlite code
* natura raster: small fixup
* build natura raster: compress tiff file
* config: adjust cutout names
* build profiles: cover case if no or partial overlap between natura raster and cutout
* config-tutorial: adjust cutout params
* buid-profifiles: fixup in gebco filter
* follow up
* update config files
* build profiles: select layoutmatrix != 0
* build profiles: speed up average_distance and underwaterfraction
* build profiles: fix typo
* update release notes
build_cutout: only build needed features
* update envs
* config: add temperature to sarah features
* temporary fix for atlite v0.2.1 and new xarray version release
* env: remove xarray specification
* * remove rule build_country_flh
* build profiles: remove sneaked in line
* doc: update configuration.rst (section atlite) and corresponding csv table
* release notes: fix quotes
* build profiles: use 3035 for area calculation
* Update envs/environment.docs.yaml
* Update scripts/build_cutout.py
* Update doc/release_notes.rst
Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
* Update doc/configuration.rst
Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
* Update scripts/build_cutout.py
Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
* update release notes
* release notes: add deprecation of 'keep_all_available_areas'
build profiles: remove warning for 'keep_all_available_areas'
* build cutout: rearrage code, set buffer correctly
* Rename tutorial cutout to remove name clash with real cutout.
* Update release_notes.rst: Rename tutorial cutout.
* retrieve: update cutouts and downloads (alternative) (#237)
* retrieve: update cutouts and downloads
* retrieve: remove unnecessary import
* use snakemake remote file functionality
* Snakefile: update zenodo link
* update natura remote link (closes #234)
* env: update atlite version to 0.2.2
* env: fix dask version due to memory issues
* test: retrieve cutout instead of build
* test: use tutorial cutout for CI
Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2021-04-27 15:58:31 +00:00
x : [ -12 ., 35.]
y : [ 33 ., 72]
dx : 0.3
dy : 0.3
time : [ '2013' , '2013' ]
2018-08-03 09:54:28 +00:00
europe-2013-sarah :
2021-05-10 14:58:53 +00:00
module : [ sarah, era5] # in priority order
Atlite availability (#224)
* adjust buil_cutout.py and Snakefile
* try adjusting build_renewable_profiles, currently crashing due to weird pyproj error
* build_renewable_profiles: -remove printing gid
* build_renewable_profiles: use dask for paralellization, use dense functions
* build_renewable_profiles:
- revise imports
- add logging for long calculation
- revise explaining comment
- revise distance calculation
* build profiles: adjust to cutout.grid
* * fix area to square km
* rename potmatrix -> capacity_potential
* rename available to availibility
* config.default update cutout params
build_renewable_potentials: major refactoring and simplification
hydro_profiles: update code
* build profiles: fix weight output dimensions
* build profiles: fix typo, fix selection of buses
* build profiles: reinsert paths variable
* follow up
* build profiles: move to dask calculation only
* CI: set build cutout to true (add CDSAPI)
* build profiles: use pyproj, test with gleas and geokit upstream
* environment.yaml fix atlite version
* build profiles: use dask 'processes' for more than 25 regions
* build profiles: specify dask scheduler according to number of regions
* backpedal a bit, only allow scheduler='processes'
* follow up, code style and fixup
* build profiles: add logger info for underwater fraction calc
* config adjust cutout parameters
Snakefile fixup
* config.default.yaml: adjust resolution
* config: use one cutout in total
build_cutout: automatic detetection of geographical boundaries
* env: add python>=3.8 requirement
build_cutout: fixup for region bound
* config: allow base cutout
* folllow up, fix up
* follow up II
* clean up
* clean up II
* build profiles: move back to multiprocessing due to performance issues
* small code style corrections
* move in pool context
* swqitch to ratsterio
* switch to rasterio for availibility calculation
* tiny fixup
* * build continental raster for offshore distance calculation
* adjust Snakefile to new script build_raster
* rename continental raster to onshore raster
add projected_mask function (not yet tested)
add docstrings, modularize
* Snakefile: remove build_onhore_raster rule, build mask directly from geometry instead
build_natura_raster: adjust code, add function for exporting
build_profiles:
* add buffer to shore distance to init_globals function
* update docstrings
* improve handling of nodata grid codes
* add geometry mask if natura raster not activated
(the 255 value is an 'eligible' value for the corine data base,
do this for excluding data outside the shape)
* build_profiles: adjust docstrings
* update environment
* build profiles: fixup reproject woth padding
* follow up, small fixups
* fix resampling method
checkpoint: reproduces solar profile in tut data
* reintegrate plot map
code style
* config: rename cutout into "base"
* build profiles: adjust to new atlite code
* natura raster: small fixup
* build natura raster: compress tiff file
* config: adjust cutout names
* build profiles: cover case if no or partial overlap between natura raster and cutout
* config-tutorial: adjust cutout params
* buid-profifiles: fixup in gebco filter
* follow up
* update config files
* build profiles: select layoutmatrix != 0
* build profiles: speed up average_distance and underwaterfraction
* build profiles: fix typo
* update release notes
build_cutout: only build needed features
* update envs
* config: add temperature to sarah features
* temporary fix for atlite v0.2.1 and new xarray version release
* env: remove xarray specification
* * remove rule build_country_flh
* build profiles: remove sneaked in line
* doc: update configuration.rst (section atlite) and corresponding csv table
* release notes: fix quotes
* build profiles: use 3035 for area calculation
* Update envs/environment.docs.yaml
* Update scripts/build_cutout.py
* Update doc/release_notes.rst
Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
* Update doc/configuration.rst
Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
* Update scripts/build_cutout.py
Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
* update release notes
* release notes: add deprecation of 'keep_all_available_areas'
build profiles: remove warning for 'keep_all_available_areas'
* build cutout: rearrage code, set buffer correctly
* Rename tutorial cutout to remove name clash with real cutout.
* Update release_notes.rst: Rename tutorial cutout.
* retrieve: update cutouts and downloads (alternative) (#237)
* retrieve: update cutouts and downloads
* retrieve: remove unnecessary import
* use snakemake remote file functionality
* Snakefile: update zenodo link
* update natura remote link (closes #234)
* env: update atlite version to 0.2.2
* env: fix dask version due to memory issues
* test: retrieve cutout instead of build
* test: use tutorial cutout for CI
Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2021-04-27 15:58:31 +00:00
x : [ -12 ., 45.]
y : [ 33 ., 65]
dx : 0.2
dy : 0.2
time : [ '2013' , '2013' ]
sarah_interpolate : false
2021-05-10 14:58:53 +00:00
sarah_dir :
Atlite availability (#224)
* adjust buil_cutout.py and Snakefile
* try adjusting build_renewable_profiles, currently crashing due to weird pyproj error
* build_renewable_profiles: -remove printing gid
* build_renewable_profiles: use dask for paralellization, use dense functions
* build_renewable_profiles:
- revise imports
- add logging for long calculation
- revise explaining comment
- revise distance calculation
* build profiles: adjust to cutout.grid
* * fix area to square km
* rename potmatrix -> capacity_potential
* rename available to availibility
* config.default update cutout params
build_renewable_potentials: major refactoring and simplification
hydro_profiles: update code
* build profiles: fix weight output dimensions
* build profiles: fix typo, fix selection of buses
* build profiles: reinsert paths variable
* follow up
* build profiles: move to dask calculation only
* CI: set build cutout to true (add CDSAPI)
* build profiles: use pyproj, test with gleas and geokit upstream
* environment.yaml fix atlite version
* build profiles: use dask 'processes' for more than 25 regions
* build profiles: specify dask scheduler according to number of regions
* backpedal a bit, only allow scheduler='processes'
* follow up, code style and fixup
* build profiles: add logger info for underwater fraction calc
* config adjust cutout parameters
Snakefile fixup
* config.default.yaml: adjust resolution
* config: use one cutout in total
build_cutout: automatic detetection of geographical boundaries
* env: add python>=3.8 requirement
build_cutout: fixup for region bound
* config: allow base cutout
* folllow up, fix up
* follow up II
* clean up
* clean up II
* build profiles: move back to multiprocessing due to performance issues
* small code style corrections
* move in pool context
* swqitch to ratsterio
* switch to rasterio for availibility calculation
* tiny fixup
* * build continental raster for offshore distance calculation
* adjust Snakefile to new script build_raster
* rename continental raster to onshore raster
add projected_mask function (not yet tested)
add docstrings, modularize
* Snakefile: remove build_onhore_raster rule, build mask directly from geometry instead
build_natura_raster: adjust code, add function for exporting
build_profiles:
* add buffer to shore distance to init_globals function
* update docstrings
* improve handling of nodata grid codes
* add geometry mask if natura raster not activated
(the 255 value is an 'eligible' value for the corine data base,
do this for excluding data outside the shape)
* build_profiles: adjust docstrings
* update environment
* build profiles: fixup reproject woth padding
* follow up, small fixups
* fix resampling method
checkpoint: reproduces solar profile in tut data
* reintegrate plot map
code style
* config: rename cutout into "base"
* build profiles: adjust to new atlite code
* natura raster: small fixup
* build natura raster: compress tiff file
* config: adjust cutout names
* build profiles: cover case if no or partial overlap between natura raster and cutout
* config-tutorial: adjust cutout params
* buid-profifiles: fixup in gebco filter
* follow up
* update config files
* build profiles: select layoutmatrix != 0
* build profiles: speed up average_distance and underwaterfraction
* build profiles: fix typo
* update release notes
build_cutout: only build needed features
* update envs
* config: add temperature to sarah features
* temporary fix for atlite v0.2.1 and new xarray version release
* env: remove xarray specification
* * remove rule build_country_flh
* build profiles: remove sneaked in line
* doc: update configuration.rst (section atlite) and corresponding csv table
* release notes: fix quotes
* build profiles: use 3035 for area calculation
* Update envs/environment.docs.yaml
* Update scripts/build_cutout.py
* Update doc/release_notes.rst
Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
* Update doc/configuration.rst
Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
* Update scripts/build_cutout.py
Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
* update release notes
* release notes: add deprecation of 'keep_all_available_areas'
build profiles: remove warning for 'keep_all_available_areas'
* build cutout: rearrage code, set buffer correctly
* Rename tutorial cutout to remove name clash with real cutout.
* Update release_notes.rst: Rename tutorial cutout.
* retrieve: update cutouts and downloads (alternative) (#237)
* retrieve: update cutouts and downloads
* retrieve: remove unnecessary import
* use snakemake remote file functionality
* Snakefile: update zenodo link
* update natura remote link (closes #234)
* env: update atlite version to 0.2.2
* env: fix dask version due to memory issues
* test: retrieve cutout instead of build
* test: use tutorial cutout for CI
Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
2021-04-27 15:58:31 +00:00
features : [ influx, temperature]
2018-08-03 09:54:28 +00:00
2021-05-10 14:58:53 +00:00
2018-01-29 21:28:33 +00:00
renewable :
onwind :
2018-08-03 09:54:28 +00:00
cutout : europe-2013-era5
2018-01-29 21:28:33 +00:00
resource :
method : wind
turbine : Vestas_V112_3MW
2022-09-21 15:15:31 +00:00
capacity_per_sqkm: 3 # ScholzPhd Tab 4.3.1 : 10MW/km^2 and assuming 30% fraction of the already restricted
# area is available for installation of wind generators due to competing land use and likely public
# acceptance issues.
2018-02-19 08:56:15 +00:00
# correction_factor: 0.93
2018-01-29 21:28:33 +00:00
corine :
2019-10-02 13:49:01 +00:00
# Scholz, Y. (2012). Renewable energy based electricity supply at low costs:
# development of the REMix model and application for Europe. ( p.42 / p.28)
2022-09-16 13:04:04 +00:00
grid_codes : [ 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 31 , 32 ]
2018-01-29 21:28:33 +00:00
distance : 1000
distance_grid_codes : [ 1 , 2 , 3 , 4 , 5 , 6 ]
2018-12-10 17:40:54 +00:00
natura : true
2022-07-27 11:40:41 +00:00
excluder_resolution : 100
2019-02-01 17:33:21 +00:00
potential : simple # or conservative
2018-12-21 12:44:59 +00:00
clip_p_max_pu : 1.e-2
2018-12-19 09:30:25 +00:00
offwind-ac :
2018-08-03 09:54:28 +00:00
cutout : europe-2013-era5
2018-01-29 21:28:33 +00:00
resource :
method : wind
turbine : NREL_ReferenceTurbine_5MW_offshore
2022-09-21 15:15:31 +00:00
capacity_per_sqkm: 2 # ScholzPhd Tab 4.3.1 : 10MW/km^2 and assuming 20% fraction of the already restricted
# area is available for installation of wind generators due to competing land use and likely public
# acceptance issues.
2021-09-23 06:57:18 +00:00
correction_factor : 0.8855
# proxy for wake losses
# from 10.1016/j.energy.2018.08.153
# until done more rigorously in #153
2018-12-10 17:40:54 +00:00
corine : [ 44 , 255 ]
natura : true
2022-07-28 08:38:24 +00:00
ship_threshold : 400
2018-12-10 17:40:54 +00:00
max_depth : 50
2019-10-03 10:37:23 +00:00
max_shore_distance : 30000
2022-07-27 11:40:41 +00:00
excluder_resolution : 200
2019-02-01 17:33:21 +00:00
potential : simple # or conservative
2018-12-21 12:44:59 +00:00
clip_p_max_pu : 1.e-2
2018-12-19 09:30:25 +00:00
offwind-dc :
cutout : europe-2013-era5
resource :
method : wind
turbine : NREL_ReferenceTurbine_5MW_offshore
2022-09-21 15:19:01 +00:00
capacity_per_sqkm: 2 # ScholzPhd Tab 4.3.1 : 10MW/km^2 and assuming 20% fraction of the already restricted
2022-09-21 15:15:31 +00:00
# area is available for installation of wind generators due to competing land use and likely public
# acceptance issues.
2021-09-23 06:57:18 +00:00
correction_factor : 0.8855
# proxy for wake losses
# from 10.1016/j.energy.2018.08.153
# until done more rigorously in #153
2018-12-19 09:30:25 +00:00
corine : [ 44 , 255 ]
natura : true
2022-07-28 08:38:24 +00:00
ship_threshold : 400
2018-12-19 09:30:25 +00:00
max_depth : 50
2019-10-03 10:37:23 +00:00
min_shore_distance : 30000
2022-07-27 11:40:41 +00:00
excluder_resolution : 200
2019-02-01 17:33:21 +00:00
potential : simple # or conservative
2018-12-21 12:44:59 +00:00
clip_p_max_pu : 1.e-2
2018-01-29 21:28:33 +00:00
solar :
2018-08-03 09:54:28 +00:00
cutout : europe-2013-sarah
2018-01-29 21:28:33 +00:00
resource :
method : pv
panel : CSi
2018-07-10 14:32:47 +00:00
orientation :
slope : 35 .
azimuth : 180 .
2022-09-21 15:15:31 +00:00
capacity_per_sqkm: 1.7 # ScholzPhd Tab 4.3.1 : 170 MW/km^2 and assuming 1% of the area can be used for solar PV panels
2022-01-13 14:42:48 +00:00
# Correction factor determined by comparing uncorrected area-weighted full-load hours to those
2019-02-15 19:58:37 +00:00
# published in Supplementary Data to
# Pietzcker, Robert Carl, et al. "Using the sun to decarbonize the power
# sector: The economic potential of photovoltaics and concentrating solar
# power." Applied Energy 135 (2014): 704-720.
2022-01-13 14:42:48 +00:00
# This correction factor of 0.854337 may be in order if using reanalysis data.
2022-01-24 10:16:23 +00:00
# for discussion refer to https://github.com/PyPSA/pypsa-eur/pull/304
2022-01-13 14:42:48 +00:00
# correction_factor: 0.854337
2022-09-16 13:04:04 +00:00
corine : [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 26 , 31 , 32 ]
2018-12-10 17:40:54 +00:00
natura : true
2022-07-27 11:40:41 +00:00
excluder_resolution : 100
2019-02-01 17:33:21 +00:00
potential : simple # or conservative
2018-12-21 12:44:59 +00:00
clip_p_max_pu : 1.e-2
2018-01-29 21:28:33 +00:00
hydro :
2018-08-06 19:38:36 +00:00
cutout : europe-2013-era5
2018-01-29 21:28:33 +00:00
carriers : [ ror, PHS, hydro]
PHS_max_hours : 6
2020-12-03 22:47:38 +00:00
hydro_max_hours : "energy_capacity_totals_by_country" # one of energy_capacity_totals_by_country, estimate_by_large_installations or a float
2018-12-21 12:44:59 +00:00
clip_min_inflow : 1.0
2019-10-02 13:49:01 +00:00
2022-09-16 13:04:04 +00:00
conventional :
2022-06-09 18:31:50 +00:00
nuclear :
2022-06-27 15:35:19 +00:00
p_max_pu : "data/nuclear_p_max_pu.csv" # float of file name
2022-06-09 18:31:50 +00:00
2017-12-18 19:34:15 +00:00
lines :
types :
220. : "Al/St 240/40 2-bundle 220.0"
300. : "Al/St 240/40 3-bundle 300.0"
380. : "Al/St 240/40 4-bundle 380.0"
s_max_pu : 0.7
2020-09-26 11:10:50 +00:00
s_nom_max : .inf
2017-12-18 19:34:15 +00:00
length_factor : 1.25
2018-08-27 17:13:41 +00:00
under_construction: 'zero' # 'zero': set capacity to zero, 'remove': remove, 'keep' : with full capacity
2017-12-18 19:34:15 +00:00
links :
2018-09-03 18:19:45 +00:00
p_max_pu : 1.0
2020-09-26 11:10:50 +00:00
p_nom_max : .inf
2018-10-22 21:26:18 +00:00
include_tyndp : true
2018-08-28 08:39:56 +00:00
under_construction: 'zero' # 'zero': set capacity to zero, 'remove': remove, 'keep' : with full capacity
2017-12-18 19:34:15 +00:00
transformers :
x : 0.1
s_nom : 2000 .
type : ''
2019-02-22 20:47:41 +00:00
load :
2022-09-16 13:04:04 +00:00
power_statistics : true # only for files from <2019; set false in order to get ENTSOE transparency data
2020-12-03 11:49:04 +00:00
interpolate_limit : 3 # data gaps up until this size are interpolated linearly
2021-05-10 14:58:53 +00:00
time_shift_for_large_gaps : 1w # data gaps up until this size are copied by copying from
2020-12-03 11:49:04 +00:00
manual_adjustments : true # false
2019-02-22 20:47:41 +00:00
scaling_factor : 1.0
2020-12-09 14:18:01 +00:00
# regulate what components with which carriers are kept from PyPSA-Eur;
# some technologies are removed because they are implemented differently
2021-09-27 09:16:12 +00:00
# (e.g. battery or H2 storage) or have different year-dependent costs
2021-07-03 10:59:09 +00:00
# in PyPSA-Eur-Sec
2020-12-09 14:18:01 +00:00
pypsa_eur :
2021-07-01 18:09:04 +00:00
Bus :
2023-03-06 08:27:45 +00:00
- AC
2021-07-01 18:09:04 +00:00
Link :
2023-03-06 08:27:45 +00:00
- DC
2021-07-01 18:09:04 +00:00
Generator :
2023-03-06 08:27:45 +00:00
- onwind
- offwind-ac
- offwind-dc
- solar
- ror
2021-07-01 18:09:04 +00:00
StorageUnit :
2023-03-06 08:27:45 +00:00
- PHS
- hydro
2021-07-01 18:09:04 +00:00
Store : [ ]
energy :
energy_totals_year : 2011
base_emissions_year : 1990
eurostat_report_year : 2016
emissions : CO2 # "CO2" or "All greenhouse gases - (CO2 equivalent)"
2020-12-09 14:18:01 +00:00
2019-04-17 09:44:16 +00:00
biomass :
year : 2030
2021-07-11 15:52:32 +00:00
scenario : ENS_Med
2020-09-21 16:35:45 +00:00
classes :
2021-07-01 18:09:04 +00:00
solid biomass :
2023-03-06 08:27:45 +00:00
- Agricultural waste
- Fuelwood residues
- Secondary Forestry residues - woodchips
- Sawdust
- Residues from landscape care
- Municipal waste
2021-07-01 18:09:04 +00:00
not included :
2023-03-06 08:27:45 +00:00
- Sugar from sugar beet
- Rape seed
- "Sunflower, soya seed "
- Bioethanol barley, wheat, grain maize, oats, other cereals and rye
- Miscanthus, switchgrass, RCG
- Willow
- Poplar
- FuelwoodRW
- C&P_RW
2021-07-01 18:09:04 +00:00
biogas :
2023-03-06 08:27:45 +00:00
- Manure solid, liquid
- Sludge
2021-07-01 18:09:04 +00:00
solar_thermal :
clearsky_model : simple # should be "simple" or "enhanced"?
orientation :
slope : 45 .
azimuth : 180 .
2019-04-17 15:04:33 +00:00
2020-08-20 15:12:20 +00:00
# only relevant for foresight = myopic or perfect
2020-07-18 09:22:30 +00:00
existing_capacities :
2022-08-02 07:18:06 +00:00
grouping_years_power : [ 1980 , 1985 , 1990 , 1995 , 2000 , 2005 , 2010 , 2015 , 2020 , 2025 , 2030 ]
grouping_years_heat : [ 1980 , 1985 , 1990 , 1995 , 2000 , 2005 , 2010 , 2015 , 2019 ] # these should not extend 2020
2020-07-18 09:22:30 +00:00
threshold_capacity : 10
2021-07-01 18:09:04 +00:00
conventional_carriers :
2023-03-06 08:27:45 +00:00
- lignite
- coal
- oil
- uranium
2021-07-01 18:09:04 +00:00
2020-08-20 15:12:20 +00:00
2019-04-17 15:04:33 +00:00
sector :
2021-09-29 14:23:38 +00:00
district_heating :
potential : 0.6 # maximum fraction of urban demand which can be supplied by district heating
# increase of today's district heating demand to potential maximum district heating share
# progress = 0 means today's district heating share, progress = 1 means maximum fraction of urban demand is supplied by district heating
2022-09-14 14:44:53 +00:00
progress :
2020 : 0.0
2030 : 0.3
2040 : 0.6
2050 : 1.0
2021-09-29 14:23:38 +00:00
district_heating_loss : 0.15
2023-01-30 10:56:01 +00:00
cluster_heat_buses : false # cluster residential and service heat buses to one to save memory
2021-07-01 18:09:04 +00:00
bev_dsm_restriction_value : 0.75 #Set to 0 for no restriction on BEV DSM
bev_dsm_restriction_time : 7 #Time at which SOC of BEV has to be dsm_restriction_value
transport_heating_deadband_upper : 20 .
transport_heating_deadband_lower : 15 .
ICE_lower_degree_factor : 0.375 #in per cent increase in fuel consumption per degree above deadband
ICE_upper_degree_factor : 1.6
EV_lower_degree_factor : 0.98
EV_upper_degree_factor : 0.63
bev_dsm : true #turns on EV battery
bev_availability : 0.5 #How many cars do smart charging
bev_energy : 0.05 #average battery size in MWh
bev_charge_efficiency : 0.9 #BEV (dis-)charging efficiency
bev_plug_to_wheel_efficiency : 0.2 #kWh/km from EPA https://www.fueleconomy.gov/feg/ for Tesla Model S
bev_charge_rate : 0.011 #3-phase charger with 11 kW
bev_avail_max : 0.95
bev_avail_mean : 0.8
v2g : true #allows feed-in to grid from EV battery
2021-01-26 09:55:38 +00:00
#what is not EV or FCEV is oil-fuelled ICE
2022-12-29 10:46:57 +00:00
land_transport_fuel_cell_share :
2022-09-14 14:44:53 +00:00
2020 : 0
2030 : 0.05
2040 : 0.1
2050 : 0.15
2022-12-29 10:46:57 +00:00
land_transport_electric_share :
2022-09-14 14:44:53 +00:00
2020 : 0
2030 : 0.25
2040 : 0.6
2050 : 0.85
2022-12-29 10:46:57 +00:00
land_transport_ice_share :
2020 : 1
2030 : 0.7
2040 : 0.3
2050 : 0
2021-07-01 18:09:04 +00:00
transport_fuel_cell_efficiency : 0.5
transport_internal_combustion_efficiency : 0.3
2021-08-18 14:17:59 +00:00
agriculture_machinery_electric_share : 0
2022-12-29 10:46:57 +00:00
agriculture_machinery_oil_share : 1
2021-08-16 14:26:50 +00:00
agriculture_machinery_fuel_efficiency : 0.7 # fuel oil per use
agriculture_machinery_electric_efficiency : 0.3 # electricity per use
2022-12-01 16:18:48 +00:00
MWh_MeOH_per_MWh_H2: 0.8787 # in LHV, source: DECHEMA (2017) : Low carbon energy and feedstock for the European chemical industry , pg. 64.
MWh_MeOH_per_tCO2: 4.0321 # in LHV, source: DECHEMA (2017) : Low carbon energy and feedstock for the European chemical industry , pg. 64.
MWh_MeOH_per_MWh_e: 3.6907 # in LHV, source: DECHEMA (2017) : Low carbon energy and feedstock for the European chemical industry , pg. 64.
2021-09-28 15:34:47 +00:00
shipping_hydrogen_liquefaction : false # whether to consider liquefaction costs for shipping H2 demands
2023-02-22 12:26:29 +00:00
shipping_hydrogen_share :
2020 : 0
2030 : 0
2040 : 0
2050 : 0
shipping_methanol_share :
2020 : 0
2030 : 0.3
2040 : 0.7
2050 : 1
shipping_oil_share :
2020 : 1
2030 : 0.7
2040 : 0.3
2050 : 0
2022-12-03 11:22:05 +00:00
shipping_methanol_efficiency : 0.46 # 10-15% higher https://www.iea-amf.org/app/webroot/files/file/Annex%20Reports/AMF_Annex_56.pdf, https://users.ugent.be/~lsileghe/documents/extended_abstract.pdf
shipping_oil_efficiency : 0.40 #For conversion of fuel oil to propulsion in 2011
2022-12-29 10:46:57 +00:00
aviation_demand_factor : 1 . # relative aviation demand compared to today
HVC_demand_factor : 1 . # relative HVC demand compared to today
2021-07-01 18:09:04 +00:00
time_dep_hp_cop : true #time dependent heat pump coefficient of performance
heat_pump_sink_T : 55 . # Celsius, based on DTU / large area radiators; used in build_cop_profiles.py
2020-12-02 10:51:27 +00:00
# conservatively high to cover hot water and space heating in poorly-insulated buildings
2021-07-01 18:09:04 +00:00
reduce_space_heat_exogenously : true # reduces space heat demand by a given factor (applied before losses in DH)
2021-04-30 15:57:16 +00:00
# this can represent e.g. building renovation, building demolition, or if
# the factor is negative: increasing floor area, increased thermal comfort, population growth
2022-09-14 14:44:53 +00:00
reduce_space_heat_exogenously_factor : # per unit reduction in space heat demand
2021-04-30 15:57:16 +00:00
# the default factors are determined by the LTS scenario from http://tool.european-calculator.eu/app/buildings/building-types-area/?levers=1ddd4444421213bdbbbddd44444ffffff11f411111221111211l212221
2022-09-14 14:44:53 +00:00
2020 : 0.10 # this results in a space heat demand reduction of 10%
2025 : 0.09 # first heat demand increases compared to 2020 because of larger floor area per capita
2030 : 0.09
2035 : 0.11
2040 : 0.16
2045 : 0.21
2050 : 0.29
2023-03-06 08:27:45 +00:00
retrofitting : # co-optimises building renovation to reduce space heat demand
2021-07-01 18:09:04 +00:00
retro_endogen : false # co-optimise space heat savings
cost_factor : 1.0 # weight costs for building renovation
interest_rate : 0.04 # for investment in building components
annualise_cost : true # annualise the investment costs
tax_weighting : false # weight costs depending on taxes in countries
construction_index : true # weight costs depending on labour/material costs per country
tes : true
tes_tau : # 180 day time constant for centralised, 3 day for decentralised
decentral : 3
central : 180
boilers : true
oil_boilers : false
2022-08-05 09:27:14 +00:00
biomass_boiler : true
2021-07-01 18:09:04 +00:00
chp : true
micro_chp : false
solar_thermal : true
solar_cf_correction : 0.788457 # = >>> 1/1.2683
marginal_cost_storage : 0 . #1e-4
methanation : true
helmeth : true
2022-06-27 16:06:59 +00:00
coal_cc : false
2021-07-01 18:09:04 +00:00
dac : true
2022-07-26 13:47:17 +00:00
co2_vent : false
2023-02-16 16:21:58 +00:00
allam_cycle : false
2021-07-01 18:09:04 +00:00
SMR : true
2023-02-16 16:21:58 +00:00
regional_co2_sequestration_potential :
enable : false # enable regionally resolved geological co2 storage potential
attribute : 'conservative estimate Mt'
include_onshore : false # include onshore sequestration potentials
min_size : 3 # Gt, sites with lower potential will be excluded
max_size : 25 # Gt, max sequestration potential for any one site, TODO research suitable value
years_of_storage : 25 # years until potential exhausted at optimised annual rate
2021-07-01 18:09:04 +00:00
co2_sequestration_potential : 200 #MtCO2/a sequestration potential for Europe
2021-08-10 08:31:06 +00:00
co2_sequestration_cost : 10 #EUR/tCO2 for sequestration of CO2
2023-01-24 17:44:39 +00:00
co2_spatial : false
co2network : false
2021-07-01 18:09:04 +00:00
cc_fraction : 0.9 # default fraction of CO2 captured with post-combustion capture
hydrogen_underground_storage : true
2021-11-29 08:12:07 +00:00
hydrogen_underground_storage_locations :
2021-12-18 15:17:31 +00:00
# - onshore # more than 50 km from sea
2023-03-06 08:27:45 +00:00
- nearshore # within 50 km of sea
2021-11-29 08:12:07 +00:00
# - offshore
2022-06-10 14:53:37 +00:00
ammonia : false # can be false (no NH3 carrier), true (copperplated NH3), "regional" (regionalised NH3 without network)
2023-02-15 12:47:57 +00:00
min_part_load_fischer_tropsch : 0.9 # p_min_pu
min_part_load_methanolisation : 0.5 # p_min_pu
2021-07-01 18:09:04 +00:00
use_fischer_tropsch_waste_heat : true
use_fuel_cell_waste_heat : true
2023-02-15 13:01:00 +00:00
use_electrolysis_waste_heat : false
2021-12-03 16:59:17 +00:00
electricity_distribution_grid : true
2021-07-01 18:09:04 +00:00
electricity_distribution_grid_cost_factor : 1.0 #multiplies cost in data/costs.csv
electricity_grid_connection : true # only applies to onshore wind and utility PV
2021-11-04 20:48:54 +00:00
H2_network : true
2021-12-03 16:59:17 +00:00
gas_network : false
H2_retrofit : false # if set to True existing gas pipes can be retrofitted to H2 pipes
2021-08-04 08:49:06 +00:00
# according to hydrogen backbone strategy (April, 2020) p.15
# https://gasforclimate2050.eu/wp-content/uploads/2020/07/2020_European-Hydrogen-Backbone_Report.pdf
# 60% of original natural gas capacity could be used in cost-optimal case as H2 capacity
2021-08-04 08:35:02 +00:00
H2_retrofit_capacity_per_CH4 : 0.6 # ratio for H2 capacity per original CH4 capacity of retrofitted pipelines
2021-11-29 11:42:10 +00:00
gas_network_connectivity_upgrade : 1 # https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.connectivity.edge_augmentation.k_edge_augmentation.html#networkx.algorithms.connectivity.edge_augmentation.k_edge_augmentation
2021-07-01 18:09:04 +00:00
gas_distribution_grid : true
gas_distribution_grid_cost_factor : 1.0 #multiplies cost in data/costs.csv
2023-02-16 16:21:58 +00:00
biomass_spatial : false # regionally resolve biomass (e.g. potentials)
biomass_transport : false # allow transport of solid biomass between nodes
2021-07-01 18:09:04 +00:00
conventional_generation: # generator : carrier
OCGT : gas
2022-08-04 14:13:09 +00:00
biomass_to_liquid : false
2022-08-04 13:34:20 +00:00
biosng : false
2021-07-01 18:09:04 +00:00
industry :
2022-09-14 14:44:53 +00:00
St_primary_fraction : # fraction of steel produced via primary route versus secondary route (scrap+EAF); today fraction is 0.6
2020 : 0.6
2025 : 0.55
2030 : 0.5
2035 : 0.45
2040 : 0.4
2045 : 0.35
2050 : 0.3
DRI_fraction : # fraction of the primary route converted to DRI + EAF
2020 : 0
2025 : 0
2030 : 0.05
2035 : 0.2
2040 : 0.4
2045 : 0.7
2050 : 1
2021-07-01 18:09:04 +00:00
H2_DRI : 1.7 #H2 consumption in Direct Reduced Iron (DRI), MWh_H2,LHV/ton_Steel from 51kgH2/tSt in Vogl et al (2018) doi:10.1016/j.jclepro.2018.08.279
elec_DRI : 0.322 #electricity consumption in Direct Reduced Iron (DRI) shaft, MWh/tSt HYBRIT brochure https://ssabwebsitecdn.azureedge.net/-/media/hybrit/files/hybrit_brochure.pdf
2022-09-14 14:44:53 +00:00
Al_primary_fraction : # fraction of aluminium produced via the primary route versus scrap; today fraction is 0.4
2020 : 0.4
2025 : 0.375
2030 : 0.35
2035 : 0.325
2040 : 0.3
2045 : 0.25
2050 : 0.2
2022-06-10 12:44:36 +00:00
MWh_NH3_per_tNH3 : 5.166 # LHV
2021-07-01 18:09:04 +00:00
MWh_CH4_per_tNH3_SMR : 10.8 # 2012's demand from https://ec.europa.eu/docsroom/documents/4165/attachments/1/translations/en/renditions/pdf
MWh_elec_per_tNH3_SMR : 0.7 # same source, assuming 94-6% split methane-elec of total energy demand 11.5 MWh/tNH3
MWh_H2_per_tNH3_electrolysis : 6.5 # from https://doi.org/10.1016/j.joule.2018.04.017, around 0.197 tH2/tHN3 (>3/17 since some H2 lost and used for energy)
MWh_elec_per_tNH3_electrolysis : 1.17 # from https://doi.org/10.1016/j.joule.2018.04.017 Table 13 (air separation and HB)
2022-06-10 14:43:29 +00:00
MWh_NH3_per_MWh_H2_cracker : 1.46 # https://github.com/euronion/trace/blob/44a5ff8401762edbef80eff9cfe5a47c8d3c8be4/data/efficiencies.csv
2021-07-01 18:09:04 +00:00
NH3_process_emissions : 24.5 # in MtCO2/a from SMR for H2 production for NH3 from UNFCCC for 2015 for EU28
petrochemical_process_emissions : 25.5 # in MtCO2/a for petrochemical and other from UNFCCC for 2015 for EU28
2021-09-24 11:00:58 +00:00
HVC_primary_fraction : 1 . # fraction of today's HVC produced via primary route
2021-09-24 11:19:48 +00:00
HVC_mechanical_recycling_fraction : 0 . # fraction of today's HVC produced via mechanical recycling
HVC_chemical_recycling_fraction : 0 . # fraction of today's HVC produced via chemical recycling
2021-09-24 11:00:58 +00:00
HVC_production_today : 52 . # MtHVC/a from DECHEMA (2017), Figure 16, page 107; includes ethylene, propylene and BTX
2021-09-27 10:06:15 +00:00
MWh_elec_per_tHVC_mechanical_recycling : 0.547 # from SI of https://doi.org/10.1016/j.resconrec.2020.105010, Table S5, for HDPE, PP, PS, PET. LDPE would be 0.756.
2021-09-28 15:08:03 +00:00
MWh_elec_per_tHVC_chemical_recycling : 6.9 # Material Economics (2019), page 125; based on pyrolysis and electric steam cracking
2021-09-24 11:00:58 +00:00
chlorine_production_today : 9.58 # MtCl/a from DECHEMA (2017), Table 7, page 43
MWh_elec_per_tCl : 3.6 # DECHEMA (2017), Table 6, page 43
MWh_H2_per_tCl : -0.9372 # DECHEMA (2017), page 43; negative since hydrogen produced in chloralkali process
methanol_production_today : 1.5 # MtMeOH/a from DECHEMA (2017), page 62
MWh_elec_per_tMeOH : 0.167 # DECHEMA (2017), Table 14, page 65
MWh_CH4_per_tMeOH : 10.25 # DECHEMA (2017), Table 14, page 65
2021-07-01 18:09:04 +00:00
hotmaps_locate_missing : false
reference_year : 2015
2021-09-24 11:00:58 +00:00
# references:
# DECHEMA (2017): https://dechema.de/dechema_media/Downloads/Positionspapiere/Technology_study_Low_carbon_energy_and_feedstock_for_the_European_chemical_industry-p-20002750.pdf
2021-09-24 11:19:48 +00:00
# Material Economics (2019): https://materialeconomics.com/latest-updates/industrial-transformation-2050
2019-04-17 15:04:33 +00:00
2017-12-18 19:34:15 +00:00
costs :
2018-01-29 21:28:33 +00:00
year : 2030
2023-02-16 10:50:55 +00:00
version : v0.5.0
2021-05-10 14:58:53 +00:00
rooftop_share : 0.14 # based on the potentials, assuming (0.1 kW/m2 and 10 m2/person)
2020-10-16 09:38:26 +00:00
fill_values :
FOM : 0
VOM : 0
efficiency : 1
fuel : 0
investment : 0
lifetime : 25
"CO2 intensity": 0
"discount rate": 0.07
2019-04-17 15:04:33 +00:00
# Marginal and capital costs can be overwritten
# capital_cost:
2021-07-01 18:09:04 +00:00
# onwind: 500
2019-10-02 13:49:01 +00:00
marginal_cost :
2018-01-29 21:28:33 +00:00
solar : 0.01
onwind : 0.015
offwind : 0.015
hydro : 0 .
2018-01-30 22:12:36 +00:00
H2 : 0 .
2021-03-23 19:30:06 +00:00
electrolysis : 0 .
fuel cell : 0 .
2018-01-30 22:12:36 +00:00
battery : 0 .
2021-03-23 19:30:06 +00:00
battery inverter : 0 .
2020-08-25 10:12:00 +00:00
emission_prices : # in currency per tonne emission, only used with the option Ep
2018-01-29 21:28:33 +00:00
co2 : 0 .
2017-12-18 19:34:15 +00:00
2022-06-30 07:01:49 +00:00
clustering :
simplify_network :
to_substations : false # network is simplified to nodes with positive or negative power injection (i.e. substations or offwind connections)
algorithm: kmeans # choose from : [ hac, kmeans]
feature: solar+onwind-time # only for hac. choose from : [ solar+onwind-time, solar+onwind-cap, solar-time, solar-cap, solar+offwind-cap] etc.
2022-09-19 09:46:58 +00:00
exclude_carriers : [ ]
2022-12-28 08:33:08 +00:00
remove_stubs : true
remove_stubs_across_borders : true
2022-06-30 07:01:49 +00:00
cluster_network :
algorithm : kmeans
feature : solar+onwind-time
2022-09-19 09:46:58 +00:00
exclude_carriers : [ ]
2022-06-30 07:01:49 +00:00
aggregation_strategies :
generators :
p_nom_max : sum # use "min" for more conservative assumptions
p_nom_min : sum
p_min_pu : mean
marginal_cost : mean
committable : any
ramp_limit_up : max
ramp_limit_down : max
efficiency : mean
2017-12-18 19:34:15 +00:00
solving :
2023-03-06 08:35:11 +00:00
#tmpdir: "path/to/tmp"
2017-12-18 19:34:15 +00:00
options :
formulation : kirchhoff
2023-03-06 08:35:11 +00:00
clip_p_max_pu : 1.e-2
2019-10-02 13:49:01 +00:00
load_shedding : false
2017-12-18 19:34:15 +00:00
noisy_costs : true
2023-02-16 10:50:55 +00:00
skip_iterations : true
2020-02-10 11:06:43 +00:00
track_iterations : false
2023-03-06 08:35:11 +00:00
min_iterations : 4
max_iterations : 6
2023-03-09 21:51:56 +00:00
seed : 123
2023-03-06 08:35:11 +00:00
2017-12-18 19:34:15 +00:00
solver :
2018-03-09 14:43:55 +00:00
name : gurobi
2023-03-06 08:35:11 +00:00
options : gurobi-default
solver_options :
highs-default :
# refer to https://ergo-code.github.io/HiGHS/options/definitions.html#solver
threads : 4
solver : "ipm"
run_crossover : "off"
small_matrix_value : 1e-6
large_matrix_value : 1e9
primal_feasibility_tolerance : 1e-5
dual_feasibility_tolerance : 1e-5
ipm_optimality_tolerance : 1e-4
parallel : "on"
random_seed : 123
gurobi-default :
threads : 4
method : 2 # barrier
crossover : 0
BarConvTol : 1.e-6
Seed : 123
AggFill : 0
PreDual : 0
GURO_PAR_BARDENSETHRESH : 200
seed : 10 # Consistent seed for all plattforms
gurobi-numeric-focus :
name : gurobi
NumericFocus : 3 # Favour numeric stability over speed
method : 2 # barrier
crossover : 0 # do not use crossover
BarHomogeneous : 1 # Use homogeneous barrier if standard does not converge
BarConvTol : 1.e-5
FeasibilityTol : 1.e-4
OptimalityTol : 1.e-4
ObjScale : -0.5
threads : 8
Seed : 123
gurobi-fallback : # Use gurobi defaults
name : gurobi
crossover : 0
method : 2 # barrier
BarHomogeneous : 1 # Use homogeneous barrier if standard does not converge
BarConvTol : 1.e-5
FeasibilityTol : 1.e-5
OptimalityTol : 1.e-5
Seed : 123
threads : 8
cplex-default :
threads : 4
lpmethod : 4 # barrier
solutiontype : 2 # non basic solution, ie no crossover
barrier_convergetol : 1.e-5
feasopt_tolerance : 1.e-6
cbc-default : {} # Used in CI
2023-03-06 14:41:02 +00:00
glpk-default : {} # Used in CI
2023-03-06 08:35:11 +00:00
mem : 30000 #memory in MB; 20 GB enough for 50+B+I+H2; 100 GB for 181+B+I+H2
2017-12-18 19:34:15 +00:00
plotting :
map :
2021-07-08 12:41:34 +00:00
boundaries : [ -11 , 30 , 34 , 71 ]
2021-07-01 18:09:04 +00:00
color_geomap :
ocean : white
2022-02-20 15:13:11 +00:00
land : white
2022-04-12 14:21:09 +00:00
eu_node_location :
x : -5.5
y : 46 .
2021-07-01 18:09:04 +00:00
costs_max : 1000
2018-08-02 14:14:38 +00:00
costs_threshold : 1
2021-07-01 18:09:04 +00:00
energy_max : 20000
energy_min : -20000
2018-08-02 14:14:38 +00:00
energy_threshold : 50 .
2021-07-01 18:09:04 +00:00
vre_techs :
2023-03-06 08:27:45 +00:00
- onwind
- offwind-ac
- offwind-dc
- solar
- ror
2021-07-01 18:09:04 +00:00
renewable_storage_techs :
2023-03-06 08:27:45 +00:00
- PHS
- hydro
2021-07-01 18:09:04 +00:00
conv_techs :
2023-03-06 08:27:45 +00:00
- OCGT
- CCGT
- Nuclear
- Coal
2021-07-01 18:09:04 +00:00
storage_techs :
2023-03-06 08:27:45 +00:00
- hydro+PHS
- battery
- H2
2021-07-01 18:09:04 +00:00
load_carriers :
2023-03-06 08:27:45 +00:00
- AC load
2021-07-01 18:09:04 +00:00
AC_carriers :
2023-03-06 08:27:45 +00:00
- AC line
- AC transformer
2021-07-01 18:09:04 +00:00
link_carriers :
2023-03-06 08:27:45 +00:00
- DC line
- Converter AC-DC
2021-07-01 18:09:04 +00:00
heat_links :
2023-03-06 08:27:45 +00:00
- heat pump
- resistive heater
- CHP heat
- CHP electric
- gas boiler
- central heat pump
- central resistive heater
- central CHP heat
- central CHP electric
- central gas boiler
2021-07-01 18:09:04 +00:00
heat_generators :
2023-03-06 08:27:45 +00:00
- gas boiler
- central gas boiler
- solar thermal collector
- central solar thermal collector
2018-08-02 14:14:38 +00:00
2017-12-18 19:34:15 +00:00
nice_names :
2019-10-02 13:49:01 +00:00
OCGT : "Open-Cycle Gas"
CCGT : "Combined-Cycle Gas"
offwind-ac : "Offshore Wind (AC)"
offwind-dc : "Offshore Wind (DC)"
onwind : "Onshore Wind"
2020-01-29 16:01:57 +00:00
solar : "Solar"
PHS : "Pumped Hydro Storage"
hydro : "Reservoir & Dam"
2019-10-02 13:49:01 +00:00
battery : "Battery Storage"
H2 : "Hydrogen Storage"
2020-12-03 18:50:53 +00:00
lines : "Transmission Lines"
ror : "Run of River"
2023-03-06 10:54:08 +00:00
2019-04-18 10:12:38 +00:00
tech_colors :
2021-10-06 14:41:10 +00:00
# wind
2021-07-01 18:09:04 +00:00
onwind : "#235ebc"
onshore wind : "#235ebc"
offwind : "#6895dd"
offshore wind : "#6895dd"
offwind-ac : "#6895dd"
offshore wind (AC) : "#6895dd"
2023-03-06 10:54:08 +00:00
offshore wind ac : "#6895dd"
2021-07-01 18:09:04 +00:00
offwind-dc : "#74c6f2"
offshore wind (DC) : "#74c6f2"
2023-03-06 10:54:08 +00:00
offshore wind dc : "#74c6f2"
2021-10-06 14:41:10 +00:00
# water
hydro : '#298c81'
hydro reservoir : '#298c81'
ror : '#3dbfb0'
run of river : '#3dbfb0'
hydroelectricity : '#298c81'
PHS : '#51dbcc'
2023-03-06 10:54:08 +00:00
hydro+PHS : "#08ad97"
2021-10-06 14:41:10 +00:00
wave : '#a7d4cf'
# solar
2021-07-01 18:09:04 +00:00
solar : "#f9d002"
solar PV : "#f9d002"
2021-10-06 14:41:10 +00:00
solar thermal : '#ffbf2b'
solar rooftop : '#ffea80'
# gas
OCGT : '#e0986c'
OCGT marginal : '#e0986c'
OCGT-heat : '#e0986c'
gas boiler : '#db6a25'
gas boilers : '#db6a25'
gas boiler marginal : '#db6a25'
gas : '#e05b09'
2021-11-04 20:48:54 +00:00
fossil gas : '#e05b09'
2021-10-06 14:41:10 +00:00
natural gas : '#e05b09'
CCGT : '#a85522'
CCGT marginal : '#a85522'
2023-02-16 19:13:26 +00:00
allam : '#B98F76'
2021-10-06 14:41:10 +00:00
gas for industry co2 to atmosphere : '#692e0a'
gas for industry co2 to stored : '#8a3400'
gas for industry : '#853403'
2021-10-06 16:33:54 +00:00
gas for industry CC : '#692e0a'
gas pipeline : '#ebbca0'
2021-11-04 20:48:54 +00:00
gas pipeline new : '#a87c62'
2021-10-06 14:41:10 +00:00
# oil
oil : '#c9c9c9'
oil boiler : '#adadad'
agriculture machinery oil : '#949494'
shipping oil : "#808080"
2021-10-06 16:33:54 +00:00
land transport oil : '#afafaf'
2021-10-06 14:41:10 +00:00
# nuclear
Nuclear : '#ff8c00'
Nuclear marginal : '#ff8c00'
nuclear : '#ff8c00'
uranium : '#ff8c00'
# coal
Coal : '#545454'
coal : '#545454'
Coal marginal : '#545454'
2021-10-23 19:23:34 +00:00
solid : '#545454'
2021-10-06 14:41:10 +00:00
Lignite : '#826837'
lignite : '#826837'
Lignite marginal : '#826837'
# biomass
biogas : '#e3d37d'
2021-10-23 19:23:34 +00:00
biomass : '#baa741'
2021-10-06 14:41:10 +00:00
solid biomass : '#baa741'
solid biomass transport : '#baa741'
solid biomass for industry : '#7a6d26'
2021-10-06 16:33:54 +00:00
solid biomass for industry CC : '#47411c'
2021-10-06 14:41:10 +00:00
solid biomass for industry co2 from atmosphere : '#736412'
solid biomass for industry co2 to stored : '#47411c'
2022-08-01 13:28:53 +00:00
biomass boiler : '#8A9A5B'
2022-08-01 13:04:45 +00:00
biomass to liquid : '#32CD32'
2022-08-01 13:13:59 +00:00
BioSNG : '#123456'
2021-10-06 14:41:10 +00:00
# power transmission
lines : '#6c9459'
transmission lines : '#6c9459'
electricity distribution grid : '#97ad8c'
# electricity demand
Electric load : '#110d63'
electric demand : '#110d63'
electricity : '#110d63'
industry electricity : '#2d2a66'
industry new electricity : '#2d2a66'
agriculture electricity : '#494778'
# battery + EVs
battery : '#ace37f'
battery storage : '#ace37f'
home battery : '#80c944'
home battery storage : '#80c944'
BEV charger : '#baf238'
V2G : '#e5ffa8'
land transport EV : '#baf238'
Li ion : '#baf238'
# hot water storage
water tanks : '#e69487'
hot water storage : '#e69487'
hot water charging : '#e69487'
hot water discharging : '#e69487'
# heat demand
Heat load : '#cc1f1f'
heat : '#cc1f1f'
heat demand : '#cc1f1f'
rural heat : '#ff5c5c'
central heat : '#cc1f1f'
decentral heat : '#750606'
low-temperature heat for industry : '#8f2727'
process heat : '#ff0000'
agriculture heat : '#d9a5a5'
# heat supply
heat pumps : '#2fb537'
heat pump : '#2fb537'
air heat pump : '#36eb41'
ground heat pump : '#2fb537'
Ambient : '#98eb9d'
CHP : '#8a5751'
2021-10-06 16:33:54 +00:00
CHP CC : '#634643'
2021-10-06 14:41:10 +00:00
CHP heat : '#8a5751'
CHP electric : '#8a5751'
district heating : '#e8beac'
2021-10-23 19:23:01 +00:00
resistive heater : '#d8f9b8'
2021-10-06 14:41:10 +00:00
retrofitting : '#8487e8'
building retrofitting : '#8487e8'
# hydrogen
H2 for industry : "#f073da"
H2 for shipping : "#ebaee0"
H2 : '#bf13a0'
2021-10-23 19:23:34 +00:00
hydrogen : '#bf13a0'
2021-10-06 14:41:10 +00:00
SMR : '#870c71'
2021-10-06 16:33:54 +00:00
SMR CC : '#4f1745'
2021-10-06 14:41:10 +00:00
H2 liquefaction : '#d647bd'
hydrogen storage : '#bf13a0'
2021-10-23 19:23:34 +00:00
H2 storage : '#bf13a0'
2021-10-06 16:33:54 +00:00
land transport fuel cell : '#6b3161'
H2 pipeline : '#f081dc'
2021-11-04 20:48:54 +00:00
H2 pipeline retrofitted : '#ba99b5'
2021-10-06 16:33:54 +00:00
H2 Fuel Cell : '#c251ae'
H2 Electrolysis : '#ff29d9'
2022-06-10 12:57:03 +00:00
# ammonia
NH3 : '#46caf0'
2022-06-23 13:22:21 +00:00
ammonia : '#46caf0'
2022-06-10 12:57:03 +00:00
ammonia store : '#00ace0'
ammonia cracker : '#87d0e6'
Haber-Bosch : '#076987'
2021-10-06 14:41:10 +00:00
# syngas
Sabatier : '#9850ad'
methanation : '#c44ce6'
2021-10-23 19:23:34 +00:00
methane : '#c44ce6'
2021-10-06 14:41:10 +00:00
helmeth : '#e899ff'
# synfuels
Fischer-Tropsch : '#25c49a'
2021-10-23 19:23:34 +00:00
liquid : '#25c49a'
kerosene for aviation : '#a1ffe6'
2021-10-06 14:41:10 +00:00
naphtha for industry : '#57ebc4'
2022-12-28 12:45:57 +00:00
methanolisation : '#83d6d5'
methanol : '#468c8b'
shipping methanol : '#468c8b'
2021-10-06 14:41:10 +00:00
# co2
2021-10-23 19:23:34 +00:00
CC : '#f29dae'
CCS : '#f29dae'
CO2 sequestration : '#f29dae'
2021-10-06 14:41:10 +00:00
DAC : '#ff5270'
co2 stored : '#f2385a'
co2 : '#f29dae'
co2 vent : '#ffd4dc'
CO2 pipeline : '#f5627f'
# emissions
2021-10-23 19:23:34 +00:00
process emissions CC : '#000000'
2021-10-06 14:41:10 +00:00
process emissions : '#222222'
2021-07-01 18:09:04 +00:00
process emissions to stored : '#444444'
process emissions to atmosphere : '#888888'
2021-10-06 14:41:10 +00:00
oil emissions : '#aaaaaa'
shipping oil emissions : "#555555"
2022-12-28 12:45:57 +00:00
shipping methanol emissions : '#666666'
2021-10-06 14:41:10 +00:00
land transport oil emissions : '#777777'
agriculture machinery oil emissions : '#333333'
# other
shipping : '#03a2ff'
2021-10-23 19:23:01 +00:00
power-to-heat : '#2fb537'
2021-10-06 14:41:10 +00:00
power-to-gas : '#c44ce6'
2021-10-23 19:23:34 +00:00
power-to-H2 : '#ff29d9'
2021-10-06 14:41:10 +00:00
power-to-liquid : '#25c49a'
gas-to-power/heat : '#ee8340'
2021-10-23 19:23:34 +00:00
waste : '#e3d37d'
2021-11-02 18:03:26 +00:00
other : '#000000'
2023-03-06 10:54:08 +00:00
geothermal : '#ba91b1'
AC-AC : "#70af1d"
AC line : "#70af1d"
links : "#8a1caf"
HVDC links : "#8a1caf"
DC-DC : "#8a1caf"
DC link : "#8a1caf"