From f6717925412fed1679846ab68eae30cca627cd0e Mon Sep 17 00:00:00 2001 From: bobbyxng Date: Tue, 30 Jul 2024 11:14:07 +0200 Subject: [PATCH] Updated configtables --- config/config_backup.yaml | 262 +++++++++++++---------- doc/configtables/electricity_network.csv | 3 + 2 files changed, 150 insertions(+), 115 deletions(-) create mode 100644 doc/configtables/electricity_network.csv diff --git a/config/config_backup.yaml b/config/config_backup.yaml index 2bcaf173c..9ebeea351 100644 --- a/config/config_backup.yaml +++ b/config/config_backup.yaml @@ -3,7 +3,7 @@ # SPDX-License-Identifier: CC0-1.0 # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#top-level-configuration -version: 0.10.0 +version: 0.11.0 tutorial: false logging: @@ -15,14 +15,13 @@ private: entsoe_api: remote: - ssh: "z1" - path: "~/scratch/projects/pypsa-eur" + ssh: z1 + path: ~/scratch/projects/pypsa-eur # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#run run: prefix: "" - # name: "test-europe1-gridkit" - name: "test-begb-gridkit" + name: "europe-ua-md-gridkit-custom" scenarios: enable: false file: config/scenarios.yaml @@ -41,60 +40,40 @@ scenario: simpl: - '' ll: - - v1.0 # TODO mit und ohne Netzausbau v1.0 + - v1.0 clusters: - - 40 - # - 128 - # - 256 - # - 512 - # # - 1024 + - 320 opts: - - 'Co2L0-169H' + - '' sector_opts: - '' planning_horizons: # - 2020 - # - 2030 + - 2030 # - 2040 - - 2050 + # - 2050 # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#countries -countries: ["BE", "GB"] -# 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'] -# countries: ['AL', 'AT', 'BA', 'BE', 'BG', 'CH', 'CZ', 'DE', 'DK', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'IE', 'IT', 'LT', 'LU', 'LV', 'ME', 'MD', 'MK', 'NL', 'NO', 'PL', 'PT', 'RO', 'RS', 'SE', 'SI', 'SK', 'UA'] - -# Settings related to the high-voltage electricity grid -electricity_network: - base_network: "gridkit" # "osm" or "gridkit" - build_osm_network: true # If 'true', the network will be built from scratch (retrieving OSM data, cleaning, and building) and stored under resources, 'false' will use snapshots in data/osm - -build_osm_network: # Options of the build_osm_network script; osm = OpenStreetMap - group_tolerance_buses: 5000 # [m] (default 5000) Tolerance in meters of the close buses to merge - split_overpassing_lines: false # When True, lines overpassing buses are splitted and connected to the bueses - overpassing_lines_tolerance: 1 # [m] (default 1) Tolerance to identify lines overpassing buses - force_ac: false # When true, it forces all components (lines and substation) to be AC-only. To be used if DC assets create problem. +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', 'UA', 'MD'] # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#snapshots snapshots: - start: "2013-01-01" - end: "2014-01-01" + start: '2013-01-01' + end: '2014-01-01' inclusive: 'left' # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#enable enable: - retrieve: true + retrieve: auto prepare_links_p_nom: false retrieve_databundle: true - retrieve_sector_databundle: true retrieve_cost_data: true build_cutout: false - retrieve_irena: false retrieve_cutout: true - build_natura_raster: false - retrieve_natura_raster: true - custom_busmap: false + custom_busmap: true drop_leap_day: true + # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#co2-budget co2_budget: 2020: 0.701 @@ -105,6 +84,10 @@ co2_budget: 2045: 0.032 2050: 0.000 +electricity_network: + base_network: gridkit # Options: gridkit, osm-prebuilt, osm-raw (built from scratch using OSM data, takes longer) + osm_group_tolerance_buses: 5000 # unit: meters, default 5000 - Buses within this distance are grouped together + # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#electricity electricity: voltages: [200., 220., 300., 380., 400., 500., 750.] @@ -113,7 +96,6 @@ electricity: co2limit_enable: false co2limit: 7.75e+7 co2base: 1.487e+9 - agg_p_nom_limits: data/agg_p_nom_minmax.csv operational_reserve: activate: false @@ -126,17 +108,18 @@ electricity: H2: 168 extendable_carriers: - Generator: [solar, onwind, offwind-ac, offwind-dc, OCGT] + Generator: [solar, solar-hsat, onwind, offwind-ac, offwind-dc, offwind-float, OCGT, CCGT] StorageUnit: [] # battery, H2 Store: [battery, H2] Link: [] # H2 pipeline powerplants_filter: (DateOut >= 2023 or DateOut != DateOut) and not (Country == 'Germany' and Fueltype == 'Nuclear') custom_powerplants: false - everywhere_powerplants: [nuclear, oil, OCGT, CCGT, coal, lignite, geothermal, biomass] + everywhere_powerplants: [] conventional_carriers: [nuclear, oil, OCGT, CCGT, coal, lignite, geothermal, biomass] - renewable_carriers: [solar, onwind, offwind-ac, offwind-dc, hydro] # hydro removed + renewable_carriers: [solar, onwind, offwind-ac, offwind-dc, hydro] + # renewable_carriers: [solar, solar-hsat, onwind, offwind-ac, offwind-dc, offwind-float, hydro] estimate_renewable_capacities: enable: true @@ -144,7 +127,7 @@ electricity: year: 2020 expansion_limit: false technology_mapping: - Offshore: [offwind-ac, offwind-dc] + Offshore: [offwind-ac, offwind-dc, offwind-float] Onshore: [onwind] PV: [solar] @@ -212,7 +195,7 @@ renewable: luisa: false # [0, 5230] natura: true ship_threshold: 400 - max_depth: 50 + max_depth: 60 max_shore_distance: 30000 excluder_resolution: 200 clip_p_max_pu: 1.e-2 @@ -228,10 +211,28 @@ renewable: luisa: false # [0, 5230] natura: true ship_threshold: 400 - max_depth: 50 + max_depth: 60 min_shore_distance: 30000 excluder_resolution: 200 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 + ship_threshold: 400 + excluder_resolution: 200 + min_depth: 60 + max_depth: 1000 + clip_p_max_pu: 1.e-2 solar: cutout: europe-2013-sarah resource: @@ -247,6 +248,21 @@ renewable: natura: true excluder_resolution: 100 clip_p_max_pu: 1.e-2 + solar-hsat: + cutout: europe-2013-sarah + resource: + method: pv + panel: CSi + orientation: + slope: 35. + azimuth: 180. + tracking: horizontal + capacity_per_sqkm: 4.43 # 15% higher land usage acc. to NREL + corine: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 26, 31, 32] + luisa: false # [1111, 1121, 1122, 1123, 1130, 1210, 1221, 1222, 1230, 1241, 1242, 1310, 1320, 1330, 1410, 1421, 1422, 2110, 2120, 2130, 2210, 2220, 2230, 2310, 2410, 2420, 3210, 3320, 3330] + natura: true + excluder_resolution: 100 + clip_p_max_pu: 1.e-2 hydro: cutout: europe-2013-era5 carriers: [ror, PHS, hydro] @@ -269,27 +285,19 @@ conventional: # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#lines lines: types: - 200.: "Al/St 240/40 2-bundle 220.0" - 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" - 400.: "Al/St 240/40 4-bundle 380.0" - 500.: "Al/St 240/40 4-bundle 380.0" - 750.: "Al/St 560/50 4-bundle 750.0" - dc_types: # setting only for osm - 200.: "HVDC XLPE 1000" - 220.: "HVDC XLPE 1000" - 300.: "HVDC XLPE 1000" - 750.: "HVDC XLPE 1000" - 380.: "HVDC XLPE 1000" - 400.: "HVDC XLPE 1000" - 500.: "HVDC XLPE 1000" + 200.0: Al/St 240/40 2-bundle 220.0 + 220.0: Al/St 240/40 2-bundle 220.0 + 300.0: Al/St 240/40 3-bundle 300.0 + 380.0: Al/St 240/40 4-bundle 380.0 + 400.0: Al/St 240/40 4-bundle 380.0 + 500.0: Al/St 240/40 4-bundle 380.0 + 750.0: Al/St 560/50 4-bundle 750.0 s_max_pu: 0.7 s_nom_max: .inf max_extension: 20000 #MW length_factor: 1.25 reconnect_crimea: true - under_construction: 'zero' # 'zero': set capacity to zero, 'remove': remove, 'keep': with full capacity + under_construction: 'keep' # 'zero': set capacity to zero, 'remove': remove, 'keep': with full capacity dynamic_line_rating: activate: false cutout: europe-2013-era5 @@ -302,7 +310,7 @@ links: p_max_pu: 1.0 p_nom_max: .inf max_extension: 30000 #MW - include_tyndp: false + include_tyndp: true under_construction: 'zero' # 'zero': set capacity to zero, 'remove': remove, 'keep': with full capacity # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#transformers @@ -335,6 +343,8 @@ pypsa_eur: - onwind - offwind-ac - offwind-dc + - offwind-float + - solar-hsat - solar - ror - nuclear @@ -385,8 +395,8 @@ solar_thermal: # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#existing-capacities existing_capacities: - grouping_years_power: [1895, 1920, 1950, 1955, 1960, 1965, 1970, 1975, 1980, 1985, 1990, 1995, 2000, 2005, 2010, 2015, 2020, 2025, 2030] - grouping_years_heat: [1980, 1985, 1990, 1995, 2000, 2005, 2010, 2015, 2020] # heat grouping years >= baseyear will be ignored + grouping_years_power: [1920, 1950, 1955, 1960, 1965, 1970, 1975, 1980, 1985, 1990, 1995, 2000, 2005, 2010, 2015, 2020, 2025] + grouping_years_heat: [1980, 1985, 1990, 1995, 2000, 2005, 2010, 2015, 2019] # heat grouping years >= baseyear will be ignored threshold_capacity: 10 default_heating_lifetime: 20 conventional_carriers: @@ -427,7 +437,6 @@ sector: bev_availability: 0.5 bev_energy: 0.05 bev_charge_efficiency: 0.9 - bev_plug_to_wheel_efficiency: 0.2 bev_charge_rate: 0.011 bev_avail_max: 0.95 bev_avail_mean: 0.8 @@ -456,8 +465,9 @@ sector: 2040: 0.3 2045: 0.15 2050: 0 - transport_fuel_cell_efficiency: 0.5 - transport_internal_combustion_efficiency: 0.3 + transport_electric_efficiency: 53.19 # 1 MWh_el = 53.19*100 km + transport_fuel_cell_efficiency: 30.003 # 1 MWh_H2 = 30.003*100 km + transport_ice_efficiency: 16.0712 # 1 MWh_oil = 16.0712 * 100 km agriculture_machinery_electric_share: 0 agriculture_machinery_oil_share: 1 agriculture_machinery_fuel_efficiency: 0.7 @@ -563,15 +573,15 @@ sector: - nearshore # within 50 km of sea # - offshore ammonia: false - min_part_load_fischer_tropsch: 0.7 + min_part_load_fischer_tropsch: 0.5 min_part_load_methanolisation: 0.3 min_part_load_methanation: 0.3 - use_fischer_tropsch_waste_heat: true - use_haber_bosch_waste_heat: true - use_methanolisation_waste_heat: true - use_methanation_waste_heat: true - use_fuel_cell_waste_heat: true - use_electrolysis_waste_heat: true + use_fischer_tropsch_waste_heat: 0.25 + use_haber_bosch_waste_heat: 0.25 + use_methanolisation_waste_heat: 0.25 + use_methanation_waste_heat: 0.25 + use_fuel_cell_waste_heat: 0.25 + use_electrolysis_waste_heat: 0.25 electricity_transmission_grid: true electricity_distribution_grid: true electricity_distribution_grid_cost_factor: 1.0 @@ -586,6 +596,8 @@ sector: gas pipeline: efficiency_per_1000km: 1 #0.977 compression_per_1000km: 0.01 + electricity distribution grid: + efficiency_static: 0.97 H2_network: true gas_network: false H2_retrofit: false @@ -614,6 +626,13 @@ sector: solar: 3 offwind-ac: 3 offwind-dc: 3 + enhanced_geothermal: + enable: false + flexible: true + max_hours: 240 + max_boost: 0.25 + var_cf: true + sustainability_factor: 0.0025 # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#industry industry: @@ -679,6 +698,9 @@ industry: 2040: 0.12 2045: 0.16 2050: 0.20 + HVC_environment_sequestration_fraction: 0. + waste_to_energy: false + waste_to_energy_cc: false sector_ratios_fraction_future: 2020: 0.0 2025: 0.1 @@ -697,6 +719,7 @@ industry: methanol_production_today: 1.5 MWh_elec_per_tMeOH: 0.167 MWh_CH4_per_tMeOH: 10.25 + MWh_MeOH_per_tMeOH: 5.528 hotmaps_locate_missing: false reference_year: 2015 @@ -704,8 +727,7 @@ industry: # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#costs costs: year: 2030 - version: v0.8.1 - rooftop_share: 0.14 # based on the potentials, assuming (0.1 kW/m2 and 10 m2/person) + version: v0.9.0 social_discountrate: 0.02 fill_values: FOM: 0 @@ -730,8 +752,8 @@ costs: battery: 0. battery inverter: 0. emission_prices: - enable: false - co2: 0. + enable: true + co2: 100. co2_monthly_prices: false # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#clustering @@ -755,8 +777,8 @@ clustering: ramp_limit_up: max ramp_limit_down: max temporal: - resolution_elec: 169H - resolution_sector: 169H + resolution_elec: 25H + resolution_sector: 25H # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#adjustments adjustments: @@ -777,11 +799,28 @@ solving: # io_api: "direct" # Increases performance but only supported for the highs and gurobi solvers # options that go into the optimize function track_iterations: false - min_iterations: 4 - max_iterations: 6 + min_iterations: 2 + max_iterations: 3 transmission_losses: 2 linearized_unit_commitment: true horizon: 365 + post_discretization: + enable: false + line_unit_size: 1700 + line_threshold: 0.3 + link_unit_size: + DC: 2000 + H2 pipeline: 1200 + gas pipeline: 1500 + link_threshold: + DC: 0.3 + H2 pipeline: 0.3 + gas pipeline: 0.3 + + agg_p_nom_limits: + agg_offwind: false + include_existing: false + file: data/agg_p_nom_minmax.csv constraints: CCL: false @@ -795,7 +834,7 @@ solving: solver_options: highs-default: - # refer to https://ergo-code.github.io/HiGHS/options/definitions.html#solver + # refer to https://ergo-code.github.io/HiGHS/dev/options/definitions/ threads: 4 solver: "ipm" run_crossover: "off" @@ -848,23 +887,17 @@ solving: cbc-default: {} # Used in CI glpk-default: {} # Used in CI - mem_mb: 100000 #memory in MB; 20 GB enough for 50+B+I+H2; 100 GB for 181+B+I+H2 - runtime: 12h #runtime in humanfriendly style https://humanfriendly.readthedocs.io/en/latest/ + mem_mb: 30000 #memory in MB; 20 GB enough for 50+B+I+H2; 100 GB for 181+B+I+H2 + runtime: 6h #runtime in humanfriendly style https://humanfriendly.readthedocs.io/en/latest/ # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#plotting - plotting: map: - boundaries: - eu_node_location: - x: -5.5 - y: 46. - # costs_max: 1000 - # costs_threshold: 0.0000001 - # energy_max: - # energy_min: - # energy_threshold: 0.000001 + boundaries: [-11, 30, 34, 71] + color_geomap: + ocean: white + land: white projection: name: "EqualEarth" # See https://scitools.org.uk/cartopy/docs/latest/reference/projections.html for alternatives, for example: @@ -872,34 +905,21 @@ plotting: # central_longitude: 10. # central_latitude: 50. # standard_parallels: [35, 65] - -# plotting: -# map: -# boundaries: [-11, 30, 34, 71] -# color_geomap: -# ocean: white -# land: white -# projection: -# name: "EqualEarth" -# # See https://scitools.org.uk/cartopy/docs/latest/reference/projections.html for alternatives, for example: -# # name: "LambertConformal" -# # central_longitude: 10. -# # central_latitude: 50. -# # standard_parallels: [35, 65] -# eu_node_location: -# x: -5.5 -# y: 46. -# costs_max: 1000 -# costs_threshold: 1 -# energy_max: 20000 -# energy_min: -20000 -# energy_threshold: 50. + eu_node_location: + x: -5.5 + y: 46. + costs_max: 1000 + costs_threshold: 1 + energy_max: 20000 + energy_min: -20000 + energy_threshold: 50. nice_names: OCGT: "Open-Cycle Gas" CCGT: "Combined-Cycle Gas" offwind-ac: "Offshore Wind (AC)" offwind-dc: "Offshore Wind (DC)" + offwind-float: "Offshore Wind (Floating)" onwind: "Onshore Wind" solar: "Solar" PHS: "Pumped Hydro Storage" @@ -924,6 +944,9 @@ plotting: offwind-dc: "#74c6f2" offshore wind (DC): "#74c6f2" offshore wind dc: "#74c6f2" + offwind-float: "#b5e2fa" + offshore wind (Float): "#b5e2fa" + offshore wind float: "#b5e2fa" # water hydro: '#298c81' hydro reservoir: '#298c81' @@ -935,6 +958,7 @@ plotting: # solar solar: "#f9d002" solar PV: "#f9d002" + solar-hsat: "#fdb915" solar thermal: '#ffbf2b' residential rural solar thermal: '#f1c069' services rural solar thermal: '#eabf61' @@ -1036,6 +1060,7 @@ plotting: BEV charger: '#baf238' V2G: '#e5ffa8' land transport EV: '#baf238' + land transport demand: '#38baf2' Li ion: '#baf238' # hot water storage water tanks: '#e69487' @@ -1140,6 +1165,7 @@ plotting: methanolisation: '#83d6d5' methanol: '#468c8b' shipping methanol: '#468c8b' + industry methanol: '#468c8b' # co2 CC: '#f29dae' CCS: '#f29dae' @@ -1170,6 +1196,9 @@ plotting: waste: '#e3d37d' other: '#000000' geothermal: '#ba91b1' + geothermal heat: '#ba91b1' + geothermal district heat: '#d19D00' + geothermal organic rankine cycle: '#ffbf00' AC: "#70af1d" AC-AC: "#70af1d" AC line: "#70af1d" @@ -1179,3 +1208,6 @@ plotting: DC-DC: "#8a1caf" DC link: "#8a1caf" load: "#dd2e23" + waste CHP: '#e3d37d' + waste CHP CC: '#e3d3ff' + HVC to air: 'k' diff --git a/doc/configtables/electricity_network.csv b/doc/configtables/electricity_network.csv new file mode 100644 index 000000000..f7a51ef1f --- /dev/null +++ b/doc/configtables/electricity_network.csv @@ -0,0 +1,3 @@ +,Unit,Values,Description +base_network, --, "Any value in {'gridkit', 'osm-prebuilt', 'osm-raw}", "Specify the underlying base network, i.e. GridKit (based on ENTSO-E web map extract, OpenStreetMap (OSM) prebuilt or raw (built from raw OSM data), takes longer." +osm_group_tolerance_buses, meters, float, "Specifies the radius in which substations shall be clustered to a single bus. Default recommendation: 5000 (meters)"