From 9b2fa7c140c00575297730e0f4a87c5bc6608263 Mon Sep 17 00:00:00 2001 From: Tom Brown Date: Thu, 20 Aug 2020 17:12:20 +0200 Subject: [PATCH] config.default.yaml: overnight, new config.myopic.yaml for myopic --- config.default.yaml | 18 ++- config.myopic.yaml | 328 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 339 insertions(+), 7 deletions(-) create mode 100644 config.myopic.yaml diff --git a/config.default.yaml b/config.default.yaml index 4f7c271b..2171b7e6 100644 --- a/config.default.yaml +++ b/config.default.yaml @@ -4,7 +4,7 @@ results_dir: 'results/' summary_dir: results costs_dir: '../technology_data/outputs/' run: 'your-run-name' # use this to keep track of runs with different settings -foresight: 'myopic' #options are overnight, myopic, perfect +foresight: 'overnight' #options are overnight, myopic, perfect (perfect is not yet implemented) scenario: @@ -22,8 +22,8 @@ scenario: # B for biomass supply, I for industry, shipping and aviation # solarx or onwindx changes the available installable potential by factor x # dist{n} includes distribution grids with investment cost of n times cost in data/costs.csv - planning_horizons : [2020, 2030, 2040, 2050] #timesteps for myopic and perfect - co2_budget_name: ['go'] + planning_horizons : [2030] #investment years for myopic and perfect; or costs year for overnight + co2_budget_name: ['go'] #gives shape of CO2 budgets over planning horizon # snapshots are originally set in PyPSA-Eur/config.yaml but used again by PyPSA-Eur-Sec snapshots: @@ -47,10 +47,12 @@ biomass: year: 2030 scenario: "Med" +# only relevant for foresight = myopic or perfect existing_capacities: grouping_years: [1980, 1985, 1990, 1995, 2000, 2005, 2010, 2015, 2019] threshold_capacity: 10 conventional_carriers: ['lignite', 'coal', 'oil', 'uranium'] + sector: 'central' : True 'central_fraction' : 0.6 @@ -122,7 +124,7 @@ costs: solving: - #tmpdir: "/martavp/pypsa-eur-sec/tmp" + #tmpdir: "path/to/tmp" options: formulation: kirchhoff clip_p_max_pu: 1.e-2 @@ -131,7 +133,6 @@ solving: min_iterations: 1 max_iterations: 1 - # max_iterations: 1 # nhours: 1 solver: @@ -152,7 +153,7 @@ solving: #solutiontype: 2 # non basic solution, ie no crossover #barrier_convergetol: 1.e-5 #feasopt_tolerance: 1.e-6 - mem: 20000 #memory in MB; 20 GB enough for 50+B+I+H2; 100 GB for 181+B+I+H2 + mem: 30000 #memory in MB; 20 GB enough for 50+B+I+H2; 100 GB for 181+B+I+H2 industry: 'DRI_ratio' : 0.5 #ratio of today's blast-furnace steel (60% primary route, 40% secondary) to future assumption (30% primary, 70% secondary), transformed into DRI + electric arc @@ -232,9 +233,13 @@ plotting: "home battery storage" : "#614700" "Nuclear" : "r" "Nuclear marginal" : "r" + "nuclear" : "r" + "uranium" : "r" "Coal" : "k" + "coal" : "k" "Coal marginal" : "k" "Lignite" : "grey" + "lignite" : "grey" "Lignite marginal" : "grey" "CCGT" : "orange" "CCGT marginal" : "orange" @@ -263,7 +268,6 @@ plotting: "Fischer-Tropsch" : "#44DD33" "kerosene for aviation": "#44BB11" "naphtha for industry" : "#44FF55" - "nuclear" : "#303030" "water tanks" : "#BBBBBB" "hot water storage" : "#BBBBBB" "hot water charging" : "#BBBBBB" diff --git a/config.myopic.yaml b/config.myopic.yaml new file mode 100644 index 00000000..aa5e3758 --- /dev/null +++ b/config.myopic.yaml @@ -0,0 +1,328 @@ +logging_level: INFO + +results_dir: 'results/' +summary_dir: results +costs_dir: '../technology_data/outputs/' +run: 'your-run-name' # use this to keep track of runs with different settings +foresight: 'myopic' #options are overnight, myopic, perfect (perfect is not yet implemented) + + +scenario: + sectors: [E] # ignore this legacy setting + simpl: [''] # only relevant for PyPSA-Eur + lv: [1.0,1.5] # allowed transmission line volume expansion, can be any float >= 1.0 (today) or "opt" + clusters: [45,50] # number of nodes in Europe, any integer between 37 (1 node per country-zone) and several hundred + opts: [''] # only relevant for PyPSA-Eur + sector_opts: [Co2L0-3H-H-B-solar3-dist1] # this is where the main scenario settings are + # 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 + # 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, + # B for biomass supply, I for industry, shipping and aviation + # solarx or onwindx changes the available installable potential by factor x + # dist{n} includes distribution grids with investment cost of n times cost in data/costs.csv + planning_horizons : [2020, 2030, 2040, 2050] #investment years for myopic and perfect; or costs year for overnight + co2_budget_name: ['go'] #gives shape of CO2 budgets over planning horizon + +# snapshots are originally set in PyPSA-Eur/config.yaml but used again by PyPSA-Eur-Sec +snapshots: + # arguments to pd.date_range + start: "2013-01-01" + end: "2014-01-01" + closed: 'left' # end is not inclusive + +atlite: + cutout_dir: '../pypsa-eur/cutouts' + cutout_name: "europe-2013-era5" + +# this information is NOT used but needed as an argument for +# pypsa-eur/scripts/add_electricity.py/load_costs in make_summary.py +electricity: + max_hours: + battery: 6 + H2: 168 + +biomass: + year: 2030 + scenario: "Med" + +# only relevant for foresight = myopic or perfect +existing_capacities: + grouping_years: [1980, 1985, 1990, 1995, 2000, 2005, 2010, 2015, 2019] + threshold_capacity: 10 + conventional_carriers: ['lignite', 'coal', 'oil', 'uranium'] + +sector: + 'central' : True + 'central_fraction' : 0.6 + 'dsm_restriction_value' : 0.75 #Set to 0 for no restriction on BEV DSM + '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 + 'district_heating_loss' : 0.15 + 'bev' : True #turns on EV battery + 'bev_availability' : 0.5 #How many cars do smart charging + 'v2g' : True #allows feed-in to grid from EV battery + 'transport_fuel_cell_share' : 0. #0 means all EVs, 1 means all FCs + 'shipping_average_efficiency' : 0.4 #For conversion of fuel oil to propulsion in 2011 + 'time_dep_hp_cop' : True + 'space_heating_fraction' : 1.0 #fraction of space heating active + 'retrofitting' : False + 'retroI-fraction' : 0.25 + 'retroII-fraction' : 0.55 + 'retrofitting-cost_factor' : 1.0 + 'tes' : True + 'tes_tau' : 3. + 'boilers' : True + 'oil_boilers': False + 'chp' : True + 'solar_thermal' : True + 'solar_cf_correction': 0.788457 # = >>> 1/1.2683 + 'marginal_cost_storage' : 0. #1e-4 + 'methanation' : True + 'helmeth' : True + 'dac' : True + 'co2_vent' : True + 'SMR' : True + 'ccs_fraction' : 0.9 + 'hydrogen_underground_storage' : True + 'use_fischer_tropsch_waste_heat' : True + 'use_fuel_cell_waste_heat' : True + 'electricity_distribution_grid' : False + '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 + +costs: + year: 2030 + lifetime: 25 #default lifetime + # From a Lion Hirth paper, also reflects average of Noothout et al 2016 + discountrate: 0.07 + # [EUR/USD] ECB: https://www.ecb.europa.eu/stats/exchange/eurofxref/html/eurofxref-graph-usd.en.html # noqa: E501 + USD2013_to_EUR2013: 0.7532 + + # Marginal and capital costs can be overwritten + # capital_cost: + # Wind: Bla + marginal_cost: # + solar: 0.01 + onwind: 0.015 + offwind: 0.015 + hydro: 0. + H2: 0. + battery: 0. + + emission_prices: # only used with the option Ep (emission prices) + co2: 0. + + lines: + length_factor: 1.25 #to estimate offwind connection costs + + +solving: + #tmpdir: "path/to/tmp" + options: + formulation: kirchhoff + clip_p_max_pu: 1.e-2 + load_shedding: false + noisy_costs: true + + min_iterations: 1 + max_iterations: 1 + # nhours: 1 + + solver: + name: gurobi + threads: 4 + method: 2 # barrier + crossover: 0 + BarConvTol: 1.e-5 + Seed: 123 + AggFill: 0 + PreDual: 0 + GURO_PAR_BARDENSETHRESH: 200 + #FeasibilityTol: 1.e-6 + + #name: cplex + #threads: 4 + #lpmethod: 4 # barrier + #solutiontype: 2 # non basic solution, ie no crossover + #barrier_convergetol: 1.e-5 + #feasopt_tolerance: 1.e-6 + mem: 30000 #memory in MB; 20 GB enough for 50+B+I+H2; 100 GB for 181+B+I+H2 + +industry: + 'DRI_ratio' : 0.5 #ratio of today's blast-furnace steel (60% primary route, 40% secondary) to future assumption (30% primary, 70% secondary), transformed into DRI + electric arc + 'H2_DRI' : 1.7 #H2 consumption in Direct Reduced Iron (DRI), MWh_H2/ton_Steel from Vogl et al (2018) doi:10.1016/j.jclepro.2018.08.279 + 'Al_to_scrap' : 0.5 # ratio of primary-route Aluminum transformed into scrap (today 40% to future 20% primary route) + 'H2_for_NH3' : 85000 # H2 in GWh/a for 17 MtNH3/a transformed from SMR to electrolyzed-H2, following Lechtenböhmer(2016) + '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 + +plotting: + map: + figsize: [7, 7] + boundaries: [-10.2, 29, 35, 72] + p_nom: + bus_size_factor: 5.e+4 + linewidth_factor: 3.e+3 # 1.e+3 #3.e+3 + + costs_max: 1200 + costs_threshold: 1 + + + energy_max: 20000. + energy_min: -15000. + energy_threshold: 50. + + + vre_techs: ["onwind", "offwind-ac", "offwind-dc", "solar", "ror"] + renewable_storage_techs: ["PHS","hydro"] + conv_techs: ["OCGT", "CCGT", "Nuclear", "Coal"] + storage_techs: ["hydro+PHS", "battery", "H2"] + # store_techs: ["Li ion", "water tanks"] + load_carriers: ["AC load"] #, "heat load", "Li ion load"] + AC_carriers: ["AC line", "AC transformer"] + link_carriers: ["DC line", "Converter AC-DC"] + heat_links: ["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"] + heat_generators: ["gas boiler", "central gas boiler", "solar thermal collector", "central solar thermal collector"] + tech_colors: + "onwind" : "b" + "onshore wind" : "b" + 'offwind' : "c" + 'offshore wind' : "c" + 'offwind-ac' : "c" + 'offshore wind (AC)' : "c" + 'offwind-dc' : "#009999" + 'offshore wind (DC)' : "#009999" + 'wave' : "#004444" + "hydro" : "#3B5323" + "hydro reservoir" : "#3B5323" + "ror" : "#78AB46" + "run of river" : "#78AB46" + 'hydroelectricity' : '#006400' + 'solar' : "y" + 'solar PV' : "y" + 'solar thermal' : 'coral' + 'solar rooftop' : '#e6b800' + "OCGT" : "wheat" + "OCGT marginal" : "sandybrown" + "OCGT-heat" : "orange" + "gas boiler" : "orange" + "gas boilers" : "orange" + "gas boiler marginal" : "orange" + "gas-to-power/heat" : "orange" + "gas" : "brown" + "natural gas" : "brown" + "SMR" : "#4F4F2F" + "oil" : "#B5A642" + "oil boiler" : "#B5A677" + "lines" : "k" + "transmission lines" : "k" + "H2" : "m" + "hydrogen storage" : "m" + "battery" : "slategray" + "battery storage" : "slategray" + "home battery" : "#614700" + "home battery storage" : "#614700" + "Nuclear" : "r" + "Nuclear marginal" : "r" + "nuclear" : "r" + "uranium" : "r" + "Coal" : "k" + "coal" : "k" + "Coal marginal" : "k" + "Lignite" : "grey" + "lignite" : "grey" + "Lignite marginal" : "grey" + "CCGT" : "orange" + "CCGT marginal" : "orange" + "heat pumps" : "#76EE00" + "heat pump" : "#76EE00" + "air heat pump" : "#76EE00" + "ground heat pump" : "#40AA00" + "power-to-heat" : "#40AA00" + "resistive heater" : "pink" + "Sabatier" : "#FF1493" + "methanation" : "#FF1493" + "power-to-gas" : "#FF1493" + "power-to-liquid" : "#FFAAE9" + "helmeth" : "#7D0552" + "helmeth" : "#7D0552" + "DAC" : "#E74C3C" + "co2 stored" : "#123456" + "CO2 sequestration" : "#123456" + "CCS" : "k" + "co2" : "#123456" + "co2 vent" : "#654321" + "solid biomass for industry co2 from atmosphere" : "#654321" + "solid biomass for industry co2 to stored": "#654321" + "gas for industry co2 to atmosphere": "#654321" + "gas for industry co2 to stored": "#654321" + "Fischer-Tropsch" : "#44DD33" + "kerosene for aviation": "#44BB11" + "naphtha for industry" : "#44FF55" + "water tanks" : "#BBBBBB" + "hot water storage" : "#BBBBBB" + "hot water charging" : "#BBBBBB" + "hot water discharging" : "#999999" + "CHP" : "r" + "CHP heat" : "r" + "CHP electric" : "r" + "PHS" : "g" + "Ambient" : "k" + "Electric load" : "b" + "Heat load" : "r" + "Transport load" : "grey" + "heat" : "darkred" + "rural heat" : "#880000" + "central heat" : "#b22222" + "decentral heat" : "#800000" + "low-temperature heat for industry" : "#991111" + "process heat" : "#FF3333" + "heat demand" : "darkred" + "electric demand" : "k" + "Li ion" : "grey" + "district heating" : "#CC4E5C" + "retrofitting" : "purple" + "building retrofitting" : "purple" + "BEV charger" : "grey" + "V2G" : "grey" + "transport" : "grey" + "electricity" : "k" + "gas for industry" : "#333333" + "solid biomass for industry" : "#555555" + "industry new electricity" : "#222222" + "process emissions to stored" : "#444444" + "process emissions to atmosphere" : "#888888" + "process emissions" : "#222222" + "transport fuel cell" : "#AAAAAA" + "biogas" : "#800000" + "solid biomass" : "#DAA520" + "today" : "#D2691E" + "shipping" : "#6495ED" + "electricity distribution grid" : "#333333" + nice_names: + # OCGT: "Gas" + # OCGT marginal: "Gas (marginal)" + offwind: "offshore wind" + onwind: "onshore wind" + battery: "Battery storage" + lines: "Transmission lines" + AC line: "AC lines" + AC-AC: "DC lines" + ror: "Run of river" + nice_names_n: + offwind: "offshore\nwind" + onwind: "onshore\nwind" + # OCGT: "Gas" + H2: "Hydrogen\nstorage" + # OCGT marginal: "Gas (marginal)" + lines: "transmission\nlines" + ror: "run of river"