From 2b6fb0ee66671a3dd2ad3299a34db0fe2530f2c5 Mon Sep 17 00:00:00 2001 From: Fabian Date: Tue, 25 Aug 2020 21:41:21 +0200 Subject: [PATCH 01/23] Snakefile add rule 'retrieve_cost_data' update cost.csv to default year 2030 add_electricity.py: adjust to new format --- Snakefile | 9 + data/costs.csv | 503 +++++++++++++++++++++++-------------- scripts/add_electricity.py | 45 ++-- 3 files changed, 345 insertions(+), 212 deletions(-) diff --git a/Snakefile b/Snakefile index 72b726fc..84662eaf 100644 --- a/Snakefile +++ b/Snakefile @@ -65,6 +65,8 @@ if config['enable'].get('retrieve_databundle', True): log: "logs/retrieve_databundle.log" script: 'scripts/retrieve_databundle.py' + + rule build_powerplants: input: base_network="networks/base.nc", @@ -162,6 +164,13 @@ if config['enable'].get('retrieve_natura_raster', True): log: "logs/retrieve_natura_raster.log" script: 'scripts/retrieve_natura_raster.py' +rule retrieve_cost_data: + params: + year = config['costs']['year'], + version = config['costs']['version'], + output: COSTS + shell: 'curl https://raw.githubusercontent.com/PyPSA/technology-data/{params.version}/outputs/costs_{params.year}.csv -o {output}' + rule build_renewable_profiles: input: base_network="networks/base.nc", diff --git a/data/costs.csv b/data/costs.csv index 330cc3bb..8b50f24d 100644 --- a/data/costs.csv +++ b/data/costs.csv @@ -1,195 +1,308 @@ -technology,year,parameter,value,unit,source -solar-rooftop,2030,discount rate,0.04,per unit,standard for decentral -onwind,2030,lifetime,30,years,DEA https://ens.dk/en/our-services/projections-and-models/technology-data -offwind,2030,lifetime,30,years,DEA https://ens.dk/en/our-services/projections-and-models/technology-data -solar,2030,lifetime,25,years,IEA2010 -solar-rooftop,2030,lifetime,25,years,IEA2010 -solar-utility,2030,lifetime,25,years,IEA2010 -PHS,2030,lifetime,80,years,IEA2010 -hydro,2030,lifetime,80,years,IEA2010 -ror,2030,lifetime,80,years,IEA2010 -OCGT,2030,lifetime,30,years,IEA2010 -nuclear,2030,lifetime,45,years,ECF2010 in DIW DataDoc http://hdl.handle.net/10419/80348 -CCGT,2030,lifetime,30,years,IEA2010 -coal,2030,lifetime,40,years,IEA2010 -lignite,2030,lifetime,40,years,IEA2010 -geothermal,2030,lifetime,40,years,IEA2010 -biomass,2030,lifetime,30,years,ECF2010 in DIW DataDoc http://hdl.handle.net/10419/80348 -oil,2030,lifetime,30,years,ECF2010 in DIW DataDoc http://hdl.handle.net/10419/80348 -onwind,2030,investment,1040,EUR/kWel,DEA https://ens.dk/en/our-services/projections-and-models/technology-data -offwind,2030,investment,1640,EUR/kWel,DEA https://ens.dk/en/our-services/projections-and-models/technology-data -offwind-ac-station,2030,investment,250,EUR/kWel,DEA https://ens.dk/en/our-services/projections-and-models/technology-data -offwind-ac-connection-submarine,2030,investment,2685,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data -offwind-ac-connection-underground,2030,investment,1342,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data -offwind-dc-station,2030,investment,400,EUR/kWel,Haertel 2017; assuming one onshore and one offshore node + 13% learning reduction -offwind-dc-connection-submarine,2030,investment,2000,EUR/MW/km,DTU report based on Fig 34 of https://ec.europa.eu/energy/sites/ener/files/documents/2014_nsog_report.pdf -offwind-dc-connection-underground,2030,investment,1000,EUR/MW/km,Haertel 2017; average + 13% learning reduction -solar,2030,investment,600,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348 -biomass,2030,investment,2209,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348 -geothermal,2030,investment,3392,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348 -coal,2030,investment,1300,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348 PC (Advanced/SuperC) -lignite,2030,investment,1500,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348 -solar-rooftop,2030,investment,725,EUR/kWel,ETIP PV -solar-utility,2030,investment,425,EUR/kWel,ETIP PV -PHS,2030,investment,2000,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348 -hydro,2030,investment,2000,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348 -ror,2030,investment,3000,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348 -OCGT,2030,investment,400,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348 -nuclear,2030,investment,6000,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348 -CCGT,2030,investment,800,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348 -oil,2030,investment,400,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348 -onwind,2030,FOM,2.450549,%/year,DEA https://ens.dk/en/our-services/projections-and-models/technology-data -offwind,2030,FOM,2.304878,%/year,DEA https://ens.dk/en/our-services/projections-and-models/technology-data -solar,2030,FOM,4.166667,%/year,DIW DataDoc http://hdl.handle.net/10419/80348 -solar-rooftop,2030,FOM,2,%/year,ETIP PV -solar-utility,2030,FOM,3,%/year,ETIP PV -biomass,2030,FOM,4.526935,%/year,DIW DataDoc http://hdl.handle.net/10419/80348 -geothermal,2030,FOM,2.358491,%/year,DIW DataDoc http://hdl.handle.net/10419/80348 -coal,2030,FOM,1.923076,%/year,DIW DataDoc http://hdl.handle.net/10419/80348 PC (Advanced/SuperC) -lignite,2030,FOM,2.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348 PC (Advanced/SuperC) -oil,2030,FOM,1.5,%/year,DIW DataDoc http://hdl.handle.net/10419/80348 -PHS,2030,FOM,1,%/year,DIW DataDoc http://hdl.handle.net/10419/80348 -hydro,2030,FOM,1,%/year,DIW DataDoc http://hdl.handle.net/10419/80348 -ror,2030,FOM,2,%/year,DIW DataDoc http://hdl.handle.net/10419/80348 -CCGT,2030,FOM,2.5,%/year,DIW DataDoc http://hdl.handle.net/10419/80348 -OCGT,2030,FOM,3.75,%/year,DIW DataDoc http://hdl.handle.net/10419/80348 -onwind,2030,VOM,2.3,EUR/MWhel,DEA https://ens.dk/en/our-services/projections-and-models/technology-data -offwind,2030,VOM,2.7,EUR/MWhel,DEA https://ens.dk/en/our-services/projections-and-models/technology-data -solar,2030,VOM,0.01,EUR/MWhel,RES costs made up to fix curtailment order -coal,2030,VOM,6,EUR/MWhel,DIW DataDoc http://hdl.handle.net/10419/80348 PC (Advanced/SuperC) -lignite,2030,VOM,7,EUR/MWhel,DIW DataDoc http://hdl.handle.net/10419/80348 -CCGT,2030,VOM,4,EUR/MWhel,DIW DataDoc http://hdl.handle.net/10419/80348 -OCGT,2030,VOM,3,EUR/MWhel,DIW DataDoc http://hdl.handle.net/10419/80348 -nuclear,2030,VOM,8,EUR/MWhel,DIW DataDoc http://hdl.handle.net/10419/80348 -gas,2030,fuel,21.6,EUR/MWhth,IEA2011b -uranium,2030,fuel,3,EUR/MWhth,DIW DataDoc http://hdl.handle.net/10419/80348 -oil,2030,VOM,3,EUR/MWhel,DIW DataDoc http://hdl.handle.net/10419/80348 -nuclear,2030,fuel,3,EUR/MWhth,IEA2011b -biomass,2030,fuel,7,EUR/MWhth,IEA2011b -coal,2030,fuel,8.4,EUR/MWhth,IEA2011b -lignite,2030,fuel,2.9,EUR/MWhth,IEA2011b -oil,2030,fuel,50,EUR/MWhth,IEA WEM2017 97USD/boe = http://www.iea.org/media/weowebsite/2017/WEM_Documentation_WEO2017.pdf -PHS,2030,efficiency,0.75,per unit,DIW DataDoc http://hdl.handle.net/10419/80348 -hydro,2030,efficiency,0.9,per unit,DIW DataDoc http://hdl.handle.net/10419/80348 -ror,2030,efficiency,0.9,per unit,DIW DataDoc http://hdl.handle.net/10419/80348 -OCGT,2030,efficiency,0.39,per unit,DIW DataDoc http://hdl.handle.net/10419/80348 -CCGT,2030,efficiency,0.5,per unit,DIW DataDoc http://hdl.handle.net/10419/80348 -biomass,2030,efficiency,0.468,per unit,DIW DataDoc http://hdl.handle.net/10419/80348 -geothermal,2030,efficiency,0.239,per unit,DIW DataDoc http://hdl.handle.net/10419/80348 -nuclear,2030,efficiency,0.337,per unit,DIW DataDoc http://hdl.handle.net/10419/80348 -gas,2030,CO2 intensity,0.187,tCO2/MWth,https://www.eia.gov/environment/emissions/co2_vol_mass.php -coal,2030,efficiency,0.464,per unit,DIW DataDoc http://hdl.handle.net/10419/80348 PC (Advanced/SuperC) -lignite,2030,efficiency,0.447,per unit,DIW DataDoc http://hdl.handle.net/10419/80348 -oil,2030,efficiency,0.393,per unit,DIW DataDoc http://hdl.handle.net/10419/80348 CT -coal,2030,CO2 intensity,0.354,tCO2/MWth,https://www.eia.gov/environment/emissions/co2_vol_mass.php -lignite,2030,CO2 intensity,0.334,tCO2/MWth,https://www.eia.gov/environment/emissions/co2_vol_mass.php -oil,2030,CO2 intensity,0.248,tCO2/MWth,https://www.eia.gov/environment/emissions/co2_vol_mass.php -geothermal,2030,CO2 intensity,0.026,tCO2/MWth,https://www.eia.gov/environment/emissions/co2_vol_mass.php -electrolysis,2030,investment,350,EUR/kWel,Palzer Thesis -electrolysis,2030,FOM,4,%/year,NREL http://www.nrel.gov/docs/fy09osti/45873.pdf; budischak2013 -electrolysis,2030,lifetime,18,years,NREL http://www.nrel.gov/docs/fy09osti/45873.pdf; budischak2013 -electrolysis,2030,efficiency,0.8,per unit,NREL http://www.nrel.gov/docs/fy09osti/45873.pdf; budischak2013 -fuel cell,2030,investment,339,EUR/kWel,NREL http://www.nrel.gov/docs/fy09osti/45873.pdf; budischak2013 -fuel cell,2030,FOM,3,%/year,NREL http://www.nrel.gov/docs/fy09osti/45873.pdf; budischak2013 -fuel cell,2030,lifetime,20,years,NREL http://www.nrel.gov/docs/fy09osti/45873.pdf; budischak2013 -fuel cell,2030,efficiency,0.58,per unit,NREL http://www.nrel.gov/docs/fy09osti/45873.pdf; budischak2013 conservative 2020 -hydrogen storage,2030,investment,11.2,USD/kWh,budischak2013 -hydrogen storage,2030,lifetime,20,years,budischak2013 -hydrogen underground storage,2030,investment,0.5,EUR/kWh,maximum from https://www.nrel.gov/docs/fy10osti/46719.pdf -hydrogen underground storage,2030,lifetime,40,years,http://www.acatech.de/fileadmin/user_upload/Baumstruktur_nach_Website/Acatech/root/de/Publikationen/Materialien/ESYS_Technologiesteckbrief_Energiespeicher.pdf -H2 pipeline,2030,investment,267,EUR/MW/km,Welder et al https://doi.org/10.1016/j.ijhydene.2018.12.156 -H2 pipeline,2030,lifetime,40,years,Krieg2012 http://juser.fz-juelich.de/record/136392/files/Energie%26Umwelt_144.pdf -H2 pipeline,2030,FOM,5,%/year,Krieg2012 http://juser.fz-juelich.de/record/136392/files/Energie%26Umwelt_144.pdf -H2 pipeline,2030,efficiency,0.98,per unit,Krieg2012 http://juser.fz-juelich.de/record/136392/files/Energie%26Umwelt_144.pdf -methanation,2030,investment,1000,EUR/kWH2,Schaber thesis -methanation,2030,lifetime,25,years,Schaber thesis -methanation,2030,FOM,3,%/year,Schaber thesis -methanation,2030,efficiency,0.6,per unit,Palzer; Breyer for DAC -helmeth,2030,investment,1000,EUR/kW,no source -helmeth,2030,lifetime,25,years,no source -helmeth,2030,FOM,3,%/year,no source -helmeth,2030,efficiency,0.8,per unit,HELMETH press release -DAC,2030,investment,250,EUR/(tCO2/a),Fasihi/Climeworks -DAC,2030,lifetime,30,years,Fasihi -DAC,2030,FOM,4,%/year,Fasihi -battery inverter,2030,investment,411,USD/kWel,budischak2013 -battery inverter,2030,lifetime,20,years,budischak2013 -battery inverter,2030,efficiency,0.81,per unit,budischak2013; Lund and Kempton (2008) http://dx.doi.org/10.1016/j.enpol.2008.06.007 -battery inverter,2030,FOM,3,%/year,budischak2013 -battery storage,2030,investment,192,USD/kWh,budischak2013 -battery storage,2030,lifetime,15,years,budischak2013 -decentral air-sourced heat pump,2030,investment,1050,EUR/kWth,HP; Palzer thesis -decentral air-sourced heat pump,2030,lifetime,20,years,HP; Palzer thesis -decentral air-sourced heat pump,2030,FOM,3.5,%/year,Palzer thesis -decentral air-sourced heat pump,2030,efficiency,3,per unit,default for costs -decentral air-sourced heat pump,2030,discount rate,0.04,per unit,Palzer thesis -decentral ground-sourced heat pump,2030,investment,1400,EUR/kWth,Palzer thesis -decentral ground-sourced heat pump,2030,lifetime,20,years,Palzer thesis -decentral ground-sourced heat pump,2030,FOM,3.5,%/year,Palzer thesis -decentral ground-sourced heat pump,2030,efficiency,4,per unit,default for costs -decentral ground-sourced heat pump,2030,discount rate,0.04,per unit,Palzer thesis -central air-sourced heat pump,2030,investment,700,EUR/kWth,Palzer thesis -central air-sourced heat pump,2030,lifetime,20,years,Palzer thesis -central air-sourced heat pump,2030,FOM,3.5,%/year,Palzer thesis -central air-sourced heat pump,2030,efficiency,3,per unit,default for costs -retrofitting I,2030,discount rate,0.04,per unit,Palzer thesis -retrofitting I,2030,lifetime,50,years,Palzer thesis -retrofitting I,2030,FOM,1,%/year,Palzer thesis -retrofitting I,2030,investment,50,EUR/m2/fraction reduction,Palzer thesis -retrofitting II,2030,discount rate,0.04,per unit,Palzer thesis -retrofitting II,2030,lifetime,50,years,Palzer thesis -retrofitting II,2030,FOM,1,%/year,Palzer thesis -retrofitting II,2030,investment,250,EUR/m2/fraction reduction,Palzer thesis -water tank charger,2030,efficiency,0.9,per unit,HP -water tank discharger,2030,efficiency,0.9,per unit,HP -decentral water tank storage,2030,investment,860,EUR/m3,IWES Interaktion -decentral water tank storage,2030,FOM,1,%/year,HP -decentral water tank storage,2030,lifetime,20,years,HP -decentral water tank storage,2030,discount rate,0.04,per unit,Palzer thesis -central water tank storage,2030,investment,30,EUR/m3,IWES Interaktion -central water tank storage,2030,FOM,1,%/year,HP -central water tank storage,2030,lifetime,40,years,HP -decentral resistive heater,2030,investment,100,EUR/kWhth,Schaber thesis -decentral resistive heater,2030,lifetime,20,years,Schaber thesis -decentral resistive heater,2030,FOM,2,%/year,Schaber thesis -decentral resistive heater,2030,efficiency,0.9,per unit,Schaber thesis -decentral resistive heater,2030,discount rate,0.04,per unit,Palzer thesis -central resistive heater,2030,investment,100,EUR/kWhth,Schaber thesis -central resistive heater,2030,lifetime,20,years,Schaber thesis -central resistive heater,2030,FOM,2,%/year,Schaber thesis -central resistive heater,2030,efficiency,0.9,per unit,Schaber thesis -decentral gas boiler,2030,investment,175,EUR/kWhth,Palzer thesis -decentral gas boiler,2030,lifetime,20,years,Palzer thesis -decentral gas boiler,2030,FOM,2,%/year,Palzer thesis -decentral gas boiler,2030,efficiency,0.9,per unit,Palzer thesis -decentral gas boiler,2030,discount rate,0.04,per unit,Palzer thesis -central gas boiler,2030,investment,63,EUR/kWhth,Palzer thesis -central gas boiler,2030,lifetime,22,years,Palzer thesis -central gas boiler,2030,FOM,1,%/year,Palzer thesis -central gas boiler,2030,efficiency,0.9,per unit,Palzer thesis -decentral CHP,2030,lifetime,25,years,HP -decentral CHP,2030,investment,1400,EUR/kWel,HP -decentral CHP,2030,FOM,3,%/year,HP -decentral CHP,2030,discount rate,0.04,per unit,Palzer thesis -central CHP,2030,lifetime,25,years,HP -central CHP,2030,investment,650,EUR/kWel,HP -central CHP,2030,FOM,3,%/year,HP -decentral solar thermal,2030,discount rate,0.04,per unit,Palzer thesis -decentral solar thermal,2030,FOM,1.3,%/year,HP -decentral solar thermal,2030,investment,270000,EUR/1000m2,HP -decentral solar thermal,2030,lifetime,20,years,HP -central solar thermal,2030,FOM,1.4,%/year,HP -central solar thermal,2030,investment,140000,EUR/1000m2,HP -central solar thermal,2030,lifetime,20,years,HP -HVAC overhead,2030,investment,400,EUR/MW/km,Hagspiel -HVAC overhead,2030,lifetime,40,years,Hagspiel -HVAC overhead,2030,FOM,2,%/year,Hagspiel -HVDC overhead,2030,investment,400,EUR/MW/km,Hagspiel -HVDC overhead,2030,lifetime,40,years,Hagspiel -HVDC overhead,2030,FOM,2,%/year,Hagspiel -HVDC submarine,2030,investment,2000,EUR/MW/km,DTU report based on Fig 34 of https://ec.europa.eu/energy/sites/ener/files/documents/2014_nsog_report.pdf -HVDC submarine,2030,lifetime,40,years,Hagspiel -HVDC submarine,2030,FOM,2,%/year,Hagspiel -HVDC inverter pair,2030,investment,150000,EUR/MW,Hagspiel -HVDC inverter pair,2030,lifetime,40,years,Hagspiel -HVDC inverter pair,2030,FOM,2,%/year,Hagspiel +technology,parameter,value,unit,source,further description +CCGT,FOM,3.35,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","05 Gas turb. CC, steam extract.: Fixed O&M" +CCGT,VOM,4.2,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","05 Gas turb. CC, steam extract.: Variable O&M" +CCGT,c_b,2.0,50oC/100oC,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","05 Gas turb. CC, steam extract.: Cb coefficient" +CCGT,c_v,0.15,50oC/100oC,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","05 Gas turb. CC, steam extract.: Cv coefficient" +CCGT,efficiency,0.58,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","05 Gas turb. CC, steam extract.: Electricity efficiency, annual average" +CCGT,investment,830.0,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","05 Gas turb. CC, steam extract.: Nominal investment" +CCGT,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","05 Gas turb. CC, steam extract.: Technical lifetime" +DAC,FOM,4.0,%/year,Fasihi, from old pypsa cost assumptions +DAC,investment,383.0,EUR/(tCO2/a),Fasihi, +DAC,lifetime,30.0,years,Fasihi, from old pypsa cost assumptions +Fischer-Tropsch,FOM,3.0,%/year,doi:10.3390/su9020306, from old pypsa cost assumptions +Fischer-Tropsch,efficiency,0.8,per unit,TODO, from old pypsa cost assumptions +Fischer-Tropsch,investment,677.6,EUR/kWH2,Fasihi doi:10.3390/su9020306 (60 kEUR/bpd = 847 EUR/kWL (1b = 1.7 MWh) 847*0.8 = 677.6), from old pypsa cost assumptions +Fischer-Tropsch,lifetime,30.0,years,doi:10.3390/su9020306, from old pypsa cost assumptions +Gasnetz,FOM,2.5,%,"WEGE ZU EINEM KLIMANEUTRALEN ENERGIESYSEM, Anhang zur Studie, Fraunhofer-Institut für Solare Energiesysteme ISE, Freiburg",Gasnetz +Gasnetz,investment,28.0,EUR/kWGas,"WEGE ZU EINEM KLIMANEUTRALEN ENERGIESYSEM, Anhang zur Studie, Fraunhofer-Institut für Solare Energiesysteme ISE, Freiburg",Gasnetz +Gasnetz,lifetime,30.0,years,"WEGE ZU EINEM KLIMANEUTRALEN ENERGIESYSEM, Anhang zur Studie, Fraunhofer-Institut für Solare Energiesysteme ISE, Freiburg",Gasnetz +H2 pipeline,FOM,3.0,%/year,TODO, from old pypsa cost assumptions +H2 pipeline,investment,267.0,EUR/MW/km,Welder et al https://doi.org/10.1016/j.ijhydene.2018.12.156, from old pypsa cost assumptions +H2 pipeline,lifetime,40.0,years,TODO, from old pypsa cost assumptions +HVAC overhead,FOM,2.0,%/year,Hagspiel, from old pypsa cost assumptions +HVAC overhead,investment,400.0,EUR/MW/km,Hagspiel, from old pypsa cost assumptions +HVAC overhead,lifetime,40.0,years,Hagspiel, from old pypsa cost assumptions +HVDC inverter pair,FOM,2.0,%/year,Hagspiel, from old pypsa cost assumptions +HVDC inverter pair,investment,150000.0,EUR/MW,Hagspiel, from old pypsa cost assumptions +HVDC inverter pair,lifetime,40.0,years,Hagspiel, from old pypsa cost assumptions +HVDC overhead,FOM,2.0,%/year,Hagspiel, from old pypsa cost assumptions +HVDC overhead,investment,400.0,EUR/MW/km,Hagspiel, from old pypsa cost assumptions +HVDC overhead,lifetime,40.0,years,Hagspiel, from old pypsa cost assumptions +HVDC submarine,FOM,2.0,%/year,Hagspiel, from old pypsa cost assumptions +HVDC submarine,investment,2000.0,EUR/MW/km,Own analysis of European submarine HVDC projects since 2000, from old pypsa cost assumptions +HVDC submarine,lifetime,40.0,years,Hagspiel, from old pypsa cost assumptions +OCGT,FOM,1.78,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",52 OCGT - Natural gas: Fixed O&M +OCGT,VOM,4.5,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",52 OCGT - Natural gas: Variable O&M +OCGT,efficiency,0.41,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","52 OCGT - Natural gas: Electricity efficiency, annual average" +OCGT,investment,435.24,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",52 OCGT - Natural gas: Specific investment +OCGT,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",52 OCGT - Natural gas: Technical lifetime +PHS,FOM,1.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions +PHS,efficiency,0.75,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions +PHS,investment,2208.16,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions +PHS,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions +SMR,FOM,5.4,%/year,https://www.gov.uk/government/publications/hydrogen-supply-chain-evidence-base; slide 42 assumption for 2030, from old pypsa cost assumptions +SMR,efficiency,0.74,per unit,https://www.gov.uk/government/publications/hydrogen-supply-chain-evidence-base; slide 42 assumption for 2030, from old pypsa cost assumptions +SMR,investment,540.56,EUR/kWCH4,https://www.gov.uk/government/publications/hydrogen-supply-chain-evidence-base; slide 42 assumption for 2030; GBP 466 exchange 1.16, from old pypsa cost assumptions +SMR,lifetime,25.0,years,TODO, from old pypsa cost assumptions +SMR CCS,FOM,5.4,%/year,https://www.gov.uk/government/publications/hydrogen-supply-chain-evidence-base; slide 42 assumption for 2030, from old pypsa cost assumptions +SMR CCS,efficiency,0.67,per unit,https://www.gov.uk/government/publications/hydrogen-supply-chain-evidence-base; slide 42 assumption for 2030; CCS uses 10% of gas, from old pypsa cost assumptions +SMR CCS,investment,1032.0,EUR/kWCH4,https://www.gov.uk/government/publications/hydrogen-supply-chain-evidence-base; slide 42 assumption for 2030; GBP 466 exchange 1.16; CCS costed at 300 EUR/tCO2/a, from old pypsa cost assumptions +SMR CCS,lifetime,25.0,years,TODO, from old pypsa cost assumptions +battery inverter,FOM,0.34,%/year,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Fixed O&M +battery inverter,efficiency,0.96,per unit,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Round trip efficiency DC +battery inverter,investment,160.0,EUR/kW,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Output capacity expansion cost investment +battery inverter,lifetime,25.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Technical lifetime +battery storage,investment,142.0,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Energy storage expansion cost investment +battery storage,lifetime,25.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Technical lifetime +biogas,fuel,59.0,EUR/MWhth,JRC and Zappa, from old pypsa cost assumptions +biogas upgrading,FOM,2.49,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels_-_0003.xlsx","82 Biogas, upgrading: Fixed O&M " +biogas upgrading,VOM,3.18,EUR/MWh input,"Danish Energy Agency, data_sheets_for_renewable_fuels_-_0003.xlsx","82 Biogas, upgrading: Variable O&M" +biogas upgrading,investment,381.0,EUR/kW input,"Danish Energy Agency, data_sheets_for_renewable_fuels_-_0003.xlsx","82 Biogas, upgrading: investment (upgrading, methane redution and grid injection)" +biogas upgrading,lifetime,15.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels_-_0003.xlsx","82 Biogas, upgrading: Technical lifetime" +biomass,FOM,4.53,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions +biomass,efficiency,0.47,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions +biomass,fuel,7.0,EUR/MWhth,IEA2011b, from old pypsa cost assumptions +biomass,investment,2209.0,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions +biomass,lifetime,30.0,years,ECF2010 in DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions +biomass CHP,FOM,3.58,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Fixed O&M" +biomass CHP,VOM,2.1,EUR/MWh_e,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Variable O&M " +biomass CHP,c_b,0.46,40°C/80°C,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Cb coefficient" +biomass CHP,c_v,1.0,40°C/80°C,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Cv coefficient" +biomass CHP,efficiency,0.3,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Electricity efficiency, net, annual average" +biomass CHP,efficiency-heat,0.71,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Heat efficiency, net, annual average" +biomass CHP,investment,3210.28,EUR/kW_e,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Nominal investment " +biomass CHP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Technical lifetime" +biomass EOP,FOM,3.58,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Fixed O&M" +biomass EOP,VOM,2.1,EUR/MWh_e,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Variable O&M " +biomass EOP,c_b,0.46,40°C/80°C,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Cb coefficient" +biomass EOP,c_v,1.0,40°C/80°C,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Cv coefficient" +biomass EOP,efficiency,0.3,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Electricity efficiency, net, annual average" +biomass EOP,efficiency-heat,0.71,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Heat efficiency, net, annual average" +biomass EOP,investment,3210.28,EUR/kW_e,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Nominal investment " +biomass EOP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Technical lifetime" +biomass HOP,FOM,5.75,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw HOP: Fixed O&M, heat output" +biomass HOP,VOM,2.78,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",09c Straw HOP: Variable O&M heat output +biomass HOP,efficiency,1.03,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw HOP: Total efficiency , net, annual average" +biomass HOP,investment,832.63,EUR/kW_th - heat output,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",09c Straw HOP: Nominal investment +biomass HOP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",09c Straw HOP: Technical lifetime +central air-sourced heat pump,FOM,0.23,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Comp. hp, airsource 3 MW: Fixed O&M" +central air-sourced heat pump,VOM,2.51,EUR/MWh_th,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Comp. hp, airsource 3 MW: Variable O&M" +central air-sourced heat pump,efficiency,3.6,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Comp. hp, airsource 3 MW: Total efficiency , net, annual average" +central air-sourced heat pump,investment,856.25,EUR/kW_th,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Comp. hp, airsource 3 MW: Specific investment" +central air-sourced heat pump,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Comp. hp, airsource 3 MW: Technical lifetime" +central coal CHP,FOM,1.63,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",01 Coal CHP: Fixed O&M +central coal CHP,VOM,2.84,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",01 Coal CHP: Variable O&M +central coal CHP,c_b,1.01,50oC/100oC,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",01 Coal CHP: Cb coefficient +central coal CHP,c_v,0.15,50oC/100oC,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",01 Coal CHP: Cv coefficient +central coal CHP,efficiency,0.52,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","01 Coal CHP: Electricity efficiency, condensation mode, net" +central coal CHP,investment,1860.47,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",01 Coal CHP: Nominal investment +central coal CHP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",01 Coal CHP: Technical lifetime +central gas CHP,FOM,3.32,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","04 Gas turb. simple cycle, L: Fixed O&M" +central gas CHP,VOM,4.2,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","04 Gas turb. simple cycle, L: Variable O&M" +central gas CHP,c_b,0.7,per unit,DEA (backpressure ratio), from old pypsa cost assumptions +central gas CHP,c_v,0.17,per unit,DEA (loss of fuel for additional heat), from old pypsa cost assumptions +central gas CHP,efficiency,0.41,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","04 Gas turb. simple cycle, L: Electricity efficiency, annual average" +central gas CHP,investment,560.0,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","04 Gas turb. simple cycle, L: Nominal investment" +central gas CHP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","04 Gas turb. simple cycle, L: Technical lifetime" +central gas CHP,p_nom_ratio,1.0,per unit,, from old pypsa cost assumptions +central gas CHP CCS,FOM,3.32,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","04 Gas turb. simple cycle, L: Fixed O&M" +central gas CHP CCS,VOM,4.2,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","04 Gas turb. simple cycle, L: Variable O&M" +central gas CHP CCS,c_b,0.7,per unit,DEA (backpressure ratio), from old pypsa cost assumptions +central gas CHP CCS,c_v,0.17,per unit,DEA (loss of fuel for additional heat), from old pypsa cost assumptions +central gas CHP CCS,efficiency,0.37,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","04 Gas turb. simple cycle, L: Electricity efficiency, annual average" +central gas CHP CCS,investment,1160.0,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx , DIW (CCS)","04 Gas turb. simple cycle, L: Nominal investment" +central gas CHP CCS,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","04 Gas turb. simple cycle, L: Technical lifetime" +central gas CHP CCS,p_nom_ratio,1.0,per unit,, from old pypsa cost assumptions +central gas boiler,FOM,3.8,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",44 Natural Gas DH Only: Fixed O&M +central gas boiler,VOM,1.0,EUR/MWh_th,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",44 Natural Gas DH Only: Variable O&M +central gas boiler,efficiency,1.04,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","44 Natural Gas DH Only: Total efficiency , net, annual average" +central gas boiler,investment,50.0,EUR/kW_th,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",44 Natural Gas DH Only: Nominal investment +central gas boiler,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",44 Natural Gas DH Only: Technical lifetime +central ground-sourced heat pump,FOM,0.39,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Absorption heat pump, DH: Fixed O&M" +central ground-sourced heat pump,VOM,1.25,EUR/MWh_th,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Absorption heat pump, DH: Variable O&M" +central ground-sourced heat pump,efficiency,1.73,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Absorption heat pump, DH: Total efficiency , net, annual average" +central ground-sourced heat pump,investment,507.6,EUR/kW_th excluding drive energy,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Absorption heat pump, DH: Nominal investment" +central ground-sourced heat pump,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Absorption heat pump, DH: Technical lifetime" +central resistive heater,FOM,1.7,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",41 Electric Boilers: Fixed O&M +central resistive heater,VOM,1.0,EUR/MWh_th,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",41 Electric Boilers: Variable O&M +central resistive heater,efficiency,0.99,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","41 Electric Boilers: Total efficiency , net, annual average" +central resistive heater,investment,60.0,EUR/kW_th,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",41 Electric Boilers: Nominal investment; 10/15 kV; >10 MW +central resistive heater,lifetime,20.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",41 Electric Boilers: Technical lifetime +central solar thermal,FOM,1.4,%/year,HP, from old pypsa cost assumptions +central solar thermal,investment,140000.0,EUR/1000m2,HP, from old pypsa cost assumptions +central solar thermal,lifetime,20.0,years,HP, from old pypsa cost assumptions +central solid biomass CHP,FOM,4.1,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Fixed O&M" +central solid biomass CHP,VOM,1.85,EUR/MWh_e,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Variable O&M " +central solid biomass CHP,c_b,1.01,per unit,DEA for wood pellets CHP (backpressure ratio), from old pypsa cost assumptions +central solid biomass CHP,c_v,0.15,per unit,DEA for wood pellets CHP (loss of fuel for additional heat), from old pypsa cost assumptions +central solid biomass CHP,efficiency,0.29,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Electricity efficiency, net, annual average" +central solid biomass CHP,efficiency-heat,0.69,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Heat efficiency, net, annual average" +central solid biomass CHP,investment,2851.41,EUR/kW_e,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Nominal investment " +central solid biomass CHP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Technical lifetime" +central solid biomass CHP,p_nom_ratio,1.0,per unit,, from old pypsa cost assumptions +central solid biomass CHP CCS,FOM,4.1,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Fixed O&M" +central solid biomass CHP CCS,VOM,1.85,EUR/MWh_e,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Variable O&M " +central solid biomass CHP CCS,c_b,1.01,per unit,DEA for wood pellets CHP (backpressure ratio), from old pypsa cost assumptions +central solid biomass CHP CCS,c_v,0.15,per unit,DEA for wood pellets CHP (loss of fuel for additional heat), from old pypsa cost assumptions +central solid biomass CHP CCS,efficiency,0.26,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Electricity efficiency, net, annual average" +central solid biomass CHP CCS,efficiency-heat,0.69,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Heat efficiency, net, annual average" +central solid biomass CHP CCS,investment,3451.41,EUR/kW_e,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx , DIW (CCS)","09b Wood Pellets, Medium: Nominal investment " +central solid biomass CHP CCS,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Technical lifetime" +central solid biomass CHP CCS,p_nom_ratio,1.0,per unit,, from old pypsa cost assumptions +central water tank storage,FOM,0.55,%/year,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",140 PTES seasonal: Fixed O&M +central water tank storage,investment,0.54,EUR/kWhCapacity,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",140 PTES seasonal: Specific investment +central water tank storage,lifetime,25.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",140 PTES seasonal: Technical lifetime +coal,CO2 intensity,0.34,tCO2/MWh_th,Entwicklung der spezifischen Kohlendioxid-Emissionen des deutschen Strommix in den Jahren 1990 - 2018, +coal,FOM,1.6,%/year,Lazard s Levelized Cost of Energy Analysis - Version 13.0, +coal,VOM,3.5,EUR/MWh_e,Lazard s Levelized Cost of Energy Analysis - Version 13.0, +coal,efficiency,0.33,per unit,Lazard s Levelized Cost of Energy Analysis - Version 13.0, +coal,fuel,8.15,EUR/MWh_th,BP 2019, +coal,investment,3845.51,EUR/kW_e,Lazard s Levelized Cost of Energy Analysis - Version 13.0, +coal,lifetime,40.0,years,Lazard s Levelized Cost of Energy Analysis - Version 13.0, +decentral CHP,FOM,3.0,%/year,HP, from old pypsa cost assumptions +decentral CHP,discount rate,0.04,per unit,Palzer thesis, from old pypsa cost assumptions +decentral CHP,investment,1400.0,EUR/kWel,HP, from old pypsa cost assumptions +decentral CHP,lifetime,25.0,years,HP, from old pypsa cost assumptions +decentral air-sourced heat pump,FOM,3.0,%/year,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",207.3 Air to water existing: Fixed O&M +decentral air-sourced heat pump,discount rate,0.04,per unit,Palzer thesis, from old pypsa cost assumptions +decentral air-sourced heat pump,efficiency,3.6,per unit,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","207.3 Air to water existing: Heat efficiency, annual average, net, radiators, existing one family house" +decentral air-sourced heat pump,investment,850.0,EUR/kW_th,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",207.3 Air to water existing: Specific investment +decentral air-sourced heat pump,lifetime,18.0,years,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",207.3 Air to water existing: Technical lifetime +decentral gas boiler,FOM,6.69,%/year,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",202 Natural gas boiler: Fixed O&M +decentral gas boiler,discount rate,0.04,per unit,Palzer thesis, from old pypsa cost assumptions +decentral gas boiler,efficiency,0.98,per unit,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","202 Natural gas boiler: Total efficiency, annual average, net" +decentral gas boiler,investment,296.82,EUR/kW_th,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",202 Natural gas boiler: Specific investment +decentral gas boiler,lifetime,20.0,years,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",202 Natural gas boiler: Technical lifetime +decentral gas boiler connection,investment,185.51,EUR/kW_th,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",: Possible additional specific investment +decentral gas boiler connection,lifetime,50.0,years,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",: Technical lifetime +decentral ground-sourced heat pump,FOM,1.82,%/year,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",207.7 Ground source existing: Fixed O&M +decentral ground-sourced heat pump,discount rate,0.04,per unit,Palzer thesis, from old pypsa cost assumptions +decentral ground-sourced heat pump,efficiency,3.9,per unit,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","207.7 Ground source existing: Heat efficiency, annual average, net, radiators, existing one family house" +decentral ground-sourced heat pump,investment,1400.0,EUR/kW_th,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",207.7 Ground source existing: Specific investment +decentral ground-sourced heat pump,lifetime,20.0,years,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",207.7 Ground source existing: Technical lifetime +decentral oil boiler,FOM,2.0,%/year,Palzer thesis (https://energiesysteme-zukunft.de/fileadmin/user_upload/Publikationen/PDFs/ESYS_Materialien_Optimierungsmodell_REMod-D.pdf), from old pypsa cost assumptions +decentral oil boiler,efficiency,0.9,per unit,Palzer thesis (https://energiesysteme-zukunft.de/fileadmin/user_upload/Publikationen/PDFs/ESYS_Materialien_Optimierungsmodell_REMod-D.pdf), from old pypsa cost assumptions +decentral oil boiler,investment,156.01,EUR/kWth,Palzer thesis (https://energiesysteme-zukunft.de/fileadmin/user_upload/Publikationen/PDFs/ESYS_Materialien_Optimierungsmodell_REMod-D.pdf) (+eigene Berechnung), from old pypsa cost assumptions +decentral oil boiler,lifetime,20.0,years,Palzer thesis (https://energiesysteme-zukunft.de/fileadmin/user_upload/Publikationen/PDFs/ESYS_Materialien_Optimierungsmodell_REMod-D.pdf), from old pypsa cost assumptions +decentral resistive heater,FOM,2.0,%/year,Schaber thesis, from old pypsa cost assumptions +decentral resistive heater,discount rate,0.04,per unit,Palzer thesis, from old pypsa cost assumptions +decentral resistive heater,efficiency,0.9,per unit,Schaber thesis, from old pypsa cost assumptions +decentral resistive heater,investment,100.0,EUR/kWhth,Schaber thesis, from old pypsa cost assumptions +decentral resistive heater,lifetime,20.0,years,Schaber thesis, from old pypsa cost assumptions +decentral solar thermal,FOM,1.3,%/year,HP, from old pypsa cost assumptions +decentral solar thermal,discount rate,0.04,per unit,Palzer thesis, from old pypsa cost assumptions +decentral solar thermal,investment,270000.0,EUR/1000m2,HP, from old pypsa cost assumptions +decentral solar thermal,lifetime,20.0,years,HP, from old pypsa cost assumptions +decentral water tank storage,FOM,1.0,%/year,HP, from old pypsa cost assumptions +decentral water tank storage,discount rate,0.04,per unit,Palzer thesis, from old pypsa cost assumptions +decentral water tank storage,investment,18.38,EUR/kWh,IWES Interaktion, from old pypsa cost assumptions +decentral water tank storage,lifetime,20.0,years,HP, from old pypsa cost assumptions +electricity distribution grid,FOM,2.0,%/year,TODO, from old pypsa cost assumptions +electricity distribution grid,investment,500.0,EUR/kW,TODO, from old pypsa cost assumptions +electricity distribution grid,lifetime,40.0,years,TODO, from old pypsa cost assumptions +electricity grid connection,FOM,2.0,%/year,TODO, from old pypsa cost assumptions +electricity grid connection,investment,140.0,EUR/kW,DEA, from old pypsa cost assumptions +electricity grid connection,lifetime,40.0,years,TODO, from old pypsa cost assumptions +electrolysis,FOM,5.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels_-_0003.xlsx",88 Alkaline Electrolyser: Fixed O&M +electrolysis,efficiency,0.66,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels_-_0003.xlsx","88 Alkaline Electrolyser: A) Hydrogen output, at LHV" +electrolysis,investment,550.0,EUR/kW_e,"Danish Energy Agency, data_sheets_for_renewable_fuels_-_0003.xlsx",88 Alkaline Electrolyser: Specific investment +electrolysis,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels_-_0003.xlsx",88 Alkaline Electrolyser: Technical lifetime +fuel cell,FOM,5.0,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",12 LT-PEMFC CHP: Fixed O&M +fuel cell,c_b,1.25,50oC/100oC,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",12 LT-PEMFC CHP: Cb coefficient +fuel cell,efficiency,0.5,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","12 LT-PEMFC CHP: Electricity efficiency, annual average" +fuel cell,investment,1100.0,EUR/kW_e,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",12 LT-PEMFC CHP: Nominal investment +fuel cell,lifetime,10.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",12 LT-PEMFC CHP: Technical lifetime +gas,CO2 intensity,0.2,tCO2/MWh_th,Entwicklung der spezifischen Kohlendioxid-Emissionen des deutschen Strommix in den Jahren 1990 - 2018, +gas,fuel,20.1,EUR/MWh_th,BP 2019, +gas storage,FOM,3.59,%,Danish Energy Agency,"150 Underground Storage of Gas, Operation and Maintenace, salt cavern (units converted)" +gas storage,investment,0.03,EUR/kWh,Danish Energy Agency,"150 Underground Storage of Gas, Establishment of one cavern (units converted)" +gas storage,lifetime,100.0,years,TODO no source,"estimation: most underground storage are already build, they do have a long lifetime" +gas storage charger,investment,14.34,EUR/kW,Danish Energy Agency,"150 Underground Storage of Gas, Process equipment (units converted)" +gas storage discharger,investment,4.78,EUR/kW,Danish Energy Agency,"150 Underground Storage of Gas, Process equipment (units converted)" +geothermal,CO2 intensity,0.03,tCO2/MWhth,https://www.eia.gov/environment/emissions/co2_vol_mass.php, from old pypsa cost assumptions +geothermal,FOM,2.36,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions +geothermal,efficiency,0.24,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions +geothermal,investment,3392.0,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions +geothermal,lifetime,40.0,years,IEA2010, from old pypsa cost assumptions +helmeth,FOM,3.0,%/year,no source, from old pypsa cost assumptions +helmeth,efficiency,0.8,per unit,HELMETH press release, from old pypsa cost assumptions +helmeth,investment,2000.0,EUR/kW,no source, from old pypsa cost assumptions +helmeth,lifetime,25.0,years,no source, from old pypsa cost assumptions +hydro,FOM,1.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions +hydro,efficiency,0.9,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions +hydro,investment,2208.16,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions +hydro,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions +hydrogen storage tank,FOM,1.11,%/year,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",151a Hydrogen Storage - Tanks: Fixed O&M +hydrogen storage tank,investment,44.91,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",151a Hydrogen Storage - Tanks: Specific investment +hydrogen storage tank,lifetime,30.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",151a Hydrogen Storage - Tanks: Technical lifetime +hydrogen storage underground,FOM,0.0,%/year,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",151c Hydrogen Storage - Caverns: Fixed O&M +hydrogen storage underground,VOM,0.0,EUR/MWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",151c Hydrogen Storage - Caverns: Variable O&M +hydrogen storage underground,investment,2.0,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",151c Hydrogen Storage - Caverns: Specific investment +hydrogen storage underground,lifetime,100.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",151c Hydrogen Storage - Caverns: Technical lifetime +industry CCS,FOM,2.0,%/year,Saygin et al 2013 https://doi.org/10.1016/j.ijggc.2013.05.032, from old pypsa cost assumptions +industry CCS,efficiency,0.9,per unit,Saygin et al 2013 https://doi.org/10.1016/j.ijggc.2013.05.032, from old pypsa cost assumptions +industry CCS,investment,300.0,EUR/tCO2/a,Saygin et al 2013 https://doi.org/10.1016/j.ijggc.2013.05.032, from old pypsa cost assumptions +industry CCS,lifetime,25.0,years,Saygin et al 2013 https://doi.org/10.1016/j.ijggc.2013.05.032, from old pypsa cost assumptions +lignite,CO2 intensity,0.41,tCO2/MWh_th,Entwicklung der spezifischen Kohlendioxid-Emissionen des deutschen Strommix in den Jahren 1990 - 2018, +lignite,FOM,1.6,%/year,Lazard s Levelized Cost of Energy Analysis - Version 13.0, +lignite,VOM,3.5,EUR/MWh_e,Lazard s Levelized Cost of Energy Analysis - Version 13.0, +lignite,efficiency,0.33,per unit,Lazard s Levelized Cost of Energy Analysis - Version 13.0, +lignite,fuel,2.9,EUR/MWh_th,DIW, +lignite,investment,3845.51,EUR/kW_e,Lazard s Levelized Cost of Energy Analysis - Version 13.0, +lignite,lifetime,40.0,years,Lazard s Levelized Cost of Energy Analysis - Version 13.0, +methanation,FOM,3.0,%/year,Schaber thesis, from old pypsa cost assumptions +methanation,efficiency,0.8,per unit,Palzer and Schaber thesis, from old pypsa cost assumptions +methanation,investment,1000.0,EUR/kWH2,Schaber thesis, from old pypsa cost assumptions +methanation,lifetime,25.0,years,Schaber thesis, from old pypsa cost assumptions +micro CHP,FOM,6.11,%/year,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",219 LT-PEMFC mCHP - natural gas: Fixed O&M +micro CHP,efficiency,0.35,per unit,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","219 LT-PEMFC mCHP - natural gas: Electric efficiency, annual average, net" +micro CHP,efficiency-heat,0.61,per unit,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","219 LT-PEMFC mCHP - natural gas: Heat efficiency, annual average, net" +micro CHP,investment,7410.27,EUR/kW_th,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",219 LT-PEMFC mCHP - natural gas: Specific investment +micro CHP,lifetime,20.0,years,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",219 LT-PEMFC mCHP - natural gas: Technical lifetime +nuclear,FOM,1.4,%/year,Lazard s Levelized Cost of Energy Analysis - Version 13.0, +nuclear,VOM,3.5,EUR/MWh_e,Lazard s Levelized Cost of Energy Analysis - Version 13.0, +nuclear,efficiency,0.33,per unit,Lazard s Levelized Cost of Energy Analysis - Version 13.0, +nuclear,fuel,2.6,EUR/MWh_th,Lazard s Levelized Cost of Energy Analysis - Version 13.0, +nuclear,investment,7940.45,EUR/kW_e,Lazard s Levelized Cost of Energy Analysis - Version 13.0, +nuclear,lifetime,40.0,years,Lazard s Levelized Cost of Energy Analysis - Version 13.0, +offwind,FOM,2.29,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",21 Offshore turbines: Fixed O&M +offwind,VOM,2.67,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",21 Offshore turbines: Variable O&M +offwind,investment,1573.21,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",21 Offshore turbines: Nominal investment grid connection costs substracted from investment costs +offwind,lifetime,30.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",21 Offshore turbines: Technical lifetime +offwind-ac-connection-submarine,investment,2685.0,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions +offwind-ac-connection-underground,investment,1342.0,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions +offwind-ac-station,investment,250.0,EUR/kWel,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions +offwind-dc-connection-submarine,investment,2000.0,EUR/MW/km,DTU report based on Fig 34 of https://ec.europa.eu/energy/sites/ener/files/documents/2014_nsog_report.pdf, from old pypsa cost assumptions +offwind-dc-connection-underground,investment,1000.0,EUR/MW/km,Haertel 2017; average + 13% learning reduction, from old pypsa cost assumptions +offwind-dc-station,investment,400.0,EUR/kWel,Haertel 2017; assuming one onshore and one offshore node + 13% learning reduction, from old pypsa cost assumptions +oil,CO2 intensity,0.27,tCO2/MWh_th,Entwicklung der spezifischen Kohlendioxid-Emissionen des deutschen Strommix in den Jahren 1990 - 2018, +oil,FOM,2.46,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",50 Diesel engine farm: Fixed O&M +oil,VOM,6.0,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",50 Diesel engine farm: Variable O&M +oil,efficiency,0.35,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","50 Diesel engine farm: Electricity efficiency, annual average" +oil,fuel,50.0,EUR/MWhth,IEA WEM2017 97USD/boe = http://www.iea.org/media/weowebsite/2017/WEM_Documentation_WEO2017.pdf, from old pypsa cost assumptions +oil,investment,343.0,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",50 Diesel engine farm: Specific investment +oil,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",50 Diesel engine farm: Technical lifetime +onwind,FOM,1.22,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",20 Onshore turbines: Fixed O&M +onwind,VOM,1.35,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",20 Onshore turbines: Variable O&M +onwind,investment,1035.56,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",20 Onshore turbines: Nominal investment +onwind,lifetime,30.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",20 Onshore turbines: Technical lifetime +ror,FOM,2.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions +ror,efficiency,0.9,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions +ror,investment,3312.24,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions +ror,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions +solar,FOM,1.46,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",22 Photovoltaics Medium: Fixed O&M +solar,VOM,0.01,EUR/MWhel,RES costs made up to fix curtailment order, from old pypsa cost assumptions +solar,investment,631.69,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","22 Photovoltaics Medium: Specific investment, total system" +solar,lifetime,35.0,years,"Assuming 50% rooftop, 50% utility",22 Photovoltaics Medium: Technical lifetime of total system +solar-rooftop,FOM,1.24,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",22 Photovoltaics Small: Fixed O&M +solar-rooftop,discount rate,0.04,per unit,standard for decentral, from old pypsa cost assumptions +solar-rooftop,investment,784.31,EUR/kW,European PV Technology and Innovation Platform,"22 Photovoltaics Small: Specific investment, total system" +solar-rooftop,lifetime,30.0,years,European PV Technology and Innovation Platform,22 Photovoltaics Small: Technical lifetime of total system +solar-utility,FOM,1.93,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",22 Photovoltaics Large: Fixed O&M +solar-utility,investment,376.29,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",22 Photovoltaics Large: Nominal investment +solar-utility,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",22 Photovoltaics Large: Technical lifetime +solid biomass,CO2 intensity,0.3,tCO2/MWh_th,TODO, +solid biomass,fuel,25.2,EUR/MWh_th,Is a 100% renewable European power system feasible by 2050?, +uranium,fuel,2.6,EUR/MWh_th,Lazard s Levelized Cost of Energy Analysis - Version 13.0, +water tank charger,efficiency,0.84,per unit,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: efficiency from sqr(Round trip efficiency) +water tank discharger,efficiency,0.84,per unit,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: efficiency from sqr(Round trip efficiency) diff --git a/scripts/add_electricity.py b/scripts/add_electricity.py index 7a32e628..d0385a97 100755 --- a/scripts/add_electricity.py +++ b/scripts/add_electricity.py @@ -90,7 +90,6 @@ It further adds extendable ``generators`` with **zero** capacity for - additional open- and combined-cycle gas turbines (if ``OCGT`` and/or ``CCGT`` is listed in the config setting ``electricity: extendable_carriers``) """ -from vresutils.costdata import annuity from vresutils.load import timeseries_opsd from vresutils import transfer as vtransfer @@ -121,6 +120,19 @@ def _add_missing_carriers_from_costs(n, costs, carriers): emissions.index = missing_carriers n.import_components_from_dataframe(emissions, 'Carrier') + +def annuity(n, r): + """Calculate the annuity factor for an asset with lifetime n years and + discount rate of r, e.g. annuity(20,0.05)*20 = 1.6""" + + if isinstance(r, pd.Series): + return pd.Series(1/n, index=r.index).where(r == 0, r/(1. - 1./(1.+r)**n)) + elif r > 0: + return r/(1. - 1./(1.+r)**n) + else: + return 1/n + + def load_costs(Nyears=1., tech_costs=None, config=None, elec_config=None): if tech_costs is None: tech_costs = snakemake.input.tech_costs @@ -129,23 +141,22 @@ def load_costs(Nyears=1., tech_costs=None, config=None, elec_config=None): config = snakemake.config['costs'] # set all asset costs and other parameters - costs = pd.read_csv(tech_costs, index_col=list(range(3))).sort_index() + costs = pd.read_csv(tech_costs, index_col=[0,1]).sort_index() - # correct units to MW and EUR - costs.loc[costs.unit.str.contains("/kW"),"value"] *= 1e3 - costs.loc[costs.unit.str.contains("USD"),"value"] *= config['USD2013_to_EUR2013'] + # correct units to MW + to_mw_i = costs.query('unit == "EUR/kW"').index + costs.value.update(costs.value[to_mw_i] * 1e3) + costs.unit.update(pd.Series("EUR/MW", to_mw_i)) - costs = (costs.loc[idx[:,config['year'],:], "value"] - .unstack(level=2).groupby("technology").sum(min_count=1)) - - costs = costs.fillna({"CO2 intensity" : 0, - "FOM" : 0, - "VOM" : 0, - "discount rate" : config['discountrate'], - "efficiency" : 1, - "fuel" : 0, - "investment" : 0, - "lifetime" : 25}) + fill_values = {"CO2 intensity" : 0, + "FOM" : 0, + "VOM" : 0, + "discount rate" : config['discountrate'], + "efficiency" : 1, + "fuel" : 0, + "investment" : 0, + "lifetime" : 25} + costs = costs.value.unstack().fillna(fill_values) costs["capital_cost"] = ((annuity(costs["lifetime"], costs["discount rate"]) + costs["FOM"]/100.) * @@ -182,7 +193,7 @@ def load_costs(Nyears=1., tech_costs=None, config=None, elec_config=None): costs_for_storage(costs.loc["battery storage"], costs.loc["battery inverter"], max_hours=max_hours['battery']) costs.loc["H2"] = \ - costs_for_storage(costs.loc["hydrogen storage"], costs.loc["fuel cell"], + costs_for_storage(costs.loc["hydrogen storage tank"], costs.loc["fuel cell"], costs.loc["electrolysis"], max_hours=max_hours['H2']) for attr in ('marginal_cost', 'capital_cost'): From 0b4abb4c30c3e758228050f7d1c9c16c32755a7f Mon Sep 17 00:00:00 2001 From: Fabian Date: Tue, 25 Aug 2020 21:51:29 +0200 Subject: [PATCH 02/23] revert unit adjustment for EUR/MW only --- scripts/add_electricity.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/scripts/add_electricity.py b/scripts/add_electricity.py index d0385a97..60c1060c 100755 --- a/scripts/add_electricity.py +++ b/scripts/add_electricity.py @@ -144,9 +144,7 @@ def load_costs(Nyears=1., tech_costs=None, config=None, elec_config=None): costs = pd.read_csv(tech_costs, index_col=[0,1]).sort_index() # correct units to MW - to_mw_i = costs.query('unit == "EUR/kW"').index - costs.value.update(costs.value[to_mw_i] * 1e3) - costs.unit.update(pd.Series("EUR/MW", to_mw_i)) + costs.loc[costs.unit.str.contains("/kW"),"value"] *= 1e3 fill_values = {"CO2 intensity" : 0, "FOM" : 0, From e9617bca64cbbc617f0a4e010f850177a72ba4c9 Mon Sep 17 00:00:00 2001 From: Fabian Date: Wed, 26 Aug 2020 10:06:10 +0200 Subject: [PATCH 03/23] store cost data in resources enable retrievement in config --- Snakefile | 15 +- config.default.yaml | 1 + config.tutorial.yaml | 1 + data/costs.csv | 308 ----------------------------------------- test/config.test1.yaml | 1 + 5 files changed, 11 insertions(+), 315 deletions(-) delete mode 100644 data/costs.csv diff --git a/Snakefile b/Snakefile index 84662eaf..59cc89bd 100644 --- a/Snakefile +++ b/Snakefile @@ -10,7 +10,7 @@ if not exists("config.yaml"): configfile: "config.yaml" -COSTS="data/costs.csv" +COSTS="resources/costs.csv" wildcard_constraints: ll="(v|c)([0-9\.]+|opt|all)|all", # line limit, can be volume or cost @@ -164,12 +164,13 @@ if config['enable'].get('retrieve_natura_raster', True): log: "logs/retrieve_natura_raster.log" script: 'scripts/retrieve_natura_raster.py' -rule retrieve_cost_data: - params: - year = config['costs']['year'], - version = config['costs']['version'], - output: COSTS - shell: 'curl https://raw.githubusercontent.com/PyPSA/technology-data/{params.version}/outputs/costs_{params.year}.csv -o {output}' +if config['enable'].get('retrieve_cost_data', True): + rule retrieve_cost_data: + params: + year = config['costs']['year'], + version = config['costs']['version'], + output: COSTS + shell: 'curl https://raw.githubusercontent.com/PyPSA/technology-data/{params.version}/outputs/costs_{params.year}.csv -o {output}' rule build_renewable_profiles: input: diff --git a/config.default.yaml b/config.default.yaml index 375bcda6..d0d78730 100755 --- a/config.default.yaml +++ b/config.default.yaml @@ -28,6 +28,7 @@ snapshots: enable: prepare_links_p_nom: false retrieve_databundle: true + retrieve_cost_data: true build_cutout: false retrieve_cutout: true build_natura_raster: false diff --git a/config.tutorial.yaml b/config.tutorial.yaml index f77ad2bd..1aa589ca 100755 --- a/config.tutorial.yaml +++ b/config.tutorial.yaml @@ -27,6 +27,7 @@ snapshots: enable: prepare_links_p_nom: false retrieve_databundle: true + retrieve_cost_data: true build_cutout: false retrieve_cutout: true build_natura_raster: false diff --git a/data/costs.csv b/data/costs.csv deleted file mode 100644 index 8b50f24d..00000000 --- a/data/costs.csv +++ /dev/null @@ -1,308 +0,0 @@ -technology,parameter,value,unit,source,further description -CCGT,FOM,3.35,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","05 Gas turb. CC, steam extract.: Fixed O&M" -CCGT,VOM,4.2,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","05 Gas turb. CC, steam extract.: Variable O&M" -CCGT,c_b,2.0,50oC/100oC,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","05 Gas turb. CC, steam extract.: Cb coefficient" -CCGT,c_v,0.15,50oC/100oC,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","05 Gas turb. CC, steam extract.: Cv coefficient" -CCGT,efficiency,0.58,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","05 Gas turb. CC, steam extract.: Electricity efficiency, annual average" -CCGT,investment,830.0,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","05 Gas turb. CC, steam extract.: Nominal investment" -CCGT,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","05 Gas turb. CC, steam extract.: Technical lifetime" -DAC,FOM,4.0,%/year,Fasihi, from old pypsa cost assumptions -DAC,investment,383.0,EUR/(tCO2/a),Fasihi, -DAC,lifetime,30.0,years,Fasihi, from old pypsa cost assumptions -Fischer-Tropsch,FOM,3.0,%/year,doi:10.3390/su9020306, from old pypsa cost assumptions -Fischer-Tropsch,efficiency,0.8,per unit,TODO, from old pypsa cost assumptions -Fischer-Tropsch,investment,677.6,EUR/kWH2,Fasihi doi:10.3390/su9020306 (60 kEUR/bpd = 847 EUR/kWL (1b = 1.7 MWh) 847*0.8 = 677.6), from old pypsa cost assumptions -Fischer-Tropsch,lifetime,30.0,years,doi:10.3390/su9020306, from old pypsa cost assumptions -Gasnetz,FOM,2.5,%,"WEGE ZU EINEM KLIMANEUTRALEN ENERGIESYSEM, Anhang zur Studie, Fraunhofer-Institut für Solare Energiesysteme ISE, Freiburg",Gasnetz -Gasnetz,investment,28.0,EUR/kWGas,"WEGE ZU EINEM KLIMANEUTRALEN ENERGIESYSEM, Anhang zur Studie, Fraunhofer-Institut für Solare Energiesysteme ISE, Freiburg",Gasnetz -Gasnetz,lifetime,30.0,years,"WEGE ZU EINEM KLIMANEUTRALEN ENERGIESYSEM, Anhang zur Studie, Fraunhofer-Institut für Solare Energiesysteme ISE, Freiburg",Gasnetz -H2 pipeline,FOM,3.0,%/year,TODO, from old pypsa cost assumptions -H2 pipeline,investment,267.0,EUR/MW/km,Welder et al https://doi.org/10.1016/j.ijhydene.2018.12.156, from old pypsa cost assumptions -H2 pipeline,lifetime,40.0,years,TODO, from old pypsa cost assumptions -HVAC overhead,FOM,2.0,%/year,Hagspiel, from old pypsa cost assumptions -HVAC overhead,investment,400.0,EUR/MW/km,Hagspiel, from old pypsa cost assumptions -HVAC overhead,lifetime,40.0,years,Hagspiel, from old pypsa cost assumptions -HVDC inverter pair,FOM,2.0,%/year,Hagspiel, from old pypsa cost assumptions -HVDC inverter pair,investment,150000.0,EUR/MW,Hagspiel, from old pypsa cost assumptions -HVDC inverter pair,lifetime,40.0,years,Hagspiel, from old pypsa cost assumptions -HVDC overhead,FOM,2.0,%/year,Hagspiel, from old pypsa cost assumptions -HVDC overhead,investment,400.0,EUR/MW/km,Hagspiel, from old pypsa cost assumptions -HVDC overhead,lifetime,40.0,years,Hagspiel, from old pypsa cost assumptions -HVDC submarine,FOM,2.0,%/year,Hagspiel, from old pypsa cost assumptions -HVDC submarine,investment,2000.0,EUR/MW/km,Own analysis of European submarine HVDC projects since 2000, from old pypsa cost assumptions -HVDC submarine,lifetime,40.0,years,Hagspiel, from old pypsa cost assumptions -OCGT,FOM,1.78,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",52 OCGT - Natural gas: Fixed O&M -OCGT,VOM,4.5,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",52 OCGT - Natural gas: Variable O&M -OCGT,efficiency,0.41,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","52 OCGT - Natural gas: Electricity efficiency, annual average" -OCGT,investment,435.24,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",52 OCGT - Natural gas: Specific investment -OCGT,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",52 OCGT - Natural gas: Technical lifetime -PHS,FOM,1.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions -PHS,efficiency,0.75,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions -PHS,investment,2208.16,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions -PHS,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions -SMR,FOM,5.4,%/year,https://www.gov.uk/government/publications/hydrogen-supply-chain-evidence-base; slide 42 assumption for 2030, from old pypsa cost assumptions -SMR,efficiency,0.74,per unit,https://www.gov.uk/government/publications/hydrogen-supply-chain-evidence-base; slide 42 assumption for 2030, from old pypsa cost assumptions -SMR,investment,540.56,EUR/kWCH4,https://www.gov.uk/government/publications/hydrogen-supply-chain-evidence-base; slide 42 assumption for 2030; GBP 466 exchange 1.16, from old pypsa cost assumptions -SMR,lifetime,25.0,years,TODO, from old pypsa cost assumptions -SMR CCS,FOM,5.4,%/year,https://www.gov.uk/government/publications/hydrogen-supply-chain-evidence-base; slide 42 assumption for 2030, from old pypsa cost assumptions -SMR CCS,efficiency,0.67,per unit,https://www.gov.uk/government/publications/hydrogen-supply-chain-evidence-base; slide 42 assumption for 2030; CCS uses 10% of gas, from old pypsa cost assumptions -SMR CCS,investment,1032.0,EUR/kWCH4,https://www.gov.uk/government/publications/hydrogen-supply-chain-evidence-base; slide 42 assumption for 2030; GBP 466 exchange 1.16; CCS costed at 300 EUR/tCO2/a, from old pypsa cost assumptions -SMR CCS,lifetime,25.0,years,TODO, from old pypsa cost assumptions -battery inverter,FOM,0.34,%/year,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Fixed O&M -battery inverter,efficiency,0.96,per unit,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Round trip efficiency DC -battery inverter,investment,160.0,EUR/kW,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Output capacity expansion cost investment -battery inverter,lifetime,25.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Technical lifetime -battery storage,investment,142.0,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Energy storage expansion cost investment -battery storage,lifetime,25.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Technical lifetime -biogas,fuel,59.0,EUR/MWhth,JRC and Zappa, from old pypsa cost assumptions -biogas upgrading,FOM,2.49,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels_-_0003.xlsx","82 Biogas, upgrading: Fixed O&M " -biogas upgrading,VOM,3.18,EUR/MWh input,"Danish Energy Agency, data_sheets_for_renewable_fuels_-_0003.xlsx","82 Biogas, upgrading: Variable O&M" -biogas upgrading,investment,381.0,EUR/kW input,"Danish Energy Agency, data_sheets_for_renewable_fuels_-_0003.xlsx","82 Biogas, upgrading: investment (upgrading, methane redution and grid injection)" -biogas upgrading,lifetime,15.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels_-_0003.xlsx","82 Biogas, upgrading: Technical lifetime" -biomass,FOM,4.53,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions -biomass,efficiency,0.47,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions -biomass,fuel,7.0,EUR/MWhth,IEA2011b, from old pypsa cost assumptions -biomass,investment,2209.0,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions -biomass,lifetime,30.0,years,ECF2010 in DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions -biomass CHP,FOM,3.58,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Fixed O&M" -biomass CHP,VOM,2.1,EUR/MWh_e,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Variable O&M " -biomass CHP,c_b,0.46,40°C/80°C,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Cb coefficient" -biomass CHP,c_v,1.0,40°C/80°C,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Cv coefficient" -biomass CHP,efficiency,0.3,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Electricity efficiency, net, annual average" -biomass CHP,efficiency-heat,0.71,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Heat efficiency, net, annual average" -biomass CHP,investment,3210.28,EUR/kW_e,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Nominal investment " -biomass CHP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Technical lifetime" -biomass EOP,FOM,3.58,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Fixed O&M" -biomass EOP,VOM,2.1,EUR/MWh_e,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Variable O&M " -biomass EOP,c_b,0.46,40°C/80°C,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Cb coefficient" -biomass EOP,c_v,1.0,40°C/80°C,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Cv coefficient" -biomass EOP,efficiency,0.3,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Electricity efficiency, net, annual average" -biomass EOP,efficiency-heat,0.71,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Heat efficiency, net, annual average" -biomass EOP,investment,3210.28,EUR/kW_e,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Nominal investment " -biomass EOP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw, Large, 40 degree: Technical lifetime" -biomass HOP,FOM,5.75,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw HOP: Fixed O&M, heat output" -biomass HOP,VOM,2.78,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",09c Straw HOP: Variable O&M heat output -biomass HOP,efficiency,1.03,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09c Straw HOP: Total efficiency , net, annual average" -biomass HOP,investment,832.63,EUR/kW_th - heat output,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",09c Straw HOP: Nominal investment -biomass HOP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",09c Straw HOP: Technical lifetime -central air-sourced heat pump,FOM,0.23,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Comp. hp, airsource 3 MW: Fixed O&M" -central air-sourced heat pump,VOM,2.51,EUR/MWh_th,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Comp. hp, airsource 3 MW: Variable O&M" -central air-sourced heat pump,efficiency,3.6,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Comp. hp, airsource 3 MW: Total efficiency , net, annual average" -central air-sourced heat pump,investment,856.25,EUR/kW_th,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Comp. hp, airsource 3 MW: Specific investment" -central air-sourced heat pump,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Comp. hp, airsource 3 MW: Technical lifetime" -central coal CHP,FOM,1.63,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",01 Coal CHP: Fixed O&M -central coal CHP,VOM,2.84,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",01 Coal CHP: Variable O&M -central coal CHP,c_b,1.01,50oC/100oC,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",01 Coal CHP: Cb coefficient -central coal CHP,c_v,0.15,50oC/100oC,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",01 Coal CHP: Cv coefficient -central coal CHP,efficiency,0.52,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","01 Coal CHP: Electricity efficiency, condensation mode, net" -central coal CHP,investment,1860.47,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",01 Coal CHP: Nominal investment -central coal CHP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",01 Coal CHP: Technical lifetime -central gas CHP,FOM,3.32,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","04 Gas turb. simple cycle, L: Fixed O&M" -central gas CHP,VOM,4.2,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","04 Gas turb. simple cycle, L: Variable O&M" -central gas CHP,c_b,0.7,per unit,DEA (backpressure ratio), from old pypsa cost assumptions -central gas CHP,c_v,0.17,per unit,DEA (loss of fuel for additional heat), from old pypsa cost assumptions -central gas CHP,efficiency,0.41,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","04 Gas turb. simple cycle, L: Electricity efficiency, annual average" -central gas CHP,investment,560.0,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","04 Gas turb. simple cycle, L: Nominal investment" -central gas CHP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","04 Gas turb. simple cycle, L: Technical lifetime" -central gas CHP,p_nom_ratio,1.0,per unit,, from old pypsa cost assumptions -central gas CHP CCS,FOM,3.32,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","04 Gas turb. simple cycle, L: Fixed O&M" -central gas CHP CCS,VOM,4.2,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","04 Gas turb. simple cycle, L: Variable O&M" -central gas CHP CCS,c_b,0.7,per unit,DEA (backpressure ratio), from old pypsa cost assumptions -central gas CHP CCS,c_v,0.17,per unit,DEA (loss of fuel for additional heat), from old pypsa cost assumptions -central gas CHP CCS,efficiency,0.37,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","04 Gas turb. simple cycle, L: Electricity efficiency, annual average" -central gas CHP CCS,investment,1160.0,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx , DIW (CCS)","04 Gas turb. simple cycle, L: Nominal investment" -central gas CHP CCS,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","04 Gas turb. simple cycle, L: Technical lifetime" -central gas CHP CCS,p_nom_ratio,1.0,per unit,, from old pypsa cost assumptions -central gas boiler,FOM,3.8,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",44 Natural Gas DH Only: Fixed O&M -central gas boiler,VOM,1.0,EUR/MWh_th,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",44 Natural Gas DH Only: Variable O&M -central gas boiler,efficiency,1.04,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","44 Natural Gas DH Only: Total efficiency , net, annual average" -central gas boiler,investment,50.0,EUR/kW_th,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",44 Natural Gas DH Only: Nominal investment -central gas boiler,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",44 Natural Gas DH Only: Technical lifetime -central ground-sourced heat pump,FOM,0.39,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Absorption heat pump, DH: Fixed O&M" -central ground-sourced heat pump,VOM,1.25,EUR/MWh_th,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Absorption heat pump, DH: Variable O&M" -central ground-sourced heat pump,efficiency,1.73,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Absorption heat pump, DH: Total efficiency , net, annual average" -central ground-sourced heat pump,investment,507.6,EUR/kW_th excluding drive energy,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Absorption heat pump, DH: Nominal investment" -central ground-sourced heat pump,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","40 Absorption heat pump, DH: Technical lifetime" -central resistive heater,FOM,1.7,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",41 Electric Boilers: Fixed O&M -central resistive heater,VOM,1.0,EUR/MWh_th,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",41 Electric Boilers: Variable O&M -central resistive heater,efficiency,0.99,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","41 Electric Boilers: Total efficiency , net, annual average" -central resistive heater,investment,60.0,EUR/kW_th,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",41 Electric Boilers: Nominal investment; 10/15 kV; >10 MW -central resistive heater,lifetime,20.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",41 Electric Boilers: Technical lifetime -central solar thermal,FOM,1.4,%/year,HP, from old pypsa cost assumptions -central solar thermal,investment,140000.0,EUR/1000m2,HP, from old pypsa cost assumptions -central solar thermal,lifetime,20.0,years,HP, from old pypsa cost assumptions -central solid biomass CHP,FOM,4.1,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Fixed O&M" -central solid biomass CHP,VOM,1.85,EUR/MWh_e,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Variable O&M " -central solid biomass CHP,c_b,1.01,per unit,DEA for wood pellets CHP (backpressure ratio), from old pypsa cost assumptions -central solid biomass CHP,c_v,0.15,per unit,DEA for wood pellets CHP (loss of fuel for additional heat), from old pypsa cost assumptions -central solid biomass CHP,efficiency,0.29,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Electricity efficiency, net, annual average" -central solid biomass CHP,efficiency-heat,0.69,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Heat efficiency, net, annual average" -central solid biomass CHP,investment,2851.41,EUR/kW_e,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Nominal investment " -central solid biomass CHP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Technical lifetime" -central solid biomass CHP,p_nom_ratio,1.0,per unit,, from old pypsa cost assumptions -central solid biomass CHP CCS,FOM,4.1,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Fixed O&M" -central solid biomass CHP CCS,VOM,1.85,EUR/MWh_e,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Variable O&M " -central solid biomass CHP CCS,c_b,1.01,per unit,DEA for wood pellets CHP (backpressure ratio), from old pypsa cost assumptions -central solid biomass CHP CCS,c_v,0.15,per unit,DEA for wood pellets CHP (loss of fuel for additional heat), from old pypsa cost assumptions -central solid biomass CHP CCS,efficiency,0.26,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Electricity efficiency, net, annual average" -central solid biomass CHP CCS,efficiency-heat,0.69,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Heat efficiency, net, annual average" -central solid biomass CHP CCS,investment,3451.41,EUR/kW_e,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx , DIW (CCS)","09b Wood Pellets, Medium: Nominal investment " -central solid biomass CHP CCS,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","09b Wood Pellets, Medium: Technical lifetime" -central solid biomass CHP CCS,p_nom_ratio,1.0,per unit,, from old pypsa cost assumptions -central water tank storage,FOM,0.55,%/year,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",140 PTES seasonal: Fixed O&M -central water tank storage,investment,0.54,EUR/kWhCapacity,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",140 PTES seasonal: Specific investment -central water tank storage,lifetime,25.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",140 PTES seasonal: Technical lifetime -coal,CO2 intensity,0.34,tCO2/MWh_th,Entwicklung der spezifischen Kohlendioxid-Emissionen des deutschen Strommix in den Jahren 1990 - 2018, -coal,FOM,1.6,%/year,Lazard s Levelized Cost of Energy Analysis - Version 13.0, -coal,VOM,3.5,EUR/MWh_e,Lazard s Levelized Cost of Energy Analysis - Version 13.0, -coal,efficiency,0.33,per unit,Lazard s Levelized Cost of Energy Analysis - Version 13.0, -coal,fuel,8.15,EUR/MWh_th,BP 2019, -coal,investment,3845.51,EUR/kW_e,Lazard s Levelized Cost of Energy Analysis - Version 13.0, -coal,lifetime,40.0,years,Lazard s Levelized Cost of Energy Analysis - Version 13.0, -decentral CHP,FOM,3.0,%/year,HP, from old pypsa cost assumptions -decentral CHP,discount rate,0.04,per unit,Palzer thesis, from old pypsa cost assumptions -decentral CHP,investment,1400.0,EUR/kWel,HP, from old pypsa cost assumptions -decentral CHP,lifetime,25.0,years,HP, from old pypsa cost assumptions -decentral air-sourced heat pump,FOM,3.0,%/year,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",207.3 Air to water existing: Fixed O&M -decentral air-sourced heat pump,discount rate,0.04,per unit,Palzer thesis, from old pypsa cost assumptions -decentral air-sourced heat pump,efficiency,3.6,per unit,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","207.3 Air to water existing: Heat efficiency, annual average, net, radiators, existing one family house" -decentral air-sourced heat pump,investment,850.0,EUR/kW_th,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",207.3 Air to water existing: Specific investment -decentral air-sourced heat pump,lifetime,18.0,years,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",207.3 Air to water existing: Technical lifetime -decentral gas boiler,FOM,6.69,%/year,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",202 Natural gas boiler: Fixed O&M -decentral gas boiler,discount rate,0.04,per unit,Palzer thesis, from old pypsa cost assumptions -decentral gas boiler,efficiency,0.98,per unit,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","202 Natural gas boiler: Total efficiency, annual average, net" -decentral gas boiler,investment,296.82,EUR/kW_th,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",202 Natural gas boiler: Specific investment -decentral gas boiler,lifetime,20.0,years,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",202 Natural gas boiler: Technical lifetime -decentral gas boiler connection,investment,185.51,EUR/kW_th,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",: Possible additional specific investment -decentral gas boiler connection,lifetime,50.0,years,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",: Technical lifetime -decentral ground-sourced heat pump,FOM,1.82,%/year,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",207.7 Ground source existing: Fixed O&M -decentral ground-sourced heat pump,discount rate,0.04,per unit,Palzer thesis, from old pypsa cost assumptions -decentral ground-sourced heat pump,efficiency,3.9,per unit,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","207.7 Ground source existing: Heat efficiency, annual average, net, radiators, existing one family house" -decentral ground-sourced heat pump,investment,1400.0,EUR/kW_th,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",207.7 Ground source existing: Specific investment -decentral ground-sourced heat pump,lifetime,20.0,years,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",207.7 Ground source existing: Technical lifetime -decentral oil boiler,FOM,2.0,%/year,Palzer thesis (https://energiesysteme-zukunft.de/fileadmin/user_upload/Publikationen/PDFs/ESYS_Materialien_Optimierungsmodell_REMod-D.pdf), from old pypsa cost assumptions -decentral oil boiler,efficiency,0.9,per unit,Palzer thesis (https://energiesysteme-zukunft.de/fileadmin/user_upload/Publikationen/PDFs/ESYS_Materialien_Optimierungsmodell_REMod-D.pdf), from old pypsa cost assumptions -decentral oil boiler,investment,156.01,EUR/kWth,Palzer thesis (https://energiesysteme-zukunft.de/fileadmin/user_upload/Publikationen/PDFs/ESYS_Materialien_Optimierungsmodell_REMod-D.pdf) (+eigene Berechnung), from old pypsa cost assumptions -decentral oil boiler,lifetime,20.0,years,Palzer thesis (https://energiesysteme-zukunft.de/fileadmin/user_upload/Publikationen/PDFs/ESYS_Materialien_Optimierungsmodell_REMod-D.pdf), from old pypsa cost assumptions -decentral resistive heater,FOM,2.0,%/year,Schaber thesis, from old pypsa cost assumptions -decentral resistive heater,discount rate,0.04,per unit,Palzer thesis, from old pypsa cost assumptions -decentral resistive heater,efficiency,0.9,per unit,Schaber thesis, from old pypsa cost assumptions -decentral resistive heater,investment,100.0,EUR/kWhth,Schaber thesis, from old pypsa cost assumptions -decentral resistive heater,lifetime,20.0,years,Schaber thesis, from old pypsa cost assumptions -decentral solar thermal,FOM,1.3,%/year,HP, from old pypsa cost assumptions -decentral solar thermal,discount rate,0.04,per unit,Palzer thesis, from old pypsa cost assumptions -decentral solar thermal,investment,270000.0,EUR/1000m2,HP, from old pypsa cost assumptions -decentral solar thermal,lifetime,20.0,years,HP, from old pypsa cost assumptions -decentral water tank storage,FOM,1.0,%/year,HP, from old pypsa cost assumptions -decentral water tank storage,discount rate,0.04,per unit,Palzer thesis, from old pypsa cost assumptions -decentral water tank storage,investment,18.38,EUR/kWh,IWES Interaktion, from old pypsa cost assumptions -decentral water tank storage,lifetime,20.0,years,HP, from old pypsa cost assumptions -electricity distribution grid,FOM,2.0,%/year,TODO, from old pypsa cost assumptions -electricity distribution grid,investment,500.0,EUR/kW,TODO, from old pypsa cost assumptions -electricity distribution grid,lifetime,40.0,years,TODO, from old pypsa cost assumptions -electricity grid connection,FOM,2.0,%/year,TODO, from old pypsa cost assumptions -electricity grid connection,investment,140.0,EUR/kW,DEA, from old pypsa cost assumptions -electricity grid connection,lifetime,40.0,years,TODO, from old pypsa cost assumptions -electrolysis,FOM,5.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels_-_0003.xlsx",88 Alkaline Electrolyser: Fixed O&M -electrolysis,efficiency,0.66,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels_-_0003.xlsx","88 Alkaline Electrolyser: A) Hydrogen output, at LHV" -electrolysis,investment,550.0,EUR/kW_e,"Danish Energy Agency, data_sheets_for_renewable_fuels_-_0003.xlsx",88 Alkaline Electrolyser: Specific investment -electrolysis,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels_-_0003.xlsx",88 Alkaline Electrolyser: Technical lifetime -fuel cell,FOM,5.0,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",12 LT-PEMFC CHP: Fixed O&M -fuel cell,c_b,1.25,50oC/100oC,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",12 LT-PEMFC CHP: Cb coefficient -fuel cell,efficiency,0.5,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","12 LT-PEMFC CHP: Electricity efficiency, annual average" -fuel cell,investment,1100.0,EUR/kW_e,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",12 LT-PEMFC CHP: Nominal investment -fuel cell,lifetime,10.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",12 LT-PEMFC CHP: Technical lifetime -gas,CO2 intensity,0.2,tCO2/MWh_th,Entwicklung der spezifischen Kohlendioxid-Emissionen des deutschen Strommix in den Jahren 1990 - 2018, -gas,fuel,20.1,EUR/MWh_th,BP 2019, -gas storage,FOM,3.59,%,Danish Energy Agency,"150 Underground Storage of Gas, Operation and Maintenace, salt cavern (units converted)" -gas storage,investment,0.03,EUR/kWh,Danish Energy Agency,"150 Underground Storage of Gas, Establishment of one cavern (units converted)" -gas storage,lifetime,100.0,years,TODO no source,"estimation: most underground storage are already build, they do have a long lifetime" -gas storage charger,investment,14.34,EUR/kW,Danish Energy Agency,"150 Underground Storage of Gas, Process equipment (units converted)" -gas storage discharger,investment,4.78,EUR/kW,Danish Energy Agency,"150 Underground Storage of Gas, Process equipment (units converted)" -geothermal,CO2 intensity,0.03,tCO2/MWhth,https://www.eia.gov/environment/emissions/co2_vol_mass.php, from old pypsa cost assumptions -geothermal,FOM,2.36,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions -geothermal,efficiency,0.24,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions -geothermal,investment,3392.0,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions -geothermal,lifetime,40.0,years,IEA2010, from old pypsa cost assumptions -helmeth,FOM,3.0,%/year,no source, from old pypsa cost assumptions -helmeth,efficiency,0.8,per unit,HELMETH press release, from old pypsa cost assumptions -helmeth,investment,2000.0,EUR/kW,no source, from old pypsa cost assumptions -helmeth,lifetime,25.0,years,no source, from old pypsa cost assumptions -hydro,FOM,1.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions -hydro,efficiency,0.9,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions -hydro,investment,2208.16,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions -hydro,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions -hydrogen storage tank,FOM,1.11,%/year,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",151a Hydrogen Storage - Tanks: Fixed O&M -hydrogen storage tank,investment,44.91,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",151a Hydrogen Storage - Tanks: Specific investment -hydrogen storage tank,lifetime,30.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",151a Hydrogen Storage - Tanks: Technical lifetime -hydrogen storage underground,FOM,0.0,%/year,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",151c Hydrogen Storage - Caverns: Fixed O&M -hydrogen storage underground,VOM,0.0,EUR/MWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",151c Hydrogen Storage - Caverns: Variable O&M -hydrogen storage underground,investment,2.0,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",151c Hydrogen Storage - Caverns: Specific investment -hydrogen storage underground,lifetime,100.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",151c Hydrogen Storage - Caverns: Technical lifetime -industry CCS,FOM,2.0,%/year,Saygin et al 2013 https://doi.org/10.1016/j.ijggc.2013.05.032, from old pypsa cost assumptions -industry CCS,efficiency,0.9,per unit,Saygin et al 2013 https://doi.org/10.1016/j.ijggc.2013.05.032, from old pypsa cost assumptions -industry CCS,investment,300.0,EUR/tCO2/a,Saygin et al 2013 https://doi.org/10.1016/j.ijggc.2013.05.032, from old pypsa cost assumptions -industry CCS,lifetime,25.0,years,Saygin et al 2013 https://doi.org/10.1016/j.ijggc.2013.05.032, from old pypsa cost assumptions -lignite,CO2 intensity,0.41,tCO2/MWh_th,Entwicklung der spezifischen Kohlendioxid-Emissionen des deutschen Strommix in den Jahren 1990 - 2018, -lignite,FOM,1.6,%/year,Lazard s Levelized Cost of Energy Analysis - Version 13.0, -lignite,VOM,3.5,EUR/MWh_e,Lazard s Levelized Cost of Energy Analysis - Version 13.0, -lignite,efficiency,0.33,per unit,Lazard s Levelized Cost of Energy Analysis - Version 13.0, -lignite,fuel,2.9,EUR/MWh_th,DIW, -lignite,investment,3845.51,EUR/kW_e,Lazard s Levelized Cost of Energy Analysis - Version 13.0, -lignite,lifetime,40.0,years,Lazard s Levelized Cost of Energy Analysis - Version 13.0, -methanation,FOM,3.0,%/year,Schaber thesis, from old pypsa cost assumptions -methanation,efficiency,0.8,per unit,Palzer and Schaber thesis, from old pypsa cost assumptions -methanation,investment,1000.0,EUR/kWH2,Schaber thesis, from old pypsa cost assumptions -methanation,lifetime,25.0,years,Schaber thesis, from old pypsa cost assumptions -micro CHP,FOM,6.11,%/year,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",219 LT-PEMFC mCHP - natural gas: Fixed O&M -micro CHP,efficiency,0.35,per unit,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","219 LT-PEMFC mCHP - natural gas: Electric efficiency, annual average, net" -micro CHP,efficiency-heat,0.61,per unit,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","219 LT-PEMFC mCHP - natural gas: Heat efficiency, annual average, net" -micro CHP,investment,7410.27,EUR/kW_th,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",219 LT-PEMFC mCHP - natural gas: Specific investment -micro CHP,lifetime,20.0,years,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx",219 LT-PEMFC mCHP - natural gas: Technical lifetime -nuclear,FOM,1.4,%/year,Lazard s Levelized Cost of Energy Analysis - Version 13.0, -nuclear,VOM,3.5,EUR/MWh_e,Lazard s Levelized Cost of Energy Analysis - Version 13.0, -nuclear,efficiency,0.33,per unit,Lazard s Levelized Cost of Energy Analysis - Version 13.0, -nuclear,fuel,2.6,EUR/MWh_th,Lazard s Levelized Cost of Energy Analysis - Version 13.0, -nuclear,investment,7940.45,EUR/kW_e,Lazard s Levelized Cost of Energy Analysis - Version 13.0, -nuclear,lifetime,40.0,years,Lazard s Levelized Cost of Energy Analysis - Version 13.0, -offwind,FOM,2.29,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",21 Offshore turbines: Fixed O&M -offwind,VOM,2.67,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",21 Offshore turbines: Variable O&M -offwind,investment,1573.21,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",21 Offshore turbines: Nominal investment grid connection costs substracted from investment costs -offwind,lifetime,30.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",21 Offshore turbines: Technical lifetime -offwind-ac-connection-submarine,investment,2685.0,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions -offwind-ac-connection-underground,investment,1342.0,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions -offwind-ac-station,investment,250.0,EUR/kWel,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions -offwind-dc-connection-submarine,investment,2000.0,EUR/MW/km,DTU report based on Fig 34 of https://ec.europa.eu/energy/sites/ener/files/documents/2014_nsog_report.pdf, from old pypsa cost assumptions -offwind-dc-connection-underground,investment,1000.0,EUR/MW/km,Haertel 2017; average + 13% learning reduction, from old pypsa cost assumptions -offwind-dc-station,investment,400.0,EUR/kWel,Haertel 2017; assuming one onshore and one offshore node + 13% learning reduction, from old pypsa cost assumptions -oil,CO2 intensity,0.27,tCO2/MWh_th,Entwicklung der spezifischen Kohlendioxid-Emissionen des deutschen Strommix in den Jahren 1990 - 2018, -oil,FOM,2.46,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",50 Diesel engine farm: Fixed O&M -oil,VOM,6.0,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",50 Diesel engine farm: Variable O&M -oil,efficiency,0.35,per unit,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","50 Diesel engine farm: Electricity efficiency, annual average" -oil,fuel,50.0,EUR/MWhth,IEA WEM2017 97USD/boe = http://www.iea.org/media/weowebsite/2017/WEM_Documentation_WEO2017.pdf, from old pypsa cost assumptions -oil,investment,343.0,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",50 Diesel engine farm: Specific investment -oil,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",50 Diesel engine farm: Technical lifetime -onwind,FOM,1.22,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",20 Onshore turbines: Fixed O&M -onwind,VOM,1.35,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",20 Onshore turbines: Variable O&M -onwind,investment,1035.56,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",20 Onshore turbines: Nominal investment -onwind,lifetime,30.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",20 Onshore turbines: Technical lifetime -ror,FOM,2.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions -ror,efficiency,0.9,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions -ror,investment,3312.24,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions -ror,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions -solar,FOM,1.46,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",22 Photovoltaics Medium: Fixed O&M -solar,VOM,0.01,EUR/MWhel,RES costs made up to fix curtailment order, from old pypsa cost assumptions -solar,investment,631.69,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx","22 Photovoltaics Medium: Specific investment, total system" -solar,lifetime,35.0,years,"Assuming 50% rooftop, 50% utility",22 Photovoltaics Medium: Technical lifetime of total system -solar-rooftop,FOM,1.24,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",22 Photovoltaics Small: Fixed O&M -solar-rooftop,discount rate,0.04,per unit,standard for decentral, from old pypsa cost assumptions -solar-rooftop,investment,784.31,EUR/kW,European PV Technology and Innovation Platform,"22 Photovoltaics Small: Specific investment, total system" -solar-rooftop,lifetime,30.0,years,European PV Technology and Innovation Platform,22 Photovoltaics Small: Technical lifetime of total system -solar-utility,FOM,1.93,%/year,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",22 Photovoltaics Large: Fixed O&M -solar-utility,investment,376.29,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",22 Photovoltaics Large: Nominal investment -solar-utility,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_and_dh_-_0009.xlsx",22 Photovoltaics Large: Technical lifetime -solid biomass,CO2 intensity,0.3,tCO2/MWh_th,TODO, -solid biomass,fuel,25.2,EUR/MWh_th,Is a 100% renewable European power system feasible by 2050?, -uranium,fuel,2.6,EUR/MWh_th,Lazard s Levelized Cost of Energy Analysis - Version 13.0, -water tank charger,efficiency,0.84,per unit,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: efficiency from sqr(Round trip efficiency) -water tank discharger,efficiency,0.84,per unit,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: efficiency from sqr(Round trip efficiency) diff --git a/test/config.test1.yaml b/test/config.test1.yaml index 572776c3..536a3d50 100755 --- a/test/config.test1.yaml +++ b/test/config.test1.yaml @@ -27,6 +27,7 @@ snapshots: enable: prepare_links_p_nom: false retrieve_databundle: true + retrieve_cost_data: true build_cutout: false retrieve_cutout: true build_natura_raster: false From 8a323b726725380e96d385f84c7718b016ea4c13 Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Fri, 16 Oct 2020 11:38:26 +0200 Subject: [PATCH 04/23] cost: move defaults to config and improve documentation --- config.default.yaml | 13 +++++++++++-- config.tutorial.yaml | 13 +++++++++++-- doc/configtables/costs.csv | 11 ++++++----- doc/configuration.rst | 4 ++-- doc/costs.rst | 17 +++++------------ doc/release_notes.rst | 6 +++++- doc/tutorial.rst | 2 +- scripts/add_electricity.py | 18 ++++++------------ scripts/add_extra_components.py | 4 ++-- scripts/make_summary.py | 5 +++-- scripts/prepare_network.py | 7 ++++--- scripts/simplify_network.py | 7 ++++--- test/config.test1.yaml | 13 +++++++++++-- 13 files changed, 71 insertions(+), 49 deletions(-) diff --git a/config.default.yaml b/config.default.yaml index d0d78730..5635b739 100755 --- a/config.default.yaml +++ b/config.default.yaml @@ -171,8 +171,17 @@ load: costs: year: 2030 - discountrate: 0.07 # From a Lion Hirth paper, also reflects average of Noothout et al 2016 - USD2013_to_EUR2013: 0.7532 # [EUR/USD] ECB: https://www.ecb.europa.eu/stats/exchange/eurofxref/html/eurofxref-graph-usd.en.html + version: v0.1.0 + rooftop_share: 0.5 + fill_values: + FOM: 0 + VOM: 0 + efficiency: 1 + fuel: 0 + investment: 0 + lifetime: 25 + "CO2 intensity": 0 + "discount rate": 0.07 marginal_cost: solar: 0.01 onwind: 0.015 diff --git a/config.tutorial.yaml b/config.tutorial.yaml index 1aa589ca..272a757b 100755 --- a/config.tutorial.yaml +++ b/config.tutorial.yaml @@ -149,8 +149,17 @@ load: costs: year: 2030 - discountrate: 0.07 # From a Lion Hirth paper, also reflects average of Noothout et al 2016 - USD2013_to_EUR2013: 0.7532 # [EUR/USD] ECB: https://www.ecb.europa.eu/stats/exchange/eurofxref/html/eurofxref-graph-usd.en.html + version: v0.1.0 + rooftop_share: 0.5 + fill_values: + FOM: 0 + VOM: 0 + efficiency: 1 + fuel: 0 + investment: 0 + lifetime: 25 + "CO2 intensity": 0 + "discount rate": 0.07 marginal_cost: solar: 0.01 onwind: 0.015 diff --git a/doc/configtables/costs.csv b/doc/configtables/costs.csv index 383a6423..11f0f3df 100644 --- a/doc/configtables/costs.csv +++ b/doc/configtables/costs.csv @@ -1,8 +1,9 @@ ,Unit,Values,Description -year,--,"YYYY; e.g. '2030'","Year for which to retrieve cost assumptions of ``data/costs.csv``." -discountrate,--,float,"Default discount rate if not specified for a technology in ``data/costs.csv``." -USD2013_to_EUR2013,--,float,"Exchange rate from USD :math:`_{2013}` to EUR :math:`_{2013}` from `ECB `_" -capital_cost,EUR/MW,"Keys should be in the 'technology' column of ``data/costs.csv``. Values can be any float.","For the given technologies, assumptions about their capital investment costs are set to the corresponding value. Optional; overwrites cost assumptions from ``data/costs.csv``." -marginal_cost,EUR/MWh,"Keys should be in the 'technology' column of ``data/costs.csv``. Values can be any float.","For the given technologies, assumptions about their marginal operating costs are set to the corresponding value. Optional; overwrites cost assumptions from ``data/costs.csv``." +year,--,"YYYY; e.g. '2030'","Year for which to retrieve cost assumptions of ``resources/costs.csv``." +version,--,"vX.X.X; e.g. 'v0.1.0'","Version of ``technology-data`` repository to use." +rooftop_share,--,float,"Share of rooftop PV when calculating capital cost of solar (joint rooftop and utility-scale PV)." +fill_values,--,float,"Default values if not specified for a technology in ``resources/costs.csv``." +capital_cost,EUR/MW,"Keys should be in the 'technology' column of ``resources/costs.csv``. Values can be any float.","For the given technologies, assumptions about their capital investment costs are set to the corresponding value. Optional; overwrites cost assumptions from ``resources/costs.csv``." +marginal_cost,EUR/MWh,"Keys should be in the 'technology' column of ``resources/costs.csv``. Values can be any float.","For the given technologies, assumptions about their marginal operating costs are set to the corresponding value. Optional; overwrites cost assumptions from ``resources/costs.csv``." emission_prices,,,"Specify exogenous prices for emission types listed in ``network.carriers`` to marginal costs." -- co2,EUR/t,float,"Exogenous price of carbon-dioxide added to the marginal costs of fossil-fuelled generators according to their carbon intensity. Added through the keyword ``Ep`` in the ``{opts}`` wildcard only in the rule :mod:`prepare_network``." \ No newline at end of file diff --git a/doc/configuration.rst b/doc/configuration.rst index 265943e8..27f6d104 100644 --- a/doc/configuration.rst +++ b/doc/configuration.rst @@ -240,9 +240,9 @@ Specifies the temporal range to build an energy system model for as arguments to :file: configtables/costs.csv .. note:: - To change cost assumptions in more detail (i.e. other than ``marginal_cost`` and ``capital_cost``), consider modifying cost assumptions directly in ``data/costs.csv`` as this is not yet supported through the config file. + To change cost assumptions in more detail (i.e. other than ``marginal_cost`` and ``capital_cost``), consider modifying cost assumptions directly in ``resources/costs.csv`` as this is not yet supported through the config file. - You can also build multiple different cost databases. Make a renamed copy of ``data/costs.csv`` (e.g. ``data/costs-optimistic.csv``) and set the variable ``COSTS=data/costs-optimistic.csv`` in the ``Snakefile``. + You can also build multiple different cost databases. Make a renamed copy of ``resources/costs.csv`` (e.g. ``data/costs-optimistic.csv``) and set the variable ``COSTS=data/costs-optimistic.csv`` in the ``Snakefile``. .. _solving_cf: diff --git a/doc/costs.rst b/doc/costs.rst index a51acb85..df296341 100644 --- a/doc/costs.rst +++ b/doc/costs.rst @@ -7,7 +7,9 @@ Cost Assumptions ################## -The database of cost assumptions is stored in ``data/costs.csv``. +The database of cost assumptions is retrieved from the repository `PyPSA/technology-data `_ and then saved to``resources/costs.csv``. + +The ``config.yaml` provides options to choose a reference year (``costs: year:``) and use a specific version of the repository ``costs: version:``. It includes cost assumptions for all included technologies for specific years from various sources, namely for @@ -39,15 +41,6 @@ Modifying Cost Assumptions Some cost assumptions (e.g. marginal cost and capital cost) can be directly overwritten in the ``config.yaml`` (cf. Section :ref:`costs_cf` in :ref:`config`). -To change cost assumptions in more detail, modify cost assumptions directly in ``data/costs.csv`` as this is not yet supported through the config file. +To change cost assumptions in more detail, modify cost assumptions directly in ``resources/costs.csv`` as this is not yet supported through the config file. -You can also build multiple different cost databases. Make a renamed copy of ``data/costs.csv`` (e.g. ``data/costs-optimistic.csv``) and set the variable ``COSTS=data/costs-optimistic.csv`` in the ``Snakefile``. - - -Default Cost Assumptions -======================== - -.. csv-table:: - :header-rows: 1 - :widths: 10,3,5,4,6,8 - :file: ../data/costs.csv \ No newline at end of file +You can also build multiple different cost databases. Make a renamed copy of ``resources/costs.csv`` (e.g. ``data/costs-optimistic.csv``) and set the variable ``COSTS=data/costs-optimistic.csv`` in the ``Snakefile``. diff --git a/doc/release_notes.rst b/doc/release_notes.rst index b5855691..9b79ebab 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -21,7 +21,11 @@ Upcoming Release * Added Google Cloud Platform tutorial (for Windows users). -* Corrected setting of exogenous emission price (in config -> cost -> emission price). This was not weighted by the efficiency and effective emission of the generators. Fixed in `#171 `_. +* Corrected setting of exogenous emission price (in ``cost: emission price:``). This was not weighted by the efficiency and effective emission of the generators (`#171 `_). + +* Techno-economic parameters of technologies (e.g. costs and efficiencies) will now be retrieved from a separate repository `PyPSA/technology-data `_ + that collects assumptions from a variety of sources. It is activated by default with ``enable: retrieve_cost_data: true`` and controlled with ``costs: year:`` and ``costs: version:``. + The location of this data changed from ``data/costs.csv`` to ``resources/costs.csv`` (`#184 `_). PyPSA-Eur 0.2.0 (8th June 2020) diff --git a/doc/tutorial.rst b/doc/tutorial.rst index eca7dd05..abc58be8 100644 --- a/doc/tutorial.rst +++ b/doc/tutorial.rst @@ -218,7 +218,7 @@ A job (here ``simplify_network``) will display its attributes and normally some [] rule simplify_network: - input: networks/elec.nc, data/costs.csv, resources/regions_onshore.geojson, resources/regions_offshore.geojson + input: networks/elec.nc, resources/costs.csv, resources/regions_onshore.geojson, resources/regions_offshore.geojson output: networks/elec_s.nc, resources/regions_onshore_elec_s.geojson, resources/regions_offshore_elec_s.geojson, resources/clustermaps_elec_s.h5 jobid: 3 benchmark: benchmarks/simplify_network/elec_s diff --git a/scripts/add_electricity.py b/scripts/add_electricity.py index 60c1060c..e0e763b4 100755 --- a/scripts/add_electricity.py +++ b/scripts/add_electricity.py @@ -13,7 +13,7 @@ Relevant Settings costs: year: - USD2013_to_EUR2013: + version: dicountrate: emission_prices: @@ -46,7 +46,7 @@ Relevant Settings Inputs ------ -- ``data/costs.csv``: The database of cost assumptions for all included technologies for specific years from various sources; e.g. discount rate, lifetime, investment (CAPEX), fixed operation and maintenance (FOM), variable operation and maintenance (VOM), fuel costs, efficiency, carbon-dioxide intensity. +- ``resources/costs.csv``: The database of cost assumptions for all included technologies for specific years from various sources; e.g. discount rate, lifetime, investment (CAPEX), fixed operation and maintenance (FOM), variable operation and maintenance (VOM), fuel costs, efficiency, carbon-dioxide intensity. - ``data/bundle/hydro_capacities.csv``: Hydropower plant store/discharge power capacities, energy storage capacity, and average hourly inflow by country. .. image:: ../img/hydrocapacities.png @@ -145,15 +145,9 @@ def load_costs(Nyears=1., tech_costs=None, config=None, elec_config=None): # correct units to MW costs.loc[costs.unit.str.contains("/kW"),"value"] *= 1e3 + costs.unit = costs.unit.str.replace("/kW", "/MW") - fill_values = {"CO2 intensity" : 0, - "FOM" : 0, - "VOM" : 0, - "discount rate" : config['discountrate'], - "efficiency" : 1, - "fuel" : 0, - "investment" : 0, - "lifetime" : 25} + fill_values = config["fill_values"] costs = costs.value.unstack().fillna(fill_values) costs["capital_cost"] = ((annuity(costs["lifetime"], costs["discount rate"]) + @@ -170,8 +164,8 @@ def load_costs(Nyears=1., tech_costs=None, config=None, elec_config=None): costs.at['OCGT', 'co2_emissions'] = costs.at['gas', 'co2_emissions'] costs.at['CCGT', 'co2_emissions'] = costs.at['gas', 'co2_emissions'] - costs.at['solar', 'capital_cost'] = 0.5*(costs.at['solar-rooftop', 'capital_cost'] + - costs.at['solar-utility', 'capital_cost']) + costs.at['solar', 'capital_cost'] = config["rooftop_share"] * costs.at['solar-rooftop', 'capital_cost'] + \ + (1-config["rooftop_share"]) * costs.at['solar-utility', 'capital_cost'] def costs_for_storage(store, link1, link2=None, max_hours=1.): capital_cost = link1['capital_cost'] + max_hours * store['capital_cost'] diff --git a/scripts/add_extra_components.py b/scripts/add_extra_components.py index 219c082d..13796366 100644 --- a/scripts/add_extra_components.py +++ b/scripts/add_extra_components.py @@ -13,7 +13,7 @@ Relevant Settings costs: year: - USD2013_to_EUR2013: + version: dicountrate: emission_prices: @@ -32,7 +32,7 @@ Relevant Settings Inputs ------ -- ``data/costs.csv``: The database of cost assumptions for all included technologies for specific years from various sources; e.g. discount rate, lifetime, investment (CAPEX), fixed operation and maintenance (FOM), variable operation and maintenance (VOM), fuel costs, efficiency, carbon-dioxide intensity. +- ``resources/costs.csv``: The database of cost assumptions for all included technologies for specific years from various sources; e.g. discount rate, lifetime, investment (CAPEX), fixed operation and maintenance (FOM), variable operation and maintenance (VOM), fuel costs, efficiency, carbon-dioxide intensity. Outputs ------- diff --git a/scripts/make_summary.py b/scripts/make_summary.py index db9eff46..74fd0936 100644 --- a/scripts/make_summary.py +++ b/scripts/make_summary.py @@ -11,8 +11,9 @@ Relevant Settings .. code:: yaml costs: - USD2013_to_EUR2013: - discountrate: + year: + version: + fill_values: marginal_cost: capital_cost: diff --git a/scripts/prepare_network.py b/scripts/prepare_network.py index 67d134f4..60ae0f71 100755 --- a/scripts/prepare_network.py +++ b/scripts/prepare_network.py @@ -19,9 +19,10 @@ Relevant Settings .. code:: yaml costs: + year: + version: + fill_values: emission_prices: - USD2013_to_EUR2013: - discountrate: marginal_cost: capital_cost: @@ -36,7 +37,7 @@ Relevant Settings Inputs ------ -- ``data/costs.csv``: The database of cost assumptions for all included technologies for specific years from various sources; e.g. discount rate, lifetime, investment (CAPEX), fixed operation and maintenance (FOM), variable operation and maintenance (VOM), fuel costs, efficiency, carbon-dioxide intensity. +- ``resources/costs.csv``: The database of cost assumptions for all included technologies for specific years from various sources; e.g. discount rate, lifetime, investment (CAPEX), fixed operation and maintenance (FOM), variable operation and maintenance (VOM), fuel costs, efficiency, carbon-dioxide intensity. - ``networks/{network}_s{simpl}_{clusters}.nc``: confer :ref:`cluster` Outputs diff --git a/scripts/simplify_network.py b/scripts/simplify_network.py index 74ba0a7e..26f3f80b 100644 --- a/scripts/simplify_network.py +++ b/scripts/simplify_network.py @@ -14,8 +14,9 @@ Relevant Settings .. code:: yaml costs: - USD2013_to_EUR2013: - discountrate: + year: + version: + fill_values: marginal_cost: capital_cost: @@ -44,7 +45,7 @@ Relevant Settings Inputs ------ -- ``data/costs.csv``: The database of cost assumptions for all included technologies for specific years from various sources; e.g. discount rate, lifetime, investment (CAPEX), fixed operation and maintenance (FOM), variable operation and maintenance (VOM), fuel costs, efficiency, carbon-dioxide intensity. +- ``resources/costs.csv``: The database of cost assumptions for all included technologies for specific years from various sources; e.g. discount rate, lifetime, investment (CAPEX), fixed operation and maintenance (FOM), variable operation and maintenance (VOM), fuel costs, efficiency, carbon-dioxide intensity. - ``resources/regions_onshore.geojson``: confer :ref:`busregions` - ``resources/regions_offshore.geojson``: confer :ref:`busregions` - ``networks/{network}.nc``: confer :ref:`electricity` diff --git a/test/config.test1.yaml b/test/config.test1.yaml index 536a3d50..8de2c707 100755 --- a/test/config.test1.yaml +++ b/test/config.test1.yaml @@ -149,8 +149,17 @@ load: costs: year: 2030 - discountrate: 0.07 # From a Lion Hirth paper, also reflects average of Noothout et al 2016 - USD2013_to_EUR2013: 0.7532 # [EUR/USD] ECB: https://www.ecb.europa.eu/stats/exchange/eurofxref/html/eurofxref-graph-usd.en.html + version: v0.1.0 + rooftop_share: 0.5 + fill_values: + FOM: 0 + VOM: 0 + efficiency: 1 + fuel: 0 + investment: 0 + lifetime: 25 + "CO2 intensity": 0 + "discount rate": 0.07 marginal_cost: solar: 0.01 onwind: 0.015 From 4f7f2fa67a0be7868cede4d9fe8c1d856ec7632d Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Fri, 16 Oct 2020 14:47:13 +0200 Subject: [PATCH 05/23] extra_components: specify hydrogen storage *tank* --- scripts/add_extra_components.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/add_extra_components.py b/scripts/add_extra_components.py index 13796366..c759c9e5 100644 --- a/scripts/add_extra_components.py +++ b/scripts/add_extra_components.py @@ -99,7 +99,7 @@ def attach_stores(n, costs): carrier='H2', e_nom_extendable=True, e_cyclic=True, - capital_cost=costs.at["hydrogen storage", "capital_cost"]) + capital_cost=costs.at["hydrogen storage tank", "capital_cost"]) n.madd("Link", h2_buses_i + " Electrolysis", bus0=buses_i, From 175b14e24815e2b6b348d402ebc9c27c4f695633 Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Tue, 27 Apr 2021 14:49:27 +0200 Subject: [PATCH 06/23] merge master follow-up --- doc/costs.rst | 7 ------- 1 file changed, 7 deletions(-) diff --git a/doc/costs.rst b/doc/costs.rst index 68ebc12e..f56e40d3 100644 --- a/doc/costs.rst +++ b/doc/costs.rst @@ -43,11 +43,4 @@ Some cost assumptions (e.g. marginal cost and capital cost) can be directly over To change cost assumptions in more detail, modify cost assumptions directly in ``resources/costs.csv`` as this is not yet supported through the config file. -<<<<<<< HEAD You can also build multiple different cost databases. Make a renamed copy of ``resources/costs.csv`` (e.g. ``data/costs-optimistic.csv``) and set the variable ``COSTS=data/costs-optimistic.csv`` in the ``Snakefile``. -======= -.. csv-table:: - :header-rows: 1 - :widths: 10,3,5,4,6,8 - :file: ../data/costs.csv ->>>>>>> master From e8897cdb4cbb94e72f6cd5aa43dced34ef381e6c Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Tue, 27 Apr 2021 14:54:54 +0200 Subject: [PATCH 07/23] http remote to retrieve technology-data --- Snakefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Snakefile b/Snakefile index 8443b8e7..10cc21ee 100644 --- a/Snakefile +++ b/Snakefile @@ -5,6 +5,9 @@ from os.path import normpath, exists from shutil import copyfile +from snakemake.remote.HTTP import RemoteProvider as HTTPRemoteProvider +HTTP = HTTPRemoteProvider() + if not exists("config.yaml"): copyfile("config.default.yaml", "config.yaml") @@ -172,8 +175,9 @@ if config['enable'].get('retrieve_cost_data', True): params: year = config['costs']['year'], version = config['costs']['version'], + input: HTTP.remote("raw.githubusercontent.com/PyPSA/technology-data/{params.version}/outputs/costs_{params.year}.csv", keep_local=True) output: COSTS - shell: 'curl https://raw.githubusercontent.com/PyPSA/technology-data/{params.version}/outputs/costs_{params.year}.csv -o {output}' + shell: 'mv {input} {output}' rule build_renewable_profiles: input: From 5bfc7a49a6cf4ed9937d37405d4d168e80ee2a77 Mon Sep 17 00:00:00 2001 From: lisazeyen Date: Mon, 10 May 2021 16:55:19 +0200 Subject: [PATCH 08/23] adjust battery efficiency. The efficiency in the technology data is given as round trip efficiency --- scripts/add_extra_components.py | 37 ++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/scripts/add_extra_components.py b/scripts/add_extra_components.py index 74c0713a..1fb76d78 100644 --- a/scripts/add_extra_components.py +++ b/scripts/add_extra_components.py @@ -77,16 +77,28 @@ def attach_storageunits(n, costs): lookup_dispatch = {"H2": "fuel cell", "battery": "battery inverter"} for carrier in carriers: - n.madd("StorageUnit", buses_i, ' ' + carrier, - bus=buses_i, - carrier=carrier, - p_nom_extendable=True, - capital_cost=costs.at[carrier, 'capital_cost'], - marginal_cost=costs.at[carrier, 'marginal_cost'], - efficiency_store=costs.at[lookup_store[carrier], 'efficiency'], - efficiency_dispatch=costs.at[lookup_dispatch[carrier], 'efficiency'], - max_hours=max_hours[carrier], - cyclic_state_of_charge=True) + if carrier=="battery": + n.madd("StorageUnit", buses_i, ' ' + carrier, + bus=buses_i, + carrier=carrier, + p_nom_extendable=True, + capital_cost=costs.at[carrier, 'capital_cost'], + marginal_cost=costs.at[carrier, 'marginal_cost'], + efficiency_store=costs.at[lookup_store[carrier], 'efficiency']**0.5, + efficiency_dispatch=costs.at[lookup_dispatch[carrier], 'efficiency']**0.5, + max_hours=max_hours[carrier], + cyclic_state_of_charge=True) + else: + n.madd("StorageUnit", buses_i, ' ' + carrier, + bus=buses_i, + carrier=carrier, + p_nom_extendable=True, + capital_cost=costs.at[carrier, 'capital_cost'], + marginal_cost=costs.at[carrier, 'marginal_cost'], + efficiency_store=costs.at[lookup_store[carrier], 'efficiency'], + efficiency_dispatch=costs.at[lookup_dispatch[carrier], 'efficiency'], + max_hours=max_hours[carrier], + cyclic_state_of_charge=True) def attach_stores(n, costs): @@ -142,7 +154,8 @@ def attach_stores(n, costs): bus0=buses_i, bus1=b_buses_i, carrier='battery charger', - efficiency=costs.at['battery inverter', 'efficiency'], + # the efficiencies are "round trip efficiencies" + efficiency=costs.at['battery inverter', 'efficiency']**0.5, capital_cost=costs.at['battery inverter', 'capital_cost'], p_nom_extendable=True, marginal_cost=costs.at["battery inverter", "marginal_cost"]) @@ -151,7 +164,7 @@ def attach_stores(n, costs): bus0=b_buses_i, bus1=buses_i, carrier='battery discharger', - efficiency=costs.at['battery inverter','efficiency'], + efficiency=costs.at['battery inverter','efficiency']**0.5, p_nom_extendable=True, marginal_cost=costs.at["battery inverter", "marginal_cost"]) From 171db80e3809bab69990989658c05b267046f8a4 Mon Sep 17 00:00:00 2001 From: lisazeyen Date: Mon, 10 May 2021 16:58:53 +0200 Subject: [PATCH 09/23] reduce default solar rooftop shareto 14%, based on the ratio of solar potential rooftop / utility scale --- config.default.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/config.default.yaml b/config.default.yaml index f3289258..7885e9f7 100755 --- a/config.default.yaml +++ b/config.default.yaml @@ -64,27 +64,27 @@ atlite: nprocesses: 4 cutouts: # use 'base' to determine geographical bounds and time span from config - # base: - # module: era5 + # base: + # module: era5 europe-2013-era5: - module: era5 # in priority order + module: era5 # in priority order x: [-12., 35.] y: [33., 72] dx: 0.3 dy: 0.3 time: ['2013', '2013'] europe-2013-sarah: - module: [sarah, era5] # in priority order + module: [sarah, era5] # in priority order x: [-12., 45.] y: [33., 65] dx: 0.2 dy: 0.2 time: ['2013', '2013'] sarah_interpolate: false - sarah_dir: + sarah_dir: features: [influx, temperature] - + renewable: onwind: cutout: europe-2013-era5 @@ -180,16 +180,16 @@ transformers: load: url: https://data.open-power-system-data.org/time_series/2019-06-05/time_series_60min_singleindex.csv - power_statistics: True # only for files from <2019; set false in order to get ENTSOE transparency data + power_statistics: True # only for files from <2019; set false in order to get ENTSOE transparency data interpolate_limit: 3 # data gaps up until this size are interpolated linearly - time_shift_for_large_gaps: 1w # data gaps up until this size are copied by copying from + time_shift_for_large_gaps: 1w # data gaps up until this size are copied by copying from manual_adjustments: true # false scaling_factor: 1.0 costs: year: 2030 version: v0.1.0 - rooftop_share: 0.5 + rooftop_share: 0.14 # based on the potentials, assuming (0.1 kW/m2 and 10 m2/person) fill_values: FOM: 0 VOM: 0 From 9c6c6d243ffa457200a014f7d4bf13ffa56f719b Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Mon, 27 Jun 2022 10:21:08 +0200 Subject: [PATCH 10/23] Adaptations to match current PyPSA-Eur version --- Snakefile | 4 ++-- config.tutorial.yaml | 2 +- doc/costs.rst | 4 ++-- scripts/add_electricity.py | 2 +- scripts/add_extra_components.py | 35 ++++++++++++--------------------- test/config.test1.yaml | 2 +- 6 files changed, 20 insertions(+), 29 deletions(-) diff --git a/Snakefile b/Snakefile index f4ee4c2b..ad50ff97 100644 --- a/Snakefile +++ b/Snakefile @@ -173,9 +173,9 @@ if config['enable'].get('retrieve_cost_data', True): params: year = config['costs']['year'], version = config['costs']['version'], - input: HTTP.remote("raw.githubusercontent.com/PyPSA/technology-data/{params.version}/outputs/costs_{params.year}.csv", keep_local=True) + input: HTTP.remote(f"raw.githubusercontent.com/PyPSA/technology-data/{params.version}/outputs/costs_{params.year}.csv", keep_local=True) output: COSTS - shell: 'mv {input} {output}' + run: move(input[0], output[0]) rule build_renewable_profiles: input: diff --git a/config.tutorial.yaml b/config.tutorial.yaml index 89f04324..ecfeff6b 100755 --- a/config.tutorial.yaml +++ b/config.tutorial.yaml @@ -159,7 +159,7 @@ load: costs: year: 2030 version: v0.1.0 - rooftop_share: 0.5 + rooftop_share: 0.14 fill_values: FOM: 0 VOM: 0 diff --git a/doc/costs.rst b/doc/costs.rst index f56e40d3..ef0b4d37 100644 --- a/doc/costs.rst +++ b/doc/costs.rst @@ -7,9 +7,9 @@ Cost Assumptions ################## -The database of cost assumptions is retrieved from the repository `PyPSA/technology-data `_ and then saved to``resources/costs.csv``. +The database of cost assumptions is retrieved from the repository `PyPSA/technology-data `_ and then saved to``resources/costs.csv``. Cost assumptions of previous PyPSA-Eur versions can be restored by setting in the ``Snakefile``: ``COSTS="data/costs.csv". -The ``config.yaml` provides options to choose a reference year (``costs: year:``) and use a specific version of the repository ``costs: version:``. +The ``config.yaml`` provides options to choose a reference year (``costs: year:``) and use a specific version of the repository ``costs: version:``. It includes cost assumptions for all included technologies for specific years from various sources, namely for diff --git a/scripts/add_electricity.py b/scripts/add_electricity.py index c0701c6f..5351bba9 100755 --- a/scripts/add_electricity.py +++ b/scripts/add_electricity.py @@ -169,7 +169,7 @@ def load_costs(tech_costs, config, elec_config, Nyears=1.): costs_for_storage(costs.loc["battery storage"], costs.loc["battery inverter"], max_hours=max_hours['battery']) costs.loc["H2"] = \ - costs_for_storage(costs.loc["hydrogen storage tank"], costs.loc["fuel cell"], + costs_for_storage(costs.loc["hydrogen storage underground"], costs.loc["fuel cell"], costs.loc["electrolysis"], max_hours=max_hours['H2']) for attr in ('marginal_cost', 'capital_cost'): diff --git a/scripts/add_extra_components.py b/scripts/add_extra_components.py index 72e90e3b..bf5c4175 100644 --- a/scripts/add_extra_components.py +++ b/scripts/add_extra_components.py @@ -76,28 +76,19 @@ def attach_storageunits(n, costs, elec_opts): lookup_dispatch = {"H2": "fuel cell", "battery": "battery inverter"} for carrier in carriers: - if carrier=="battery": - n.madd("StorageUnit", buses_i, ' ' + carrier, - bus=buses_i, - carrier=carrier, - p_nom_extendable=True, - capital_cost=costs.at[carrier, 'capital_cost'], - marginal_cost=costs.at[carrier, 'marginal_cost'], - efficiency_store=costs.at[lookup_store[carrier], 'efficiency']**0.5, - efficiency_dispatch=costs.at[lookup_dispatch[carrier], 'efficiency']**0.5, - max_hours=max_hours[carrier], - cyclic_state_of_charge=True) - else: - n.madd("StorageUnit", buses_i, ' ' + carrier, - bus=buses_i, - carrier=carrier, - p_nom_extendable=True, - capital_cost=costs.at[carrier, 'capital_cost'], - marginal_cost=costs.at[carrier, 'marginal_cost'], - efficiency_store=costs.at[lookup_store[carrier], 'efficiency'], - efficiency_dispatch=costs.at[lookup_dispatch[carrier], 'efficiency'], - max_hours=max_hours[carrier], - cyclic_state_of_charge=True) + roundtrip_correction = 0.5 if carrier == "battery" else 1 + + n.madd("StorageUnit", buses_i, ' ' + carrier, + bus=buses_i, + carrier=carrier, + p_nom_extendable=True, + capital_cost=costs.at[carrier, 'capital_cost'], + marginal_cost=costs.at[carrier, 'marginal_cost'], + efficiency_store=costs.at[lookup_store[carrier], 'efficiency']**roundtrip_correction, + efficiency_dispatch=costs.at[lookup_dispatch[carrier], 'efficiency']**roundtrip_correction, + max_hours=max_hours[carrier], + cyclic_state_of_charge=True + ) def attach_stores(n, costs, elec_opts): diff --git a/test/config.test1.yaml b/test/config.test1.yaml index 2a6bb26a..efd2bc12 100755 --- a/test/config.test1.yaml +++ b/test/config.test1.yaml @@ -157,7 +157,7 @@ load: costs: year: 2030 version: v0.1.0 - rooftop_share: 0.5 + rooftop_share: 0.14 fill_values: FOM: 0 VOM: 0 From 4d79a0dc96b7f40097f730a93df1d4cb80b306ac Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Mon, 27 Jun 2022 10:23:22 +0200 Subject: [PATCH 11/23] Apply suggestions from code review --- scripts/add_extra_components.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/add_extra_components.py b/scripts/add_extra_components.py index bf5c4175..c9a9b7cb 100644 --- a/scripts/add_extra_components.py +++ b/scripts/add_extra_components.py @@ -107,7 +107,7 @@ def attach_stores(n, costs, elec_opts): carrier='H2', e_nom_extendable=True, e_cyclic=True, - capital_cost=costs.at["hydrogen storage tank", "capital_cost"]) + capital_cost=costs.at["hydrogen storage underground", "capital_cost"]) n.madd("Link", h2_buses_i + " Electrolysis", bus0=buses_i, From fa43038564bd727099362c5b6eaa38067ae30654 Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Mon, 27 Jun 2022 10:35:39 +0200 Subject: [PATCH 12/23] remove params from input as they are not exposed to input --- Snakefile | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Snakefile b/Snakefile index ad50ff97..ee415ee4 100644 --- a/Snakefile +++ b/Snakefile @@ -170,10 +170,7 @@ if config['enable'].get('retrieve_cutout', True): if config['enable'].get('retrieve_cost_data', True): rule retrieve_cost_data: - params: - year = config['costs']['year'], - version = config['costs']['version'], - input: HTTP.remote(f"raw.githubusercontent.com/PyPSA/technology-data/{params.version}/outputs/costs_{params.year}.csv", keep_local=True) + input: HTTP.remote(f"raw.githubusercontent.com/PyPSA/technology-data/{config['costs']['version']}/outputs/costs_{config['costs']['year']}.csv", keep_local=True) output: COSTS run: move(input[0], output[0]) From 27e5dec4e69277322b758311bc7a251272faf145 Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Thu, 30 Jun 2022 09:01:49 +0200 Subject: [PATCH 13/23] documentation fixes --- config.default.yaml | 38 +++++++++++++++++----------------- config.tutorial.yaml | 38 +++++++++++++++++----------------- doc/configtables/snapshots.csv | 2 +- doc/installation.rst | 2 ++ doc/tutorial.rst | 15 +++++++------- scripts/retrieve_databundle.py | 2 +- test/config.test1.yaml | 38 +++++++++++++++++----------------- 7 files changed, 69 insertions(+), 66 deletions(-) diff --git a/config.default.yaml b/config.default.yaml index 173feb51..d185b5d1 100755 --- a/config.default.yaml +++ b/config.default.yaml @@ -17,25 +17,6 @@ scenario: 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'] -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. - cluster_network: - algorithm: kmeans - feature: solar+onwind-time - 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 - snapshots: start: "2013-01-01" end: "2014-01-01" @@ -251,6 +232,25 @@ costs: emission_prices: # in currency per tonne emission, only used with the option Ep co2: 0. +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. + cluster_network: + algorithm: kmeans + feature: solar+onwind-time + 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 + solving: options: formulation: kirchhoff diff --git a/config.tutorial.yaml b/config.tutorial.yaml index b49f24ba..00b8576a 100755 --- a/config.tutorial.yaml +++ b/config.tutorial.yaml @@ -18,25 +18,6 @@ scenario: countries: ['BE'] -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. - cluster_network: - algorithm: kmeans - feature: solar+onwind-time - 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 - snapshots: start: "2013-03-01" end: "2013-04-01" @@ -184,6 +165,25 @@ costs: emission_prices: # in currency per tonne emission, only used with the option Ep co2: 0. +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. + cluster_network: + algorithm: kmeans + feature: solar+onwind-time + 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 + solving: options: formulation: kirchhoff diff --git a/doc/configtables/snapshots.csv b/doc/configtables/snapshots.csv index 4d917f4d..00297498 100644 --- a/doc/configtables/snapshots.csv +++ b/doc/configtables/snapshots.csv @@ -1,4 +1,4 @@ ,Unit,Values,Description start,--,"str or datetime-like; e.g. YYYY-MM-DD","Left bound of date range" end,--,"str or datetime-like; e.g. YYYY-MM-DD","Right bound of date range" -closed,--,"One of {None, ‘left’, ‘right’}","Make the time interval closed to the ``left``, ``right``, or both sides ``None``." +closed,--,"One of {None, ‘left’, ‘right’}","Make the time interval closed to the ``left``, ``right``, or open on both sides ``None``." diff --git a/doc/installation.rst b/doc/installation.rst index 16fdf766..aea25a42 100644 --- a/doc/installation.rst +++ b/doc/installation.rst @@ -102,6 +102,8 @@ It might be the case that you can only retrieve solutions by using a commercial conda activate pypsa-eur conda install -c conda-forge ipopt glpk +.. warning:: + On Windows, new versions of ``ipopt`` have caused problems. Consider downgrading to version 3.11.1. .. _defaultconfig: diff --git a/doc/tutorial.rst b/doc/tutorial.rst index c37abb39..93143783 100644 --- a/doc/tutorial.rst +++ b/doc/tutorial.rst @@ -47,7 +47,8 @@ The model can be adapted to only include selected countries (e.g. Belgium) inste .. literalinclude:: ../config.tutorial.yaml :language: yaml - :lines: 20 + :start-at: countries: + :end-before: snapshots: Likewise, the example's temporal scope can be restricted (e.g. to a single month). @@ -60,14 +61,14 @@ It is also possible to allow less or more carbon-dioxide emissions. Here, we lim .. literalinclude:: ../config.tutorial.yaml :language: yaml - :lines: 40,42 + :lines: 35,37 PyPSA-Eur also includes a database of existing conventional powerplants. -We can select which types of powerplants we like to be included with fixed capacities: +We can select which types of powerplants we like to be included: .. literalinclude:: ../config.tutorial.yaml :language: yaml - :lines: 40,56 + :lines: 35,51 To accurately model the temporal and spatial availability of renewables such as wind and solar energy, we rely on historical weather data. It is advisable to adapt the required range of coordinates to the selection of countries. @@ -82,14 +83,14 @@ For example, we may want to use the ERA-5 dataset for solar and not the default .. literalinclude:: ../config.tutorial.yaml :language: yaml - :lines: 67,110,111 + :lines: 62,105,106 Finally, it is possible to pick a solver. For instance, this tutorial uses the open-source solvers CBC and Ipopt and does not rely on the commercial solvers Gurobi or CPLEX (for which free academic licenses are available). .. literalinclude:: ../config.tutorial.yaml :language: yaml - :lines: 173,183,184 + :lines: 187,197,198 .. note:: @@ -284,4 +285,4 @@ The solved networks can be analysed just like any other PyPSA network (e.g. in J network = pypsa.Network("results/networks/elec_s_6_ec_lcopt_Co2L-24H.nc") -For inspiration, read the `examples section in the PyPSA documentation `_. +For inspiration, read the `examples section in the PyPSA documentation `_. diff --git a/scripts/retrieve_databundle.py b/scripts/retrieve_databundle.py index 86869879..d29ce32b 100644 --- a/scripts/retrieve_databundle.py +++ b/scripts/retrieve_databundle.py @@ -11,7 +11,7 @@ The data bundle (1.4 GB) contains common GIS datasets like NUTS3 shapes, EEZ sha This rule downloads the data bundle from `zenodo `_ and extracts it in the ``data`` sub-directory, such that all files of the bundle are stored in the ``data/bundle`` subdirectory. -The :ref:`tutorial` uses a smaller `data bundle `_ than required for the full model (19 MB) +The :ref:`tutorial` uses a smaller `data bundle `_ than required for the full model (188 MB) .. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.3517921.svg :target: https://doi.org/10.5281/zenodo.3517921 diff --git a/test/config.test1.yaml b/test/config.test1.yaml index 66e65a7c..b3f63fa8 100755 --- a/test/config.test1.yaml +++ b/test/config.test1.yaml @@ -17,25 +17,6 @@ scenario: countries: ['BE'] -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. - cluster_network: - algorithm: kmeans - feature: solar+onwind-time - 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 - snapshots: start: "2013-03-01" end: "2013-03-08" @@ -182,6 +163,25 @@ costs: emission_prices: # only used with the option Ep co2: 0. +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. + cluster_network: + algorithm: kmeans + feature: solar+onwind-time + 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 + solving: options: formulation: kirchhoff From 44f793be91c006b7eb6ffcf8ef91dd232026b8c5 Mon Sep 17 00:00:00 2001 From: Julio Pascual <108464786+jpscl@users.noreply.github.com> Date: Mon, 4 Jul 2022 11:49:55 +0200 Subject: [PATCH 14/23] Changed doc info in retrieve_databundle.py Simply changed the text regarding the output directory. It said 'cutouts/bundle' but I think it should be 'data/bundle'. It only affects the documentation. --- scripts/retrieve_databundle.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/retrieve_databundle.py b/scripts/retrieve_databundle.py index d29ce32b..5f05c575 100644 --- a/scripts/retrieve_databundle.py +++ b/scripts/retrieve_databundle.py @@ -28,7 +28,7 @@ The :ref:`tutorial` uses a smaller `data bundle Date: Mon, 4 Jul 2022 18:41:08 +0200 Subject: [PATCH 15/23] Update build_load_data.py --- scripts/build_load_data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build_load_data.py b/scripts/build_load_data.py index 55270e49..13dc1363 100755 --- a/scripts/build_load_data.py +++ b/scripts/build_load_data.py @@ -30,7 +30,7 @@ Inputs Outputs ------- -- ``resource/time_series_60min_singleindex_filtered.csv``: +- ``resources/load.csv``: """ From ce3b193a88ad7290ed8b669df4d9a550e9b80978 Mon Sep 17 00:00:00 2001 From: Julio Pascual <108464786+jpscl@users.noreply.github.com> Date: Mon, 4 Jul 2022 18:42:22 +0200 Subject: [PATCH 16/23] Update add_electricity.py --- scripts/add_electricity.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/add_electricity.py b/scripts/add_electricity.py index 342b12e9..0fb025df 100755 --- a/scripts/add_electricity.py +++ b/scripts/add_electricity.py @@ -53,7 +53,7 @@ Inputs :scale: 34 % - ``data/geth2015_hydro_capacities.csv``: alternative to capacities above; not currently used! -- ``resources/opsd_load.csv`` Hourly per-country load profiles. +- ``resources/load.csv`` Hourly per-country load profiles. - ``resources/regions_onshore.geojson``: confer :ref:`busregions` - ``resources/nuts3_shapes.geojson``: confer :ref:`shapes` - ``resources/powerplants.csv``: confer :ref:`powerplants` From 433f0af4093107b49093d388ea8416306d59e010 Mon Sep 17 00:00:00 2001 From: Julio Pascual <108464786+jpscl@users.noreply.github.com> Date: Mon, 4 Jul 2022 18:51:49 +0200 Subject: [PATCH 17/23] Update build_load_data.py --- scripts/build_load_data.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/build_load_data.py b/scripts/build_load_data.py index 13dc1363..b0317f5e 100755 --- a/scripts/build_load_data.py +++ b/scripts/build_load_data.py @@ -26,6 +26,8 @@ Relevant Settings Inputs ------ +- ``data/load_raw.csv``: + Outputs ------- From 5d98cc7e97996283580462d1a50669be5eb81947 Mon Sep 17 00:00:00 2001 From: Julio Pascual <108464786+jpscl@users.noreply.github.com> Date: Mon, 4 Jul 2022 18:53:41 +0200 Subject: [PATCH 18/23] Update build_load_data.py --- scripts/build_load_data.py | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/build_load_data.py b/scripts/build_load_data.py index b0317f5e..ac6de2b1 100755 --- a/scripts/build_load_data.py +++ b/scripts/build_load_data.py @@ -28,7 +28,6 @@ Inputs - ``data/load_raw.csv``: - Outputs ------- From a860643dd8cd66418b6a6d7893960c636d78ec3b Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Mon, 18 Jul 2022 17:28:09 +0200 Subject: [PATCH 19/23] reduce number of columns for simplified and clustered regions --- scripts/cluster_network.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/scripts/cluster_network.py b/scripts/cluster_network.py index bd412b7f..1ef2f2e5 100644 --- a/scripts/cluster_network.py +++ b/scripts/cluster_network.py @@ -122,7 +122,7 @@ Exemplary unsolved network clustered to 37 nodes: """ import logging -from _helpers import configure_logging, update_p_nom_max, get_aggregation_strategies, REGION_COLS +from _helpers import configure_logging, update_p_nom_max, get_aggregation_strategies import pypsa import os @@ -372,9 +372,8 @@ def cluster_regions(busmaps, input=None, output=None): for which in ('regions_onshore', 'regions_offshore'): regions = gpd.read_file(getattr(input, which)) - regions = regions.reindex(columns=REGION_COLS).set_index('name') - aggfunc = dict(x="mean", y="mean", country="first") - regions_c = regions.dissolve(busmap, aggfunc=aggfunc) + regions = regions.reindex(columns=["name", "geometry"]).set_index('name') + regions_c = regions.dissolve(busmap) regions_c.index.name = 'name' regions_c = regions_c.reset_index() regions_c.to_file(getattr(output, which)) From 6047c8d7508bcc7e24b018adda2ce90c9d1682ac Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Wed, 20 Jul 2022 11:47:07 +0200 Subject: [PATCH 20/23] add mergedeep to dependencies --- envs/environment.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/envs/environment.yaml b/envs/environment.yaml index 4aefcb9a..8bd7428f 100644 --- a/envs/environment.yaml +++ b/envs/environment.yaml @@ -53,6 +53,7 @@ dependencies: - tqdm - pytz - tabula-py + - mergedeep - pip: - vresutils>=0.3.1 From 4ec95fa90e972afa1c613dbf6595303c37d3e588 Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Wed, 20 Jul 2022 13:01:14 +0200 Subject: [PATCH 21/23] hydro: distribute eia data for former countries to successor states by ratio --- scripts/build_hydro_profile.py | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/scripts/build_hydro_profile.py b/scripts/build_hydro_profile.py index 4add4c85..eed3431e 100644 --- a/scripts/build_hydro_profile.py +++ b/scripts/build_hydro_profile.py @@ -76,10 +76,32 @@ def get_eia_annual_hydro_generation(fn, countries): df = pd.read_csv(fn, skiprows=2, index_col=1, na_values=[u' ','--']).iloc[1:, 1:] df.index = df.index.str.strip() + former_countries = { + "Former Czechoslovakia": dict( + countries=["Czech Republic", "Slovakia"], + start=1980, end=1992), + "Former Serbia and Montenegro": dict( + countries=["Serbia", "Montenegro"], + start=1992, end=2005), + "Former Yugoslavia": dict( + countries=["Slovenia", "Croatia", "Bosnia and Herzegovina", "Serbia", "Montenegro", "North Macedonia"], + start=1980, end=1991), + } + + for k, v in former_countries.items(): + period = [str(i) for i in range(v["start"], v["end"]+1)] + ratio = df.loc[v['countries']].T.dropna().sum() + ratio /= ratio.sum() + for country in v['countries']: + df.loc[country, period] = df.loc[k, period] * ratio[country] + + baltic_states = ["Latvia", "Estonia", "Lithuania"] + df.loc[baltic_states] = df.loc[baltic_states].T.fillna(df.loc[baltic_states].mean(axis=1)).T + df.loc["Germany"] = df.filter(like='Germany', axis=0).sum() - df.loc["Serbia"] += df.loc["Kosovo"] + df.loc["Serbia"] += df.loc["Kosovo"].fillna(0.) df = df.loc[~df.index.str.contains('Former')] - df.drop(["Europe", "Germany, West", "Germany, East"], inplace=True) + df.drop(["Europe", "Germany, West", "Germany, East", "Kosovo"], inplace=True) df.index = cc.convert(df.index, to='iso2') df.index.name = 'countries' From 3210bbf8f92e114811635d09f223a73a1266b6c2 Mon Sep 17 00:00:00 2001 From: Max Parzen Date: Thu, 21 Jul 2022 14:43:28 +0100 Subject: [PATCH 22/23] clean config, add H2 pipeline comment --- config.default.yaml | 2 +- config.tutorial.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config.default.yaml b/config.default.yaml index d185b5d1..9caf7ad4 100755 --- a/config.default.yaml +++ b/config.default.yaml @@ -52,7 +52,7 @@ electricity: Generator: [solar, onwind, offwind-ac, offwind-dc, OCGT] StorageUnit: [] # battery, H2 Store: [battery, H2] - Link: [AC, DC] + Link: [] # H2 pipeline # use pandas query strings here, e.g. Country not in ['Germany'] powerplants_filter: (DateOut >= 2022 or DateOut != DateOut) diff --git a/config.tutorial.yaml b/config.tutorial.yaml index 00b8576a..61866772 100755 --- a/config.tutorial.yaml +++ b/config.tutorial.yaml @@ -40,7 +40,7 @@ electricity: Generator: [OCGT] StorageUnit: [] #battery, H2 Store: [battery, H2] - Link: [] + Link: [] # H2 pipeline max_hours: battery: 6 From 84c8a9bc0ebe58643b84f7e576bac37e749c671e Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Sat, 23 Jul 2022 09:24:03 +0200 Subject: [PATCH 23/23] env: add pyxlsb to read .xslb files with pandas --- envs/environment.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/envs/environment.yaml b/envs/environment.yaml index 8bd7428f..e60a2261 100644 --- a/envs/environment.yaml +++ b/envs/environment.yaml @@ -54,6 +54,7 @@ dependencies: - pytz - tabula-py - mergedeep + - pyxlsb - pip: - vresutils>=0.3.1