diff --git a/Snakefile b/Snakefile index 877ee12d..79e60ac4 100644 --- a/Snakefile +++ b/Snakefile @@ -25,6 +25,8 @@ rule compile_cost_assumptions: dea_ccts="inputs/technology_data_for_carbon_capture_transport_storage.xlsx", pnnl_energy_storage="inputs/pnnl-energy-storage-database.xlsx", manual_input="inputs/manual_input.csv", + manual_input_industry="inputs/manual_input_industry.csv", + output: expand("outputs/costs_{year}.csv", year=config["years"]), threads: 1 diff --git a/inputs/manual_input_industry.csv b/inputs/manual_input_industry.csv new file mode 100644 index 00000000..1c12b3c4 --- /dev/null +++ b/inputs/manual_input_industry.csv @@ -0,0 +1,49 @@ +technology,parameter,year,value,unit,currency_year,source,further_description +CO2 storage cylinders,investment,2025,77000,EUR/tCO2,2020,"Aarhus University BCE estimate", +CO2 storage cylinders,FOM,2025,1,%/year,202,"Aarhus University BCE estimate", +CO2 storage cylinders,lifetime,2025,25,years,2020,"Aarhus University BCE estimate", +CO2 industrial compressor,investment,2025,1516000,EUR/t/h_CO2,2020,"Aarhus University BCE estimate", +CO2 industrial compressor,FOM,2025,4,%/year,2020,"Aarhus University BCE estimate", +CO2 industrial compressor,lifetime,2025,15,years,2020,"Aarhus University BCE estimate", +biogas storage,investment,2025,16750,EUR/MWh_biogas,2020,"Aarhus University BCE estimate", +biogas storage,FOM,2020,0.2,%/year,2025,"Aarhus University BCE estimate", +biogas storage,lifetime,2020,15,years,2025,"Aarhus University BCE estimate", +centrifugal dewatering,investment,2025,130000,EUR/t/h fibers,2020,"https://doi.org/10.3390/agronomy11050836", +centrifugal dewatering,FOM,2020,3.5,%/year,2025,"https://doi.org/10.3390/agronomy11050836", +centrifugal dewatering,lifetime,2020,20,years,2025," https://doi.org/10.3390/su16135461", +centrifugal dewatering,electricity-input,2020,0.005,MWh/tDM_in,2025,"calc from : https://doi.org/10.3390/su16135461", +centrifugal dewatering,DM separation,2020,0.509,kg_out/kg_in,2025,"https://dcapub.au.dk/djfpublikation/djfpdf/DCArapport208.pdf", +centrifugal dewatering,DM out,2020,0.45,kgDM/kgtot,2025,"https://dcapub.au.dk/djfpublikation/djfpdf/DCArapport208.pdf", +biomass belt dryer,heat-input,2025,1,MWh/t_H2O removed,2020,"DOI: 10.1080/07373937.2018.1492615", +biomass belt dryer,electricity-input,2025,0.025,MWh/t_H2O removed,2020,"DOI: 10.1080/07373937.2018.1492615", +biomass belt dryer,FOM,2025,3,%/year,2020,"DOI: 10.1080/07373937.2018.1492615", +biomass belt dryer,lifetime,2025,20,years,2020,"DOI: 10.1080/07373937.2018.1492615", +pelletization,investment,2025,0,EUR/MW_pellets,2020,"Own assumption: find better", +pelletization,FOM,2020,3,%/year,2025,"Own assumption: find better", +pelletization,lifetime,2020,15,years,2025,"Own assumption: find better", +pelletization,electricity-input,2020,0.1,MW_e/MW_pellets,2025,"Own assumption: find better", +DH heat exchanger,investment,2025,140.162,EUR/MW,2020,"DEA Technology data for transport of energy","Heat exchanged for DH transmission, sheet 113_11. constant for all years" +DH heat exchanger,FOM,2020,0.1,%/year,2025,"DEA Technology data for transport of energy","Heat exchanged for DH transmission, sheet 113_11. constant for all years" +DH heat exchanger,lifetime,2020,35,years,2025,"DEA Technology data for transport of energy","Heat exchanged for DH transmission, sheet 113_11. constant for all years" +DH heat exchanger,efficiency,2020,0.95, - ,2025,"DEA Technology data for transport of energy","Heat exchanged for DH transmission, sheet 113_11. constant for all years" +PWH pipe,investment,2025,63000,EUR/MW/km,2020,"DEA Technology data for transport of energy","Heat exchanged for DH transmission, sheet 113_11. constant for all years" +PWH pipe,FOM,2020,0.1,%/year,2025,"DEA Technology data for transport of energy","Heat exchanged for DH transmission, sheet 113_11. constant for all years" +PWH pipe,lifetime,2020,45,years,2025,"DEA Technology data for transport of energy","Heat exchanged for DH transmission, sheet 113_11. constant for all years" +CO2 gas pipe,investment,2025,130000,EUR/(t/h)/km,2020,"DEA Technology Data for Carbon Capture, Transport and Storage","sheet 421 co2 pipeline. constant for all years" +CO2 gas pipe,FOM,2020,0.1,%/year,2025,"DEA Technology Data for Carbon Capture, Transport and Storage","sheet 421 co2 pipeline. constant for all years" +CO2 gas pipe,lifetime,2020,50,years,2025,"DEA Technology Data for Carbon Capture, Transport and Storage","sheet 421 co2 pipeline. constant for all years" +H2 pipe,investment,2025,38000,EUR/MW/km,2020,"DEA Technology data for transport of energy","sheet H70. 70 bar pipeline" +H2 pipe,FOM,2020,0.1,%/year,2025,"DEA Technology data for transport of energy","sheet H70. 70 bar pipeline" +H2 pipe,lifetime,2020,30,years,2025,"DEA Technology data for transport of energy","sheet H70. 70 bar pipeline" +CO2 storage tank small,investment,2025,3800,EUR/t_CO2,2024,DEA technology data for carbon capture and storage V.3,"412 intermediate storage of CO2 - for biogas plants." +CO2 storage tank small,FOM,2025,3,%/year,2024,DEA technology data for carbon capture and storage V.3,"412 intermediate storage of CO2 - for biogas plants." +CO2 storage tank small,lifetime,2025,25,years,2024,DEA technology data for carbon capture and storage V.3,"412 intermediate storage of CO2 - for biogas plants." +CO2 liquefaction small,investment,2025,665000 ,EUR/t_CO2/h,2024,DEA technology data for carbon capture and storage V.3,"411 liquefaction - for biogas plants." +CO2 liquefaction small,FOM,2025,4,%/year,2024,DEA technology data for carbon capture and storage V.3,"411 liquefaction - for biogas plants." +CO2 liquefaction small,lifetime,2025,20,years,2024,DEA technology data for carbon capture and storage V.3,"411 liquefaction - for biogas plants." +CO2 liquefaction small,CO2-input,2025,1,t_CO2/t_CO2,-,DEA technology data for carbon capture and storage V.3,"411 liquefaction - for biogas plants." +CO2 liquefaction small,heat-output,2025,0.250,MWh_th/t_CO2,-,DEA technology data for carbon capture and storage V.3,"411 liquefaction - for biogas plants." +CO2 liquefaction small,electricity-input,2025,0.185,MWh_el/t_CO2,-,DEA technology data for carbon capture and storage V.3,"411 liquefaction - for biogas plants - storage at 16 bara and -27C, including pumping into storage tanks." +NG grid connection,investment,2025,1450,EUR/MW,2025,"https://evida.dk/tarifblad010125/","EVIDA.DK" +NG grid connection,FOM,2020,0.2,%/year,2025,"https://evida.dk/tarifblad010125/","EVIDA.DK" +NG grid connection,lifetime,2020,40,years,2025,"Own assumption","" diff --git a/outputs/costs_2020.csv b/outputs/costs_2020.csv index 772860b1..9c6e5623 100644 --- a/outputs/costs_2020.csv +++ b/outputs/costs_2020.csv @@ -41,18 +41,18 @@ Battery electric (passenger cars),lifetime,15.0,years,PATHS TO A CLIMATE-NEUTRAL Battery electric (trucks),FOM,14.0,%,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 Battery electric (trucks),investment,204067.0,EUR/LKW,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 Battery electric (trucks),lifetime,15.0,years,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 -BioSNG,C in fuel,0.324,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BioSNG,C stored,0.676,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BioSNG,CO2 stored,0.2479,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,C in fuel,0.3162,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,C stored,0.6838,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,CO2 stored,0.2569,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, BioSNG,FOM,1.608,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Fixed O&M",2020.0 BioSNG,VOM,2.8712,EUR/MWh_th,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Variable O&M",2020.0 BioSNG,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, BioSNG,efficiency,0.6,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Bio SNG Output",2020.0 BioSNG,investment,2658.5,EUR/kW_th,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Specific investment",2020.0 BioSNG,lifetime,25.0,years,TODO,"84 Gasif. CFB, Bio-SNG: Technical lifetime",2020.0 -BtL,C in fuel,0.2455,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BtL,C stored,0.7545,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BtL,CO2 stored,0.2767,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,C in fuel,0.2396,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,C stored,0.7604,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,CO2 stored,0.2857,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, BtL,FOM,2.4,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","85 Gasif. Ent. Flow FT, liq fu : Fixed O&M",2020.0 BtL,VOM,1.1299,EUR/MWh_FT,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","85 Gasif. Ent. Flow FT, liq fu : Variable O&M",2020.0 BtL,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, @@ -89,18 +89,36 @@ CH4 liquefaction,electricity-input,0.036,MWh_el/MWh_CH4,"Pospíšil et al. (2019 CH4 liquefaction,investment,241.443,EUR/kW_CH4,"Calculated, based on Lochner and Bothe (2009): https://doi.org/10.1016/j.enpol.2008.12.012 and Fasihi et al 2017, table 1, https://www.mdpi.com/2071-1050/9/2/306","based on 265 MUSD-2005/(1 bcm/a), 1 bcm = 10.6 TWh, currency exchange rate: 1.15 USD=1 EUR.",2005.0 CH4 liquefaction,lifetime,25.0,years,"Fasihi et al 2017, table 1, https://www.mdpi.com/2071-1050/9/2/306",,2005.0 CH4 liquefaction,methane-input,1.0,MWh_CH4/MWh_CH4,"Pospíšil et al. (2019): Energy demand of liquefaction and regasification of natural gas and the potential of LNG for operative thermal energy storage (https://doi.org/10.1016/j.rser.2018.09.027), Table 2 and Table 3. alternative source 2: https://encyclopedia.airliquide.com/methane (accessed 2021-02-10).","For refrigeration cycle, cleaning of gas presumed unnecessary as it should be nearly pure CH4 (=SNG). Assuming energy required is only electricity which is for Table 3 in the source provided with efficiencies of ~50% of LHV, making the numbers consistent with the numbers in Table 2.", +CO2 gas pipe,FOM,0.1,%/year,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2025.0 +CO2 gas pipe,investment,130000.0,EUR/(t/h)/km,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2020.0 +CO2 gas pipe,lifetime,50.0,years,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2025.0 +CO2 industrial compressor,FOM,4.0,%/year,Aarhus University BCE estimate,,2020.0 +CO2 industrial compressor,investment,1516000.0,EUR/t/h_CO2,Aarhus University BCE estimate,,2020.0 +CO2 industrial compressor,lifetime,15.0,years,Aarhus University BCE estimate,,2020.0 CO2 liquefaction,FOM,5.0,%/year,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,,2004.0 CO2 liquefaction,carbondioxide-input,1.0,t_CO2/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,"Assuming a pure, humid, low-pressure input stream. Neglecting possible gross-effects of CO2 which might be cycled for the cooling process.", CO2 liquefaction,electricity-input,0.123,MWh_el/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,, CO2 liquefaction,heat-input,0.0067,MWh_th/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,For drying purposes., CO2 liquefaction,investment,16.7226,EUR/t_CO2/h,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,"Plant capacity of 20 kt CO2 / d and an uptime of 85%. For a high purity, humid, low pressure input stream, includes drying and compression necessary for liquefaction.",2004.0 CO2 liquefaction,lifetime,25.0,years,"Guesstimate, based on CH4 liquefaction.",,2004.0 +CO2 liquefaction small,CO2-input,1.0,t_CO2/t_CO2,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants., +CO2 liquefaction small,FOM,4.0,%/year,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 +CO2 liquefaction small,electricity-input,0.185,MWh_el/t_CO2,DEA technology data for carbon capture and storage V.3,"411 liquefaction - for biogas plants - storage at 16 bara and -27C, including pumping into storage tanks.", +CO2 liquefaction small,heat-output,0.25,MWh_th/t_CO2,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants., +CO2 liquefaction small,investment,543016.4523,EUR/t_CO2/h,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 +CO2 liquefaction small,lifetime,20.0,years,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 CO2 pipeline,FOM,0.9,%/year,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 CO2 pipeline,investment,2116.4433,EUR/(tCO2/h)/km,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",Assuming the 120-500 t CO2/h range that is based on cost of a 12 inch onshore pipeline.,2015.0 CO2 pipeline,lifetime,50.0,years,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 +CO2 storage cylinders,FOM,1.0,%/year,Aarhus University BCE estimate,,202.0 +CO2 storage cylinders,investment,77000.0,EUR/tCO2,Aarhus University BCE estimate,,2020.0 +CO2 storage cylinders,lifetime,25.0,years,Aarhus University BCE estimate,,2020.0 CO2 storage tank,FOM,1.0,%/year,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, pg. 2746 .","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 CO2 storage tank,investment,2584.3462,EUR/t_CO2,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, Table 3.","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 CO2 storage tank,lifetime,25.0,years,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, pg. 2746 .","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 +CO2 storage tank small,FOM,3.0,%/year,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 +CO2 storage tank small,investment,3102.9512,EUR/t_CO2,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 +CO2 storage tank small,lifetime,25.0,years,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 CO2 submarine pipeline,FOM,0.5,%/year,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 CO2 submarine pipeline,investment,4232.8865,EUR/(tCO2/h)/km,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",Assuming the 120-500 t CO2/h range that is based on cost of a 12 inch offshore pipeline.,2015.0 Charging infrastructure fast (purely) battery electric vehicles passenger cars,FOM,1.6,%,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Charging infrastructure fast (purely) battery electric vehicles passenger cars,2020.0 @@ -151,6 +169,10 @@ Concrete-store,lifetime,35.0,years,"Viswanathan_2022, p.107 (p.129)","{'carrier' "Container, methanol",efficiency,1.7001,MWh/km,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 "Container, methanol",investment,131618242.0136,EUR,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 "Container, methanol",lifetime,30.0,years,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 +DH heat exchanger,FOM,0.1,%/year,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +DH heat exchanger,efficiency,0.95, - ,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +DH heat exchanger,investment,140.162,EUR/MW,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2020.0 +DH heat exchanger,lifetime,35.0,years,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 Diesel Bus city,FOM,0.0004,%/year,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 Diesel Bus city,Motor size,250.0,kW,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 Diesel Bus city,VOM,0.1068,EUR/km,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 @@ -287,6 +309,9 @@ H2 liquefaction,hydrogen-input,1.017,MWh_H2/MWh_H2,"Heuser et al. (2019): Techno H2 liquefaction,investment,889.9426,EUR/kW_H2,"IRENA (2022): Global Hydrogen Trade to Meet the 1.5° Climate Goal: Technology Review of Hydrogen Carriers, https://www.irena.org/publications/2022/Apr/Global-hydrogen-trade-Part-II , pg. 62f.","Assumption for a 200t/d facility (Pessimistic long-term or optimistic short-term value).; and Assumption for a large >300t/d, e.g. 2500 t/d facility (Optimistic long-term value without change in base technology mentioned in report).",2022.0 H2 liquefaction,lifetime,20.0,years,"Reuß et al 2017, https://doi.org/10.1016/j.apenergy.2017.05.050 , Table 9.",,2022.0 +H2 pipe,FOM,0.1,%/year,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2025.0 +H2 pipe,investment,38000.0,EUR/MW/km,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2020.0 +H2 pipe,lifetime,30.0,years,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2025.0 H2 pipeline,FOM,3.0,%/year,TODO, from old pypsa cost assumptions,2015.0 H2 pipeline,investment,282.5452,EUR/MW/km,Welder et al https://doi.org/10.1016/j.energy.2018.05.059, from old pypsa cost assumptions,2015.0 H2 pipeline,lifetime,40.0,years,TODO, from old pypsa cost assumptions,2015.0 @@ -307,6 +332,8 @@ HVDC underground,investment,1008.2934,EUR/MW/km,Härtel et al. (2017): https://d HVDC underground,lifetime,40.0,years,Purvins et al. (2018): https://doi.org/10.1016/j.jclepro.2018.03.095 .,"Based on estimated costs for a NA-EU connector (bidirectional,4 GW, 3000km length and ca. 3000m depth). Costs in return based on existing/currently under construction undersea cables. (same as for HVDC submarine)",2018.0 Haber-Bosch,FOM,3.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Fixed O&M,2015.0 Haber-Bosch,VOM,0.0225,EUR/MWh_NH3,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Variable O&M,2015.0 +Haber-Bosch,efficiency,0.0005,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: Electricity Consumption,",2015.0 +Haber-Bosch,efficiency-heat,0.0004,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: District Heating Output,",2015.0 Haber-Bosch,electricity-input,0.2473,MWh_el/MWh_NH3,"DECHEMA 2017: DECHEMA: Low carbon energy and feedstock for the European chemical industry (https://dechema.de/dechema_media/Downloads/Positionspapiere/Technology_study_Low_carbon_energy_and_feedstock_for_the_European_chemical_industry.pdf), table 11.",Assume 5 GJ/t_NH3 for compressors and NH3 LHV = 5.16666 MWh/t_NH3., Haber-Bosch,hydrogen-input,1.1484,MWh_H2/MWh_NH3,"DECHEMA 2017: DECHEMA: Low carbon energy and feedstock for the European chemical industry (https://dechema.de/dechema_media/Downloads/Positionspapiere/Technology_study_Low_carbon_energy_and_feedstock_for_the_European_chemical_industry.pdf), pg. 57.","178 kg_H2 per t_NH3, LHV for both assumed.", Haber-Bosch,investment,1785.0713,EUR/kW_NH3,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Specific investment,2015.0 @@ -428,6 +455,9 @@ Methanol steam reforming,FOM,4.0,%/year,"Niermann et al. (2021): Liquid Organic Methanol steam reforming,investment,18016.8665,EUR/MW_H2,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.","For high temperature steam reforming plant with a capacity of 200 MW_H2 output (6t/h). Reference plant of 1 MW (30kg_H2/h) costs 150kEUR, scale factor of 0.6 assumed.",2020.0 Methanol steam reforming,lifetime,20.0,years,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.",,2020.0 Methanol steam reforming,methanol-input,1.201,MWh_MeOH/MWh_H2,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.",Assuming per 1 t_H2 (with LHV 33.3333 MWh/t): 4.5 MWh_th and 3.2 MWh_el are required. We assume electricity can be substituted / provided with 1:1 as heat energy., +NG grid connection,FOM,0.2,%/year,https://evida.dk/tarifblad010125/,EVIDA.DK,2025.0 +NG grid connection,investment,1155.9268,EUR/MW,https://evida.dk/tarifblad010125/,EVIDA.DK,2025.0 +NG grid connection,lifetime,40.0,years,Own assumption,,2025.0 NH3 (l) storage tank incl. liquefaction,FOM,2.0,%/year,"Guesstimate, based on H2 (l) storage tank.",,2010.0 NH3 (l) storage tank incl. liquefaction,investment,166.8201,EUR/MWh_NH3,"Calculated based on Morgan E. 2013: doi:10.7275/11KT-3F59 , Fig. 55, Fig 58.","Based on estimated for a double-wall liquid ammonia tank (~ambient pressure, -33°C), inner tank from stainless steel, outer tank from concrete including installations for liquefaction/condensation, boil-off gas recovery and safety installations; the necessary installations make only a small fraction of the total cost. The total cost are driven by material and working time on the tanks. While the costs do not scale strictly linearly, we here assume they do (good approximation c.f. ref. Fig 55.) and take the costs for a 9 kt NH3 (l) tank = 8 M$2010, which is smaller 4-5x smaller than the largest deployed tanks today. @@ -454,6 +484,9 @@ PHS,FOM,1.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa PHS,efficiency,0.75,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 PHS,investment,2274.8177,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2010.0 PHS,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions,2015.0 +PWH pipe,FOM,0.1,%/year,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +PWH pipe,investment,63000.0,EUR/MW/km,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2020.0 +PWH pipe,lifetime,45.0,years,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 Pumped-Heat-charger,FOM,0.366,%/year,"Viswanathan_2022, NULL","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Guesstimate, 50% on charger']}",2020.0 Pumped-Heat-charger,efficiency,0.99,per unit,"Viswanathan_2022, NULL","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Charger']}",2020.0 Pumped-Heat-charger,investment,807189.2511,EUR/MW,"Georgiou_2018, Figure 9 of reference roughly 80% of capital cost are power related 47%/80% of costs are required for liquefaction (charging)","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Power Equipment Charge']}",2020.0 @@ -472,12 +505,12 @@ Pumped-Storage-Hydro-bicharger,lifetime,60.0,years,"Viswanathan_2022, p.68 (p.90 Pumped-Storage-Hydro-store,FOM,0.43,%/year,"Viswanathan_2022, 0.43 % of SB","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['derived']}",2020.0 Pumped-Storage-Hydro-store,investment,57074.0625,EUR/MWh,"Viswanathan_2022, p.68 (p.90)","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['Reservoir Construction & Infrastructure']}",2020.0 Pumped-Storage-Hydro-store,lifetime,60.0,years,"Viswanathan_2022, p.68 (p.90)","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['NULL']}",2020.0 -SMR,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 +SMR,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311", SMR,efficiency,0.76,per unit (in LHV),"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, SMR,investment,522201.0492,EUR/MW_CH4,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 SMR,lifetime,30.0,years,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, -SMR CC,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 -SMR CC,capture_rate,0.9,per unit,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",wide range: capture rates between 54%-90%, +SMR CC,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311", +SMR CC,capture_rate,0.9,EUR/MW_CH4,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",wide range: capture rates betwen 54%-90%, SMR CC,efficiency,0.69,per unit (in LHV),"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, SMR CC,investment,605753.2171,EUR/MW_CH4,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 SMR CC,lifetime,30.0,years,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, @@ -534,6 +567,8 @@ Zn-Br-Nonflow-store,FOM,0.2481,%/year,"Viswanathan_2022, 0.43 % of SB","{'carrie Zn-Br-Nonflow-store,investment,276873.6097,EUR/MWh,"Viswanathan_2022, p.59 (p.81) Table 4.14","{'carrier': ['znbr'], 'technology_type': ['store'], 'type': ['electrochemical'], 'note': ['DC storage block']}",2020.0 Zn-Br-Nonflow-store,lifetime,15.0,years,"Viswanathan_2022, p.59 (p.81)","{'carrier': ['znbr'], 'technology_type': ['store'], 'type': ['electrochemical'], 'note': ['NULL']}",2020.0 air separation unit,FOM,3.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Fixed O&M,2015.0 +air separation unit,efficiency,0.0005,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: Electricity Consumption,",2015.0 +air separation unit,efficiency-heat,0.0004,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: District Heating Output,",2015.0 air separation unit,electricity-input,0.25,MWh_el/t_N2,"DEA (2022): Technology Data for Renewable Fuels (https://ens.dk/en/our-services/projections-and-models/technology-data/technology-data-renewable-fuels), p.288.","For consistency reasons use value from Danish Energy Agency. DEA also reports range of values (0.2-0.4 MWh/t_N2) on pg. 288. Other efficienices reported are even higher, e.g. 0.11 Mwh/t_N2 from Morgan (2013): Techno-Economic Feasibility Study of Ammonia Plants Powered by Offshore Wind .", air separation unit,investment,1003392.2397,EUR/t_N2/h,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Specific investment,2015.0 air separation unit,lifetime,30.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Technical lifetime,2015.0 @@ -548,12 +583,13 @@ battery inverter,lifetime,10.0,years,"Danish Energy Agency, technology_data_cata battery storage,investment,245.5074,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Energy storage expansion cost investment,2015.0 battery storage,lifetime,20.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Technical lifetime,2015.0 biochar pyrolysis,FOM,3.4615,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Fixed O&M",2020.0 -biochar pyrolysis,VOM,823.497,EUR/MWh_biochar,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Variable O&M",2020.0 -biochar pyrolysis,efficiency-biochar,0.404,MWh_biochar/MWh_feedstock,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: efficiency biochar",2020.0 -biochar pyrolysis,efficiency-heat,0.4848,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: efficiency heat",2020.0 -biochar pyrolysis,investment,167272.82,EUR/kW_biochar,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 +biochar pyrolysis,VOM,47.6777,EUR/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Variable O&M",2020.0 +biochar pyrolysis,biomass input,7.6748,MWh_biomass/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Biomass Input",2020.0 +biochar pyrolysis,electricity input,0.3184,MWh_e/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: El-Input",2020.0 +biochar pyrolysis,heat output,3.7859,MWh_th/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: H-Output",2020.0 +biochar pyrolysis,investment,9684528.9742,EUR/t_CO2/h,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Technical lifetime",2020.0 -biochar pyrolysis,yield-biochar,0.0582,ton biochar/MWh_feedstock,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: yield biochar",2020.0 +biochar pyrolysis,yield-biochar,0.0597,t_biochar/MWh_biomass,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: yield biochar",2020.0 biodiesel crops,fuel,96.2077,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIORPS1 (rape seed), ENS_BaU_GFTM",,2010.0 bioethanol crops,fuel,62.1519,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIOCRP11 (Bioethanol barley, wheat, grain maize, oats, other cereals and rye), ENS_BaU_GFTM",,2010.0 biogas,CO2 stored,0.0868,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, @@ -570,10 +606,18 @@ biogas CC,efficiency,1.0,per unit,Assuming input biomass is already given in bio biogas CC,investment,1032.4577,EUR/kW,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","81 Biogas, Basic plant, small: Specific investment",2020.0 biogas CC,lifetime,20.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","81 Biogas, Basic plant, small: Technical lifetime",2020.0 biogas manure,fuel,19.7575,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIOGAS1 (manure), ENS_BaU_GFTM",,2010.0 -biogas plus hydrogen,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Fixed O&M,2020.0 -biogas plus hydrogen,VOM,4.5939,EUR/MWh_CH4,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Variable O&M,2020.0 -biogas plus hydrogen,investment,964.7165,EUR/kW_CH4,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Specific investment,2020.0 +biogas plus hydrogen,Biogas Input,1.1522,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Biogas Consumption,",2020.0 +biogas plus hydrogen,CO2 Input,0.1235,t_CO2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: CO2 Input,",2020.0 +biogas plus hydrogen,Methane Output,1.9348,MWh_CH4/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Methane Output,",2020.0 +biogas plus hydrogen,VOM,8.8882,EUR/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Variable O&M,2020.0 +biogas plus hydrogen,electricity input,0.0217,MWh_e/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: El-Input,",2020.0 +biogas plus hydrogen,heat output,0.2174,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: H-Output,",2020.0 +biogas plus hydrogen,hydrogen input,1.0,MWh_H2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Hydrogen Consumption,",2020.0 +biogas plus hydrogen,investment,1866.5167,EUR/kW_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Specific investment,2020.0 biogas plus hydrogen,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Technical lifetime,2020.0 +biogas storage,FOM,0.2,%/year,Aarhus University BCE estimate,,2025.0 +biogas storage,investment,16750.0,EUR/MWh_biogas,Aarhus University BCE estimate,,2020.0 +biogas storage,lifetime,15.0,years,Aarhus University BCE estimate,,2025.0 biogas upgrading,FOM,17.0397,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: Fixed O&M ",2020.0 biogas upgrading,VOM,4.1613,EUR/MWh output,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: Variable O&M",2020.0 biogas upgrading,investment,192.9697,EUR/kW,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: investment (upgrading, methane redution and grid injection)",2020.0 @@ -613,14 +657,18 @@ biomass HOP,VOM,2.2361,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and biomass HOP,efficiency,1.0323,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09c Straw HOP: Total efficiency , net, annual average",2015.0 biomass HOP,investment,926.3933,EUR/kW_th - heat output,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",09c Straw HOP: Nominal investment ,2015.0 biomass HOP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",09c Straw HOP: Technical lifetime,2015.0 +biomass belt dryer,FOM,3.0,%/year,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,electricity-input,0.025,MWh/t_H2O removed,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,heat-input,1.0,MWh/t_H2O removed,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,lifetime,20.0,years,DOI: 10.1080/07373937.2018.1492615,,2020.0 biomass boiler,FOM,7.3854,%/year,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Fixed O&M",2015.0 biomass boiler,efficiency,0.82,per unit,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Heat efficiency, annual average, net",2015.0 biomass boiler,investment,722.4205,EUR/kW_th,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Specific investment",2015.0 biomass boiler,lifetime,20.0,years,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Technical lifetime",2015.0 biomass boiler,pelletizing cost,9.0,EUR/MWh_pellets,Assumption based on doi:10.1016/j.rser.2019.109506,,2019.0 -biomass-to-methanol,C in fuel,0.3926,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -biomass-to-methanol,C stored,0.6074,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -biomass-to-methanol,CO2 stored,0.2227,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,C in fuel,0.3832,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,C stored,0.6168,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,CO2 stored,0.2317,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, biomass-to-methanol,FOM,1.1111,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Fixed O&M,2020.0 biomass-to-methanol,VOM,21.6979,EUR/MWh_MeOH,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Variable O&M,2020.0 biomass-to-methanol,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, @@ -629,6 +677,15 @@ biomass-to-methanol,efficiency-electricity,0.02,MWh_e/MWh_th,"Danish Energy Agen biomass-to-methanol,efficiency-heat,0.22,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","97 Methanol from biomass gasif.: District heat Output,",2020.0 biomass-to-methanol,investment,5591.3924,EUR/kW_MeOH,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Specific investment,2020.0 biomass-to-methanol,lifetime,20.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Technical lifetime,2020.0 +biomethanation,Biogas Input,1.1444,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Biogas Consumption,",2020.0 +biomethanation,CO2 Input,0.165,t_CO2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: CO2 Input,",2020.0 +biomethanation,FOM,0.8333,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Fixed O&M ,2020.0 +biomethanation,Hydrogen Input,1.0,MWh_H2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Hydrogen Input,",2020.0 +biomethanation,Methane Output,1.9673,MWh_CH4/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Methane Output,",2020.0 +biomethanation,electricity input,0.0417,MWh_e/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: El-Input,",2020.0 +biomethanation,heat output,0.1667,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: H-Output,",2020.0 +biomethanation,investment,7900.0,EUR/kW_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Specific investment ,2020.0 +biomethanation,lifetime,20.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Technical lifetime,2020.0 cement capture,FOM,3.0,%/year,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 cement capture,capture_rate,0.9,per unit,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 cement capture,compression-electricity-input,0.1,MWh/tCO2,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 @@ -715,7 +772,7 @@ central solid biomass CHP CC,c_b,0.3489,50°C/100°C,"Danish Energy Agency, tech central solid biomass CHP CC,c_v,1.0,50°C/100°C,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Cv coefficient",2015.0 central solid biomass CHP CC,efficiency,0.2689,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Electricity efficiency, net, annual average",2015.0 central solid biomass CHP CC,efficiency-heat,0.8255,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Heat efficiency, net, annual average",2015.0 -central solid biomass CHP CC,investment,5767.0987,EUR/kW_e,Combination of central solid biomass CHP CC and solid biomass boiler steam,,2015.0 +central solid biomass CHP CC,investment,5816.7677,EUR/kW_e,Combination of central solid biomass CHP CC and solid biomass boiler steam,,2015.0 central solid biomass CHP CC,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Technical lifetime",2015.0 central solid biomass CHP powerboost CC,FOM,2.8857,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Fixed O&M",2015.0 central solid biomass CHP powerboost CC,VOM,4.8694,EUR/MWh_e,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Variable O&M ",2015.0 @@ -742,7 +799,13 @@ central water-sourced heat pump,VOM,1.8942,EUR/MWh,"Danish Energy Agency, techno central water-sourced heat pump,efficiency,3.78,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Total efficiency , net, annual average",2015.0 central water-sourced heat pump,investment,1058.2216,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Specific investment",2015.0 central water-sourced heat pump,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Technical lifetime",2015.0 -clean water tank storage,FOM,2.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2013.0 +centrifugal dewatering,DM out,0.45,kgDM/kgtot,https://dcapub.au.dk/djfpublikation/djfpdf/DCArapport208.pdf,,2025.0 +centrifugal dewatering,DM separation,0.509,kg_out/kg_in,https://dcapub.au.dk/djfpublikation/djfpdf/DCArapport208.pdf,,2025.0 +centrifugal dewatering,FOM,3.5,%/year,https://doi.org/10.3390/agronomy11050836,,2025.0 +centrifugal dewatering,electricity-input,0.005,MWh/tDM_in,calc from : https://doi.org/10.3390/su16135461,,2025.0 +centrifugal dewatering,investment,130000.0,EUR/t/h fibers,https://doi.org/10.3390/agronomy11050836,,2020.0 +centrifugal dewatering,lifetime,20.0,years, https://doi.org/10.3390/su16135461,,2025.0 +clean water tank storage,FOM,2.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, clean water tank storage,investment,69.1286,EUR/m^3-H2O,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2013.0 clean water tank storage,lifetime,30.0,years,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, coal,CO2 intensity,0.3361,tCO2/MWh_th,Entwicklung der spezifischen Kohlendioxid-Emissionen des deutschen Strommix in den Jahren 1990 - 2018,, @@ -804,7 +867,7 @@ decentral water tank storage,energy to power ratio,0.15,h,"Danish Energy Agency, decentral water tank storage,investment,433.8709,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",142 Small scale hot water tank: Specific investment,2015.0 decentral water tank storage,lifetime,30.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",142 Small scale hot water tank: Technical lifetime,2015.0 digestible biomass,fuel,17.0611,EUR/MWh_th,"JRC ENSPRESO ca avg for MINBIOAGRW1, ENS_Ref for 2040",,2010.0 -digestible biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 +digestible biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, digestible biomass to hydrogen,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, digestible biomass to hydrogen,efficiency,0.39,per unit,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, digestible biomass to hydrogen,investment,4237.1194,EUR/kW_th,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 @@ -869,18 +932,18 @@ electricity distribution grid,lifetime,40.0,years,TODO, from old pypsa cost assu electricity grid connection,FOM,2.0,%/year,TODO, from old pypsa cost assumptions,2015.0 electricity grid connection,investment,148.151,EUR/kW,DEA, from old pypsa cost assumptions,2015.0 electricity grid connection,lifetime,40.0,years,TODO, from old pypsa cost assumptions,2015.0 -electrobiofuels,C in fuel,0.9245,per unit,Stoichiometric calculation,, -electrobiofuels,FOM,2.4,%/year,combination of BtL and electrofuels,,2015.0 -electrobiofuels,VOM,5.153,EUR/MWh_th,combination of BtL and electrofuels,,2017.0 +electrobiofuels,C in fuel,0.924,per unit,Stoichiometric calculation,, +electrobiofuels,FOM,2.4,%/year,combination of BtL and electrofuels,, +electrobiofuels,VOM,5.184,EUR/MWh_th,combination of BtL and electrofuels,,2017.0 electrobiofuels,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, -electrobiofuels,efficiency-biomass,1.3183,per unit,Stoichiometric calculation,, -electrobiofuels,efficiency-hydrogen,1.1766,per unit,Stoichiometric calculation,, -electrobiofuels,efficiency-tot,0.6217,per unit,Stoichiometric calculation,, -electrobiofuels,investment,559887.2932,EUR/kW_th,combination of BtL and electrofuels,,2017.0 +electrobiofuels,efficiency-biomass,1.3498,per unit,Stoichiometric calculation,, +electrobiofuels,efficiency-hydrogen,1.1675,per unit,Stoichiometric calculation,, +electrobiofuels,efficiency-tot,0.626,per unit,Stoichiometric calculation,, +electrobiofuels,investment,564215.8653,EUR/kW_th,combination of BtL and electrofuels,,2017.0 electrolysis,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Fixed O&M ,2020.0 electrolysis,efficiency,0.5773,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Hydrogen Output,2020.0 electrolysis,efficiency-heat,0.2762,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: - hereof recoverable for district heating,2020.0 -electrolysis,investment,2000.0,EUR/kW_e,private communications; IEA https://iea.blob.core.windows.net/assets/9e0c82d4-06d2-496b-9542-f184ba803645/TheRoleofE-fuelsinDecarbonisingTransport.pdf,,2020.0 +electrolysis,investment,1200.0,EUR/kW_e,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Specific investment,2020.0 electrolysis,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Technical lifetime,2020.0 electrolysis small,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 10 MW: Fixed O&M ,2020.0 electrolysis small,efficiency,0.5773,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 10 MW: Hydrogen Output,2020.0 @@ -900,7 +963,7 @@ gas boiler steam,VOM,1.1077,EUR/MWh,"Danish Energy Agency, technology_data_for_i gas boiler steam,efficiency,0.92,per unit,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx","311.1c Steam boiler Gas: Total efficiency, net, annual average",2019.0 gas boiler steam,investment,54.9273,EUR/kW,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1c Steam boiler Gas: Nominal investment,2019.0 gas boiler steam,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1c Steam boiler Gas: Technical lifetime,2019.0 -gas storage,FOM,3.5919,%,Danish Energy Agency,"150 Underground Storage of Gas, Operation and Maintenance, salt cavern (units converted)",2015.0 +gas storage,FOM,3.5919,%,Danish Energy Agency,"150 Underground Storage of Gas, Operation and Maintenace, salt cavern (units converted)",2015.0 gas storage,investment,0.0348,EUR/kWh,Danish Energy Agency,"150 Underground Storage of Gas, Establishment of one cavern (units converted)",2015.0 gas storage,lifetime,100.0,years,TODO no source,"estimation: most underground storage are already build, they do have a long lifetime",2015.0 gas storage charger,investment,15.1737,EUR/kW,Danish Energy Agency,"150 Underground Storage of Gas, Process equipment (units converted)",2015.0 @@ -1006,7 +1069,7 @@ nuclear,investment,8594.1354,EUR/kW_e,"Lazard's levelized cost of energy analysi nuclear,lifetime,40.0,years,"Lazard's levelized cost of energy analysis - version 16.0 (2023): https://www.lazard.com/media/typdgxmm/lazards-lcoeplus-april-2023.pdf , pg. 49 (Levelized Cost of Energy - Key Assumptions), accessed: 2023-12-14.",,2023.0 offwind,FOM,2.5093,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Fixed O&M [EUR/MW_e/y, 2020]",2020.0 offwind,VOM,0.0212,EUR/MWhel,RES costs made up to fix curtailment order, from old pypsa cost assumptions,2015.0 -offwind,investment,1992.6105,"EUR/kW_e, 2020","Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Nominal investment [MEUR/MW_e, 2020] grid connection costs subtracted from investment costs",2020.0 +offwind,investment,1992.6105,"EUR/kW_e, 2020","Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Nominal investment [MEUR/MW_e, 2020] grid connection costs substracted from investment costs",2020.0 offwind,lifetime,27.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",21 Offshore turbines: Technical lifetime [years],2020.0 offwind-ac-connection-submarine,investment,2841.3251,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions,2015.0 offwind-ac-connection-underground,investment,1420.1334,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions,2015.0 @@ -1035,12 +1098,22 @@ organic rankine cycle,FOM,2.0,%/year,"Aghahosseini, Breyer 2020: From hot rock t organic rankine cycle,electricity-input,0.12,MWh_el/MWh_th,"Aghahosseini, Breyer 2020: From hot rock to useful energy: A global estimate of enhanced geothermal systems potential, https://www.sciencedirect.com/science/article/pii/S0306261920312551; Breede et al. 2015: Overcoming challenges in the classification of deep geothermal potential, https://eprints.gla.ac.uk/169585/","Heat-input, Electricity-output. This is a rough estimate, depends on input temperature, implies ~150 C.",2020.0 organic rankine cycle,investment,1376.0,EUR/kW_el,Tartiere and Astolfi 2017: A world overview of the organic Rankine cycle market,"Low rollout complicates the estimation, compounded by a dependence both on plant size and temperature, converted from 1500 USD/kW using currency conversion 1.09 USD = 1 EUR.",2020.0 organic rankine cycle,lifetime,30.0,years,"Aghahosseini, Breyer 2020: From hot rock to useful energy: A global estimate of enhanced geothermal systems potential, https://www.sciencedirect.com/science/article/pii/S0306261920312551",,2020.0 +pelletization,FOM,3.0,%/year,Own assumption: find better,,2025.0 +pelletization,electricity-input,0.1,MW_e/MW_pellets,Own assumption: find better,,2025.0 +pelletization,investment,0.0,EUR/MW_pellets,Own assumption: find better,,2020.0 +pelletization,lifetime,15.0,years,Own assumption: find better,,2025.0 +perennials gbr,FOM,0.0,%year,Own assumption,,2015.0 +perennials gbr,VOM,43.2317,EUR/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,"includes purchase of perennial crops and sales of proteine concentrate, table 8.1 wages, maintenance and auxiliary costs",2015.0 +perennials gbr,biogas-output,0.1947,MWh/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,table 2,2015.0 +perennials gbr,electricity-input,0.0733,MWh/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,table 2,2015.0 +perennials gbr,investment,1371168.1394,EUR/tDM/h,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,includes cost for biogas plant without upgrading,2015.0 +perennials gbr,lifetime,25.0,years,Own assumption,,2015.0 ror,FOM,2.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 ror,efficiency,0.9,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 ror,investment,3412.2266,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2010.0 ror,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions,2015.0 seawater RO desalination,electricity-input,0.003,MWHh_el/t_H2O,"Caldera et al. (2016): Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Fig. 4.",Desalination using SWRO. Assume medium salinity of 35 Practical Salinity Units (PSUs) = 35 kg/m^3., -seawater desalination,FOM,4.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2015.0 +seawater desalination,FOM,4.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, seawater desalination,electricity-input,3.0348,kWh/m^3-H2O,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Fig. 4.",, seawater desalination,investment,42561.4413,EUR/(m^3-H2O/h),"Caldera et al 2017: Learning Curve for Seawater Reverse Osmosis Desalination Plants: Capital Cost Trend of the Past, Present, and Future (https://doi.org/10.1002/2017WR021402), Table 4.",,2015.0 seawater desalination,lifetime,30.0,years,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, @@ -1066,7 +1139,7 @@ solar-utility,lifetime,35.0,years,"Danish Energy Agency, technology_data_for_el_ solar-utility single-axis tracking,FOM,1.8605,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Fixed O&M [2020-EUR/MW_e/y],2020.0 solar-utility single-axis tracking,investment,650.3522,EUR/kW_e,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Nominal investment [2020-MEUR/MW_e],2020.0 solar-utility single-axis tracking,lifetime,35.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Technical lifetime [years],2020.0 -solid biomass,CO2 intensity,0.3667,tCO2/MWh_th,Stoichiometric calculation with 18 GJ/t_DM LHV and 50% C-content for solid biomass,, +solid biomass,CO2 intensity,0.3757,tCO2/MWh_th,Stoichiometric calculation with 18 GJ/t_DM LHV and 50% C-content for solid biomass,, solid biomass,fuel,13.6489,EUR/MWh_th,"JRC ENSPRESO ca avg for MINBIOWOOW1 (secondary forest residue wood chips), ENS_Ref for 2040",,2010.0 solid biomass boiler steam,FOM,5.4515,%/year,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Fixed O&M,2019.0 solid biomass boiler steam,VOM,2.7985,EUR/MWh,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Variable O&M,2019.0 @@ -1078,7 +1151,7 @@ solid biomass boiler steam CC,VOM,2.7985,EUR/MWh,"Danish Energy Agency, technolo solid biomass boiler steam CC,efficiency,0.89,per unit,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx","311.1e Steam boiler Wood: Total efficiency, net, annual average",2019.0 solid biomass boiler steam CC,investment,622.5091,EUR/kW,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Nominal investment,2019.0 solid biomass boiler steam CC,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Technical lifetime,2019.0 -solid biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 +solid biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, solid biomass to hydrogen,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, solid biomass to hydrogen,efficiency,0.56,per unit,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, solid biomass to hydrogen,investment,4237.1194,EUR/kW_th,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 diff --git a/outputs/costs_2025.csv b/outputs/costs_2025.csv index 640345c3..f958f2c3 100644 --- a/outputs/costs_2025.csv +++ b/outputs/costs_2025.csv @@ -41,18 +41,18 @@ Battery electric (passenger cars),lifetime,15.0,years,PATHS TO A CLIMATE-NEUTRAL Battery electric (trucks),FOM,14.0,%,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 Battery electric (trucks),investment,165765.0,EUR/LKW,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 Battery electric (trucks),lifetime,15.0,years,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 -BioSNG,C in fuel,0.3321,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BioSNG,C stored,0.6679,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BioSNG,CO2 stored,0.2449,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,C in fuel,0.3242,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,C stored,0.6758,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,CO2 stored,0.2539,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, BioSNG,FOM,1.6195,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Fixed O&M",2020.0 BioSNG,VOM,2.3395,EUR/MWh_th,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Variable O&M",2020.0 BioSNG,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, BioSNG,efficiency,0.615,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Bio SNG Output",2020.0 BioSNG,investment,2179.97,EUR/kW_th,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Specific investment",2020.0 BioSNG,lifetime,25.0,years,TODO,"84 Gasif. CFB, Bio-SNG: Technical lifetime",2020.0 -BtL,C in fuel,0.2571,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BtL,C stored,0.7429,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BtL,CO2 stored,0.2724,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,C in fuel,0.251,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,C stored,0.749,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,CO2 stored,0.2814,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, BtL,FOM,2.5263,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","85 Gasif. Ent. Flow FT, liq fu : Fixed O&M",2020.0 BtL,VOM,1.1299,EUR/MWh_FT,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","85 Gasif. Ent. Flow FT, liq fu : Variable O&M",2020.0 BtL,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, @@ -89,18 +89,36 @@ CH4 liquefaction,electricity-input,0.036,MWh_el/MWh_CH4,"Pospíšil et al. (2019 CH4 liquefaction,investment,241.443,EUR/kW_CH4,"Calculated, based on Lochner and Bothe (2009): https://doi.org/10.1016/j.enpol.2008.12.012 and Fasihi et al 2017, table 1, https://www.mdpi.com/2071-1050/9/2/306","based on 265 MUSD-2005/(1 bcm/a), 1 bcm = 10.6 TWh, currency exchange rate: 1.15 USD=1 EUR.",2005.0 CH4 liquefaction,lifetime,25.0,years,"Fasihi et al 2017, table 1, https://www.mdpi.com/2071-1050/9/2/306",,2005.0 CH4 liquefaction,methane-input,1.0,MWh_CH4/MWh_CH4,"Pospíšil et al. (2019): Energy demand of liquefaction and regasification of natural gas and the potential of LNG for operative thermal energy storage (https://doi.org/10.1016/j.rser.2018.09.027), Table 2 and Table 3. alternative source 2: https://encyclopedia.airliquide.com/methane (accessed 2021-02-10).","For refrigeration cycle, cleaning of gas presumed unnecessary as it should be nearly pure CH4 (=SNG). Assuming energy required is only electricity which is for Table 3 in the source provided with efficiencies of ~50% of LHV, making the numbers consistent with the numbers in Table 2.", +CO2 gas pipe,FOM,0.1,%/year,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2025.0 +CO2 gas pipe,investment,130000.0,EUR/(t/h)/km,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2020.0 +CO2 gas pipe,lifetime,50.0,years,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2025.0 +CO2 industrial compressor,FOM,4.0,%/year,Aarhus University BCE estimate,,2020.0 +CO2 industrial compressor,investment,1516000.0,EUR/t/h_CO2,Aarhus University BCE estimate,,2020.0 +CO2 industrial compressor,lifetime,15.0,years,Aarhus University BCE estimate,,2020.0 CO2 liquefaction,FOM,5.0,%/year,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,,2004.0 CO2 liquefaction,carbondioxide-input,1.0,t_CO2/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,"Assuming a pure, humid, low-pressure input stream. Neglecting possible gross-effects of CO2 which might be cycled for the cooling process.", CO2 liquefaction,electricity-input,0.123,MWh_el/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,, CO2 liquefaction,heat-input,0.0067,MWh_th/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,For drying purposes., CO2 liquefaction,investment,16.7226,EUR/t_CO2/h,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,"Plant capacity of 20 kt CO2 / d and an uptime of 85%. For a high purity, humid, low pressure input stream, includes drying and compression necessary for liquefaction.",2004.0 CO2 liquefaction,lifetime,25.0,years,"Guesstimate, based on CH4 liquefaction.",,2004.0 +CO2 liquefaction small,CO2-input,1.0,t_CO2/t_CO2,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants., +CO2 liquefaction small,FOM,4.0,%/year,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 +CO2 liquefaction small,electricity-input,0.185,MWh_el/t_CO2,DEA technology data for carbon capture and storage V.3,"411 liquefaction - for biogas plants - storage at 16 bara and -27C, including pumping into storage tanks.", +CO2 liquefaction small,heat-output,0.25,MWh_th/t_CO2,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants., +CO2 liquefaction small,investment,543016.4523,EUR/t_CO2/h,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 +CO2 liquefaction small,lifetime,20.0,years,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 CO2 pipeline,FOM,0.9,%/year,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 CO2 pipeline,investment,2116.4433,EUR/(tCO2/h)/km,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",Assuming the 120-500 t CO2/h range that is based on cost of a 12 inch onshore pipeline.,2015.0 CO2 pipeline,lifetime,50.0,years,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 +CO2 storage cylinders,FOM,1.0,%/year,Aarhus University BCE estimate,,202.0 +CO2 storage cylinders,investment,77000.0,EUR/tCO2,Aarhus University BCE estimate,,2020.0 +CO2 storage cylinders,lifetime,25.0,years,Aarhus University BCE estimate,,2020.0 CO2 storage tank,FOM,1.0,%/year,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, pg. 2746 .","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 CO2 storage tank,investment,2584.3462,EUR/t_CO2,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, Table 3.","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 CO2 storage tank,lifetime,25.0,years,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, pg. 2746 .","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 +CO2 storage tank small,FOM,3.0,%/year,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 +CO2 storage tank small,investment,3102.9512,EUR/t_CO2,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 +CO2 storage tank small,lifetime,25.0,years,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 CO2 submarine pipeline,FOM,0.5,%/year,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 CO2 submarine pipeline,investment,4232.8865,EUR/(tCO2/h)/km,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",Assuming the 120-500 t CO2/h range that is based on cost of a 12 inch offshore pipeline.,2015.0 Charging infrastructure fast (purely) battery electric vehicles passenger cars,FOM,1.6,%,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Charging infrastructure fast (purely) battery electric vehicles passenger cars,2020.0 @@ -151,6 +169,10 @@ Concrete-store,lifetime,35.0,years,"Viswanathan_2022, p.107 (p.129)","{'carrier' "Container, methanol",efficiency,1.7001,MWh/km,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 "Container, methanol",investment,131618242.0136,EUR,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 "Container, methanol",lifetime,31.0,years,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 +DH heat exchanger,FOM,0.1,%/year,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +DH heat exchanger,efficiency,0.95, - ,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +DH heat exchanger,investment,140.162,EUR/MW,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2020.0 +DH heat exchanger,lifetime,35.0,years,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 Diesel Bus city,FOM,0.0004,%/year,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 Diesel Bus city,Motor size,250.0,kW,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 Diesel Bus city,VOM,0.1068,EUR/km,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 @@ -287,6 +309,9 @@ H2 liquefaction,hydrogen-input,1.017,MWh_H2/MWh_H2,"Heuser et al. (2019): Techno H2 liquefaction,investment,889.9426,EUR/kW_H2,"IRENA (2022): Global Hydrogen Trade to Meet the 1.5° Climate Goal: Technology Review of Hydrogen Carriers, https://www.irena.org/publications/2022/Apr/Global-hydrogen-trade-Part-II , pg. 62f.","Assumption for a 200t/d facility (Pessimistic long-term or optimistic short-term value).; and Assumption for a large >300t/d, e.g. 2500 t/d facility (Optimistic long-term value without change in base technology mentioned in report).",2022.0 H2 liquefaction,lifetime,20.0,years,"Reuß et al 2017, https://doi.org/10.1016/j.apenergy.2017.05.050 , Table 9.",,2022.0 +H2 pipe,FOM,0.1,%/year,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2025.0 +H2 pipe,investment,38000.0,EUR/MW/km,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2020.0 +H2 pipe,lifetime,30.0,years,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2025.0 H2 pipeline,FOM,3.0,%/year,TODO, from old pypsa cost assumptions,2015.0 H2 pipeline,investment,282.5452,EUR/MW/km,Welder et al https://doi.org/10.1016/j.energy.2018.05.059, from old pypsa cost assumptions,2015.0 H2 pipeline,lifetime,40.0,years,TODO, from old pypsa cost assumptions,2015.0 @@ -307,6 +332,8 @@ HVDC underground,investment,1008.2934,EUR/MW/km,Härtel et al. (2017): https://d HVDC underground,lifetime,40.0,years,Purvins et al. (2018): https://doi.org/10.1016/j.jclepro.2018.03.095 .,"Based on estimated costs for a NA-EU connector (bidirectional,4 GW, 3000km length and ca. 3000m depth). Costs in return based on existing/currently under construction undersea cables. (same as for HVDC submarine)",2018.0 Haber-Bosch,FOM,3.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Fixed O&M,2015.0 Haber-Bosch,VOM,0.0225,EUR/MWh_NH3,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Variable O&M,2015.0 +Haber-Bosch,efficiency,0.0005,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: Electricity Consumption,",2015.0 +Haber-Bosch,efficiency-heat,0.0004,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: District Heating Output,",2015.0 Haber-Bosch,electricity-input,0.2473,MWh_el/MWh_NH3,"DECHEMA 2017: DECHEMA: Low carbon energy and feedstock for the European chemical industry (https://dechema.de/dechema_media/Downloads/Positionspapiere/Technology_study_Low_carbon_energy_and_feedstock_for_the_European_chemical_industry.pdf), table 11.",Assume 5 GJ/t_NH3 for compressors and NH3 LHV = 5.16666 MWh/t_NH3., Haber-Bosch,hydrogen-input,1.1484,MWh_H2/MWh_NH3,"DECHEMA 2017: DECHEMA: Low carbon energy and feedstock for the European chemical industry (https://dechema.de/dechema_media/Downloads/Positionspapiere/Technology_study_Low_carbon_energy_and_feedstock_for_the_European_chemical_industry.pdf), pg. 57.","178 kg_H2 per t_NH3, LHV for both assumed.", Haber-Bosch,investment,1622.5424,EUR/kW_NH3,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Specific investment,2015.0 @@ -428,6 +455,9 @@ Methanol steam reforming,FOM,4.0,%/year,"Niermann et al. (2021): Liquid Organic Methanol steam reforming,investment,18016.8665,EUR/MW_H2,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.","For high temperature steam reforming plant with a capacity of 200 MW_H2 output (6t/h). Reference plant of 1 MW (30kg_H2/h) costs 150kEUR, scale factor of 0.6 assumed.",2020.0 Methanol steam reforming,lifetime,20.0,years,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.",,2020.0 Methanol steam reforming,methanol-input,1.201,MWh_MeOH/MWh_H2,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.",Assuming per 1 t_H2 (with LHV 33.3333 MWh/t): 4.5 MWh_th and 3.2 MWh_el are required. We assume electricity can be substituted / provided with 1:1 as heat energy., +NG grid connection,FOM,0.2,%/year,https://evida.dk/tarifblad010125/,EVIDA.DK,2025.0 +NG grid connection,investment,1155.9268,EUR/MW,https://evida.dk/tarifblad010125/,EVIDA.DK,2025.0 +NG grid connection,lifetime,40.0,years,Own assumption,,2025.0 NH3 (l) storage tank incl. liquefaction,FOM,2.0,%/year,"Guesstimate, based on H2 (l) storage tank.",,2010.0 NH3 (l) storage tank incl. liquefaction,investment,166.8201,EUR/MWh_NH3,"Calculated based on Morgan E. 2013: doi:10.7275/11KT-3F59 , Fig. 55, Fig 58.","Based on estimated for a double-wall liquid ammonia tank (~ambient pressure, -33°C), inner tank from stainless steel, outer tank from concrete including installations for liquefaction/condensation, boil-off gas recovery and safety installations; the necessary installations make only a small fraction of the total cost. The total cost are driven by material and working time on the tanks. While the costs do not scale strictly linearly, we here assume they do (good approximation c.f. ref. Fig 55.) and take the costs for a 9 kt NH3 (l) tank = 8 M$2010, which is smaller 4-5x smaller than the largest deployed tanks today. @@ -454,6 +484,9 @@ PHS,FOM,1.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa PHS,efficiency,0.75,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 PHS,investment,2274.8177,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2010.0 PHS,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions,2015.0 +PWH pipe,FOM,0.1,%/year,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +PWH pipe,investment,63000.0,EUR/MW/km,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2020.0 +PWH pipe,lifetime,45.0,years,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 Pumped-Heat-charger,FOM,0.366,%/year,"Viswanathan_2022, NULL","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Guesstimate, 50% on charger']}",2020.0 Pumped-Heat-charger,efficiency,0.99,per unit,"Viswanathan_2022, NULL","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Charger']}",2020.0 Pumped-Heat-charger,investment,784485.9619,EUR/MW,"Georgiou_2018, Figure 9 of reference roughly 80% of capital cost are power related 47%/80% of costs are required for liquefaction (charging)","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Power Equipment Charge']}",2020.0 @@ -472,12 +505,12 @@ Pumped-Storage-Hydro-bicharger,lifetime,60.0,years,"Viswanathan_2022, p.68 (p.90 Pumped-Storage-Hydro-store,FOM,0.43,%/year,"Viswanathan_2022, 0.43 % of SB","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['derived']}",2020.0 Pumped-Storage-Hydro-store,investment,57074.0625,EUR/MWh,"Viswanathan_2022, p.68 (p.90)","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['Reservoir Construction & Infrastructure']}",2020.0 Pumped-Storage-Hydro-store,lifetime,60.0,years,"Viswanathan_2022, p.68 (p.90)","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['NULL']}",2020.0 -SMR,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 +SMR,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311", SMR,efficiency,0.76,per unit (in LHV),"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, SMR,investment,522201.0492,EUR/MW_CH4,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 SMR,lifetime,30.0,years,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, -SMR CC,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 -SMR CC,capture_rate,0.9,per unit,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",wide range: capture rates between 54%-90%, +SMR CC,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311", +SMR CC,capture_rate,0.9,EUR/MW_CH4,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",wide range: capture rates betwen 54%-90%, SMR CC,efficiency,0.69,per unit (in LHV),"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, SMR CC,investment,605753.2171,EUR/MW_CH4,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 SMR CC,lifetime,30.0,years,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, @@ -534,6 +567,8 @@ Zn-Br-Nonflow-store,FOM,0.2362,%/year,"Viswanathan_2022, 0.43 % of SB","{'carrie Zn-Br-Nonflow-store,investment,258047.096,EUR/MWh,"Viswanathan_2022, p.59 (p.81) Table 4.14","{'carrier': ['znbr'], 'technology_type': ['store'], 'type': ['electrochemical'], 'note': ['DC storage block']}",2020.0 Zn-Br-Nonflow-store,lifetime,15.0,years,"Viswanathan_2022, p.59 (p.81)","{'carrier': ['znbr'], 'technology_type': ['store'], 'type': ['electrochemical'], 'note': ['NULL']}",2020.0 air separation unit,FOM,3.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Fixed O&M,2015.0 +air separation unit,efficiency,0.0005,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: Electricity Consumption,",2015.0 +air separation unit,efficiency-heat,0.0004,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: District Heating Output,",2015.0 air separation unit,electricity-input,0.25,MWh_el/t_N2,"DEA (2022): Technology Data for Renewable Fuels (https://ens.dk/en/our-services/projections-and-models/technology-data/technology-data-renewable-fuels), p.288.","For consistency reasons use value from Danish Energy Agency. DEA also reports range of values (0.2-0.4 MWh/t_N2) on pg. 288. Other efficienices reported are even higher, e.g. 0.11 Mwh/t_N2 from Morgan (2013): Techno-Economic Feasibility Study of Ammonia Plants Powered by Offshore Wind .", air separation unit,investment,912034.4091,EUR/t_N2/h,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Specific investment,2015.0 air separation unit,lifetime,30.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Technical lifetime,2015.0 @@ -548,12 +583,13 @@ battery inverter,lifetime,10.0,years,"Danish Energy Agency, technology_data_cata battery storage,investment,197.8874,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Energy storage expansion cost investment,2015.0 battery storage,lifetime,22.5,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Technical lifetime,2015.0 biochar pyrolysis,FOM,3.4615,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Fixed O&M",2020.0 -biochar pyrolysis,VOM,823.497,EUR/MWh_biochar,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Variable O&M",2020.0 -biochar pyrolysis,efficiency-biochar,0.404,MWh_biochar/MWh_feedstock,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: efficiency biochar",2020.0 -biochar pyrolysis,efficiency-heat,0.4848,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: efficiency heat",2020.0 -biochar pyrolysis,investment,167272.82,EUR/kW_biochar,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 +biochar pyrolysis,VOM,47.6777,EUR/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Variable O&M",2020.0 +biochar pyrolysis,biomass input,7.6748,MWh_biomass/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Biomass Input",2020.0 +biochar pyrolysis,electricity input,0.3184,MWh_e/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: El-Input",2020.0 +biochar pyrolysis,heat output,3.7859,MWh_th/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: H-Output",2020.0 +biochar pyrolysis,investment,9684528.9742,EUR/t_CO2/h,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Technical lifetime",2020.0 -biochar pyrolysis,yield-biochar,0.0582,ton biochar/MWh_feedstock,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: yield biochar",2020.0 +biochar pyrolysis,yield-biochar,0.0597,t_biochar/MWh_biomass,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: yield biochar",2020.0 biodiesel crops,fuel,116.9293,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIORPS1 (rape seed), ENS_BaU_GFTM",,2010.0 bioethanol crops,fuel,72.2943,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIOCRP11 (Bioethanol barley, wheat, grain maize, oats, other cereals and rye), ENS_BaU_GFTM",,2010.0 biogas,CO2 stored,0.0868,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, @@ -570,10 +606,18 @@ biogas CC,efficiency,1.0,per unit,Assuming input biomass is already given in bio biogas CC,investment,1097.9155,EUR/kW,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","81 Biogas, Basic plant, small: Specific investment",2020.0 biogas CC,lifetime,20.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","81 Biogas, Basic plant, small: Technical lifetime",2020.0 biogas manure,fuel,19.8126,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIOGAS1 (manure), ENS_BaU_GFTM",,2010.0 -biogas plus hydrogen,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Fixed O&M,2020.0 -biogas plus hydrogen,VOM,4.2111,EUR/MWh_CH4,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Variable O&M,2020.0 -biogas plus hydrogen,investment,884.3234,EUR/kW_CH4,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Specific investment,2020.0 +biogas plus hydrogen,Biogas Input,1.1522,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Biogas Consumption,",2020.0 +biogas plus hydrogen,CO2 Input,0.1235,t_CO2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: CO2 Input,",2020.0 +biogas plus hydrogen,Methane Output,1.9348,MWh_CH4/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Methane Output,",2020.0 +biogas plus hydrogen,VOM,8.1475,EUR/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Variable O&M,2020.0 +biogas plus hydrogen,electricity input,0.0217,MWh_e/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: El-Input,",2020.0 +biogas plus hydrogen,heat output,0.2174,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: H-Output,",2020.0 +biogas plus hydrogen,hydrogen input,1.0,MWh_H2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Hydrogen Consumption,",2020.0 +biogas plus hydrogen,investment,1710.9736,EUR/kW_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Specific investment,2020.0 biogas plus hydrogen,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Technical lifetime,2020.0 +biogas storage,FOM,0.2,%/year,Aarhus University BCE estimate,,2025.0 +biogas storage,investment,16750.0,EUR/MWh_biogas,Aarhus University BCE estimate,,2020.0 +biogas storage,lifetime,15.0,years,Aarhus University BCE estimate,,2025.0 biogas upgrading,FOM,17.0397,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: Fixed O&M ",2020.0 biogas upgrading,VOM,4.4251,EUR/MWh output,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: Variable O&M",2020.0 biogas upgrading,investment,205.2039,EUR/kW,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: investment (upgrading, methane redution and grid injection)",2020.0 @@ -613,14 +657,18 @@ biomass HOP,VOM,2.5909,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and biomass HOP,efficiency,1.0323,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09c Straw HOP: Total efficiency , net, annual average",2015.0 biomass HOP,investment,903.7477,EUR/kW_th - heat output,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",09c Straw HOP: Nominal investment ,2015.0 biomass HOP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",09c Straw HOP: Technical lifetime,2015.0 +biomass belt dryer,FOM,3.0,%/year,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,electricity-input,0.025,MWh/t_H2O removed,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,heat-input,1.0,MWh/t_H2O removed,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,lifetime,20.0,years,DOI: 10.1080/07373937.2018.1492615,,2020.0 biomass boiler,FOM,7.434,%/year,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Fixed O&M",2015.0 biomass boiler,efficiency,0.84,per unit,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Heat efficiency, annual average, net",2015.0 biomass boiler,investment,704.761,EUR/kW_th,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Specific investment",2015.0 biomass boiler,lifetime,20.0,years,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Technical lifetime",2015.0 biomass boiler,pelletizing cost,9.0,EUR/MWh_pellets,Assumption based on doi:10.1016/j.rser.2019.109506,,2019.0 -biomass-to-methanol,C in fuel,0.4028,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -biomass-to-methanol,C stored,0.5972,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -biomass-to-methanol,CO2 stored,0.219,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,C in fuel,0.3931,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,C stored,0.6069,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,CO2 stored,0.228,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, biomass-to-methanol,FOM,1.1905,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Fixed O&M,2020.0 biomass-to-methanol,VOM,18.0816,EUR/MWh_MeOH,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Variable O&M,2020.0 biomass-to-methanol,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, @@ -629,6 +677,15 @@ biomass-to-methanol,efficiency-electricity,0.02,MWh_e/MWh_th,"Danish Energy Agen biomass-to-methanol,efficiency-heat,0.22,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","97 Methanol from biomass gasif.: District heat Output,",2020.0 biomass-to-methanol,investment,4348.8608,EUR/kW_MeOH,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Specific investment,2020.0 biomass-to-methanol,lifetime,20.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Technical lifetime,2020.0 +biomethanation,Biogas Input,1.1444,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Biogas Consumption,",2020.0 +biomethanation,CO2 Input,0.165,t_CO2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: CO2 Input,",2020.0 +biomethanation,FOM,3.8095,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Fixed O&M ,2020.0 +biomethanation,Hydrogen Input,1.0,MWh_H2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Hydrogen Input,",2020.0 +biomethanation,Methane Output,1.9673,MWh_CH4/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Methane Output,",2020.0 +biomethanation,electricity input,0.0417,MWh_e/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: El-Input,",2020.0 +biomethanation,heat output,0.1667,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: H-Output,",2020.0 +biomethanation,investment,1728.125,EUR/kW_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Specific investment ,2020.0 +biomethanation,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Technical lifetime,2020.0 cement capture,FOM,3.0,%/year,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 cement capture,capture_rate,0.9,per unit,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 cement capture,compression-electricity-input,0.1,MWh/tCO2,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 @@ -715,7 +772,7 @@ central solid biomass CHP CC,c_b,0.3498,50°C/100°C,"Danish Energy Agency, tech central solid biomass CHP CC,c_v,1.0,50°C/100°C,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Cv coefficient",2015.0 central solid biomass CHP CC,efficiency,0.2694,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Electricity efficiency, net, annual average",2015.0 central solid biomass CHP CC,efficiency-heat,0.825,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Heat efficiency, net, annual average",2015.0 -central solid biomass CHP CC,investment,5617.7823,EUR/kW_e,Combination of central solid biomass CHP CC and solid biomass boiler steam,,2015.0 +central solid biomass CHP CC,investment,5666.1929,EUR/kW_e,Combination of central solid biomass CHP CC and solid biomass boiler steam,,2015.0 central solid biomass CHP CC,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Technical lifetime",2015.0 central solid biomass CHP powerboost CC,FOM,2.8762,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Fixed O&M",2015.0 central solid biomass CHP powerboost CC,VOM,4.8603,EUR/MWh_e,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Variable O&M ",2015.0 @@ -742,7 +799,13 @@ central water-sourced heat pump,VOM,1.7884,EUR/MWh,"Danish Energy Agency, techno central water-sourced heat pump,efficiency,3.8,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Total efficiency , net, annual average",2015.0 central water-sourced heat pump,investment,1058.2216,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Specific investment",2015.0 central water-sourced heat pump,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Technical lifetime",2015.0 -clean water tank storage,FOM,2.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2013.0 +centrifugal dewatering,DM out,0.45,kgDM/kgtot,https://dcapub.au.dk/djfpublikation/djfpdf/DCArapport208.pdf,,2025.0 +centrifugal dewatering,DM separation,0.509,kg_out/kg_in,https://dcapub.au.dk/djfpublikation/djfpdf/DCArapport208.pdf,,2025.0 +centrifugal dewatering,FOM,3.5,%/year,https://doi.org/10.3390/agronomy11050836,,2025.0 +centrifugal dewatering,electricity-input,0.005,MWh/tDM_in,calc from : https://doi.org/10.3390/su16135461,,2025.0 +centrifugal dewatering,investment,130000.0,EUR/t/h fibers,https://doi.org/10.3390/agronomy11050836,,2020.0 +centrifugal dewatering,lifetime,20.0,years, https://doi.org/10.3390/su16135461,,2025.0 +clean water tank storage,FOM,2.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, clean water tank storage,investment,69.1286,EUR/m^3-H2O,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2013.0 clean water tank storage,lifetime,30.0,years,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, coal,CO2 intensity,0.3361,tCO2/MWh_th,Entwicklung der spezifischen Kohlendioxid-Emissionen des deutschen Strommix in den Jahren 1990 - 2018,, @@ -804,7 +867,7 @@ decentral water tank storage,energy to power ratio,0.15,h,"Danish Energy Agency, decentral water tank storage,investment,433.8709,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",142 Small scale hot water tank: Specific investment,2015.0 decentral water tank storage,lifetime,30.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",142 Small scale hot water tank: Technical lifetime,2015.0 digestible biomass,fuel,17.0611,EUR/MWh_th,"JRC ENSPRESO ca avg for MINBIOAGRW1, ENS_Ref for 2040",,2010.0 -digestible biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 +digestible biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, digestible biomass to hydrogen,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, digestible biomass to hydrogen,efficiency,0.39,per unit,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, digestible biomass to hydrogen,investment,3972.2994,EUR/kW_th,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 @@ -869,18 +932,18 @@ electricity distribution grid,lifetime,40.0,years,TODO, from old pypsa cost assu electricity grid connection,FOM,2.0,%/year,TODO, from old pypsa cost assumptions,2015.0 electricity grid connection,investment,148.151,EUR/kW,DEA, from old pypsa cost assumptions,2015.0 electricity grid connection,lifetime,40.0,years,TODO, from old pypsa cost assumptions,2015.0 -electrobiofuels,C in fuel,0.9257,per unit,Stoichiometric calculation,, -electrobiofuels,FOM,2.5263,%/year,combination of BtL and electrofuels,,2015.0 -electrobiofuels,VOM,4.6849,EUR/MWh_th,combination of BtL and electrofuels,,2017.0 +electrobiofuels,C in fuel,0.9251,per unit,Stoichiometric calculation,, +electrobiofuels,FOM,2.5263,%/year,combination of BtL and electrofuels,, +electrobiofuels,VOM,4.714,EUR/MWh_th,combination of BtL and electrofuels,,2017.0 electrobiofuels,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, -electrobiofuels,efficiency-biomass,1.32,per unit,Stoichiometric calculation,, -electrobiofuels,efficiency-hydrogen,1.1951,per unit,Stoichiometric calculation,, -electrobiofuels,efficiency-tot,0.6272,per unit,Stoichiometric calculation,, -electrobiofuels,investment,512440.2631,EUR/kW_th,combination of BtL and electrofuels,,2017.0 +electrobiofuels,efficiency-biomass,1.3515,per unit,Stoichiometric calculation,, +electrobiofuels,efficiency-hydrogen,1.1853,per unit,Stoichiometric calculation,, +electrobiofuels,efficiency-tot,0.6315,per unit,Stoichiometric calculation,, +electrobiofuels,investment,516655.5726,EUR/kW_th,combination of BtL and electrofuels,,2017.0 electrolysis,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Fixed O&M ,2020.0 electrolysis,efficiency,0.5874,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Hydrogen Output,2020.0 electrolysis,efficiency-heat,0.264,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: - hereof recoverable for district heating,2020.0 -electrolysis,investment,1800.0,EUR/kW_e,private communications; IEA https://iea.blob.core.windows.net/assets/9e0c82d4-06d2-496b-9542-f184ba803645/TheRoleofE-fuelsinDecarbonisingTransport.pdf,,2020.0 +electrolysis,investment,875.0,EUR/kW_e,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Specific investment,2020.0 electrolysis,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Technical lifetime,2020.0 electrolysis small,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 10 MW: Fixed O&M ,2020.0 electrolysis small,efficiency,0.5874,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 10 MW: Hydrogen Output,2020.0 @@ -900,7 +963,7 @@ gas boiler steam,VOM,1.0574,EUR/MWh,"Danish Energy Agency, technology_data_for_i gas boiler steam,efficiency,0.925,per unit,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx","311.1c Steam boiler Gas: Total efficiency, net, annual average",2019.0 gas boiler steam,investment,50.35,EUR/kW,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1c Steam boiler Gas: Nominal investment,2019.0 gas boiler steam,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1c Steam boiler Gas: Technical lifetime,2019.0 -gas storage,FOM,3.5919,%,Danish Energy Agency,"150 Underground Storage of Gas, Operation and Maintenance, salt cavern (units converted)",2015.0 +gas storage,FOM,3.5919,%,Danish Energy Agency,"150 Underground Storage of Gas, Operation and Maintenace, salt cavern (units converted)",2015.0 gas storage,investment,0.0348,EUR/kWh,Danish Energy Agency,"150 Underground Storage of Gas, Establishment of one cavern (units converted)",2015.0 gas storage,lifetime,100.0,years,TODO no source,"estimation: most underground storage are already build, they do have a long lifetime",2015.0 gas storage charger,investment,15.1737,EUR/kW,Danish Energy Agency,"150 Underground Storage of Gas, Process equipment (units converted)",2015.0 @@ -1006,7 +1069,7 @@ nuclear,investment,8594.1354,EUR/kW_e,"Lazard's levelized cost of energy analysi nuclear,lifetime,40.0,years,"Lazard's levelized cost of energy analysis - version 16.0 (2023): https://www.lazard.com/media/typdgxmm/lazards-lcoeplus-april-2023.pdf , pg. 49 (Levelized Cost of Energy - Key Assumptions), accessed: 2023-12-14.",,2023.0 offwind,FOM,2.3741,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Fixed O&M [EUR/MW_e/y, 2020]",2020.0 offwind,VOM,0.0212,EUR/MWhel,RES costs made up to fix curtailment order, from old pypsa cost assumptions,2015.0 -offwind,investment,1769.1171,"EUR/kW_e, 2020","Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Nominal investment [MEUR/MW_e, 2020] grid connection costs subtracted from investment costs",2020.0 +offwind,investment,1769.1171,"EUR/kW_e, 2020","Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Nominal investment [MEUR/MW_e, 2020] grid connection costs substracted from investment costs",2020.0 offwind,lifetime,30.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",21 Offshore turbines: Technical lifetime [years],2020.0 offwind-ac-connection-submarine,investment,2841.3251,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions,2015.0 offwind-ac-connection-underground,investment,1420.1334,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions,2015.0 @@ -1035,12 +1098,22 @@ organic rankine cycle,FOM,2.0,%/year,"Aghahosseini, Breyer 2020: From hot rock t organic rankine cycle,electricity-input,0.12,MWh_el/MWh_th,"Aghahosseini, Breyer 2020: From hot rock to useful energy: A global estimate of enhanced geothermal systems potential, https://www.sciencedirect.com/science/article/pii/S0306261920312551; Breede et al. 2015: Overcoming challenges in the classification of deep geothermal potential, https://eprints.gla.ac.uk/169585/","Heat-input, Electricity-output. This is a rough estimate, depends on input temperature, implies ~150 C.",2020.0 organic rankine cycle,investment,1376.0,EUR/kW_el,Tartiere and Astolfi 2017: A world overview of the organic Rankine cycle market,"Low rollout complicates the estimation, compounded by a dependence both on plant size and temperature, converted from 1500 USD/kW using currency conversion 1.09 USD = 1 EUR.",2020.0 organic rankine cycle,lifetime,30.0,years,"Aghahosseini, Breyer 2020: From hot rock to useful energy: A global estimate of enhanced geothermal systems potential, https://www.sciencedirect.com/science/article/pii/S0306261920312551",,2020.0 +pelletization,FOM,3.0,%/year,Own assumption: find better,,2025.0 +pelletization,electricity-input,0.1,MW_e/MW_pellets,Own assumption: find better,,2025.0 +pelletization,investment,0.0,EUR/MW_pellets,Own assumption: find better,,2020.0 +pelletization,lifetime,15.0,years,Own assumption: find better,,2025.0 +perennials gbr,FOM,0.0,%year,Own assumption,,2015.0 +perennials gbr,VOM,43.2317,EUR/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,"includes purchase of perennial crops and sales of proteine concentrate, table 8.1 wages, maintenance and auxiliary costs",2015.0 +perennials gbr,biogas-output,0.1947,MWh/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,table 2,2015.0 +perennials gbr,electricity-input,0.0733,MWh/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,table 2,2015.0 +perennials gbr,investment,1371168.1394,EUR/tDM/h,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,includes cost for biogas plant without upgrading,2015.0 +perennials gbr,lifetime,25.0,years,Own assumption,,2015.0 ror,FOM,2.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 ror,efficiency,0.9,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 ror,investment,3412.2266,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2010.0 ror,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions,2015.0 seawater RO desalination,electricity-input,0.003,MWHh_el/t_H2O,"Caldera et al. (2016): Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Fig. 4.",Desalination using SWRO. Assume medium salinity of 35 Practical Salinity Units (PSUs) = 35 kg/m^3., -seawater desalination,FOM,4.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2015.0 +seawater desalination,FOM,4.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, seawater desalination,electricity-input,3.0348,kWh/m^3-H2O,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Fig. 4.",, seawater desalination,investment,39056.5182,EUR/(m^3-H2O/h),"Caldera et al 2017: Learning Curve for Seawater Reverse Osmosis Desalination Plants: Capital Cost Trend of the Past, Present, and Future (https://doi.org/10.1002/2017WR021402), Table 4.",,2015.0 seawater desalination,lifetime,30.0,years,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, @@ -1066,7 +1139,7 @@ solar-utility,lifetime,37.5,years,"Danish Energy Agency, technology_data_for_el_ solar-utility single-axis tracking,FOM,2.0365,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Fixed O&M [2020-EUR/MW_e/y],2020.0 solar-utility single-axis tracking,investment,552.4113,EUR/kW_e,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Nominal investment [2020-MEUR/MW_e],2020.0 solar-utility single-axis tracking,lifetime,37.5,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Technical lifetime [years],2020.0 -solid biomass,CO2 intensity,0.3667,tCO2/MWh_th,Stoichiometric calculation with 18 GJ/t_DM LHV and 50% C-content for solid biomass,, +solid biomass,CO2 intensity,0.3757,tCO2/MWh_th,Stoichiometric calculation with 18 GJ/t_DM LHV and 50% C-content for solid biomass,, solid biomass,fuel,13.6489,EUR/MWh_th,"JRC ENSPRESO ca avg for MINBIOWOOW1 (secondary forest residue wood chips), ENS_Ref for 2040",,2010.0 solid biomass boiler steam,FOM,5.7564,%/year,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Fixed O&M,2019.0 solid biomass boiler steam,VOM,2.8216,EUR/MWh,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Variable O&M,2019.0 @@ -1078,7 +1151,7 @@ solid biomass boiler steam CC,VOM,2.8216,EUR/MWh,"Danish Energy Agency, technolo solid biomass boiler steam CC,efficiency,0.89,per unit,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx","311.1e Steam boiler Wood: Total efficiency, net, annual average",2019.0 solid biomass boiler steam CC,investment,608.7773,EUR/kW,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Nominal investment,2019.0 solid biomass boiler steam CC,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Technical lifetime,2019.0 -solid biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 +solid biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, solid biomass to hydrogen,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, solid biomass to hydrogen,efficiency,0.56,per unit,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, solid biomass to hydrogen,investment,3972.2994,EUR/kW_th,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 diff --git a/outputs/costs_2030.csv b/outputs/costs_2030.csv index 23530ac9..7e57105f 100644 --- a/outputs/costs_2030.csv +++ b/outputs/costs_2030.csv @@ -41,18 +41,18 @@ Battery electric (passenger cars),lifetime,15.0,years,PATHS TO A CLIMATE-NEUTRAL Battery electric (trucks),FOM,15.0,%,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 Battery electric (trucks),investment,136400.0,EUR/LKW,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 Battery electric (trucks),lifetime,15.0,years,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 -BioSNG,C in fuel,0.3402,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BioSNG,C stored,0.6598,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BioSNG,CO2 stored,0.2419,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,C in fuel,0.3321,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,C stored,0.6679,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,CO2 stored,0.2509,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, BioSNG,FOM,1.6375,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Fixed O&M",2020.0 BioSNG,VOM,1.8078,EUR/MWh_th,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Variable O&M",2020.0 BioSNG,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, BioSNG,efficiency,0.63,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Bio SNG Output",2020.0 BioSNG,investment,1701.44,EUR/kW_th,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Specific investment",2020.0 BioSNG,lifetime,25.0,years,TODO,"84 Gasif. CFB, Bio-SNG: Technical lifetime",2020.0 -BtL,C in fuel,0.2688,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BtL,C stored,0.7312,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BtL,CO2 stored,0.2681,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,C in fuel,0.2624,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,C stored,0.7376,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,CO2 stored,0.2771,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, BtL,FOM,2.6667,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","85 Gasif. Ent. Flow FT, liq fu : Fixed O&M",2020.0 BtL,VOM,1.1299,EUR/MWh_FT,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","85 Gasif. Ent. Flow FT, liq fu : Variable O&M",2020.0 BtL,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, @@ -89,18 +89,36 @@ CH4 liquefaction,electricity-input,0.036,MWh_el/MWh_CH4,"Pospíšil et al. (2019 CH4 liquefaction,investment,241.443,EUR/kW_CH4,"Calculated, based on Lochner and Bothe (2009): https://doi.org/10.1016/j.enpol.2008.12.012 and Fasihi et al 2017, table 1, https://www.mdpi.com/2071-1050/9/2/306","based on 265 MUSD-2005/(1 bcm/a), 1 bcm = 10.6 TWh, currency exchange rate: 1.15 USD=1 EUR.",2005.0 CH4 liquefaction,lifetime,25.0,years,"Fasihi et al 2017, table 1, https://www.mdpi.com/2071-1050/9/2/306",,2005.0 CH4 liquefaction,methane-input,1.0,MWh_CH4/MWh_CH4,"Pospíšil et al. (2019): Energy demand of liquefaction and regasification of natural gas and the potential of LNG for operative thermal energy storage (https://doi.org/10.1016/j.rser.2018.09.027), Table 2 and Table 3. alternative source 2: https://encyclopedia.airliquide.com/methane (accessed 2021-02-10).","For refrigeration cycle, cleaning of gas presumed unnecessary as it should be nearly pure CH4 (=SNG). Assuming energy required is only electricity which is for Table 3 in the source provided with efficiencies of ~50% of LHV, making the numbers consistent with the numbers in Table 2.", +CO2 gas pipe,FOM,0.1,%/year,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2025.0 +CO2 gas pipe,investment,130000.0,EUR/(t/h)/km,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2020.0 +CO2 gas pipe,lifetime,50.0,years,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2025.0 +CO2 industrial compressor,FOM,4.0,%/year,Aarhus University BCE estimate,,2020.0 +CO2 industrial compressor,investment,1516000.0,EUR/t/h_CO2,Aarhus University BCE estimate,,2020.0 +CO2 industrial compressor,lifetime,15.0,years,Aarhus University BCE estimate,,2020.0 CO2 liquefaction,FOM,5.0,%/year,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,,2004.0 CO2 liquefaction,carbondioxide-input,1.0,t_CO2/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,"Assuming a pure, humid, low-pressure input stream. Neglecting possible gross-effects of CO2 which might be cycled for the cooling process.", CO2 liquefaction,electricity-input,0.123,MWh_el/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,, CO2 liquefaction,heat-input,0.0067,MWh_th/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,For drying purposes., CO2 liquefaction,investment,16.7226,EUR/t_CO2/h,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,"Plant capacity of 20 kt CO2 / d and an uptime of 85%. For a high purity, humid, low pressure input stream, includes drying and compression necessary for liquefaction.",2004.0 CO2 liquefaction,lifetime,25.0,years,"Guesstimate, based on CH4 liquefaction.",,2004.0 +CO2 liquefaction small,CO2-input,1.0,t_CO2/t_CO2,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants., +CO2 liquefaction small,FOM,4.0,%/year,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 +CO2 liquefaction small,electricity-input,0.185,MWh_el/t_CO2,DEA technology data for carbon capture and storage V.3,"411 liquefaction - for biogas plants - storage at 16 bara and -27C, including pumping into storage tanks.", +CO2 liquefaction small,heat-output,0.25,MWh_th/t_CO2,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants., +CO2 liquefaction small,investment,543016.4523,EUR/t_CO2/h,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 +CO2 liquefaction small,lifetime,20.0,years,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 CO2 pipeline,FOM,0.9,%/year,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 CO2 pipeline,investment,2116.4433,EUR/(tCO2/h)/km,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",Assuming the 120-500 t CO2/h range that is based on cost of a 12 inch onshore pipeline.,2015.0 CO2 pipeline,lifetime,50.0,years,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 +CO2 storage cylinders,FOM,1.0,%/year,Aarhus University BCE estimate,,202.0 +CO2 storage cylinders,investment,77000.0,EUR/tCO2,Aarhus University BCE estimate,,2020.0 +CO2 storage cylinders,lifetime,25.0,years,Aarhus University BCE estimate,,2020.0 CO2 storage tank,FOM,1.0,%/year,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, pg. 2746 .","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 CO2 storage tank,investment,2584.3462,EUR/t_CO2,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, Table 3.","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 CO2 storage tank,lifetime,25.0,years,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, pg. 2746 .","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 +CO2 storage tank small,FOM,3.0,%/year,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 +CO2 storage tank small,investment,3102.9512,EUR/t_CO2,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 +CO2 storage tank small,lifetime,25.0,years,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 CO2 submarine pipeline,FOM,0.5,%/year,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 CO2 submarine pipeline,investment,4232.8865,EUR/(tCO2/h)/km,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",Assuming the 120-500 t CO2/h range that is based on cost of a 12 inch offshore pipeline.,2015.0 Charging infrastructure fast (purely) battery electric vehicles passenger cars,FOM,1.6,%,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Charging infrastructure fast (purely) battery electric vehicles passenger cars,2020.0 @@ -151,6 +169,10 @@ Concrete-store,lifetime,35.0,years,"Viswanathan_2022, p.107 (p.129)","{'carrier' "Container, methanol",efficiency,1.7001,MWh/km,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 "Container, methanol",investment,125635594.6493,EUR,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 "Container, methanol",lifetime,32.0,years,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 +DH heat exchanger,FOM,0.1,%/year,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +DH heat exchanger,efficiency,0.95, - ,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +DH heat exchanger,investment,140.162,EUR/MW,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2020.0 +DH heat exchanger,lifetime,35.0,years,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 Diesel Bus city,FOM,0.0004,%/year,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 Diesel Bus city,Motor size,250.0,kW,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 Diesel Bus city,VOM,0.1068,EUR/km,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 @@ -287,6 +309,9 @@ H2 liquefaction,hydrogen-input,1.017,MWh_H2/MWh_H2,"Heuser et al. (2019): Techno H2 liquefaction,investment,889.9426,EUR/kW_H2,"IRENA (2022): Global Hydrogen Trade to Meet the 1.5° Climate Goal: Technology Review of Hydrogen Carriers, https://www.irena.org/publications/2022/Apr/Global-hydrogen-trade-Part-II , pg. 62f.","Assumption for a 200t/d facility (Pessimistic long-term or optimistic short-term value).; and Assumption for a large >300t/d, e.g. 2500 t/d facility (Optimistic long-term value without change in base technology mentioned in report).",2022.0 H2 liquefaction,lifetime,20.0,years,"Reuß et al 2017, https://doi.org/10.1016/j.apenergy.2017.05.050 , Table 9.",,2022.0 +H2 pipe,FOM,0.1,%/year,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2025.0 +H2 pipe,investment,38000.0,EUR/MW/km,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2020.0 +H2 pipe,lifetime,30.0,years,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2025.0 H2 pipeline,FOM,3.0,%/year,TODO, from old pypsa cost assumptions,2015.0 H2 pipeline,investment,282.5452,EUR/MW/km,Welder et al https://doi.org/10.1016/j.energy.2018.05.059, from old pypsa cost assumptions,2015.0 H2 pipeline,lifetime,40.0,years,TODO, from old pypsa cost assumptions,2015.0 @@ -307,6 +332,8 @@ HVDC underground,investment,1008.2934,EUR/MW/km,Härtel et al. (2017): https://d HVDC underground,lifetime,40.0,years,Purvins et al. (2018): https://doi.org/10.1016/j.jclepro.2018.03.095 .,"Based on estimated costs for a NA-EU connector (bidirectional,4 GW, 3000km length and ca. 3000m depth). Costs in return based on existing/currently under construction undersea cables. (same as for HVDC submarine)",2018.0 Haber-Bosch,FOM,3.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Fixed O&M,2015.0 Haber-Bosch,VOM,0.0225,EUR/MWh_NH3,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Variable O&M,2015.0 +Haber-Bosch,efficiency,0.0005,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: Electricity Consumption,",2015.0 +Haber-Bosch,efficiency-heat,0.0004,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: District Heating Output,",2015.0 Haber-Bosch,electricity-input,0.2473,MWh_el/MWh_NH3,"DECHEMA 2017: DECHEMA: Low carbon energy and feedstock for the European chemical industry (https://dechema.de/dechema_media/Downloads/Positionspapiere/Technology_study_Low_carbon_energy_and_feedstock_for_the_European_chemical_industry.pdf), table 11.",Assume 5 GJ/t_NH3 for compressors and NH3 LHV = 5.16666 MWh/t_NH3., Haber-Bosch,hydrogen-input,1.1484,MWh_H2/MWh_NH3,"DECHEMA 2017: DECHEMA: Low carbon energy and feedstock for the European chemical industry (https://dechema.de/dechema_media/Downloads/Positionspapiere/Technology_study_Low_carbon_energy_and_feedstock_for_the_European_chemical_industry.pdf), pg. 57.","178 kg_H2 per t_NH3, LHV for both assumed.", Haber-Bosch,investment,1460.0135,EUR/kW_NH3,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Specific investment,2015.0 @@ -428,6 +455,9 @@ Methanol steam reforming,FOM,4.0,%/year,"Niermann et al. (2021): Liquid Organic Methanol steam reforming,investment,18016.8665,EUR/MW_H2,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.","For high temperature steam reforming plant with a capacity of 200 MW_H2 output (6t/h). Reference plant of 1 MW (30kg_H2/h) costs 150kEUR, scale factor of 0.6 assumed.",2020.0 Methanol steam reforming,lifetime,20.0,years,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.",,2020.0 Methanol steam reforming,methanol-input,1.201,MWh_MeOH/MWh_H2,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.",Assuming per 1 t_H2 (with LHV 33.3333 MWh/t): 4.5 MWh_th and 3.2 MWh_el are required. We assume electricity can be substituted / provided with 1:1 as heat energy., +NG grid connection,FOM,0.2,%/year,https://evida.dk/tarifblad010125/,EVIDA.DK,2025.0 +NG grid connection,investment,1155.9268,EUR/MW,https://evida.dk/tarifblad010125/,EVIDA.DK,2025.0 +NG grid connection,lifetime,40.0,years,Own assumption,,2025.0 NH3 (l) storage tank incl. liquefaction,FOM,2.0,%/year,"Guesstimate, based on H2 (l) storage tank.",,2010.0 NH3 (l) storage tank incl. liquefaction,investment,166.8201,EUR/MWh_NH3,"Calculated based on Morgan E. 2013: doi:10.7275/11KT-3F59 , Fig. 55, Fig 58.","Based on estimated for a double-wall liquid ammonia tank (~ambient pressure, -33°C), inner tank from stainless steel, outer tank from concrete including installations for liquefaction/condensation, boil-off gas recovery and safety installations; the necessary installations make only a small fraction of the total cost. The total cost are driven by material and working time on the tanks. While the costs do not scale strictly linearly, we here assume they do (good approximation c.f. ref. Fig 55.) and take the costs for a 9 kt NH3 (l) tank = 8 M$2010, which is smaller 4-5x smaller than the largest deployed tanks today. @@ -454,6 +484,9 @@ PHS,FOM,1.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa PHS,efficiency,0.75,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 PHS,investment,2274.8177,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2010.0 PHS,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions,2015.0 +PWH pipe,FOM,0.1,%/year,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +PWH pipe,investment,63000.0,EUR/MW/km,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2020.0 +PWH pipe,lifetime,45.0,years,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 Pumped-Heat-charger,FOM,0.366,%/year,"Viswanathan_2022, NULL","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Guesstimate, 50% on charger']}",2020.0 Pumped-Heat-charger,efficiency,0.99,per unit,"Viswanathan_2022, NULL","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Charger']}",2020.0 Pumped-Heat-charger,investment,761782.6727,EUR/MW,"Georgiou_2018, Figure 9 of reference roughly 80% of capital cost are power related 47%/80% of costs are required for liquefaction (charging)","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Power Equipment Charge']}",2020.0 @@ -472,12 +505,12 @@ Pumped-Storage-Hydro-bicharger,lifetime,60.0,years,"Viswanathan_2022, p.68 (p.90 Pumped-Storage-Hydro-store,FOM,0.43,%/year,"Viswanathan_2022, 0.43 % of SB","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['derived']}",2020.0 Pumped-Storage-Hydro-store,investment,57074.0625,EUR/MWh,"Viswanathan_2022, p.68 (p.90)","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['Reservoir Construction & Infrastructure']}",2020.0 Pumped-Storage-Hydro-store,lifetime,60.0,years,"Viswanathan_2022, p.68 (p.90)","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['NULL']}",2020.0 -SMR,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 +SMR,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311", SMR,efficiency,0.76,per unit (in LHV),"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, SMR,investment,522201.0492,EUR/MW_CH4,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 SMR,lifetime,30.0,years,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, -SMR CC,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 -SMR CC,capture_rate,0.9,per unit,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",wide range: capture rates between 54%-90%, +SMR CC,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311", +SMR CC,capture_rate,0.9,EUR/MW_CH4,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",wide range: capture rates betwen 54%-90%, SMR CC,efficiency,0.69,per unit (in LHV),"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, SMR CC,investment,605753.2171,EUR/MW_CH4,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 SMR CC,lifetime,30.0,years,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, @@ -534,6 +567,8 @@ Zn-Br-Nonflow-store,FOM,0.2244,%/year,"Viswanathan_2022, 0.43 % of SB","{'carrie Zn-Br-Nonflow-store,investment,239220.5823,EUR/MWh,"Viswanathan_2022, p.59 (p.81) Table 4.14","{'carrier': ['znbr'], 'technology_type': ['store'], 'type': ['electrochemical'], 'note': ['DC storage block']}",2020.0 Zn-Br-Nonflow-store,lifetime,15.0,years,"Viswanathan_2022, p.59 (p.81)","{'carrier': ['znbr'], 'technology_type': ['store'], 'type': ['electrochemical'], 'note': ['NULL']}",2020.0 air separation unit,FOM,3.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Fixed O&M,2015.0 +air separation unit,efficiency,0.0005,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: Electricity Consumption,",2015.0 +air separation unit,efficiency-heat,0.0004,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: District Heating Output,",2015.0 air separation unit,electricity-input,0.25,MWh_el/t_N2,"DEA (2022): Technology Data for Renewable Fuels (https://ens.dk/en/our-services/projections-and-models/technology-data/technology-data-renewable-fuels), p.288.","For consistency reasons use value from Danish Energy Agency. DEA also reports range of values (0.2-0.4 MWh/t_N2) on pg. 288. Other efficienices reported are even higher, e.g. 0.11 Mwh/t_N2 from Morgan (2013): Techno-Economic Feasibility Study of Ammonia Plants Powered by Offshore Wind .", air separation unit,investment,820676.5784,EUR/t_N2/h,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Specific investment,2015.0 air separation unit,lifetime,30.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Technical lifetime,2015.0 @@ -548,12 +583,13 @@ battery inverter,lifetime,10.0,years,"Danish Energy Agency, technology_data_cata battery storage,investment,150.2675,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Energy storage expansion cost investment,2015.0 battery storage,lifetime,25.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Technical lifetime,2015.0 biochar pyrolysis,FOM,3.4167,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Fixed O&M",2020.0 -biochar pyrolysis,VOM,823.497,EUR/MWh_biochar,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Variable O&M",2020.0 -biochar pyrolysis,efficiency-biochar,0.404,MWh_biochar/MWh_feedstock,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: efficiency biochar",2020.0 -biochar pyrolysis,efficiency-heat,0.4848,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: efficiency heat",2020.0 -biochar pyrolysis,investment,154405.68,EUR/kW_biochar,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 +biochar pyrolysis,VOM,47.6777,EUR/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Variable O&M",2020.0 +biochar pyrolysis,biomass input,7.6748,MWh_biomass/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Biomass Input",2020.0 +biochar pyrolysis,electricity input,0.3184,MWh_e/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: El-Input",2020.0 +biochar pyrolysis,heat output,3.7859,MWh_th/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: H-Output",2020.0 +biochar pyrolysis,investment,8939565.2069,EUR/t_CO2/h,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Technical lifetime",2020.0 -biochar pyrolysis,yield-biochar,0.0582,ton biochar/MWh_feedstock,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: yield biochar",2020.0 +biochar pyrolysis,yield-biochar,0.0597,t_biochar/MWh_biomass,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: yield biochar",2020.0 biodiesel crops,fuel,137.6508,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIORPS1 (rape seed), ENS_BaU_GFTM",,2010.0 bioethanol crops,fuel,82.4367,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIOCRP11 (Bioethanol barley, wheat, grain maize, oats, other cereals and rye), ENS_BaU_GFTM",,2010.0 biogas,CO2 stored,0.0868,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, @@ -570,10 +606,18 @@ biogas CC,efficiency,1.0,per unit,Assuming input biomass is already given in bio biogas CC,investment,955.1865,EUR/kW,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","81 Biogas, Basic plant, small: Specific investment",2020.0 biogas CC,lifetime,20.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","81 Biogas, Basic plant, small: Technical lifetime",2020.0 biogas manure,fuel,19.8676,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIOGAS1 (manure), ENS_BaU_GFTM",,2010.0 -biogas plus hydrogen,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Fixed O&M,2020.0 -biogas plus hydrogen,VOM,3.8282,EUR/MWh_CH4,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Variable O&M,2020.0 -biogas plus hydrogen,investment,803.9304,EUR/kW_CH4,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Specific investment,2020.0 +biogas plus hydrogen,Biogas Input,1.1522,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Biogas Consumption,",2020.0 +biogas plus hydrogen,CO2 Input,0.1235,t_CO2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: CO2 Input,",2020.0 +biogas plus hydrogen,Methane Output,1.9348,MWh_CH4/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Methane Output,",2020.0 +biogas plus hydrogen,VOM,7.4068,EUR/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Variable O&M,2020.0 +biogas plus hydrogen,electricity input,0.0217,MWh_e/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: El-Input,",2020.0 +biogas plus hydrogen,heat output,0.2174,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: H-Output,",2020.0 +biogas plus hydrogen,hydrogen input,1.0,MWh_H2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Hydrogen Consumption,",2020.0 +biogas plus hydrogen,investment,1555.4306,EUR/kW_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Specific investment,2020.0 biogas plus hydrogen,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Technical lifetime,2020.0 +biogas storage,FOM,0.2,%/year,Aarhus University BCE estimate,,2025.0 +biogas storage,investment,16750.0,EUR/MWh_biogas,Aarhus University BCE estimate,,2020.0 +biogas storage,lifetime,15.0,years,Aarhus University BCE estimate,,2025.0 biogas upgrading,FOM,17.0397,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: Fixed O&M ",2020.0 biogas upgrading,VOM,3.6704,EUR/MWh output,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: Variable O&M",2020.0 biogas upgrading,investment,170.2068,EUR/kW,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: investment (upgrading, methane redution and grid injection)",2020.0 @@ -613,14 +657,18 @@ biomass HOP,VOM,2.9457,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and biomass HOP,efficiency,1.0323,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09c Straw HOP: Total efficiency , net, annual average",2015.0 biomass HOP,investment,881.102,EUR/kW_th - heat output,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",09c Straw HOP: Nominal investment ,2015.0 biomass HOP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",09c Straw HOP: Technical lifetime,2015.0 +biomass belt dryer,FOM,3.0,%/year,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,electricity-input,0.025,MWh/t_H2O removed,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,heat-input,1.0,MWh/t_H2O removed,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,lifetime,20.0,years,DOI: 10.1080/07373937.2018.1492615,,2020.0 biomass boiler,FOM,7.4851,%/year,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Fixed O&M",2015.0 biomass boiler,efficiency,0.86,per unit,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Heat efficiency, annual average, net",2015.0 biomass boiler,investment,687.1015,EUR/kW_th,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Specific investment",2015.0 biomass boiler,lifetime,20.0,years,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Technical lifetime",2015.0 biomass boiler,pelletizing cost,9.0,EUR/MWh_pellets,Assumption based on doi:10.1016/j.rser.2019.109506,,2019.0 -biomass-to-methanol,C in fuel,0.4129,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -biomass-to-methanol,C stored,0.5871,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -biomass-to-methanol,CO2 stored,0.2153,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,C in fuel,0.403,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,C stored,0.597,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,CO2 stored,0.2243,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, biomass-to-methanol,FOM,1.3333,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Fixed O&M,2020.0 biomass-to-methanol,VOM,14.4653,EUR/MWh_MeOH,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Variable O&M,2020.0 biomass-to-methanol,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, @@ -629,6 +677,15 @@ biomass-to-methanol,efficiency-electricity,0.02,MWh_e/MWh_th,"Danish Energy Agen biomass-to-methanol,efficiency-heat,0.22,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","97 Methanol from biomass gasif.: District heat Output,",2020.0 biomass-to-methanol,investment,3106.3291,EUR/kW_MeOH,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Specific investment,2020.0 biomass-to-methanol,lifetime,20.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Technical lifetime,2020.0 +biomethanation,Biogas Input,1.1444,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Biogas Consumption,",2020.0 +biomethanation,CO2 Input,0.165,t_CO2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: CO2 Input,",2020.0 +biomethanation,FOM,5.3333,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Fixed O&M ,2020.0 +biomethanation,Hydrogen Input,1.0,MWh_H2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Hydrogen Input,",2020.0 +biomethanation,Methane Output,1.9673,MWh_CH4/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Methane Output,",2020.0 +biomethanation,electricity input,0.0417,MWh_e/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: El-Input,",2020.0 +biomethanation,heat output,0.1667,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: H-Output,",2020.0 +biomethanation,investment,1234.375,EUR/kW_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Specific investment ,2020.0 +biomethanation,lifetime,30.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Technical lifetime,2020.0 cement capture,FOM,3.0,%/year,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 cement capture,capture_rate,0.9,per unit,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 cement capture,compression-electricity-input,0.085,MWh/tCO2,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 @@ -715,7 +772,7 @@ central solid biomass CHP CC,c_b,0.3506,50°C/100°C,"Danish Energy Agency, tech central solid biomass CHP CC,c_v,1.0,50°C/100°C,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Cv coefficient",2015.0 central solid biomass CHP CC,efficiency,0.2699,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Electricity efficiency, net, annual average",2015.0 central solid biomass CHP CC,efficiency-heat,0.8245,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Heat efficiency, net, annual average",2015.0 -central solid biomass CHP CC,investment,5207.5282,EUR/kW_e,Combination of central solid biomass CHP CC and solid biomass boiler steam,,2015.0 +central solid biomass CHP CC,investment,5248.2854,EUR/kW_e,Combination of central solid biomass CHP CC and solid biomass boiler steam,,2015.0 central solid biomass CHP CC,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Technical lifetime",2015.0 central solid biomass CHP powerboost CC,FOM,2.8661,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Fixed O&M",2015.0 central solid biomass CHP powerboost CC,VOM,4.8512,EUR/MWh_e,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Variable O&M ",2015.0 @@ -742,7 +799,13 @@ central water-sourced heat pump,VOM,1.6826,EUR/MWh,"Danish Energy Agency, techno central water-sourced heat pump,efficiency,3.82,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Total efficiency , net, annual average",2015.0 central water-sourced heat pump,investment,1058.2216,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Specific investment",2015.0 central water-sourced heat pump,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Technical lifetime",2015.0 -clean water tank storage,FOM,2.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2013.0 +centrifugal dewatering,DM out,0.45,kgDM/kgtot,https://dcapub.au.dk/djfpublikation/djfpdf/DCArapport208.pdf,,2025.0 +centrifugal dewatering,DM separation,0.509,kg_out/kg_in,https://dcapub.au.dk/djfpublikation/djfpdf/DCArapport208.pdf,,2025.0 +centrifugal dewatering,FOM,3.5,%/year,https://doi.org/10.3390/agronomy11050836,,2025.0 +centrifugal dewatering,electricity-input,0.005,MWh/tDM_in,calc from : https://doi.org/10.3390/su16135461,,2025.0 +centrifugal dewatering,investment,130000.0,EUR/t/h fibers,https://doi.org/10.3390/agronomy11050836,,2020.0 +centrifugal dewatering,lifetime,20.0,years, https://doi.org/10.3390/su16135461,,2025.0 +clean water tank storage,FOM,2.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, clean water tank storage,investment,69.1286,EUR/m^3-H2O,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2013.0 clean water tank storage,lifetime,30.0,years,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, coal,CO2 intensity,0.3361,tCO2/MWh_th,Entwicklung der spezifischen Kohlendioxid-Emissionen des deutschen Strommix in den Jahren 1990 - 2018,, @@ -804,7 +867,7 @@ decentral water tank storage,energy to power ratio,0.15,h,"Danish Energy Agency, decentral water tank storage,investment,433.8709,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",142 Small scale hot water tank: Specific investment,2015.0 decentral water tank storage,lifetime,30.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",142 Small scale hot water tank: Technical lifetime,2015.0 digestible biomass,fuel,17.0611,EUR/MWh_th,"JRC ENSPRESO ca avg for MINBIOAGRW1, ENS_Ref for 2040",,2010.0 -digestible biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 +digestible biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, digestible biomass to hydrogen,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, digestible biomass to hydrogen,efficiency,0.39,per unit,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, digestible biomass to hydrogen,investment,3707.4795,EUR/kW_th,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 @@ -869,18 +932,18 @@ electricity distribution grid,lifetime,40.0,years,TODO, from old pypsa cost assu electricity grid connection,FOM,2.0,%/year,TODO, from old pypsa cost assumptions,2015.0 electricity grid connection,investment,148.151,EUR/kW,DEA, from old pypsa cost assumptions,2015.0 electricity grid connection,lifetime,40.0,years,TODO, from old pypsa cost assumptions,2015.0 -electrobiofuels,C in fuel,0.9269,per unit,Stoichiometric calculation,, -electrobiofuels,FOM,2.6667,%/year,combination of BtL and electrofuels,,2015.0 -electrobiofuels,VOM,4.2296,EUR/MWh_th,combination of BtL and electrofuels,,2017.0 +electrobiofuels,C in fuel,0.9262,per unit,Stoichiometric calculation,, +electrobiofuels,FOM,2.6667,%/year,combination of BtL and electrofuels,, +electrobiofuels,VOM,4.2565,EUR/MWh_th,combination of BtL and electrofuels,,2017.0 electrobiofuels,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, -electrobiofuels,efficiency-biomass,1.3217,per unit,Stoichiometric calculation,, -electrobiofuels,efficiency-hydrogen,1.2142,per unit,Stoichiometric calculation,, -electrobiofuels,efficiency-tot,0.6328,per unit,Stoichiometric calculation,, -electrobiofuels,investment,466206.9921,EUR/kW_th,combination of BtL and electrofuels,,2017.0 +electrobiofuels,efficiency-biomass,1.3531,per unit,Stoichiometric calculation,, +electrobiofuels,efficiency-hydrogen,1.2036,per unit,Stoichiometric calculation,, +electrobiofuels,efficiency-tot,0.637,per unit,Stoichiometric calculation,, +electrobiofuels,investment,470280.0038,EUR/kW_th,combination of BtL and electrofuels,,2017.0 electrolysis,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Fixed O&M ,2020.0 electrolysis,efficiency,0.6217,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Hydrogen Output,2020.0 electrolysis,efficiency-heat,0.2228,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: - hereof recoverable for district heating,2020.0 -electrolysis,investment,1500.0,EUR/kW_e,private communications; IEA https://iea.blob.core.windows.net/assets/9e0c82d4-06d2-496b-9542-f184ba803645/TheRoleofE-fuelsinDecarbonisingTransport.pdf,,2020.0 +electrolysis,investment,550.0,EUR/kW_e,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Specific investment,2020.0 electrolysis,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Technical lifetime,2020.0 electrolysis small,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 10 MW: Fixed O&M ,2020.0 electrolysis small,efficiency,0.6217,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 10 MW: Hydrogen Output,2020.0 @@ -900,7 +963,7 @@ gas boiler steam,VOM,1.007,EUR/MWh,"Danish Energy Agency, technology_data_for_in gas boiler steam,efficiency,0.93,per unit,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx","311.1c Steam boiler Gas: Total efficiency, net, annual average",2019.0 gas boiler steam,investment,45.7727,EUR/kW,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1c Steam boiler Gas: Nominal investment,2019.0 gas boiler steam,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1c Steam boiler Gas: Technical lifetime,2019.0 -gas storage,FOM,3.5919,%,Danish Energy Agency,"150 Underground Storage of Gas, Operation and Maintenance, salt cavern (units converted)",2015.0 +gas storage,FOM,3.5919,%,Danish Energy Agency,"150 Underground Storage of Gas, Operation and Maintenace, salt cavern (units converted)",2015.0 gas storage,investment,0.0348,EUR/kWh,Danish Energy Agency,"150 Underground Storage of Gas, Establishment of one cavern (units converted)",2015.0 gas storage,lifetime,100.0,years,TODO no source,"estimation: most underground storage are already build, they do have a long lifetime",2015.0 gas storage charger,investment,15.1737,EUR/kW,Danish Energy Agency,"150 Underground Storage of Gas, Process equipment (units converted)",2015.0 @@ -1006,7 +1069,7 @@ nuclear,investment,8594.1354,EUR/kW_e,"Lazard's levelized cost of energy analysi nuclear,lifetime,40.0,years,"Lazard's levelized cost of energy analysis - version 16.0 (2023): https://www.lazard.com/media/typdgxmm/lazards-lcoeplus-april-2023.pdf , pg. 49 (Levelized Cost of Energy - Key Assumptions), accessed: 2023-12-14.",,2023.0 offwind,FOM,2.3185,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Fixed O&M [EUR/MW_e/y, 2020]",2020.0 offwind,VOM,0.0212,EUR/MWhel,RES costs made up to fix curtailment order, from old pypsa cost assumptions,2015.0 -offwind,investment,1682.1226,"EUR/kW_e, 2020","Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Nominal investment [MEUR/MW_e, 2020] grid connection costs subtracted from investment costs",2020.0 +offwind,investment,1682.1226,"EUR/kW_e, 2020","Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Nominal investment [MEUR/MW_e, 2020] grid connection costs substracted from investment costs",2020.0 offwind,lifetime,30.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",21 Offshore turbines: Technical lifetime [years],2020.0 offwind-ac-connection-submarine,investment,2841.3251,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions,2015.0 offwind-ac-connection-underground,investment,1420.1334,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions,2015.0 @@ -1035,12 +1098,22 @@ organic rankine cycle,FOM,2.0,%/year,"Aghahosseini, Breyer 2020: From hot rock t organic rankine cycle,electricity-input,0.12,MWh_el/MWh_th,"Aghahosseini, Breyer 2020: From hot rock to useful energy: A global estimate of enhanced geothermal systems potential, https://www.sciencedirect.com/science/article/pii/S0306261920312551; Breede et al. 2015: Overcoming challenges in the classification of deep geothermal potential, https://eprints.gla.ac.uk/169585/","Heat-input, Electricity-output. This is a rough estimate, depends on input temperature, implies ~150 C.",2020.0 organic rankine cycle,investment,1376.0,EUR/kW_el,Tartiere and Astolfi 2017: A world overview of the organic Rankine cycle market,"Low rollout complicates the estimation, compounded by a dependence both on plant size and temperature, converted from 1500 USD/kW using currency conversion 1.09 USD = 1 EUR.",2020.0 organic rankine cycle,lifetime,30.0,years,"Aghahosseini, Breyer 2020: From hot rock to useful energy: A global estimate of enhanced geothermal systems potential, https://www.sciencedirect.com/science/article/pii/S0306261920312551",,2020.0 +pelletization,FOM,3.0,%/year,Own assumption: find better,,2025.0 +pelletization,electricity-input,0.1,MW_e/MW_pellets,Own assumption: find better,,2025.0 +pelletization,investment,0.0,EUR/MW_pellets,Own assumption: find better,,2020.0 +pelletization,lifetime,15.0,years,Own assumption: find better,,2025.0 +perennials gbr,FOM,0.0,%year,Own assumption,,2015.0 +perennials gbr,VOM,43.2317,EUR/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,"includes purchase of perennial crops and sales of proteine concentrate, table 8.1 wages, maintenance and auxiliary costs",2015.0 +perennials gbr,biogas-output,0.1947,MWh/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,table 2,2015.0 +perennials gbr,electricity-input,0.0733,MWh/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,table 2,2015.0 +perennials gbr,investment,1371168.1394,EUR/tDM/h,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,includes cost for biogas plant without upgrading,2015.0 +perennials gbr,lifetime,25.0,years,Own assumption,,2015.0 ror,FOM,2.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 ror,efficiency,0.9,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 ror,investment,3412.2266,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2010.0 ror,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions,2015.0 seawater RO desalination,electricity-input,0.003,MWHh_el/t_H2O,"Caldera et al. (2016): Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Fig. 4.",Desalination using SWRO. Assume medium salinity of 35 Practical Salinity Units (PSUs) = 35 kg/m^3., -seawater desalination,FOM,4.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2015.0 +seawater desalination,FOM,4.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, seawater desalination,electricity-input,3.0348,kWh/m^3-H2O,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Fig. 4.",, seawater desalination,investment,34796.4978,EUR/(m^3-H2O/h),"Caldera et al 2017: Learning Curve for Seawater Reverse Osmosis Desalination Plants: Capital Cost Trend of the Past, Present, and Future (https://doi.org/10.1002/2017WR021402), Table 4.",,2015.0 seawater desalination,lifetime,30.0,years,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, @@ -1066,7 +1139,7 @@ solar-utility,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_ solar-utility single-axis tracking,FOM,2.2884,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Fixed O&M [2020-EUR/MW_e/y],2020.0 solar-utility single-axis tracking,investment,454.4703,EUR/kW_e,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Nominal investment [2020-MEUR/MW_e],2020.0 solar-utility single-axis tracking,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Technical lifetime [years],2020.0 -solid biomass,CO2 intensity,0.3667,tCO2/MWh_th,Stoichiometric calculation with 18 GJ/t_DM LHV and 50% C-content for solid biomass,, +solid biomass,CO2 intensity,0.3757,tCO2/MWh_th,Stoichiometric calculation with 18 GJ/t_DM LHV and 50% C-content for solid biomass,, solid biomass,fuel,13.6489,EUR/MWh_th,"JRC ENSPRESO ca avg for MINBIOWOOW1 (secondary forest residue wood chips), ENS_Ref for 2040",,2010.0 solid biomass boiler steam,FOM,6.0754,%/year,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Fixed O&M,2019.0 solid biomass boiler steam,VOM,2.8448,EUR/MWh,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Variable O&M,2019.0 @@ -1078,7 +1151,7 @@ solid biomass boiler steam CC,VOM,2.8448,EUR/MWh,"Danish Energy Agency, technolo solid biomass boiler steam CC,efficiency,0.89,per unit,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx","311.1e Steam boiler Wood: Total efficiency, net, annual average",2019.0 solid biomass boiler steam CC,investment,595.0455,EUR/kW,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Nominal investment,2019.0 solid biomass boiler steam CC,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Technical lifetime,2019.0 -solid biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 +solid biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, solid biomass to hydrogen,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, solid biomass to hydrogen,efficiency,0.56,per unit,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, solid biomass to hydrogen,investment,3707.4795,EUR/kW_th,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 diff --git a/outputs/costs_2035.csv b/outputs/costs_2035.csv index e7109aa1..d75c527f 100644 --- a/outputs/costs_2035.csv +++ b/outputs/costs_2035.csv @@ -41,18 +41,18 @@ Battery electric (passenger cars),lifetime,15.0,years,PATHS TO A CLIMATE-NEUTRAL Battery electric (trucks),FOM,16.0,%,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 Battery electric (trucks),investment,134700.0,EUR/LKW,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 Battery electric (trucks),lifetime,15.0,years,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 -BioSNG,C in fuel,0.3496,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BioSNG,C stored,0.6504,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BioSNG,CO2 stored,0.2385,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,C in fuel,0.3413,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,C stored,0.6587,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,CO2 stored,0.2474,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, BioSNG,FOM,1.6302,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Fixed O&M",2020.0 BioSNG,VOM,1.7812,EUR/MWh_th,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Variable O&M",2020.0 BioSNG,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, BioSNG,efficiency,0.6475,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Bio SNG Output",2020.0 BioSNG,investment,1674.855,EUR/kW_th,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Specific investment",2020.0 BioSNG,lifetime,25.0,years,TODO,"84 Gasif. CFB, Bio-SNG: Technical lifetime",2020.0 -BtL,C in fuel,0.2805,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BtL,C stored,0.7195,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BtL,CO2 stored,0.2638,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,C in fuel,0.2738,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,C stored,0.7262,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,CO2 stored,0.2728,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, BtL,FOM,2.7484,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","85 Gasif. Ent. Flow FT, liq fu : Fixed O&M",2020.0 BtL,VOM,1.1305,EUR/MWh_FT,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","85 Gasif. Ent. Flow FT, liq fu : Variable O&M",2020.0 BtL,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, @@ -89,18 +89,36 @@ CH4 liquefaction,electricity-input,0.036,MWh_el/MWh_CH4,"Pospíšil et al. (2019 CH4 liquefaction,investment,241.443,EUR/kW_CH4,"Calculated, based on Lochner and Bothe (2009): https://doi.org/10.1016/j.enpol.2008.12.012 and Fasihi et al 2017, table 1, https://www.mdpi.com/2071-1050/9/2/306","based on 265 MUSD-2005/(1 bcm/a), 1 bcm = 10.6 TWh, currency exchange rate: 1.15 USD=1 EUR.",2005.0 CH4 liquefaction,lifetime,25.0,years,"Fasihi et al 2017, table 1, https://www.mdpi.com/2071-1050/9/2/306",,2005.0 CH4 liquefaction,methane-input,1.0,MWh_CH4/MWh_CH4,"Pospíšil et al. (2019): Energy demand of liquefaction and regasification of natural gas and the potential of LNG for operative thermal energy storage (https://doi.org/10.1016/j.rser.2018.09.027), Table 2 and Table 3. alternative source 2: https://encyclopedia.airliquide.com/methane (accessed 2021-02-10).","For refrigeration cycle, cleaning of gas presumed unnecessary as it should be nearly pure CH4 (=SNG). Assuming energy required is only electricity which is for Table 3 in the source provided with efficiencies of ~50% of LHV, making the numbers consistent with the numbers in Table 2.", +CO2 gas pipe,FOM,0.1,%/year,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2025.0 +CO2 gas pipe,investment,130000.0,EUR/(t/h)/km,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2020.0 +CO2 gas pipe,lifetime,50.0,years,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2025.0 +CO2 industrial compressor,FOM,4.0,%/year,Aarhus University BCE estimate,,2020.0 +CO2 industrial compressor,investment,1516000.0,EUR/t/h_CO2,Aarhus University BCE estimate,,2020.0 +CO2 industrial compressor,lifetime,15.0,years,Aarhus University BCE estimate,,2020.0 CO2 liquefaction,FOM,5.0,%/year,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,,2004.0 CO2 liquefaction,carbondioxide-input,1.0,t_CO2/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,"Assuming a pure, humid, low-pressure input stream. Neglecting possible gross-effects of CO2 which might be cycled for the cooling process.", CO2 liquefaction,electricity-input,0.123,MWh_el/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,, CO2 liquefaction,heat-input,0.0067,MWh_th/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,For drying purposes., CO2 liquefaction,investment,16.7226,EUR/t_CO2/h,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,"Plant capacity of 20 kt CO2 / d and an uptime of 85%. For a high purity, humid, low pressure input stream, includes drying and compression necessary for liquefaction.",2004.0 CO2 liquefaction,lifetime,25.0,years,"Guesstimate, based on CH4 liquefaction.",,2004.0 +CO2 liquefaction small,CO2-input,1.0,t_CO2/t_CO2,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants., +CO2 liquefaction small,FOM,4.0,%/year,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 +CO2 liquefaction small,electricity-input,0.185,MWh_el/t_CO2,DEA technology data for carbon capture and storage V.3,"411 liquefaction - for biogas plants - storage at 16 bara and -27C, including pumping into storage tanks.", +CO2 liquefaction small,heat-output,0.25,MWh_th/t_CO2,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants., +CO2 liquefaction small,investment,543016.4523,EUR/t_CO2/h,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 +CO2 liquefaction small,lifetime,20.0,years,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 CO2 pipeline,FOM,0.9,%/year,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 CO2 pipeline,investment,2116.4433,EUR/(tCO2/h)/km,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",Assuming the 120-500 t CO2/h range that is based on cost of a 12 inch onshore pipeline.,2015.0 CO2 pipeline,lifetime,50.0,years,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 +CO2 storage cylinders,FOM,1.0,%/year,Aarhus University BCE estimate,,202.0 +CO2 storage cylinders,investment,77000.0,EUR/tCO2,Aarhus University BCE estimate,,2020.0 +CO2 storage cylinders,lifetime,25.0,years,Aarhus University BCE estimate,,2020.0 CO2 storage tank,FOM,1.0,%/year,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, pg. 2746 .","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 CO2 storage tank,investment,2584.3462,EUR/t_CO2,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, Table 3.","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 CO2 storage tank,lifetime,25.0,years,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, pg. 2746 .","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 +CO2 storage tank small,FOM,3.0,%/year,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 +CO2 storage tank small,investment,3102.9512,EUR/t_CO2,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 +CO2 storage tank small,lifetime,25.0,years,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 CO2 submarine pipeline,FOM,0.5,%/year,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 CO2 submarine pipeline,investment,4232.8865,EUR/(tCO2/h)/km,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",Assuming the 120-500 t CO2/h range that is based on cost of a 12 inch offshore pipeline.,2015.0 Charging infrastructure fast (purely) battery electric vehicles passenger cars,FOM,1.6,%,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Charging infrastructure fast (purely) battery electric vehicles passenger cars,2020.0 @@ -151,6 +169,10 @@ Concrete-store,lifetime,35.0,years,"Viswanathan_2022, p.107 (p.129)","{'carrier' "Container, methanol",efficiency,1.7001,MWh/km,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 "Container, methanol",investment,122644270.9672,EUR,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 "Container, methanol",lifetime,32.5,years,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 +DH heat exchanger,FOM,0.1,%/year,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +DH heat exchanger,efficiency,0.95, - ,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +DH heat exchanger,investment,140.162,EUR/MW,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2020.0 +DH heat exchanger,lifetime,35.0,years,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 Diesel Bus city,FOM,0.0004,%/year,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 Diesel Bus city,Motor size,250.0,kW,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 Diesel Bus city,VOM,0.1068,EUR/km,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 @@ -287,6 +309,9 @@ H2 liquefaction,hydrogen-input,1.017,MWh_H2/MWh_H2,"Heuser et al. (2019): Techno H2 liquefaction,investment,800.9483,EUR/kW_H2,"IRENA (2022): Global Hydrogen Trade to Meet the 1.5° Climate Goal: Technology Review of Hydrogen Carriers, https://www.irena.org/publications/2022/Apr/Global-hydrogen-trade-Part-II , pg. 62f.","Assumption for a 200t/d facility (Pessimistic long-term or optimistic short-term value).; and Assumption for a large >300t/d, e.g. 2500 t/d facility (Optimistic long-term value without change in base technology mentioned in report).",2022.0 H2 liquefaction,lifetime,20.0,years,"Reuß et al 2017, https://doi.org/10.1016/j.apenergy.2017.05.050 , Table 9.",,2022.0 +H2 pipe,FOM,0.1,%/year,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2025.0 +H2 pipe,investment,38000.0,EUR/MW/km,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2020.0 +H2 pipe,lifetime,30.0,years,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2025.0 H2 pipeline,FOM,3.0,%/year,TODO, from old pypsa cost assumptions,2015.0 H2 pipeline,investment,282.5452,EUR/MW/km,Welder et al https://doi.org/10.1016/j.energy.2018.05.059, from old pypsa cost assumptions,2015.0 H2 pipeline,lifetime,40.0,years,TODO, from old pypsa cost assumptions,2015.0 @@ -307,6 +332,8 @@ HVDC underground,investment,1008.2934,EUR/MW/km,Härtel et al. (2017): https://d HVDC underground,lifetime,40.0,years,Purvins et al. (2018): https://doi.org/10.1016/j.jclepro.2018.03.095 .,"Based on estimated costs for a NA-EU connector (bidirectional,4 GW, 3000km length and ca. 3000m depth). Costs in return based on existing/currently under construction undersea cables. (same as for HVDC submarine)",2018.0 Haber-Bosch,FOM,3.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Fixed O&M,2015.0 Haber-Bosch,VOM,0.0225,EUR/MWh_NH3,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Variable O&M,2015.0 +Haber-Bosch,efficiency,0.0005,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: Electricity Consumption,",2015.0 +Haber-Bosch,efficiency-heat,0.0004,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: District Heating Output,",2015.0 Haber-Bosch,electricity-input,0.2473,MWh_el/MWh_NH3,"DECHEMA 2017: DECHEMA: Low carbon energy and feedstock for the European chemical industry (https://dechema.de/dechema_media/Downloads/Positionspapiere/Technology_study_Low_carbon_energy_and_feedstock_for_the_European_chemical_industry.pdf), table 11.",Assume 5 GJ/t_NH3 for compressors and NH3 LHV = 5.16666 MWh/t_NH3., Haber-Bosch,hydrogen-input,1.1484,MWh_H2/MWh_NH3,"DECHEMA 2017: DECHEMA: Low carbon energy and feedstock for the European chemical industry (https://dechema.de/dechema_media/Downloads/Positionspapiere/Technology_study_Low_carbon_energy_and_feedstock_for_the_European_chemical_industry.pdf), pg. 57.","178 kg_H2 per t_NH3, LHV for both assumed.", Haber-Bosch,investment,1327.0808,EUR/kW_NH3,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Specific investment,2015.0 @@ -428,6 +455,9 @@ Methanol steam reforming,FOM,4.0,%/year,"Niermann et al. (2021): Liquid Organic Methanol steam reforming,investment,18016.8665,EUR/MW_H2,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.","For high temperature steam reforming plant with a capacity of 200 MW_H2 output (6t/h). Reference plant of 1 MW (30kg_H2/h) costs 150kEUR, scale factor of 0.6 assumed.",2020.0 Methanol steam reforming,lifetime,20.0,years,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.",,2020.0 Methanol steam reforming,methanol-input,1.201,MWh_MeOH/MWh_H2,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.",Assuming per 1 t_H2 (with LHV 33.3333 MWh/t): 4.5 MWh_th and 3.2 MWh_el are required. We assume electricity can be substituted / provided with 1:1 as heat energy., +NG grid connection,FOM,0.2,%/year,https://evida.dk/tarifblad010125/,EVIDA.DK,2025.0 +NG grid connection,investment,1155.9268,EUR/MW,https://evida.dk/tarifblad010125/,EVIDA.DK,2025.0 +NG grid connection,lifetime,40.0,years,Own assumption,,2025.0 NH3 (l) storage tank incl. liquefaction,FOM,2.0,%/year,"Guesstimate, based on H2 (l) storage tank.",,2010.0 NH3 (l) storage tank incl. liquefaction,investment,166.8201,EUR/MWh_NH3,"Calculated based on Morgan E. 2013: doi:10.7275/11KT-3F59 , Fig. 55, Fig 58.","Based on estimated for a double-wall liquid ammonia tank (~ambient pressure, -33°C), inner tank from stainless steel, outer tank from concrete including installations for liquefaction/condensation, boil-off gas recovery and safety installations; the necessary installations make only a small fraction of the total cost. The total cost are driven by material and working time on the tanks. While the costs do not scale strictly linearly, we here assume they do (good approximation c.f. ref. Fig 55.) and take the costs for a 9 kt NH3 (l) tank = 8 M$2010, which is smaller 4-5x smaller than the largest deployed tanks today. @@ -454,6 +484,9 @@ PHS,FOM,1.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa PHS,efficiency,0.75,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 PHS,investment,2274.8177,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2010.0 PHS,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions,2015.0 +PWH pipe,FOM,0.1,%/year,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +PWH pipe,investment,63000.0,EUR/MW/km,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2020.0 +PWH pipe,lifetime,45.0,years,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 Pumped-Heat-charger,FOM,0.366,%/year,"Viswanathan_2022, NULL","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Guesstimate, 50% on charger']}",2020.0 Pumped-Heat-charger,efficiency,0.99,per unit,"Viswanathan_2022, NULL","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Charger']}",2020.0 Pumped-Heat-charger,investment,761782.6727,EUR/MW,"Georgiou_2018, Figure 9 of reference roughly 80% of capital cost are power related 47%/80% of costs are required for liquefaction (charging)","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Power Equipment Charge']}",2020.0 @@ -472,12 +505,12 @@ Pumped-Storage-Hydro-bicharger,lifetime,60.0,years,"Viswanathan_2022, p.68 (p.90 Pumped-Storage-Hydro-store,FOM,0.43,%/year,"Viswanathan_2022, 0.43 % of SB","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['derived']}",2020.0 Pumped-Storage-Hydro-store,investment,57074.0625,EUR/MWh,"Viswanathan_2022, p.68 (p.90)","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['Reservoir Construction & Infrastructure']}",2020.0 Pumped-Storage-Hydro-store,lifetime,60.0,years,"Viswanathan_2022, p.68 (p.90)","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['NULL']}",2020.0 -SMR,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 +SMR,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311", SMR,efficiency,0.76,per unit (in LHV),"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, SMR,investment,522201.0492,EUR/MW_CH4,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 SMR,lifetime,30.0,years,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, -SMR CC,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 -SMR CC,capture_rate,0.9,per unit,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",wide range: capture rates between 54%-90%, +SMR CC,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311", +SMR CC,capture_rate,0.9,EUR/MW_CH4,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",wide range: capture rates betwen 54%-90%, SMR CC,efficiency,0.69,per unit (in LHV),"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, SMR CC,investment,605753.2171,EUR/MW_CH4,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 SMR CC,lifetime,30.0,years,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, @@ -534,6 +567,8 @@ Zn-Br-Nonflow-store,FOM,0.2244,%/year,"Viswanathan_2022, 0.43 % of SB","{'carrie Zn-Br-Nonflow-store,investment,239220.5823,EUR/MWh,"Viswanathan_2022, p.59 (p.81) Table 4.14","{'carrier': ['znbr'], 'technology_type': ['store'], 'type': ['electrochemical'], 'note': ['DC storage block']}",2020.0 Zn-Br-Nonflow-store,lifetime,15.0,years,"Viswanathan_2022, p.59 (p.81)","{'carrier': ['znbr'], 'technology_type': ['store'], 'type': ['electrochemical'], 'note': ['NULL']}",2020.0 air separation unit,FOM,3.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Fixed O&M,2015.0 +air separation unit,efficiency,0.0005,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: Electricity Consumption,",2015.0 +air separation unit,efficiency-heat,0.0004,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: District Heating Output,",2015.0 air separation unit,electricity-input,0.25,MWh_el/t_N2,"DEA (2022): Technology Data for Renewable Fuels (https://ens.dk/en/our-services/projections-and-models/technology-data/technology-data-renewable-fuels), p.288.","For consistency reasons use value from Danish Energy Agency. DEA also reports range of values (0.2-0.4 MWh/t_N2) on pg. 288. Other efficienices reported are even higher, e.g. 0.11 Mwh/t_N2 from Morgan (2013): Techno-Economic Feasibility Study of Ammonia Plants Powered by Offshore Wind .", air separation unit,investment,745954.8206,EUR/t_N2/h,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Specific investment,2015.0 air separation unit,lifetime,30.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Technical lifetime,2015.0 @@ -548,12 +583,13 @@ battery inverter,lifetime,10.0,years,"Danish Energy Agency, technology_data_cata battery storage,investment,124.8702,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Energy storage expansion cost investment,2015.0 battery storage,lifetime,27.5,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Technical lifetime,2015.0 biochar pyrolysis,FOM,3.3913,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Fixed O&M",2020.0 -biochar pyrolysis,VOM,823.497,EUR/MWh_biochar,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Variable O&M",2020.0 -biochar pyrolysis,efficiency-biochar,0.404,MWh_biochar/MWh_feedstock,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: efficiency biochar",2020.0 -biochar pyrolysis,efficiency-heat,0.4848,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: efficiency heat",2020.0 -biochar pyrolysis,investment,147972.11,EUR/kW_biochar,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 +biochar pyrolysis,VOM,47.6777,EUR/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Variable O&M",2020.0 +biochar pyrolysis,biomass input,7.6748,MWh_biomass/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Biomass Input",2020.0 +biochar pyrolysis,electricity input,0.3184,MWh_e/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: El-Input",2020.0 +biochar pyrolysis,heat output,3.7859,MWh_th/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: H-Output",2020.0 +biochar pyrolysis,investment,8567083.3233,EUR/t_CO2/h,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Technical lifetime",2020.0 -biochar pyrolysis,yield-biochar,0.0582,ton biochar/MWh_feedstock,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: yield biochar",2020.0 +biochar pyrolysis,yield-biochar,0.0597,t_biochar/MWh_biomass,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: yield biochar",2020.0 biodiesel crops,fuel,137.5968,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIORPS1 (rape seed), ENS_BaU_GFTM",,2010.0 bioethanol crops,fuel,84.2795,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIOCRP11 (Bioethanol barley, wheat, grain maize, oats, other cereals and rye), ENS_BaU_GFTM",,2010.0 biogas,CO2 stored,0.0868,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, @@ -570,10 +606,18 @@ biogas CC,efficiency,1.0,per unit,Assuming input biomass is already given in bio biogas CC,investment,938.7177,EUR/kW,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","81 Biogas, Basic plant, small: Specific investment",2020.0 biogas CC,lifetime,20.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","81 Biogas, Basic plant, small: Technical lifetime",2020.0 biogas manure,fuel,19.8729,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIOGAS1 (manure), ENS_BaU_GFTM",,2010.0 -biogas plus hydrogen,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Fixed O&M,2020.0 -biogas plus hydrogen,VOM,3.4454,EUR/MWh_CH4,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Variable O&M,2020.0 -biogas plus hydrogen,investment,723.5374,EUR/kW_CH4,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Specific investment,2020.0 +biogas plus hydrogen,Biogas Input,1.1522,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Biogas Consumption,",2020.0 +biogas plus hydrogen,CO2 Input,0.1235,t_CO2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: CO2 Input,",2020.0 +biogas plus hydrogen,Methane Output,1.9348,MWh_CH4/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Methane Output,",2020.0 +biogas plus hydrogen,VOM,6.6661,EUR/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Variable O&M,2020.0 +biogas plus hydrogen,electricity input,0.0217,MWh_e/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: El-Input,",2020.0 +biogas plus hydrogen,heat output,0.2174,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: H-Output,",2020.0 +biogas plus hydrogen,hydrogen input,1.0,MWh_H2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Hydrogen Consumption,",2020.0 +biogas plus hydrogen,investment,1399.8875,EUR/kW_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Specific investment,2020.0 biogas plus hydrogen,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Technical lifetime,2020.0 +biogas storage,FOM,0.2,%/year,Aarhus University BCE estimate,,2025.0 +biogas storage,investment,16750.0,EUR/MWh_biogas,Aarhus University BCE estimate,,2020.0 +biogas storage,lifetime,15.0,years,Aarhus University BCE estimate,,2025.0 biogas upgrading,FOM,17.3842,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: Fixed O&M ",2020.0 biogas upgrading,VOM,3.373,EUR/MWh output,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: Variable O&M",2020.0 biogas upgrading,investment,153.313,EUR/kW,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: investment (upgrading, methane redution and grid injection)",2020.0 @@ -613,14 +657,18 @@ biomass HOP,VOM,3.0344,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and biomass HOP,efficiency,0.7818,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09c Straw HOP: Total efficiency , net, annual average",2015.0 biomass HOP,investment,860.0901,EUR/kW_th - heat output,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",09c Straw HOP: Nominal investment ,2015.0 biomass HOP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",09c Straw HOP: Technical lifetime,2015.0 +biomass belt dryer,FOM,3.0,%/year,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,electricity-input,0.025,MWh/t_H2O removed,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,heat-input,1.0,MWh/t_H2O removed,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,lifetime,20.0,years,DOI: 10.1080/07373937.2018.1492615,,2020.0 biomass boiler,FOM,7.4981,%/year,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Fixed O&M",2015.0 biomass boiler,efficiency,0.865,per unit,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Heat efficiency, annual average, net",2015.0 biomass boiler,investment,670.7159,EUR/kW_th,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Specific investment",2015.0 biomass boiler,lifetime,20.0,years,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Technical lifetime",2015.0 biomass boiler,pelletizing cost,9.0,EUR/MWh_pellets,Assumption based on doi:10.1016/j.rser.2019.109506,,2019.0 -biomass-to-methanol,C in fuel,0.4197,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -biomass-to-methanol,C stored,0.5803,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -biomass-to-methanol,CO2 stored,0.2128,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,C in fuel,0.4096,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,C stored,0.5904,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,CO2 stored,0.2218,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, biomass-to-methanol,FOM,1.5331,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Fixed O&M,2020.0 biomass-to-methanol,VOM,14.4653,EUR/MWh_MeOH,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Variable O&M,2020.0 biomass-to-methanol,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, @@ -629,6 +677,15 @@ biomass-to-methanol,efficiency-electricity,0.02,MWh_e/MWh_th,"Danish Energy Agen biomass-to-methanol,efficiency-heat,0.22,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","97 Methanol from biomass gasif.: District heat Output,",2020.0 biomass-to-methanol,investment,2681.013,EUR/kW_MeOH,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Specific investment,2020.0 biomass-to-methanol,lifetime,20.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Technical lifetime,2020.0 +biomethanation,Biogas Input,1.1444,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Biogas Consumption,",2020.0 +biomethanation,CO2 Input,0.165,t_CO2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: CO2 Input,",2020.0 +biomethanation,FOM,5.9259,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Fixed O&M ,2020.0 +biomethanation,Hydrogen Input,1.0,MWh_H2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Hydrogen Input,",2020.0 +biomethanation,Methane Output,1.9673,MWh_CH4/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Methane Output,",2020.0 +biomethanation,electricity input,0.0417,MWh_e/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: El-Input,",2020.0 +biomethanation,heat output,0.1667,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: H-Output,",2020.0 +biomethanation,investment,1110.9375,EUR/kW_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Specific investment ,2020.0 +biomethanation,lifetime,30.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Technical lifetime,2020.0 cement capture,FOM,3.0,%/year,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 cement capture,capture_rate,0.925,per unit,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 cement capture,compression-electricity-input,0.08,MWh/tCO2,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 @@ -715,7 +772,7 @@ central solid biomass CHP CC,c_b,0.3485,50°C/100°C,"Danish Energy Agency, tech central solid biomass CHP CC,c_v,1.0,50°C/100°C,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Cv coefficient",2015.0 central solid biomass CHP CC,efficiency,0.2687,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Electricity efficiency, net, annual average",2015.0 central solid biomass CHP CC,efficiency-heat,0.8257,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Heat efficiency, net, annual average",2015.0 -central solid biomass CHP CC,investment,5061.4763,EUR/kW_e,Combination of central solid biomass CHP CC and solid biomass boiler steam,,2015.0 +central solid biomass CHP CC,investment,5099.9089,EUR/kW_e,Combination of central solid biomass CHP CC and solid biomass boiler steam,,2015.0 central solid biomass CHP CC,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Technical lifetime",2015.0 central solid biomass CHP powerboost CC,FOM,2.8627,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Fixed O&M",2015.0 central solid biomass CHP powerboost CC,VOM,4.8732,EUR/MWh_e,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Variable O&M ",2015.0 @@ -742,7 +799,13 @@ central water-sourced heat pump,VOM,1.5768,EUR/MWh,"Danish Energy Agency, techno central water-sourced heat pump,efficiency,3.84,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Total efficiency , net, annual average",2015.0 central water-sourced heat pump,investment,1058.2216,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Specific investment",2015.0 central water-sourced heat pump,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Technical lifetime",2015.0 -clean water tank storage,FOM,2.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2013.0 +centrifugal dewatering,DM out,0.45,kgDM/kgtot,https://dcapub.au.dk/djfpublikation/djfpdf/DCArapport208.pdf,,2025.0 +centrifugal dewatering,DM separation,0.509,kg_out/kg_in,https://dcapub.au.dk/djfpublikation/djfpdf/DCArapport208.pdf,,2025.0 +centrifugal dewatering,FOM,3.5,%/year,https://doi.org/10.3390/agronomy11050836,,2025.0 +centrifugal dewatering,electricity-input,0.005,MWh/tDM_in,calc from : https://doi.org/10.3390/su16135461,,2025.0 +centrifugal dewatering,investment,130000.0,EUR/t/h fibers,https://doi.org/10.3390/agronomy11050836,,2020.0 +centrifugal dewatering,lifetime,20.0,years, https://doi.org/10.3390/su16135461,,2025.0 +clean water tank storage,FOM,2.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, clean water tank storage,investment,69.1286,EUR/m^3-H2O,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2013.0 clean water tank storage,lifetime,30.0,years,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, coal,CO2 intensity,0.3361,tCO2/MWh_th,Entwicklung der spezifischen Kohlendioxid-Emissionen des deutschen Strommix in den Jahren 1990 - 2018,, @@ -804,7 +867,7 @@ decentral water tank storage,energy to power ratio,0.15,h,"Danish Energy Agency, decentral water tank storage,investment,433.8709,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",142 Small scale hot water tank: Specific investment,2015.0 decentral water tank storage,lifetime,30.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",142 Small scale hot water tank: Technical lifetime,2015.0 digestible biomass,fuel,17.0611,EUR/MWh_th,"JRC ENSPRESO ca avg for MINBIOAGRW1, ENS_Ref for 2040",,2010.0 -digestible biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 +digestible biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, digestible biomass to hydrogen,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, digestible biomass to hydrogen,efficiency,0.39,per unit,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, digestible biomass to hydrogen,investment,3442.6595,EUR/kW_th,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 @@ -869,18 +932,18 @@ electricity distribution grid,lifetime,40.0,years,TODO, from old pypsa cost assu electricity grid connection,FOM,2.0,%/year,TODO, from old pypsa cost assumptions,2015.0 electricity grid connection,investment,148.151,EUR/kW,DEA, from old pypsa cost assumptions,2015.0 electricity grid connection,lifetime,40.0,years,TODO, from old pypsa cost assumptions,2015.0 -electrobiofuels,C in fuel,0.9281,per unit,Stoichiometric calculation,, -electrobiofuels,FOM,2.7484,%/year,combination of BtL and electrofuels,,2015.0 -electrobiofuels,VOM,3.8235,EUR/MWh_th,combination of BtL and electrofuels,,2017.0 +electrobiofuels,C in fuel,0.9274,per unit,Stoichiometric calculation,, +electrobiofuels,FOM,2.7484,%/year,combination of BtL and electrofuels,, +electrobiofuels,VOM,3.8482,EUR/MWh_th,combination of BtL and electrofuels,,2017.0 electrobiofuels,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, -electrobiofuels,efficiency-biomass,1.3233,per unit,Stoichiometric calculation,, -electrobiofuels,efficiency-hydrogen,1.2339,per unit,Stoichiometric calculation,, -electrobiofuels,efficiency-tot,0.6385,per unit,Stoichiometric calculation,, -electrobiofuels,investment,428759.8057,EUR/kW_th,combination of BtL and electrofuels,,2017.0 +electrobiofuels,efficiency-biomass,1.3548,per unit,Stoichiometric calculation,, +electrobiofuels,efficiency-hydrogen,1.2225,per unit,Stoichiometric calculation,, +electrobiofuels,efficiency-tot,0.6426,per unit,Stoichiometric calculation,, +electrobiofuels,investment,432732.1103,EUR/kW_th,combination of BtL and electrofuels,,2017.0 electrolysis,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Fixed O&M ,2020.0 electrolysis,efficiency,0.6374,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Hydrogen Output,2020.0 electrolysis,efficiency-heat,0.2039,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: - hereof recoverable for district heating,2020.0 -electrolysis,investment,1350.0,EUR/kW_e,private communications; IEA https://iea.blob.core.windows.net/assets/9e0c82d4-06d2-496b-9542-f184ba803645/TheRoleofE-fuelsinDecarbonisingTransport.pdf,,2020.0 +electrolysis,investment,487.5,EUR/kW_e,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Specific investment,2020.0 electrolysis,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Technical lifetime,2020.0 electrolysis small,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 10 MW: Fixed O&M ,2020.0 electrolysis small,efficiency,0.6374,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 10 MW: Hydrogen Output,2020.0 @@ -900,7 +963,7 @@ gas boiler steam,VOM,1.007,EUR/MWh,"Danish Energy Agency, technology_data_for_in gas boiler steam,efficiency,0.93,per unit,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx","311.1c Steam boiler Gas: Total efficiency, net, annual average",2019.0 gas boiler steam,investment,45.7727,EUR/kW,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1c Steam boiler Gas: Nominal investment,2019.0 gas boiler steam,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1c Steam boiler Gas: Technical lifetime,2019.0 -gas storage,FOM,3.5919,%,Danish Energy Agency,"150 Underground Storage of Gas, Operation and Maintenance, salt cavern (units converted)",2015.0 +gas storage,FOM,3.5919,%,Danish Energy Agency,"150 Underground Storage of Gas, Operation and Maintenace, salt cavern (units converted)",2015.0 gas storage,investment,0.0348,EUR/kWh,Danish Energy Agency,"150 Underground Storage of Gas, Establishment of one cavern (units converted)",2015.0 gas storage,lifetime,100.0,years,TODO no source,"estimation: most underground storage are already build, they do have a long lifetime",2015.0 gas storage charger,investment,15.1737,EUR/kW,Danish Energy Agency,"150 Underground Storage of Gas, Process equipment (units converted)",2015.0 @@ -1006,7 +1069,7 @@ nuclear,investment,8594.1354,EUR/kW_e,"Lazard's levelized cost of energy analysi nuclear,lifetime,40.0,years,"Lazard's levelized cost of energy analysis - version 16.0 (2023): https://www.lazard.com/media/typdgxmm/lazards-lcoeplus-april-2023.pdf , pg. 49 (Levelized Cost of Energy - Key Assumptions), accessed: 2023-12-14.",,2023.0 offwind,FOM,2.25,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Fixed O&M [EUR/MW_e/y, 2020]",2020.0 offwind,VOM,0.0212,EUR/MWhel,RES costs made up to fix curtailment order, from old pypsa cost assumptions,2015.0 -offwind,investment,1622.2443,"EUR/kW_e, 2020","Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Nominal investment [MEUR/MW_e, 2020] grid connection costs subtracted from investment costs",2020.0 +offwind,investment,1622.2443,"EUR/kW_e, 2020","Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Nominal investment [MEUR/MW_e, 2020] grid connection costs substracted from investment costs",2020.0 offwind,lifetime,30.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",21 Offshore turbines: Technical lifetime [years],2020.0 offwind-ac-connection-submarine,investment,2841.3251,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions,2015.0 offwind-ac-connection-underground,investment,1420.1334,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions,2015.0 @@ -1035,12 +1098,22 @@ organic rankine cycle,FOM,2.0,%/year,"Aghahosseini, Breyer 2020: From hot rock t organic rankine cycle,electricity-input,0.12,MWh_el/MWh_th,"Aghahosseini, Breyer 2020: From hot rock to useful energy: A global estimate of enhanced geothermal systems potential, https://www.sciencedirect.com/science/article/pii/S0306261920312551; Breede et al. 2015: Overcoming challenges in the classification of deep geothermal potential, https://eprints.gla.ac.uk/169585/","Heat-input, Electricity-output. This is a rough estimate, depends on input temperature, implies ~150 C.",2020.0 organic rankine cycle,investment,1376.0,EUR/kW_el,Tartiere and Astolfi 2017: A world overview of the organic Rankine cycle market,"Low rollout complicates the estimation, compounded by a dependence both on plant size and temperature, converted from 1500 USD/kW using currency conversion 1.09 USD = 1 EUR.",2020.0 organic rankine cycle,lifetime,30.0,years,"Aghahosseini, Breyer 2020: From hot rock to useful energy: A global estimate of enhanced geothermal systems potential, https://www.sciencedirect.com/science/article/pii/S0306261920312551",,2020.0 +pelletization,FOM,3.0,%/year,Own assumption: find better,,2025.0 +pelletization,electricity-input,0.1,MW_e/MW_pellets,Own assumption: find better,,2025.0 +pelletization,investment,0.0,EUR/MW_pellets,Own assumption: find better,,2020.0 +pelletization,lifetime,15.0,years,Own assumption: find better,,2025.0 +perennials gbr,FOM,0.0,%year,Own assumption,,2015.0 +perennials gbr,VOM,43.2317,EUR/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,"includes purchase of perennial crops and sales of proteine concentrate, table 8.1 wages, maintenance and auxiliary costs",2015.0 +perennials gbr,biogas-output,0.1947,MWh/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,table 2,2015.0 +perennials gbr,electricity-input,0.0733,MWh/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,table 2,2015.0 +perennials gbr,investment,1371168.1394,EUR/tDM/h,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,includes cost for biogas plant without upgrading,2015.0 +perennials gbr,lifetime,25.0,years,Own assumption,,2015.0 ror,FOM,2.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 ror,efficiency,0.9,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 ror,investment,3412.2266,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2010.0 ror,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions,2015.0 seawater RO desalination,electricity-input,0.003,MWHh_el/t_H2O,"Caldera et al. (2016): Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Fig. 4.",Desalination using SWRO. Assume medium salinity of 35 Practical Salinity Units (PSUs) = 35 kg/m^3., -seawater desalination,FOM,4.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2015.0 +seawater desalination,FOM,4.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, seawater desalination,electricity-input,3.0348,kWh/m^3-H2O,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Fig. 4.",, seawater desalination,investment,31312.5066,EUR/(m^3-H2O/h),"Caldera et al 2017: Learning Curve for Seawater Reverse Osmosis Desalination Plants: Capital Cost Trend of the Past, Present, and Future (https://doi.org/10.1002/2017WR021402), Table 4.",,2015.0 seawater desalination,lifetime,30.0,years,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, @@ -1066,7 +1139,7 @@ solar-utility,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_ solar-utility single-axis tracking,FOM,2.3606,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Fixed O&M [2020-EUR/MW_e/y],2020.0 solar-utility single-axis tracking,investment,419.3908,EUR/kW_e,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Nominal investment [2020-MEUR/MW_e],2020.0 solar-utility single-axis tracking,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Technical lifetime [years],2020.0 -solid biomass,CO2 intensity,0.3667,tCO2/MWh_th,Stoichiometric calculation with 18 GJ/t_DM LHV and 50% C-content for solid biomass,, +solid biomass,CO2 intensity,0.3757,tCO2/MWh_th,Stoichiometric calculation with 18 GJ/t_DM LHV and 50% C-content for solid biomass,, solid biomass,fuel,13.6489,EUR/MWh_th,"JRC ENSPRESO ca avg for MINBIOWOOW1 (secondary forest residue wood chips), ENS_Ref for 2040",,2010.0 solid biomass boiler steam,FOM,6.1236,%/year,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Fixed O&M,2019.0 solid biomass boiler steam,VOM,2.8564,EUR/MWh,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Variable O&M,2019.0 @@ -1078,7 +1151,7 @@ solid biomass boiler steam CC,VOM,2.8564,EUR/MWh,"Danish Energy Agency, technolo solid biomass boiler steam CC,efficiency,0.89,per unit,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx","311.1e Steam boiler Wood: Total efficiency, net, annual average",2019.0 solid biomass boiler steam CC,investment,581.3136,EUR/kW,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Nominal investment,2019.0 solid biomass boiler steam CC,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Technical lifetime,2019.0 -solid biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 +solid biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, solid biomass to hydrogen,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, solid biomass to hydrogen,efficiency,0.56,per unit,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, solid biomass to hydrogen,investment,3442.6595,EUR/kW_th,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 diff --git a/outputs/costs_2040.csv b/outputs/costs_2040.csv index 3ff63cb7..831e6c92 100644 --- a/outputs/costs_2040.csv +++ b/outputs/costs_2040.csv @@ -41,18 +41,18 @@ Battery electric (passenger cars),lifetime,15.0,years,PATHS TO A CLIMATE-NEUTRAL Battery electric (trucks),FOM,16.0,%,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 Battery electric (trucks),investment,133000.0,EUR/LKW,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 Battery electric (trucks),lifetime,15.0,years,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 -BioSNG,C in fuel,0.3591,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BioSNG,C stored,0.6409,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BioSNG,CO2 stored,0.235,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,C in fuel,0.3505,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,C stored,0.6495,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,CO2 stored,0.244,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, BioSNG,FOM,1.6226,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Fixed O&M",2020.0 BioSNG,VOM,1.7546,EUR/MWh_th,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Variable O&M",2020.0 BioSNG,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, BioSNG,efficiency,0.665,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Bio SNG Output",2020.0 BioSNG,investment,1648.27,EUR/kW_th,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Specific investment",2020.0 BioSNG,lifetime,25.0,years,TODO,"84 Gasif. CFB, Bio-SNG: Technical lifetime",2020.0 -BtL,C in fuel,0.2922,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BtL,C stored,0.7078,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BtL,CO2 stored,0.2595,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,C in fuel,0.2852,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,C stored,0.7148,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,CO2 stored,0.2685,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, BtL,FOM,2.8364,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","85 Gasif. Ent. Flow FT, liq fu : Fixed O&M",2020.0 BtL,VOM,1.1311,EUR/MWh_FT,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","85 Gasif. Ent. Flow FT, liq fu : Variable O&M",2020.0 BtL,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, @@ -89,18 +89,36 @@ CH4 liquefaction,electricity-input,0.036,MWh_el/MWh_CH4,"Pospíšil et al. (2019 CH4 liquefaction,investment,241.443,EUR/kW_CH4,"Calculated, based on Lochner and Bothe (2009): https://doi.org/10.1016/j.enpol.2008.12.012 and Fasihi et al 2017, table 1, https://www.mdpi.com/2071-1050/9/2/306","based on 265 MUSD-2005/(1 bcm/a), 1 bcm = 10.6 TWh, currency exchange rate: 1.15 USD=1 EUR.",2005.0 CH4 liquefaction,lifetime,25.0,years,"Fasihi et al 2017, table 1, https://www.mdpi.com/2071-1050/9/2/306",,2005.0 CH4 liquefaction,methane-input,1.0,MWh_CH4/MWh_CH4,"Pospíšil et al. (2019): Energy demand of liquefaction and regasification of natural gas and the potential of LNG for operative thermal energy storage (https://doi.org/10.1016/j.rser.2018.09.027), Table 2 and Table 3. alternative source 2: https://encyclopedia.airliquide.com/methane (accessed 2021-02-10).","For refrigeration cycle, cleaning of gas presumed unnecessary as it should be nearly pure CH4 (=SNG). Assuming energy required is only electricity which is for Table 3 in the source provided with efficiencies of ~50% of LHV, making the numbers consistent with the numbers in Table 2.", +CO2 gas pipe,FOM,0.1,%/year,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2025.0 +CO2 gas pipe,investment,130000.0,EUR/(t/h)/km,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2020.0 +CO2 gas pipe,lifetime,50.0,years,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2025.0 +CO2 industrial compressor,FOM,4.0,%/year,Aarhus University BCE estimate,,2020.0 +CO2 industrial compressor,investment,1516000.0,EUR/t/h_CO2,Aarhus University BCE estimate,,2020.0 +CO2 industrial compressor,lifetime,15.0,years,Aarhus University BCE estimate,,2020.0 CO2 liquefaction,FOM,5.0,%/year,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,,2004.0 CO2 liquefaction,carbondioxide-input,1.0,t_CO2/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,"Assuming a pure, humid, low-pressure input stream. Neglecting possible gross-effects of CO2 which might be cycled for the cooling process.", CO2 liquefaction,electricity-input,0.123,MWh_el/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,, CO2 liquefaction,heat-input,0.0067,MWh_th/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,For drying purposes., CO2 liquefaction,investment,16.7226,EUR/t_CO2/h,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,"Plant capacity of 20 kt CO2 / d and an uptime of 85%. For a high purity, humid, low pressure input stream, includes drying and compression necessary for liquefaction.",2004.0 CO2 liquefaction,lifetime,25.0,years,"Guesstimate, based on CH4 liquefaction.",,2004.0 +CO2 liquefaction small,CO2-input,1.0,t_CO2/t_CO2,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants., +CO2 liquefaction small,FOM,4.0,%/year,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 +CO2 liquefaction small,electricity-input,0.185,MWh_el/t_CO2,DEA technology data for carbon capture and storage V.3,"411 liquefaction - for biogas plants - storage at 16 bara and -27C, including pumping into storage tanks.", +CO2 liquefaction small,heat-output,0.25,MWh_th/t_CO2,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants., +CO2 liquefaction small,investment,543016.4523,EUR/t_CO2/h,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 +CO2 liquefaction small,lifetime,20.0,years,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 CO2 pipeline,FOM,0.9,%/year,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 CO2 pipeline,investment,2116.4433,EUR/(tCO2/h)/km,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",Assuming the 120-500 t CO2/h range that is based on cost of a 12 inch onshore pipeline.,2015.0 CO2 pipeline,lifetime,50.0,years,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 +CO2 storage cylinders,FOM,1.0,%/year,Aarhus University BCE estimate,,202.0 +CO2 storage cylinders,investment,77000.0,EUR/tCO2,Aarhus University BCE estimate,,2020.0 +CO2 storage cylinders,lifetime,25.0,years,Aarhus University BCE estimate,,2020.0 CO2 storage tank,FOM,1.0,%/year,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, pg. 2746 .","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 CO2 storage tank,investment,2584.3462,EUR/t_CO2,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, Table 3.","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 CO2 storage tank,lifetime,25.0,years,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, pg. 2746 .","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 +CO2 storage tank small,FOM,3.0,%/year,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 +CO2 storage tank small,investment,3102.9512,EUR/t_CO2,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 +CO2 storage tank small,lifetime,25.0,years,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 CO2 submarine pipeline,FOM,0.5,%/year,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 CO2 submarine pipeline,investment,4232.8865,EUR/(tCO2/h)/km,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",Assuming the 120-500 t CO2/h range that is based on cost of a 12 inch offshore pipeline.,2015.0 Charging infrastructure fast (purely) battery electric vehicles passenger cars,FOM,1.6,%,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Charging infrastructure fast (purely) battery electric vehicles passenger cars,2020.0 @@ -151,6 +169,10 @@ Concrete-store,lifetime,35.0,years,"Viswanathan_2022, p.107 (p.129)","{'carrier' "Container, methanol",efficiency,1.7001,MWh/km,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 "Container, methanol",investment,119652947.2851,EUR,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 "Container, methanol",lifetime,33.0,years,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 +DH heat exchanger,FOM,0.1,%/year,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +DH heat exchanger,efficiency,0.95, - ,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +DH heat exchanger,investment,140.162,EUR/MW,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2020.0 +DH heat exchanger,lifetime,35.0,years,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 Diesel Bus city,FOM,0.0004,%/year,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 Diesel Bus city,Motor size,250.0,kW,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 Diesel Bus city,VOM,0.1068,EUR/km,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 @@ -287,6 +309,9 @@ H2 liquefaction,hydrogen-input,1.017,MWh_H2/MWh_H2,"Heuser et al. (2019): Techno H2 liquefaction,investment,711.9541,EUR/kW_H2,"IRENA (2022): Global Hydrogen Trade to Meet the 1.5° Climate Goal: Technology Review of Hydrogen Carriers, https://www.irena.org/publications/2022/Apr/Global-hydrogen-trade-Part-II , pg. 62f.","Assumption for a 200t/d facility (Pessimistic long-term or optimistic short-term value).; and Assumption for a large >300t/d, e.g. 2500 t/d facility (Optimistic long-term value without change in base technology mentioned in report).",2022.0 H2 liquefaction,lifetime,20.0,years,"Reuß et al 2017, https://doi.org/10.1016/j.apenergy.2017.05.050 , Table 9.",,2022.0 +H2 pipe,FOM,0.1,%/year,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2025.0 +H2 pipe,investment,38000.0,EUR/MW/km,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2020.0 +H2 pipe,lifetime,30.0,years,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2025.0 H2 pipeline,FOM,3.0,%/year,TODO, from old pypsa cost assumptions,2015.0 H2 pipeline,investment,282.5452,EUR/MW/km,Welder et al https://doi.org/10.1016/j.energy.2018.05.059, from old pypsa cost assumptions,2015.0 H2 pipeline,lifetime,40.0,years,TODO, from old pypsa cost assumptions,2015.0 @@ -307,6 +332,8 @@ HVDC underground,investment,1008.2934,EUR/MW/km,Härtel et al. (2017): https://d HVDC underground,lifetime,40.0,years,Purvins et al. (2018): https://doi.org/10.1016/j.jclepro.2018.03.095 .,"Based on estimated costs for a NA-EU connector (bidirectional,4 GW, 3000km length and ca. 3000m depth). Costs in return based on existing/currently under construction undersea cables. (same as for HVDC submarine)",2018.0 Haber-Bosch,FOM,3.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Fixed O&M,2015.0 Haber-Bosch,VOM,0.0225,EUR/MWh_NH3,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Variable O&M,2015.0 +Haber-Bosch,efficiency,0.0005,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: Electricity Consumption,",2015.0 +Haber-Bosch,efficiency-heat,0.0004,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: District Heating Output,",2015.0 Haber-Bosch,electricity-input,0.2473,MWh_el/MWh_NH3,"DECHEMA 2017: DECHEMA: Low carbon energy and feedstock for the European chemical industry (https://dechema.de/dechema_media/Downloads/Positionspapiere/Technology_study_Low_carbon_energy_and_feedstock_for_the_European_chemical_industry.pdf), table 11.",Assume 5 GJ/t_NH3 for compressors and NH3 LHV = 5.16666 MWh/t_NH3., Haber-Bosch,hydrogen-input,1.1484,MWh_H2/MWh_NH3,"DECHEMA 2017: DECHEMA: Low carbon energy and feedstock for the European chemical industry (https://dechema.de/dechema_media/Downloads/Positionspapiere/Technology_study_Low_carbon_energy_and_feedstock_for_the_European_chemical_industry.pdf), pg. 57.","178 kg_H2 per t_NH3, LHV for both assumed.", Haber-Bosch,investment,1194.148,EUR/kW_NH3,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Specific investment,2015.0 @@ -428,6 +455,9 @@ Methanol steam reforming,FOM,4.0,%/year,"Niermann et al. (2021): Liquid Organic Methanol steam reforming,investment,18016.8665,EUR/MW_H2,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.","For high temperature steam reforming plant with a capacity of 200 MW_H2 output (6t/h). Reference plant of 1 MW (30kg_H2/h) costs 150kEUR, scale factor of 0.6 assumed.",2020.0 Methanol steam reforming,lifetime,20.0,years,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.",,2020.0 Methanol steam reforming,methanol-input,1.201,MWh_MeOH/MWh_H2,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.",Assuming per 1 t_H2 (with LHV 33.3333 MWh/t): 4.5 MWh_th and 3.2 MWh_el are required. We assume electricity can be substituted / provided with 1:1 as heat energy., +NG grid connection,FOM,0.2,%/year,https://evida.dk/tarifblad010125/,EVIDA.DK,2025.0 +NG grid connection,investment,1155.9268,EUR/MW,https://evida.dk/tarifblad010125/,EVIDA.DK,2025.0 +NG grid connection,lifetime,40.0,years,Own assumption,,2025.0 NH3 (l) storage tank incl. liquefaction,FOM,2.0,%/year,"Guesstimate, based on H2 (l) storage tank.",,2010.0 NH3 (l) storage tank incl. liquefaction,investment,166.8201,EUR/MWh_NH3,"Calculated based on Morgan E. 2013: doi:10.7275/11KT-3F59 , Fig. 55, Fig 58.","Based on estimated for a double-wall liquid ammonia tank (~ambient pressure, -33°C), inner tank from stainless steel, outer tank from concrete including installations for liquefaction/condensation, boil-off gas recovery and safety installations; the necessary installations make only a small fraction of the total cost. The total cost are driven by material and working time on the tanks. While the costs do not scale strictly linearly, we here assume they do (good approximation c.f. ref. Fig 55.) and take the costs for a 9 kt NH3 (l) tank = 8 M$2010, which is smaller 4-5x smaller than the largest deployed tanks today. @@ -454,6 +484,9 @@ PHS,FOM,1.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa PHS,efficiency,0.75,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 PHS,investment,2274.8177,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2010.0 PHS,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions,2015.0 +PWH pipe,FOM,0.1,%/year,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +PWH pipe,investment,63000.0,EUR/MW/km,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2020.0 +PWH pipe,lifetime,45.0,years,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 Pumped-Heat-charger,FOM,0.366,%/year,"Viswanathan_2022, NULL","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Guesstimate, 50% on charger']}",2020.0 Pumped-Heat-charger,efficiency,0.99,per unit,"Viswanathan_2022, NULL","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Charger']}",2020.0 Pumped-Heat-charger,investment,761782.6727,EUR/MW,"Georgiou_2018, Figure 9 of reference roughly 80% of capital cost are power related 47%/80% of costs are required for liquefaction (charging)","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Power Equipment Charge']}",2020.0 @@ -472,12 +505,12 @@ Pumped-Storage-Hydro-bicharger,lifetime,60.0,years,"Viswanathan_2022, p.68 (p.90 Pumped-Storage-Hydro-store,FOM,0.43,%/year,"Viswanathan_2022, 0.43 % of SB","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['derived']}",2020.0 Pumped-Storage-Hydro-store,investment,57074.0625,EUR/MWh,"Viswanathan_2022, p.68 (p.90)","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['Reservoir Construction & Infrastructure']}",2020.0 Pumped-Storage-Hydro-store,lifetime,60.0,years,"Viswanathan_2022, p.68 (p.90)","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['NULL']}",2020.0 -SMR,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 +SMR,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311", SMR,efficiency,0.76,per unit (in LHV),"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, SMR,investment,522201.0492,EUR/MW_CH4,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 SMR,lifetime,30.0,years,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, -SMR CC,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 -SMR CC,capture_rate,0.9,per unit,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",wide range: capture rates between 54%-90%, +SMR CC,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311", +SMR CC,capture_rate,0.9,EUR/MW_CH4,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",wide range: capture rates betwen 54%-90%, SMR CC,efficiency,0.69,per unit (in LHV),"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, SMR CC,investment,605753.2171,EUR/MW_CH4,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 SMR CC,lifetime,30.0,years,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, @@ -534,6 +567,8 @@ Zn-Br-Nonflow-store,FOM,0.2244,%/year,"Viswanathan_2022, 0.43 % of SB","{'carrie Zn-Br-Nonflow-store,investment,239220.5823,EUR/MWh,"Viswanathan_2022, p.59 (p.81) Table 4.14","{'carrier': ['znbr'], 'technology_type': ['store'], 'type': ['electrochemical'], 'note': ['DC storage block']}",2020.0 Zn-Br-Nonflow-store,lifetime,15.0,years,"Viswanathan_2022, p.59 (p.81)","{'carrier': ['znbr'], 'technology_type': ['store'], 'type': ['electrochemical'], 'note': ['NULL']}",2020.0 air separation unit,FOM,3.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Fixed O&M,2015.0 +air separation unit,efficiency,0.0005,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: Electricity Consumption,",2015.0 +air separation unit,efficiency-heat,0.0004,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: District Heating Output,",2015.0 air separation unit,electricity-input,0.25,MWh_el/t_N2,"DEA (2022): Technology Data for Renewable Fuels (https://ens.dk/en/our-services/projections-and-models/technology-data/technology-data-renewable-fuels), p.288.","For consistency reasons use value from Danish Energy Agency. DEA also reports range of values (0.2-0.4 MWh/t_N2) on pg. 288. Other efficienices reported are even higher, e.g. 0.11 Mwh/t_N2 from Morgan (2013): Techno-Economic Feasibility Study of Ammonia Plants Powered by Offshore Wind .", air separation unit,investment,671233.0629,EUR/t_N2/h,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Specific investment,2015.0 air separation unit,lifetime,30.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Technical lifetime,2015.0 @@ -548,12 +583,13 @@ battery inverter,lifetime,10.0,years,"Danish Energy Agency, technology_data_cata battery storage,investment,99.4728,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Energy storage expansion cost investment,2015.0 battery storage,lifetime,30.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Technical lifetime,2015.0 biochar pyrolysis,FOM,3.3636,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Fixed O&M",2020.0 -biochar pyrolysis,VOM,823.497,EUR/MWh_biochar,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Variable O&M",2020.0 -biochar pyrolysis,efficiency-biochar,0.404,MWh_biochar/MWh_feedstock,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: efficiency biochar",2020.0 -biochar pyrolysis,efficiency-heat,0.4848,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: efficiency heat",2020.0 -biochar pyrolysis,investment,141538.54,EUR/kW_biochar,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 +biochar pyrolysis,VOM,47.6777,EUR/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Variable O&M",2020.0 +biochar pyrolysis,biomass input,7.6748,MWh_biomass/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Biomass Input",2020.0 +biochar pyrolysis,electricity input,0.3184,MWh_e/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: El-Input",2020.0 +biochar pyrolysis,heat output,3.7859,MWh_th/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: H-Output",2020.0 +biochar pyrolysis,investment,8194601.4397,EUR/t_CO2/h,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Technical lifetime",2020.0 -biochar pyrolysis,yield-biochar,0.0582,ton biochar/MWh_feedstock,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: yield biochar",2020.0 +biochar pyrolysis,yield-biochar,0.0597,t_biochar/MWh_biomass,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: yield biochar",2020.0 biodiesel crops,fuel,137.5427,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIORPS1 (rape seed), ENS_BaU_GFTM",,2010.0 bioethanol crops,fuel,86.1222,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIOCRP11 (Bioethanol barley, wheat, grain maize, oats, other cereals and rye), ENS_BaU_GFTM",,2010.0 biogas,CO2 stored,0.0868,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, @@ -570,10 +606,18 @@ biogas CC,efficiency,1.0,per unit,Assuming input biomass is already given in bio biogas CC,investment,922.249,EUR/kW,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","81 Biogas, Basic plant, small: Specific investment",2020.0 biogas CC,lifetime,20.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","81 Biogas, Basic plant, small: Technical lifetime",2020.0 biogas manure,fuel,19.8782,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIOGAS1 (manure), ENS_BaU_GFTM",,2010.0 -biogas plus hydrogen,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Fixed O&M,2020.0 -biogas plus hydrogen,VOM,3.0626,EUR/MWh_CH4,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Variable O&M,2020.0 -biogas plus hydrogen,investment,643.1443,EUR/kW_CH4,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Specific investment,2020.0 +biogas plus hydrogen,Biogas Input,1.1522,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Biogas Consumption,",2020.0 +biogas plus hydrogen,CO2 Input,0.1235,t_CO2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: CO2 Input,",2020.0 +biogas plus hydrogen,Methane Output,1.9348,MWh_CH4/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Methane Output,",2020.0 +biogas plus hydrogen,VOM,5.9254,EUR/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Variable O&M,2020.0 +biogas plus hydrogen,electricity input,0.0217,MWh_e/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: El-Input,",2020.0 +biogas plus hydrogen,heat output,0.2174,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: H-Output,",2020.0 +biogas plus hydrogen,hydrogen input,1.0,MWh_H2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Hydrogen Consumption,",2020.0 +biogas plus hydrogen,investment,1244.3444,EUR/kW_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Specific investment,2020.0 biogas plus hydrogen,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Technical lifetime,2020.0 +biogas storage,FOM,0.2,%/year,Aarhus University BCE estimate,,2025.0 +biogas storage,investment,16750.0,EUR/MWh_biogas,Aarhus University BCE estimate,,2020.0 +biogas storage,lifetime,15.0,years,Aarhus University BCE estimate,,2025.0 biogas upgrading,FOM,17.8139,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: Fixed O&M ",2020.0 biogas upgrading,VOM,3.0755,EUR/MWh output,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: Variable O&M",2020.0 biogas upgrading,investment,136.4191,EUR/kW,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: investment (upgrading, methane redution and grid injection)",2020.0 @@ -613,14 +657,18 @@ biomass HOP,VOM,3.1231,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and biomass HOP,efficiency,0.5312,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09c Straw HOP: Total efficiency , net, annual average",2015.0 biomass HOP,investment,839.0781,EUR/kW_th - heat output,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",09c Straw HOP: Nominal investment ,2015.0 biomass HOP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",09c Straw HOP: Technical lifetime,2015.0 +biomass belt dryer,FOM,3.0,%/year,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,electricity-input,0.025,MWh/t_H2O removed,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,heat-input,1.0,MWh/t_H2O removed,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,lifetime,20.0,years,DOI: 10.1080/07373937.2018.1492615,,2020.0 biomass boiler,FOM,7.5118,%/year,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Fixed O&M",2015.0 biomass boiler,efficiency,0.87,per unit,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Heat efficiency, annual average, net",2015.0 biomass boiler,investment,654.3303,EUR/kW_th,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Specific investment",2015.0 biomass boiler,lifetime,20.0,years,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Technical lifetime",2015.0 biomass boiler,pelletizing cost,9.0,EUR/MWh_pellets,Assumption based on doi:10.1016/j.rser.2019.109506,,2019.0 -biomass-to-methanol,C in fuel,0.4265,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -biomass-to-methanol,C stored,0.5735,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -biomass-to-methanol,CO2 stored,0.2103,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,C in fuel,0.4163,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,C stored,0.5837,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,CO2 stored,0.2193,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, biomass-to-methanol,FOM,1.8083,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Fixed O&M,2020.0 biomass-to-methanol,VOM,14.4653,EUR/MWh_MeOH,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Variable O&M,2020.0 biomass-to-methanol,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, @@ -629,6 +677,15 @@ biomass-to-methanol,efficiency-electricity,0.02,MWh_e/MWh_th,"Danish Energy Agen biomass-to-methanol,efficiency-heat,0.22,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","97 Methanol from biomass gasif.: District heat Output,",2020.0 biomass-to-methanol,investment,2255.697,EUR/kW_MeOH,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Specific investment,2020.0 biomass-to-methanol,lifetime,20.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Technical lifetime,2020.0 +biomethanation,Biogas Input,1.1444,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Biogas Consumption,",2020.0 +biomethanation,CO2 Input,0.165,t_CO2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: CO2 Input,",2020.0 +biomethanation,FOM,6.6667,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Fixed O&M ,2020.0 +biomethanation,Hydrogen Input,1.0,MWh_H2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Hydrogen Input,",2020.0 +biomethanation,Methane Output,1.9673,MWh_CH4/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Methane Output,",2020.0 +biomethanation,electricity input,0.0417,MWh_e/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: El-Input,",2020.0 +biomethanation,heat output,0.1667,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: H-Output,",2020.0 +biomethanation,investment,987.5,EUR/kW_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Specific investment ,2020.0 +biomethanation,lifetime,30.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Technical lifetime,2020.0 cement capture,FOM,3.0,%/year,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 cement capture,capture_rate,0.95,per unit,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 cement capture,compression-electricity-input,0.075,MWh/tCO2,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 @@ -715,7 +772,7 @@ central solid biomass CHP CC,c_b,0.3465,50°C/100°C,"Danish Energy Agency, tech central solid biomass CHP CC,c_v,1.0,50°C/100°C,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Cv coefficient",2015.0 central solid biomass CHP CC,efficiency,0.2675,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Electricity efficiency, net, annual average",2015.0 central solid biomass CHP CC,efficiency-heat,0.8269,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Heat efficiency, net, annual average",2015.0 -central solid biomass CHP CC,investment,4917.5537,EUR/kW_e,Combination of central solid biomass CHP CC and solid biomass boiler steam,,2015.0 +central solid biomass CHP CC,investment,4953.7139,EUR/kW_e,Combination of central solid biomass CHP CC and solid biomass boiler steam,,2015.0 central solid biomass CHP CC,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Technical lifetime",2015.0 central solid biomass CHP powerboost CC,FOM,2.8591,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Fixed O&M",2015.0 central solid biomass CHP powerboost CC,VOM,4.8953,EUR/MWh_e,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Variable O&M ",2015.0 @@ -742,7 +799,13 @@ central water-sourced heat pump,VOM,1.4709,EUR/MWh,"Danish Energy Agency, techno central water-sourced heat pump,efficiency,3.86,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Total efficiency , net, annual average",2015.0 central water-sourced heat pump,investment,1058.2216,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Specific investment",2015.0 central water-sourced heat pump,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Technical lifetime",2015.0 -clean water tank storage,FOM,2.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2013.0 +centrifugal dewatering,DM out,0.45,kgDM/kgtot,https://dcapub.au.dk/djfpublikation/djfpdf/DCArapport208.pdf,,2025.0 +centrifugal dewatering,DM separation,0.509,kg_out/kg_in,https://dcapub.au.dk/djfpublikation/djfpdf/DCArapport208.pdf,,2025.0 +centrifugal dewatering,FOM,3.5,%/year,https://doi.org/10.3390/agronomy11050836,,2025.0 +centrifugal dewatering,electricity-input,0.005,MWh/tDM_in,calc from : https://doi.org/10.3390/su16135461,,2025.0 +centrifugal dewatering,investment,130000.0,EUR/t/h fibers,https://doi.org/10.3390/agronomy11050836,,2020.0 +centrifugal dewatering,lifetime,20.0,years, https://doi.org/10.3390/su16135461,,2025.0 +clean water tank storage,FOM,2.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, clean water tank storage,investment,69.1286,EUR/m^3-H2O,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2013.0 clean water tank storage,lifetime,30.0,years,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, coal,CO2 intensity,0.3361,tCO2/MWh_th,Entwicklung der spezifischen Kohlendioxid-Emissionen des deutschen Strommix in den Jahren 1990 - 2018,, @@ -804,7 +867,7 @@ decentral water tank storage,energy to power ratio,0.15,h,"Danish Energy Agency, decentral water tank storage,investment,433.8709,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",142 Small scale hot water tank: Specific investment,2015.0 decentral water tank storage,lifetime,30.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",142 Small scale hot water tank: Technical lifetime,2015.0 digestible biomass,fuel,17.0611,EUR/MWh_th,"JRC ENSPRESO ca avg for MINBIOAGRW1, ENS_Ref for 2040",,2010.0 -digestible biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 +digestible biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, digestible biomass to hydrogen,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, digestible biomass to hydrogen,efficiency,0.39,per unit,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, digestible biomass to hydrogen,investment,3177.8395,EUR/kW_th,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 @@ -869,18 +932,18 @@ electricity distribution grid,lifetime,40.0,years,TODO, from old pypsa cost assu electricity grid connection,FOM,2.0,%/year,TODO, from old pypsa cost assumptions,2015.0 electricity grid connection,investment,148.151,EUR/kW,DEA, from old pypsa cost assumptions,2015.0 electricity grid connection,lifetime,40.0,years,TODO, from old pypsa cost assumptions,2015.0 -electrobiofuels,C in fuel,0.9292,per unit,Stoichiometric calculation,, -electrobiofuels,FOM,2.8364,%/year,combination of BtL and electrofuels,,2015.0 -electrobiofuels,VOM,3.429,EUR/MWh_th,combination of BtL and electrofuels,,2017.0 +electrobiofuels,C in fuel,0.9285,per unit,Stoichiometric calculation,, +electrobiofuels,FOM,2.8364,%/year,combination of BtL and electrofuels,, +electrobiofuels,VOM,3.4512,EUR/MWh_th,combination of BtL and electrofuels,,2017.0 electrobiofuels,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, -electrobiofuels,efficiency-biomass,1.325,per unit,Stoichiometric calculation,, -electrobiofuels,efficiency-hydrogen,1.2543,per unit,Stoichiometric calculation,, -electrobiofuels,efficiency-tot,0.6443,per unit,Stoichiometric calculation,, -electrobiofuels,investment,392280.346,EUR/kW_th,combination of BtL and electrofuels,,2017.0 +electrobiofuels,efficiency-biomass,1.3565,per unit,Stoichiometric calculation,, +electrobiofuels,efficiency-hydrogen,1.242,per unit,Stoichiometric calculation,, +electrobiofuels,efficiency-tot,0.6484,per unit,Stoichiometric calculation,, +electrobiofuels,investment,396128.7941,EUR/kW_th,combination of BtL and electrofuels,,2017.0 electrolysis,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Fixed O&M ,2020.0 electrolysis,efficiency,0.6532,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Hydrogen Output,2020.0 electrolysis,efficiency-heat,0.1849,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: - hereof recoverable for district heating,2020.0 -electrolysis,investment,1200.0,EUR/kW_e,private communications; IEA https://iea.blob.core.windows.net/assets/9e0c82d4-06d2-496b-9542-f184ba803645/TheRoleofE-fuelsinDecarbonisingTransport.pdf,,2020.0 +electrolysis,investment,425.0,EUR/kW_e,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Specific investment,2020.0 electrolysis,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Technical lifetime,2020.0 electrolysis small,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 10 MW: Fixed O&M ,2020.0 electrolysis small,efficiency,0.6532,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 10 MW: Hydrogen Output,2020.0 @@ -900,7 +963,7 @@ gas boiler steam,VOM,1.007,EUR/MWh,"Danish Energy Agency, technology_data_for_in gas boiler steam,efficiency,0.93,per unit,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx","311.1c Steam boiler Gas: Total efficiency, net, annual average",2019.0 gas boiler steam,investment,45.7727,EUR/kW,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1c Steam boiler Gas: Nominal investment,2019.0 gas boiler steam,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1c Steam boiler Gas: Technical lifetime,2019.0 -gas storage,FOM,3.5919,%,Danish Energy Agency,"150 Underground Storage of Gas, Operation and Maintenance, salt cavern (units converted)",2015.0 +gas storage,FOM,3.5919,%,Danish Energy Agency,"150 Underground Storage of Gas, Operation and Maintenace, salt cavern (units converted)",2015.0 gas storage,investment,0.0348,EUR/kWh,Danish Energy Agency,"150 Underground Storage of Gas, Establishment of one cavern (units converted)",2015.0 gas storage,lifetime,100.0,years,TODO no source,"estimation: most underground storage are already build, they do have a long lifetime",2015.0 gas storage charger,investment,15.1737,EUR/kW,Danish Energy Agency,"150 Underground Storage of Gas, Process equipment (units converted)",2015.0 @@ -1006,7 +1069,7 @@ nuclear,investment,8594.1354,EUR/kW_e,"Lazard's levelized cost of energy analysi nuclear,lifetime,40.0,years,"Lazard's levelized cost of energy analysis - version 16.0 (2023): https://www.lazard.com/media/typdgxmm/lazards-lcoeplus-april-2023.pdf , pg. 49 (Levelized Cost of Energy - Key Assumptions), accessed: 2023-12-14.",,2023.0 offwind,FOM,2.1762,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Fixed O&M [EUR/MW_e/y, 2020]",2020.0 offwind,VOM,0.0212,EUR/MWhel,RES costs made up to fix curtailment order, from old pypsa cost assumptions,2015.0 -offwind,investment,1562.3661,"EUR/kW_e, 2020","Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Nominal investment [MEUR/MW_e, 2020] grid connection costs subtracted from investment costs",2020.0 +offwind,investment,1562.3661,"EUR/kW_e, 2020","Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Nominal investment [MEUR/MW_e, 2020] grid connection costs substracted from investment costs",2020.0 offwind,lifetime,30.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",21 Offshore turbines: Technical lifetime [years],2020.0 offwind-ac-connection-submarine,investment,2841.3251,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions,2015.0 offwind-ac-connection-underground,investment,1420.1334,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions,2015.0 @@ -1035,12 +1098,22 @@ organic rankine cycle,FOM,2.0,%/year,"Aghahosseini, Breyer 2020: From hot rock t organic rankine cycle,electricity-input,0.12,MWh_el/MWh_th,"Aghahosseini, Breyer 2020: From hot rock to useful energy: A global estimate of enhanced geothermal systems potential, https://www.sciencedirect.com/science/article/pii/S0306261920312551; Breede et al. 2015: Overcoming challenges in the classification of deep geothermal potential, https://eprints.gla.ac.uk/169585/","Heat-input, Electricity-output. This is a rough estimate, depends on input temperature, implies ~150 C.",2020.0 organic rankine cycle,investment,1376.0,EUR/kW_el,Tartiere and Astolfi 2017: A world overview of the organic Rankine cycle market,"Low rollout complicates the estimation, compounded by a dependence both on plant size and temperature, converted from 1500 USD/kW using currency conversion 1.09 USD = 1 EUR.",2020.0 organic rankine cycle,lifetime,30.0,years,"Aghahosseini, Breyer 2020: From hot rock to useful energy: A global estimate of enhanced geothermal systems potential, https://www.sciencedirect.com/science/article/pii/S0306261920312551",,2020.0 +pelletization,FOM,3.0,%/year,Own assumption: find better,,2025.0 +pelletization,electricity-input,0.1,MW_e/MW_pellets,Own assumption: find better,,2025.0 +pelletization,investment,0.0,EUR/MW_pellets,Own assumption: find better,,2020.0 +pelletization,lifetime,15.0,years,Own assumption: find better,,2025.0 +perennials gbr,FOM,0.0,%year,Own assumption,,2015.0 +perennials gbr,VOM,43.2317,EUR/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,"includes purchase of perennial crops and sales of proteine concentrate, table 8.1 wages, maintenance and auxiliary costs",2015.0 +perennials gbr,biogas-output,0.1947,MWh/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,table 2,2015.0 +perennials gbr,electricity-input,0.0733,MWh/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,table 2,2015.0 +perennials gbr,investment,1371168.1394,EUR/tDM/h,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,includes cost for biogas plant without upgrading,2015.0 +perennials gbr,lifetime,25.0,years,Own assumption,,2015.0 ror,FOM,2.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 ror,efficiency,0.9,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 ror,investment,3412.2266,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2010.0 ror,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions,2015.0 seawater RO desalination,electricity-input,0.003,MWHh_el/t_H2O,"Caldera et al. (2016): Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Fig. 4.",Desalination using SWRO. Assume medium salinity of 35 Practical Salinity Units (PSUs) = 35 kg/m^3., -seawater desalination,FOM,4.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2015.0 +seawater desalination,FOM,4.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, seawater desalination,electricity-input,3.0348,kWh/m^3-H2O,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Fig. 4.",, seawater desalination,investment,27828.5154,EUR/(m^3-H2O/h),"Caldera et al 2017: Learning Curve for Seawater Reverse Osmosis Desalination Plants: Capital Cost Trend of the Past, Present, and Future (https://doi.org/10.1002/2017WR021402), Table 4.",,2015.0 seawater desalination,lifetime,30.0,years,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, @@ -1066,7 +1139,7 @@ solar-utility,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_ solar-utility single-axis tracking,FOM,2.4459,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Fixed O&M [2020-EUR/MW_e/y],2020.0 solar-utility single-axis tracking,investment,384.3112,EUR/kW_e,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Nominal investment [2020-MEUR/MW_e],2020.0 solar-utility single-axis tracking,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Technical lifetime [years],2020.0 -solid biomass,CO2 intensity,0.3667,tCO2/MWh_th,Stoichiometric calculation with 18 GJ/t_DM LHV and 50% C-content for solid biomass,, +solid biomass,CO2 intensity,0.3757,tCO2/MWh_th,Stoichiometric calculation with 18 GJ/t_DM LHV and 50% C-content for solid biomass,, solid biomass,fuel,13.6489,EUR/MWh_th,"JRC ENSPRESO ca avg for MINBIOWOOW1 (secondary forest residue wood chips), ENS_Ref for 2040",,2010.0 solid biomass boiler steam,FOM,6.1742,%/year,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Fixed O&M,2019.0 solid biomass boiler steam,VOM,2.8679,EUR/MWh,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Variable O&M,2019.0 @@ -1078,7 +1151,7 @@ solid biomass boiler steam CC,VOM,2.8679,EUR/MWh,"Danish Energy Agency, technolo solid biomass boiler steam CC,efficiency,0.89,per unit,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx","311.1e Steam boiler Wood: Total efficiency, net, annual average",2019.0 solid biomass boiler steam CC,investment,567.5818,EUR/kW,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Nominal investment,2019.0 solid biomass boiler steam CC,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Technical lifetime,2019.0 -solid biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 +solid biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, solid biomass to hydrogen,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, solid biomass to hydrogen,efficiency,0.56,per unit,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, solid biomass to hydrogen,investment,3177.8395,EUR/kW_th,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 diff --git a/outputs/costs_2045.csv b/outputs/costs_2045.csv index 7aafd4ea..1ecc197e 100644 --- a/outputs/costs_2045.csv +++ b/outputs/costs_2045.csv @@ -41,18 +41,18 @@ Battery electric (passenger cars),lifetime,15.0,years,PATHS TO A CLIMATE-NEUTRAL Battery electric (trucks),FOM,16.0,%,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 Battery electric (trucks),investment,131200.0,EUR/LKW,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 Battery electric (trucks),lifetime,15.0,years,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 -BioSNG,C in fuel,0.3686,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BioSNG,C stored,0.6314,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BioSNG,CO2 stored,0.2315,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,C in fuel,0.3597,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,C stored,0.6403,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,CO2 stored,0.2405,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, BioSNG,FOM,1.6148,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Fixed O&M",2020.0 BioSNG,VOM,1.728,EUR/MWh_th,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Variable O&M",2020.0 BioSNG,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, BioSNG,efficiency,0.6825,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Bio SNG Output",2020.0 BioSNG,investment,1621.685,EUR/kW_th,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Specific investment",2020.0 BioSNG,lifetime,25.0,years,TODO,"84 Gasif. CFB, Bio-SNG: Technical lifetime",2020.0 -BtL,C in fuel,0.3039,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BtL,C stored,0.6961,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BtL,CO2 stored,0.2552,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,C in fuel,0.2966,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,C stored,0.7034,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,CO2 stored,0.2642,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, BtL,FOM,2.9164,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","85 Gasif. Ent. Flow FT, liq fu : Fixed O&M",2020.0 BtL,VOM,1.1305,EUR/MWh_FT,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","85 Gasif. Ent. Flow FT, liq fu : Variable O&M",2020.0 BtL,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, @@ -89,18 +89,36 @@ CH4 liquefaction,electricity-input,0.036,MWh_el/MWh_CH4,"Pospíšil et al. (2019 CH4 liquefaction,investment,241.443,EUR/kW_CH4,"Calculated, based on Lochner and Bothe (2009): https://doi.org/10.1016/j.enpol.2008.12.012 and Fasihi et al 2017, table 1, https://www.mdpi.com/2071-1050/9/2/306","based on 265 MUSD-2005/(1 bcm/a), 1 bcm = 10.6 TWh, currency exchange rate: 1.15 USD=1 EUR.",2005.0 CH4 liquefaction,lifetime,25.0,years,"Fasihi et al 2017, table 1, https://www.mdpi.com/2071-1050/9/2/306",,2005.0 CH4 liquefaction,methane-input,1.0,MWh_CH4/MWh_CH4,"Pospíšil et al. (2019): Energy demand of liquefaction and regasification of natural gas and the potential of LNG for operative thermal energy storage (https://doi.org/10.1016/j.rser.2018.09.027), Table 2 and Table 3. alternative source 2: https://encyclopedia.airliquide.com/methane (accessed 2021-02-10).","For refrigeration cycle, cleaning of gas presumed unnecessary as it should be nearly pure CH4 (=SNG). Assuming energy required is only electricity which is for Table 3 in the source provided with efficiencies of ~50% of LHV, making the numbers consistent with the numbers in Table 2.", +CO2 gas pipe,FOM,0.1,%/year,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2025.0 +CO2 gas pipe,investment,130000.0,EUR/(t/h)/km,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2020.0 +CO2 gas pipe,lifetime,50.0,years,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2025.0 +CO2 industrial compressor,FOM,4.0,%/year,Aarhus University BCE estimate,,2020.0 +CO2 industrial compressor,investment,1516000.0,EUR/t/h_CO2,Aarhus University BCE estimate,,2020.0 +CO2 industrial compressor,lifetime,15.0,years,Aarhus University BCE estimate,,2020.0 CO2 liquefaction,FOM,5.0,%/year,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,,2004.0 CO2 liquefaction,carbondioxide-input,1.0,t_CO2/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,"Assuming a pure, humid, low-pressure input stream. Neglecting possible gross-effects of CO2 which might be cycled for the cooling process.", CO2 liquefaction,electricity-input,0.123,MWh_el/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,, CO2 liquefaction,heat-input,0.0067,MWh_th/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,For drying purposes., CO2 liquefaction,investment,16.7226,EUR/t_CO2/h,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,"Plant capacity of 20 kt CO2 / d and an uptime of 85%. For a high purity, humid, low pressure input stream, includes drying and compression necessary for liquefaction.",2004.0 CO2 liquefaction,lifetime,25.0,years,"Guesstimate, based on CH4 liquefaction.",,2004.0 +CO2 liquefaction small,CO2-input,1.0,t_CO2/t_CO2,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants., +CO2 liquefaction small,FOM,4.0,%/year,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 +CO2 liquefaction small,electricity-input,0.185,MWh_el/t_CO2,DEA technology data for carbon capture and storage V.3,"411 liquefaction - for biogas plants - storage at 16 bara and -27C, including pumping into storage tanks.", +CO2 liquefaction small,heat-output,0.25,MWh_th/t_CO2,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants., +CO2 liquefaction small,investment,543016.4523,EUR/t_CO2/h,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 +CO2 liquefaction small,lifetime,20.0,years,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 CO2 pipeline,FOM,0.9,%/year,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 CO2 pipeline,investment,2116.4433,EUR/(tCO2/h)/km,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",Assuming the 120-500 t CO2/h range that is based on cost of a 12 inch onshore pipeline.,2015.0 CO2 pipeline,lifetime,50.0,years,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 +CO2 storage cylinders,FOM,1.0,%/year,Aarhus University BCE estimate,,202.0 +CO2 storage cylinders,investment,77000.0,EUR/tCO2,Aarhus University BCE estimate,,2020.0 +CO2 storage cylinders,lifetime,25.0,years,Aarhus University BCE estimate,,2020.0 CO2 storage tank,FOM,1.0,%/year,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, pg. 2746 .","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 CO2 storage tank,investment,2584.3462,EUR/t_CO2,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, Table 3.","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 CO2 storage tank,lifetime,25.0,years,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, pg. 2746 .","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 +CO2 storage tank small,FOM,3.0,%/year,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 +CO2 storage tank small,investment,3102.9512,EUR/t_CO2,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 +CO2 storage tank small,lifetime,25.0,years,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 CO2 submarine pipeline,FOM,0.5,%/year,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 CO2 submarine pipeline,investment,4232.8865,EUR/(tCO2/h)/km,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",Assuming the 120-500 t CO2/h range that is based on cost of a 12 inch offshore pipeline.,2015.0 Charging infrastructure fast (purely) battery electric vehicles passenger cars,FOM,1.6,%,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Charging infrastructure fast (purely) battery electric vehicles passenger cars,2020.0 @@ -151,6 +169,10 @@ Concrete-store,lifetime,35.0,years,"Viswanathan_2022, p.107 (p.129)","{'carrier' "Container, methanol",efficiency,1.7001,MWh/km,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 "Container, methanol",investment,119652947.2851,EUR,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 "Container, methanol",lifetime,33.0,years,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 +DH heat exchanger,FOM,0.1,%/year,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +DH heat exchanger,efficiency,0.95, - ,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +DH heat exchanger,investment,140.162,EUR/MW,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2020.0 +DH heat exchanger,lifetime,35.0,years,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 Diesel Bus city,FOM,0.0004,%/year,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 Diesel Bus city,Motor size,250.0,kW,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 Diesel Bus city,VOM,0.1068,EUR/km,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 @@ -287,6 +309,9 @@ H2 liquefaction,hydrogen-input,1.017,MWh_H2/MWh_H2,"Heuser et al. (2019): Techno H2 liquefaction,investment,622.9598,EUR/kW_H2,"IRENA (2022): Global Hydrogen Trade to Meet the 1.5° Climate Goal: Technology Review of Hydrogen Carriers, https://www.irena.org/publications/2022/Apr/Global-hydrogen-trade-Part-II , pg. 62f.","Assumption for a 200t/d facility (Pessimistic long-term or optimistic short-term value).; and Assumption for a large >300t/d, e.g. 2500 t/d facility (Optimistic long-term value without change in base technology mentioned in report).",2022.0 H2 liquefaction,lifetime,20.0,years,"Reuß et al 2017, https://doi.org/10.1016/j.apenergy.2017.05.050 , Table 9.",,2022.0 +H2 pipe,FOM,0.1,%/year,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2025.0 +H2 pipe,investment,38000.0,EUR/MW/km,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2020.0 +H2 pipe,lifetime,30.0,years,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2025.0 H2 pipeline,FOM,3.0,%/year,TODO, from old pypsa cost assumptions,2015.0 H2 pipeline,investment,282.5452,EUR/MW/km,Welder et al https://doi.org/10.1016/j.energy.2018.05.059, from old pypsa cost assumptions,2015.0 H2 pipeline,lifetime,40.0,years,TODO, from old pypsa cost assumptions,2015.0 @@ -307,6 +332,8 @@ HVDC underground,investment,1008.2934,EUR/MW/km,Härtel et al. (2017): https://d HVDC underground,lifetime,40.0,years,Purvins et al. (2018): https://doi.org/10.1016/j.jclepro.2018.03.095 .,"Based on estimated costs for a NA-EU connector (bidirectional,4 GW, 3000km length and ca. 3000m depth). Costs in return based on existing/currently under construction undersea cables. (same as for HVDC submarine)",2018.0 Haber-Bosch,FOM,3.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Fixed O&M,2015.0 Haber-Bosch,VOM,0.0225,EUR/MWh_NH3,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Variable O&M,2015.0 +Haber-Bosch,efficiency,0.0005,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: Electricity Consumption,",2015.0 +Haber-Bosch,efficiency-heat,0.0004,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: District Heating Output,",2015.0 Haber-Bosch,electricity-input,0.2473,MWh_el/MWh_NH3,"DECHEMA 2017: DECHEMA: Low carbon energy and feedstock for the European chemical industry (https://dechema.de/dechema_media/Downloads/Positionspapiere/Technology_study_Low_carbon_energy_and_feedstock_for_the_European_chemical_industry.pdf), table 11.",Assume 5 GJ/t_NH3 for compressors and NH3 LHV = 5.16666 MWh/t_NH3., Haber-Bosch,hydrogen-input,1.1484,MWh_H2/MWh_NH3,"DECHEMA 2017: DECHEMA: Low carbon energy and feedstock for the European chemical industry (https://dechema.de/dechema_media/Downloads/Positionspapiere/Technology_study_Low_carbon_energy_and_feedstock_for_the_European_chemical_industry.pdf), pg. 57.","178 kg_H2 per t_NH3, LHV for both assumed.", Haber-Bosch,investment,1054.8211,EUR/kW_NH3,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Specific investment,2015.0 @@ -428,6 +455,9 @@ Methanol steam reforming,FOM,4.0,%/year,"Niermann et al. (2021): Liquid Organic Methanol steam reforming,investment,18016.8665,EUR/MW_H2,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.","For high temperature steam reforming plant with a capacity of 200 MW_H2 output (6t/h). Reference plant of 1 MW (30kg_H2/h) costs 150kEUR, scale factor of 0.6 assumed.",2020.0 Methanol steam reforming,lifetime,20.0,years,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.",,2020.0 Methanol steam reforming,methanol-input,1.201,MWh_MeOH/MWh_H2,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.",Assuming per 1 t_H2 (with LHV 33.3333 MWh/t): 4.5 MWh_th and 3.2 MWh_el are required. We assume electricity can be substituted / provided with 1:1 as heat energy., +NG grid connection,FOM,0.2,%/year,https://evida.dk/tarifblad010125/,EVIDA.DK,2025.0 +NG grid connection,investment,1155.9268,EUR/MW,https://evida.dk/tarifblad010125/,EVIDA.DK,2025.0 +NG grid connection,lifetime,40.0,years,Own assumption,,2025.0 NH3 (l) storage tank incl. liquefaction,FOM,2.0,%/year,"Guesstimate, based on H2 (l) storage tank.",,2010.0 NH3 (l) storage tank incl. liquefaction,investment,166.8201,EUR/MWh_NH3,"Calculated based on Morgan E. 2013: doi:10.7275/11KT-3F59 , Fig. 55, Fig 58.","Based on estimated for a double-wall liquid ammonia tank (~ambient pressure, -33°C), inner tank from stainless steel, outer tank from concrete including installations for liquefaction/condensation, boil-off gas recovery and safety installations; the necessary installations make only a small fraction of the total cost. The total cost are driven by material and working time on the tanks. While the costs do not scale strictly linearly, we here assume they do (good approximation c.f. ref. Fig 55.) and take the costs for a 9 kt NH3 (l) tank = 8 M$2010, which is smaller 4-5x smaller than the largest deployed tanks today. @@ -454,6 +484,9 @@ PHS,FOM,1.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa PHS,efficiency,0.75,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 PHS,investment,2274.8177,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2010.0 PHS,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions,2015.0 +PWH pipe,FOM,0.1,%/year,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +PWH pipe,investment,63000.0,EUR/MW/km,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2020.0 +PWH pipe,lifetime,45.0,years,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 Pumped-Heat-charger,FOM,0.366,%/year,"Viswanathan_2022, NULL","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Guesstimate, 50% on charger']}",2020.0 Pumped-Heat-charger,efficiency,0.99,per unit,"Viswanathan_2022, NULL","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Charger']}",2020.0 Pumped-Heat-charger,investment,761782.6727,EUR/MW,"Georgiou_2018, Figure 9 of reference roughly 80% of capital cost are power related 47%/80% of costs are required for liquefaction (charging)","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Power Equipment Charge']}",2020.0 @@ -472,12 +505,12 @@ Pumped-Storage-Hydro-bicharger,lifetime,60.0,years,"Viswanathan_2022, p.68 (p.90 Pumped-Storage-Hydro-store,FOM,0.43,%/year,"Viswanathan_2022, 0.43 % of SB","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['derived']}",2020.0 Pumped-Storage-Hydro-store,investment,57074.0625,EUR/MWh,"Viswanathan_2022, p.68 (p.90)","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['Reservoir Construction & Infrastructure']}",2020.0 Pumped-Storage-Hydro-store,lifetime,60.0,years,"Viswanathan_2022, p.68 (p.90)","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['NULL']}",2020.0 -SMR,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 +SMR,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311", SMR,efficiency,0.76,per unit (in LHV),"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, SMR,investment,522201.0492,EUR/MW_CH4,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 SMR,lifetime,30.0,years,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, -SMR CC,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 -SMR CC,capture_rate,0.9,per unit,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",wide range: capture rates between 54%-90%, +SMR CC,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311", +SMR CC,capture_rate,0.9,EUR/MW_CH4,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",wide range: capture rates betwen 54%-90%, SMR CC,efficiency,0.69,per unit (in LHV),"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, SMR CC,investment,605753.2171,EUR/MW_CH4,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 SMR CC,lifetime,30.0,years,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, @@ -534,6 +567,8 @@ Zn-Br-Nonflow-store,FOM,0.2244,%/year,"Viswanathan_2022, 0.43 % of SB","{'carrie Zn-Br-Nonflow-store,investment,239220.5823,EUR/MWh,"Viswanathan_2022, p.59 (p.81) Table 4.14","{'carrier': ['znbr'], 'technology_type': ['store'], 'type': ['electrochemical'], 'note': ['DC storage block']}",2020.0 Zn-Br-Nonflow-store,lifetime,15.0,years,"Viswanathan_2022, p.59 (p.81)","{'carrier': ['znbr'], 'technology_type': ['store'], 'type': ['electrochemical'], 'note': ['NULL']}",2020.0 air separation unit,FOM,3.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Fixed O&M,2015.0 +air separation unit,efficiency,0.0005,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: Electricity Consumption,",2015.0 +air separation unit,efficiency-heat,0.0004,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: District Heating Output,",2015.0 air separation unit,electricity-input,0.25,MWh_el/t_N2,"DEA (2022): Technology Data for Renewable Fuels (https://ens.dk/en/our-services/projections-and-models/technology-data/technology-data-renewable-fuels), p.288.","For consistency reasons use value from Danish Energy Agency. DEA also reports range of values (0.2-0.4 MWh/t_N2) on pg. 288. Other efficienices reported are even higher, e.g. 0.11 Mwh/t_N2 from Morgan (2013): Techno-Economic Feasibility Study of Ammonia Plants Powered by Offshore Wind .", air separation unit,investment,592917.0978,EUR/t_N2/h,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Specific investment,2015.0 air separation unit,lifetime,30.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Technical lifetime,2015.0 @@ -548,12 +583,13 @@ battery inverter,lifetime,10.0,years,"Danish Energy Agency, technology_data_cata battery storage,investment,89.4197,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Energy storage expansion cost investment,2015.0 battery storage,lifetime,30.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Technical lifetime,2015.0 biochar pyrolysis,FOM,3.381,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Fixed O&M",2020.0 -biochar pyrolysis,VOM,823.497,EUR/MWh_biochar,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Variable O&M",2020.0 -biochar pyrolysis,efficiency-biochar,0.404,MWh_biochar/MWh_feedstock,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: efficiency biochar",2020.0 -biochar pyrolysis,efficiency-heat,0.4848,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: efficiency heat",2020.0 -biochar pyrolysis,investment,135104.97,EUR/kW_biochar,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 +biochar pyrolysis,VOM,47.6777,EUR/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Variable O&M",2020.0 +biochar pyrolysis,biomass input,7.6748,MWh_biomass/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Biomass Input",2020.0 +biochar pyrolysis,electricity input,0.3184,MWh_e/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: El-Input",2020.0 +biochar pyrolysis,heat output,3.7859,MWh_th/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: H-Output",2020.0 +biochar pyrolysis,investment,7822119.5561,EUR/t_CO2/h,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Technical lifetime",2020.0 -biochar pyrolysis,yield-biochar,0.0582,ton biochar/MWh_feedstock,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: yield biochar",2020.0 +biochar pyrolysis,yield-biochar,0.0597,t_biochar/MWh_biomass,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: yield biochar",2020.0 biodiesel crops,fuel,134.6872,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIORPS1 (rape seed), ENS_BaU_GFTM",,2010.0 bioethanol crops,fuel,87.9862,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIOCRP11 (Bioethanol barley, wheat, grain maize, oats, other cereals and rye), ENS_BaU_GFTM",,2010.0 biogas,CO2 stored,0.0868,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, @@ -570,10 +606,18 @@ biogas CC,efficiency,1.0,per unit,Assuming input biomass is already given in bio biogas CC,investment,894.8011,EUR/kW,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","81 Biogas, Basic plant, small: Specific investment",2020.0 biogas CC,lifetime,20.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","81 Biogas, Basic plant, small: Technical lifetime",2020.0 biogas manure,fuel,19.9144,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIOGAS1 (manure), ENS_BaU_GFTM",,2010.0 -biogas plus hydrogen,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Fixed O&M,2020.0 -biogas plus hydrogen,VOM,2.6798,EUR/MWh_CH4,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Variable O&M,2020.0 -biogas plus hydrogen,investment,562.7513,EUR/kW_CH4,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Specific investment,2020.0 +biogas plus hydrogen,Biogas Input,1.1522,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Biogas Consumption,",2020.0 +biogas plus hydrogen,CO2 Input,0.1235,t_CO2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: CO2 Input,",2020.0 +biogas plus hydrogen,Methane Output,1.9348,MWh_CH4/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Methane Output,",2020.0 +biogas plus hydrogen,VOM,5.1848,EUR/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Variable O&M,2020.0 +biogas plus hydrogen,electricity input,0.0217,MWh_e/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: El-Input,",2020.0 +biogas plus hydrogen,heat output,0.2174,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: H-Output,",2020.0 +biogas plus hydrogen,hydrogen input,1.0,MWh_H2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Hydrogen Consumption,",2020.0 +biogas plus hydrogen,investment,1088.8014,EUR/kW_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Specific investment,2020.0 biogas plus hydrogen,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Technical lifetime,2020.0 +biogas storage,FOM,0.2,%/year,Aarhus University BCE estimate,,2025.0 +biogas storage,investment,16750.0,EUR/MWh_biogas,Aarhus University BCE estimate,,2020.0 +biogas storage,lifetime,15.0,years,Aarhus University BCE estimate,,2025.0 biogas upgrading,FOM,17.4434,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: Fixed O&M ",2020.0 biogas upgrading,VOM,2.8874,EUR/MWh output,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: Variable O&M",2020.0 biogas upgrading,investment,130.7968,EUR/kW,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: investment (upgrading, methane redution and grid injection)",2020.0 @@ -613,14 +657,18 @@ biomass HOP,VOM,3.2118,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and biomass HOP,efficiency,0.2806,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09c Straw HOP: Total efficiency , net, annual average",2015.0 biomass HOP,investment,818.0661,EUR/kW_th - heat output,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",09c Straw HOP: Nominal investment ,2015.0 biomass HOP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",09c Straw HOP: Technical lifetime,2015.0 +biomass belt dryer,FOM,3.0,%/year,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,electricity-input,0.025,MWh/t_H2O removed,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,heat-input,1.0,MWh/t_H2O removed,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,lifetime,20.0,years,DOI: 10.1080/07373937.2018.1492615,,2020.0 biomass boiler,FOM,7.5261,%/year,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Fixed O&M",2015.0 biomass boiler,efficiency,0.875,per unit,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Heat efficiency, annual average, net",2015.0 biomass boiler,investment,637.9448,EUR/kW_th,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Specific investment",2015.0 biomass boiler,lifetime,20.0,years,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Technical lifetime",2015.0 biomass boiler,pelletizing cost,9.0,EUR/MWh_pellets,Assumption based on doi:10.1016/j.rser.2019.109506,,2019.0 -biomass-to-methanol,C in fuel,0.4332,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -biomass-to-methanol,C stored,0.5668,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -biomass-to-methanol,CO2 stored,0.2078,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,C in fuel,0.4229,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,C stored,0.5771,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,CO2 stored,0.2168,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, biomass-to-methanol,FOM,2.1583,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Fixed O&M,2020.0 biomass-to-methanol,VOM,14.4653,EUR/MWh_MeOH,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Variable O&M,2020.0 biomass-to-methanol,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, @@ -629,6 +677,15 @@ biomass-to-methanol,efficiency-electricity,0.02,MWh_e/MWh_th,"Danish Energy Agen biomass-to-methanol,efficiency-heat,0.22,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","97 Methanol from biomass gasif.: District heat Output,",2020.0 biomass-to-methanol,investment,1904.4308,EUR/kW_MeOH,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Specific investment,2020.0 biomass-to-methanol,lifetime,20.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Technical lifetime,2020.0 +biomethanation,Biogas Input,1.1444,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Biogas Consumption,",2020.0 +biomethanation,CO2 Input,0.165,t_CO2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: CO2 Input,",2020.0 +biomethanation,FOM,6.6667,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Fixed O&M ,2020.0 +biomethanation,Hydrogen Input,1.0,MWh_H2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Hydrogen Input,",2020.0 +biomethanation,Methane Output,1.9673,MWh_CH4/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Methane Output,",2020.0 +biomethanation,electricity input,0.0417,MWh_e/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: El-Input,",2020.0 +biomethanation,heat output,0.1667,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: H-Output,",2020.0 +biomethanation,investment,987.5,EUR/kW_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Specific investment ,2020.0 +biomethanation,lifetime,30.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Technical lifetime,2020.0 cement capture,FOM,3.0,%/year,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 cement capture,capture_rate,0.95,per unit,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 cement capture,compression-electricity-input,0.075,MWh/tCO2,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 @@ -715,7 +772,7 @@ central solid biomass CHP CC,c_b,0.3444,50°C/100°C,"Danish Energy Agency, tech central solid biomass CHP CC,c_v,1.0,50°C/100°C,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Cv coefficient",2015.0 central solid biomass CHP CC,efficiency,0.2664,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Electricity efficiency, net, annual average",2015.0 central solid biomass CHP CC,efficiency-heat,0.8282,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Heat efficiency, net, annual average",2015.0 -central solid biomass CHP CC,investment,4836.5672,EUR/kW_e,Combination of central solid biomass CHP CC and solid biomass boiler steam,,2015.0 +central solid biomass CHP CC,investment,4871.9975,EUR/kW_e,Combination of central solid biomass CHP CC and solid biomass boiler steam,,2015.0 central solid biomass CHP CC,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Technical lifetime",2015.0 central solid biomass CHP powerboost CC,FOM,2.8555,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Fixed O&M",2015.0 central solid biomass CHP powerboost CC,VOM,4.9173,EUR/MWh_e,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Variable O&M ",2015.0 @@ -742,7 +799,13 @@ central water-sourced heat pump,VOM,1.4709,EUR/MWh,"Danish Energy Agency, techno central water-sourced heat pump,efficiency,3.86,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Total efficiency , net, annual average",2015.0 central water-sourced heat pump,investment,1058.2216,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Specific investment",2015.0 central water-sourced heat pump,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Technical lifetime",2015.0 -clean water tank storage,FOM,2.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2013.0 +centrifugal dewatering,DM out,0.45,kgDM/kgtot,https://dcapub.au.dk/djfpublikation/djfpdf/DCArapport208.pdf,,2025.0 +centrifugal dewatering,DM separation,0.509,kg_out/kg_in,https://dcapub.au.dk/djfpublikation/djfpdf/DCArapport208.pdf,,2025.0 +centrifugal dewatering,FOM,3.5,%/year,https://doi.org/10.3390/agronomy11050836,,2025.0 +centrifugal dewatering,electricity-input,0.005,MWh/tDM_in,calc from : https://doi.org/10.3390/su16135461,,2025.0 +centrifugal dewatering,investment,130000.0,EUR/t/h fibers,https://doi.org/10.3390/agronomy11050836,,2020.0 +centrifugal dewatering,lifetime,20.0,years, https://doi.org/10.3390/su16135461,,2025.0 +clean water tank storage,FOM,2.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, clean water tank storage,investment,69.1286,EUR/m^3-H2O,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2013.0 clean water tank storage,lifetime,30.0,years,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, coal,CO2 intensity,0.3361,tCO2/MWh_th,Entwicklung der spezifischen Kohlendioxid-Emissionen des deutschen Strommix in den Jahren 1990 - 2018,, @@ -804,7 +867,7 @@ decentral water tank storage,energy to power ratio,0.15,h,"Danish Energy Agency, decentral water tank storage,investment,433.8709,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",142 Small scale hot water tank: Specific investment,2015.0 decentral water tank storage,lifetime,30.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",142 Small scale hot water tank: Technical lifetime,2015.0 digestible biomass,fuel,17.0611,EUR/MWh_th,"JRC ENSPRESO ca avg for MINBIOAGRW1, ENS_Ref for 2040",,2010.0 -digestible biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 +digestible biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, digestible biomass to hydrogen,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, digestible biomass to hydrogen,efficiency,0.39,per unit,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, digestible biomass to hydrogen,investment,2913.0196,EUR/kW_th,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 @@ -869,18 +932,18 @@ electricity distribution grid,lifetime,40.0,years,TODO, from old pypsa cost assu electricity grid connection,FOM,2.0,%/year,TODO, from old pypsa cost assumptions,2015.0 electricity grid connection,investment,148.151,EUR/kW,DEA, from old pypsa cost assumptions,2015.0 electricity grid connection,lifetime,40.0,years,TODO, from old pypsa cost assumptions,2015.0 -electrobiofuels,C in fuel,0.9304,per unit,Stoichiometric calculation,, -electrobiofuels,FOM,2.9164,%/year,combination of BtL and electrofuels,,2015.0 -electrobiofuels,VOM,3.0103,EUR/MWh_th,combination of BtL and electrofuels,,2017.0 +electrobiofuels,C in fuel,0.9297,per unit,Stoichiometric calculation,, +electrobiofuels,FOM,2.9164,%/year,combination of BtL and electrofuels,, +electrobiofuels,VOM,3.0295,EUR/MWh_th,combination of BtL and electrofuels,,2017.0 electrobiofuels,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, -electrobiofuels,efficiency-biomass,1.3267,per unit,Stoichiometric calculation,, -electrobiofuels,efficiency-hydrogen,1.2754,per unit,Stoichiometric calculation,, -electrobiofuels,efficiency-tot,0.6503,per unit,Stoichiometric calculation,, -electrobiofuels,investment,356768.6132,EUR/kW_th,combination of BtL and electrofuels,,2017.0 +electrobiofuels,efficiency-biomass,1.3581,per unit,Stoichiometric calculation,, +electrobiofuels,efficiency-hydrogen,1.2622,per unit,Stoichiometric calculation,, +electrobiofuels,efficiency-tot,0.6542,per unit,Stoichiometric calculation,, +electrobiofuels,investment,360470.0551,EUR/kW_th,combination of BtL and electrofuels,,2017.0 electrolysis,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Fixed O&M ,2020.0 electrolysis,efficiency,0.6763,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Hydrogen Output,2020.0 electrolysis,efficiency-heat,0.1571,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: - hereof recoverable for district heating,2020.0 -electrolysis,investment,1100.0,EUR/kW_e,private communications; IEA https://iea.blob.core.windows.net/assets/9e0c82d4-06d2-496b-9542-f184ba803645/TheRoleofE-fuelsinDecarbonisingTransport.pdf,,2020.0 +electrolysis,investment,362.5,EUR/kW_e,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Specific investment,2020.0 electrolysis,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Technical lifetime,2020.0 electrolysis small,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 10 MW: Fixed O&M ,2020.0 electrolysis small,efficiency,0.6763,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 10 MW: Hydrogen Output,2020.0 @@ -900,7 +963,7 @@ gas boiler steam,VOM,1.007,EUR/MWh,"Danish Energy Agency, technology_data_for_in gas boiler steam,efficiency,0.935,per unit,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx","311.1c Steam boiler Gas: Total efficiency, net, annual average",2019.0 gas boiler steam,investment,45.7727,EUR/kW,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1c Steam boiler Gas: Nominal investment,2019.0 gas boiler steam,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1c Steam boiler Gas: Technical lifetime,2019.0 -gas storage,FOM,3.5919,%,Danish Energy Agency,"150 Underground Storage of Gas, Operation and Maintenance, salt cavern (units converted)",2015.0 +gas storage,FOM,3.5919,%,Danish Energy Agency,"150 Underground Storage of Gas, Operation and Maintenace, salt cavern (units converted)",2015.0 gas storage,investment,0.0348,EUR/kWh,Danish Energy Agency,"150 Underground Storage of Gas, Establishment of one cavern (units converted)",2015.0 gas storage,lifetime,100.0,years,TODO no source,"estimation: most underground storage are already build, they do have a long lifetime",2015.0 gas storage charger,investment,15.1737,EUR/kW,Danish Energy Agency,"150 Underground Storage of Gas, Process equipment (units converted)",2015.0 @@ -1006,7 +1069,7 @@ nuclear,investment,8594.1354,EUR/kW_e,"Lazard's levelized cost of energy analysi nuclear,lifetime,40.0,years,"Lazard's levelized cost of energy analysis - version 16.0 (2023): https://www.lazard.com/media/typdgxmm/lazards-lcoeplus-april-2023.pdf , pg. 49 (Levelized Cost of Energy - Key Assumptions), accessed: 2023-12-14.",,2023.0 offwind,FOM,2.1709,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Fixed O&M [EUR/MW_e/y, 2020]",2020.0 offwind,VOM,0.0212,EUR/MWhel,RES costs made up to fix curtailment order, from old pypsa cost assumptions,2015.0 -offwind,investment,1543.1486,"EUR/kW_e, 2020","Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Nominal investment [MEUR/MW_e, 2020] grid connection costs subtracted from investment costs",2020.0 +offwind,investment,1543.1486,"EUR/kW_e, 2020","Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Nominal investment [MEUR/MW_e, 2020] grid connection costs substracted from investment costs",2020.0 offwind,lifetime,30.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",21 Offshore turbines: Technical lifetime [years],2020.0 offwind-ac-connection-submarine,investment,2841.3251,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions,2015.0 offwind-ac-connection-underground,investment,1420.1334,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions,2015.0 @@ -1035,12 +1098,22 @@ organic rankine cycle,FOM,2.0,%/year,"Aghahosseini, Breyer 2020: From hot rock t organic rankine cycle,electricity-input,0.12,MWh_el/MWh_th,"Aghahosseini, Breyer 2020: From hot rock to useful energy: A global estimate of enhanced geothermal systems potential, https://www.sciencedirect.com/science/article/pii/S0306261920312551; Breede et al. 2015: Overcoming challenges in the classification of deep geothermal potential, https://eprints.gla.ac.uk/169585/","Heat-input, Electricity-output. This is a rough estimate, depends on input temperature, implies ~150 C.",2020.0 organic rankine cycle,investment,1376.0,EUR/kW_el,Tartiere and Astolfi 2017: A world overview of the organic Rankine cycle market,"Low rollout complicates the estimation, compounded by a dependence both on plant size and temperature, converted from 1500 USD/kW using currency conversion 1.09 USD = 1 EUR.",2020.0 organic rankine cycle,lifetime,30.0,years,"Aghahosseini, Breyer 2020: From hot rock to useful energy: A global estimate of enhanced geothermal systems potential, https://www.sciencedirect.com/science/article/pii/S0306261920312551",,2020.0 +pelletization,FOM,3.0,%/year,Own assumption: find better,,2025.0 +pelletization,electricity-input,0.1,MW_e/MW_pellets,Own assumption: find better,,2025.0 +pelletization,investment,0.0,EUR/MW_pellets,Own assumption: find better,,2020.0 +pelletization,lifetime,15.0,years,Own assumption: find better,,2025.0 +perennials gbr,FOM,0.0,%year,Own assumption,,2015.0 +perennials gbr,VOM,43.2317,EUR/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,"includes purchase of perennial crops and sales of proteine concentrate, table 8.1 wages, maintenance and auxiliary costs",2015.0 +perennials gbr,biogas-output,0.1947,MWh/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,table 2,2015.0 +perennials gbr,electricity-input,0.0733,MWh/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,table 2,2015.0 +perennials gbr,investment,1371168.1394,EUR/tDM/h,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,includes cost for biogas plant without upgrading,2015.0 +perennials gbr,lifetime,25.0,years,Own assumption,,2015.0 ror,FOM,2.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 ror,efficiency,0.9,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 ror,investment,3412.2266,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2010.0 ror,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions,2015.0 seawater RO desalination,electricity-input,0.003,MWHh_el/t_H2O,"Caldera et al. (2016): Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Fig. 4.",Desalination using SWRO. Assume medium salinity of 35 Practical Salinity Units (PSUs) = 35 kg/m^3., -seawater desalination,FOM,4.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2015.0 +seawater desalination,FOM,4.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, seawater desalination,electricity-input,3.0348,kWh/m^3-H2O,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Fig. 4.",, seawater desalination,investment,25039.1517,EUR/(m^3-H2O/h),"Caldera et al 2017: Learning Curve for Seawater Reverse Osmosis Desalination Plants: Capital Cost Trend of the Past, Present, and Future (https://doi.org/10.1002/2017WR021402), Table 4.",,2015.0 seawater desalination,lifetime,30.0,years,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, @@ -1066,7 +1139,7 @@ solar-utility,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_ solar-utility single-axis tracking,FOM,2.4972,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Fixed O&M [2020-EUR/MW_e/y],2020.0 solar-utility single-axis tracking,investment,368.412,EUR/kW_e,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Nominal investment [2020-MEUR/MW_e],2020.0 solar-utility single-axis tracking,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Technical lifetime [years],2020.0 -solid biomass,CO2 intensity,0.3667,tCO2/MWh_th,Stoichiometric calculation with 18 GJ/t_DM LHV and 50% C-content for solid biomass,, +solid biomass,CO2 intensity,0.3757,tCO2/MWh_th,Stoichiometric calculation with 18 GJ/t_DM LHV and 50% C-content for solid biomass,, solid biomass,fuel,13.6489,EUR/MWh_th,"JRC ENSPRESO ca avg for MINBIOWOOW1 (secondary forest residue wood chips), ENS_Ref for 2040",,2010.0 solid biomass boiler steam,FOM,6.2273,%/year,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Fixed O&M,2019.0 solid biomass boiler steam,VOM,2.8679,EUR/MWh,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Variable O&M,2019.0 @@ -1078,7 +1151,7 @@ solid biomass boiler steam CC,VOM,2.8679,EUR/MWh,"Danish Energy Agency, technolo solid biomass boiler steam CC,efficiency,0.895,per unit,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx","311.1e Steam boiler Wood: Total efficiency, net, annual average",2019.0 solid biomass boiler steam CC,investment,553.85,EUR/kW,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Nominal investment,2019.0 solid biomass boiler steam CC,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Technical lifetime,2019.0 -solid biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 +solid biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, solid biomass to hydrogen,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, solid biomass to hydrogen,efficiency,0.56,per unit,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, solid biomass to hydrogen,investment,2913.0196,EUR/kW_th,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 diff --git a/outputs/costs_2050.csv b/outputs/costs_2050.csv index d9be62c7..ff03f9ef 100644 --- a/outputs/costs_2050.csv +++ b/outputs/costs_2050.csv @@ -41,18 +41,18 @@ Battery electric (passenger cars),lifetime,15.0,years,PATHS TO A CLIMATE-NEUTRAL Battery electric (trucks),FOM,16.0,%,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 Battery electric (trucks),investment,129400.0,EUR/LKW,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 Battery electric (trucks),lifetime,15.0,years,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Battery electric (trucks),2020.0 -BioSNG,C in fuel,0.378,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BioSNG,C stored,0.622,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BioSNG,CO2 stored,0.2281,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,C in fuel,0.369,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,C stored,0.631,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BioSNG,CO2 stored,0.2371,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, BioSNG,FOM,1.6067,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Fixed O&M",2020.0 BioSNG,VOM,1.7014,EUR/MWh_th,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Variable O&M",2020.0 BioSNG,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, BioSNG,efficiency,0.7,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Bio SNG Output",2020.0 BioSNG,investment,1595.1,EUR/kW_th,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","84 Gasif. CFB, Bio-SNG: Specific investment",2020.0 BioSNG,lifetime,25.0,years,TODO,"84 Gasif. CFB, Bio-SNG: Technical lifetime",2020.0 -BtL,C in fuel,0.3156,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BtL,C stored,0.6844,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -BtL,CO2 stored,0.251,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,C in fuel,0.308,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,C stored,0.692,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +BtL,CO2 stored,0.2599,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, BtL,FOM,3.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","85 Gasif. Ent. Flow FT, liq fu : Fixed O&M",2020.0 BtL,VOM,1.1299,EUR/MWh_FT,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","85 Gasif. Ent. Flow FT, liq fu : Variable O&M",2020.0 BtL,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, @@ -89,18 +89,36 @@ CH4 liquefaction,electricity-input,0.036,MWh_el/MWh_CH4,"Pospíšil et al. (2019 CH4 liquefaction,investment,241.443,EUR/kW_CH4,"Calculated, based on Lochner and Bothe (2009): https://doi.org/10.1016/j.enpol.2008.12.012 and Fasihi et al 2017, table 1, https://www.mdpi.com/2071-1050/9/2/306","based on 265 MUSD-2005/(1 bcm/a), 1 bcm = 10.6 TWh, currency exchange rate: 1.15 USD=1 EUR.",2005.0 CH4 liquefaction,lifetime,25.0,years,"Fasihi et al 2017, table 1, https://www.mdpi.com/2071-1050/9/2/306",,2005.0 CH4 liquefaction,methane-input,1.0,MWh_CH4/MWh_CH4,"Pospíšil et al. (2019): Energy demand of liquefaction and regasification of natural gas and the potential of LNG for operative thermal energy storage (https://doi.org/10.1016/j.rser.2018.09.027), Table 2 and Table 3. alternative source 2: https://encyclopedia.airliquide.com/methane (accessed 2021-02-10).","For refrigeration cycle, cleaning of gas presumed unnecessary as it should be nearly pure CH4 (=SNG). Assuming energy required is only electricity which is for Table 3 in the source provided with efficiencies of ~50% of LHV, making the numbers consistent with the numbers in Table 2.", +CO2 gas pipe,FOM,0.1,%/year,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2025.0 +CO2 gas pipe,investment,130000.0,EUR/(t/h)/km,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2020.0 +CO2 gas pipe,lifetime,50.0,years,"DEA Technology Data for Carbon Capture, Transport and Storage",sheet 421 co2 pipeline. constant for all years,2025.0 +CO2 industrial compressor,FOM,4.0,%/year,Aarhus University BCE estimate,,2020.0 +CO2 industrial compressor,investment,1516000.0,EUR/t/h_CO2,Aarhus University BCE estimate,,2020.0 +CO2 industrial compressor,lifetime,15.0,years,Aarhus University BCE estimate,,2020.0 CO2 liquefaction,FOM,5.0,%/year,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,,2004.0 CO2 liquefaction,carbondioxide-input,1.0,t_CO2/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,"Assuming a pure, humid, low-pressure input stream. Neglecting possible gross-effects of CO2 which might be cycled for the cooling process.", CO2 liquefaction,electricity-input,0.123,MWh_el/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,, CO2 liquefaction,heat-input,0.0067,MWh_th/t_CO2,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,For drying purposes., CO2 liquefaction,investment,16.7226,EUR/t_CO2/h,Mitsubish Heavy Industries Ltd. and IEA (2004): https://ieaghg.org/docs/General_Docs/Reports/PH4-30%20Ship%20Transport.pdf .,"Plant capacity of 20 kt CO2 / d and an uptime of 85%. For a high purity, humid, low pressure input stream, includes drying and compression necessary for liquefaction.",2004.0 CO2 liquefaction,lifetime,25.0,years,"Guesstimate, based on CH4 liquefaction.",,2004.0 +CO2 liquefaction small,CO2-input,1.0,t_CO2/t_CO2,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants., +CO2 liquefaction small,FOM,4.0,%/year,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 +CO2 liquefaction small,electricity-input,0.185,MWh_el/t_CO2,DEA technology data for carbon capture and storage V.3,"411 liquefaction - for biogas plants - storage at 16 bara and -27C, including pumping into storage tanks.", +CO2 liquefaction small,heat-output,0.25,MWh_th/t_CO2,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants., +CO2 liquefaction small,investment,543016.4523,EUR/t_CO2/h,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 +CO2 liquefaction small,lifetime,20.0,years,DEA technology data for carbon capture and storage V.3,411 liquefaction - for biogas plants.,2024.0 CO2 pipeline,FOM,0.9,%/year,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 CO2 pipeline,investment,2116.4433,EUR/(tCO2/h)/km,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",Assuming the 120-500 t CO2/h range that is based on cost of a 12 inch onshore pipeline.,2015.0 CO2 pipeline,lifetime,50.0,years,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 +CO2 storage cylinders,FOM,1.0,%/year,Aarhus University BCE estimate,,202.0 +CO2 storage cylinders,investment,77000.0,EUR/tCO2,Aarhus University BCE estimate,,2020.0 +CO2 storage cylinders,lifetime,25.0,years,Aarhus University BCE estimate,,2020.0 CO2 storage tank,FOM,1.0,%/year,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, pg. 2746 .","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 CO2 storage tank,investment,2584.3462,EUR/t_CO2,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, Table 3.","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 CO2 storage tank,lifetime,25.0,years,"Lauri et al. 2014: doi: 10.1016/j.egypro.2014.11.297, pg. 2746 .","Assuming a 3000m^3 pressurised steel cylinder tanks and a CO2 density of 1100 kg/m^3 (close to triple point at -56.6°C and 5.2 bar with max density of 1200kg/m^3 ). Lauri et al. report costs 3x higher per m^3 for steel tanks, which are consistent with other sources. The numbers reported are in rather difficult to pinpoint as systems can greatly vary.",2013.0 +CO2 storage tank small,FOM,3.0,%/year,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 +CO2 storage tank small,investment,3102.9512,EUR/t_CO2,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 +CO2 storage tank small,lifetime,25.0,years,DEA technology data for carbon capture and storage V.3,412 intermediate storage of CO2 - for biogas plants.,2024.0 CO2 submarine pipeline,FOM,0.5,%/year,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",,2015.0 CO2 submarine pipeline,investment,4232.8865,EUR/(tCO2/h)/km,"Danish Energy Agency, Technology Data for Energy Transport (March 2021), Excel datasheet: 121 co2 pipeline.",Assuming the 120-500 t CO2/h range that is based on cost of a 12 inch offshore pipeline.,2015.0 Charging infrastructure fast (purely) battery electric vehicles passenger cars,FOM,1.6,%,PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html,Charging infrastructure fast (purely) battery electric vehicles passenger cars,2020.0 @@ -151,6 +169,10 @@ Concrete-store,lifetime,35.0,years,"Viswanathan_2022, p.107 (p.129)","{'carrier' "Container, methanol",efficiency,1.7001,MWh/km,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 "Container, methanol",investment,119652947.2851,EUR,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 "Container, methanol",lifetime,33.0,years,"Danish Energy Agency, inputs/data_sheets_for_maritime_commercial_freight_and_passenger_transport.xlsx","Container, methanol",2023.0 +DH heat exchanger,FOM,0.1,%/year,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +DH heat exchanger,efficiency,0.95, - ,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +DH heat exchanger,investment,140.162,EUR/MW,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2020.0 +DH heat exchanger,lifetime,35.0,years,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 Diesel Bus city,FOM,0.0004,%/year,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 Diesel Bus city,Motor size,250.0,kW,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 Diesel Bus city,VOM,0.1068,EUR/km,"Danish Energy Agency, inputs/data_sheets_for_commercial_freight_and_passenger_transport_0.xlsx",Diesel B1,2022.0 @@ -287,6 +309,9 @@ H2 liquefaction,hydrogen-input,1.017,MWh_H2/MWh_H2,"Heuser et al. (2019): Techno H2 liquefaction,investment,533.9655,EUR/kW_H2,"IRENA (2022): Global Hydrogen Trade to Meet the 1.5° Climate Goal: Technology Review of Hydrogen Carriers, https://www.irena.org/publications/2022/Apr/Global-hydrogen-trade-Part-II , pg. 62f.","Assumption for a 200t/d facility (Pessimistic long-term or optimistic short-term value).; and Assumption for a large >300t/d, e.g. 2500 t/d facility (Optimistic long-term value without change in base technology mentioned in report).",2022.0 H2 liquefaction,lifetime,20.0,years,"Reuß et al 2017, https://doi.org/10.1016/j.apenergy.2017.05.050 , Table 9.",,2022.0 +H2 pipe,FOM,0.1,%/year,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2025.0 +H2 pipe,investment,38000.0,EUR/MW/km,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2020.0 +H2 pipe,lifetime,30.0,years,DEA Technology data for transport of energy,sheet H70. 70 bar pipeline,2025.0 H2 pipeline,FOM,3.0,%/year,TODO, from old pypsa cost assumptions,2015.0 H2 pipeline,investment,282.5452,EUR/MW/km,Welder et al https://doi.org/10.1016/j.energy.2018.05.059, from old pypsa cost assumptions,2015.0 H2 pipeline,lifetime,40.0,years,TODO, from old pypsa cost assumptions,2015.0 @@ -307,6 +332,8 @@ HVDC underground,investment,1008.2934,EUR/MW/km,Härtel et al. (2017): https://d HVDC underground,lifetime,40.0,years,Purvins et al. (2018): https://doi.org/10.1016/j.jclepro.2018.03.095 .,"Based on estimated costs for a NA-EU connector (bidirectional,4 GW, 3000km length and ca. 3000m depth). Costs in return based on existing/currently under construction undersea cables. (same as for HVDC submarine)",2018.0 Haber-Bosch,FOM,3.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Fixed O&M,2015.0 Haber-Bosch,VOM,0.0225,EUR/MWh_NH3,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Variable O&M,2015.0 +Haber-Bosch,efficiency,0.0005,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: Electricity Consumption,",2015.0 +Haber-Bosch,efficiency-heat,0.0004,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: District Heating Output,",2015.0 Haber-Bosch,electricity-input,0.2473,MWh_el/MWh_NH3,"DECHEMA 2017: DECHEMA: Low carbon energy and feedstock for the European chemical industry (https://dechema.de/dechema_media/Downloads/Positionspapiere/Technology_study_Low_carbon_energy_and_feedstock_for_the_European_chemical_industry.pdf), table 11.",Assume 5 GJ/t_NH3 for compressors and NH3 LHV = 5.16666 MWh/t_NH3., Haber-Bosch,hydrogen-input,1.1484,MWh_H2/MWh_NH3,"DECHEMA 2017: DECHEMA: Low carbon energy and feedstock for the European chemical industry (https://dechema.de/dechema_media/Downloads/Positionspapiere/Technology_study_Low_carbon_energy_and_feedstock_for_the_European_chemical_industry.pdf), pg. 57.","178 kg_H2 per t_NH3, LHV for both assumed.", Haber-Bosch,investment,915.4941,EUR/kW_NH3,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Specific investment,2015.0 @@ -428,6 +455,9 @@ Methanol steam reforming,FOM,4.0,%/year,"Niermann et al. (2021): Liquid Organic Methanol steam reforming,investment,18016.8665,EUR/MW_H2,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.","For high temperature steam reforming plant with a capacity of 200 MW_H2 output (6t/h). Reference plant of 1 MW (30kg_H2/h) costs 150kEUR, scale factor of 0.6 assumed.",2020.0 Methanol steam reforming,lifetime,20.0,years,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.",,2020.0 Methanol steam reforming,methanol-input,1.201,MWh_MeOH/MWh_H2,"Niermann et al. (2021): Liquid Organic Hydrogen Carriers and alternatives for international transport of renewable hydrogen (https://doi.org/10.1016/j.rser.2020.110171), table 4.",Assuming per 1 t_H2 (with LHV 33.3333 MWh/t): 4.5 MWh_th and 3.2 MWh_el are required. We assume electricity can be substituted / provided with 1:1 as heat energy., +NG grid connection,FOM,0.2,%/year,https://evida.dk/tarifblad010125/,EVIDA.DK,2025.0 +NG grid connection,investment,1155.9268,EUR/MW,https://evida.dk/tarifblad010125/,EVIDA.DK,2025.0 +NG grid connection,lifetime,40.0,years,Own assumption,,2025.0 NH3 (l) storage tank incl. liquefaction,FOM,2.0,%/year,"Guesstimate, based on H2 (l) storage tank.",,2010.0 NH3 (l) storage tank incl. liquefaction,investment,166.8201,EUR/MWh_NH3,"Calculated based on Morgan E. 2013: doi:10.7275/11KT-3F59 , Fig. 55, Fig 58.","Based on estimated for a double-wall liquid ammonia tank (~ambient pressure, -33°C), inner tank from stainless steel, outer tank from concrete including installations for liquefaction/condensation, boil-off gas recovery and safety installations; the necessary installations make only a small fraction of the total cost. The total cost are driven by material and working time on the tanks. While the costs do not scale strictly linearly, we here assume they do (good approximation c.f. ref. Fig 55.) and take the costs for a 9 kt NH3 (l) tank = 8 M$2010, which is smaller 4-5x smaller than the largest deployed tanks today. @@ -454,6 +484,9 @@ PHS,FOM,1.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa PHS,efficiency,0.75,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 PHS,investment,2274.8177,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2010.0 PHS,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions,2015.0 +PWH pipe,FOM,0.1,%/year,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 +PWH pipe,investment,63000.0,EUR/MW/km,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2020.0 +PWH pipe,lifetime,45.0,years,DEA Technology data for transport of energy,"Heat exchanged for DH transmission, sheet 113_11. constant for all years",2025.0 Pumped-Heat-charger,FOM,0.366,%/year,"Viswanathan_2022, NULL","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Guesstimate, 50% on charger']}",2020.0 Pumped-Heat-charger,efficiency,0.99,per unit,"Viswanathan_2022, NULL","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Charger']}",2020.0 Pumped-Heat-charger,investment,761782.6727,EUR/MW,"Georgiou_2018, Figure 9 of reference roughly 80% of capital cost are power related 47%/80% of costs are required for liquefaction (charging)","{'carrier': ['elec', 'phes'], 'technology_type': ['charger'], 'type': ['thermal'], 'note': ['Power Equipment Charge']}",2020.0 @@ -472,12 +505,12 @@ Pumped-Storage-Hydro-bicharger,lifetime,60.0,years,"Viswanathan_2022, p.68 (p.90 Pumped-Storage-Hydro-store,FOM,0.43,%/year,"Viswanathan_2022, 0.43 % of SB","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['derived']}",2020.0 Pumped-Storage-Hydro-store,investment,57074.0625,EUR/MWh,"Viswanathan_2022, p.68 (p.90)","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['Reservoir Construction & Infrastructure']}",2020.0 Pumped-Storage-Hydro-store,lifetime,60.0,years,"Viswanathan_2022, p.68 (p.90)","{'carrier': ['phs'], 'technology_type': ['store'], 'type': ['mechanical'], 'note': ['NULL']}",2020.0 -SMR,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 +SMR,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311", SMR,efficiency,0.76,per unit (in LHV),"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, SMR,investment,522201.0492,EUR/MW_CH4,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 SMR,lifetime,30.0,years,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, -SMR CC,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 -SMR CC,capture_rate,0.9,per unit,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",wide range: capture rates between 54%-90%, +SMR CC,FOM,5.0,%/year,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311", +SMR CC,capture_rate,0.9,EUR/MW_CH4,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",wide range: capture rates betwen 54%-90%, SMR CC,efficiency,0.69,per unit (in LHV),"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, SMR CC,investment,605753.2171,EUR/MW_CH4,Danish Energy Agency,"Technology data for renewable fuels, in pdf on table 3 p.311",2015.0 SMR CC,lifetime,30.0,years,"IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050",, @@ -534,6 +567,8 @@ Zn-Br-Nonflow-store,FOM,0.2244,%/year,"Viswanathan_2022, 0.43 % of SB","{'carrie Zn-Br-Nonflow-store,investment,239220.5823,EUR/MWh,"Viswanathan_2022, p.59 (p.81) Table 4.14","{'carrier': ['znbr'], 'technology_type': ['store'], 'type': ['electrochemical'], 'note': ['DC storage block']}",2020.0 Zn-Br-Nonflow-store,lifetime,15.0,years,"Viswanathan_2022, p.59 (p.81)","{'carrier': ['znbr'], 'technology_type': ['store'], 'type': ['electrochemical'], 'note': ['NULL']}",2020.0 air separation unit,FOM,3.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Fixed O&M,2015.0 +air separation unit,efficiency,0.0005,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: Electricity Consumption,",2015.0 +air separation unit,efficiency-heat,0.0004,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","103 Hydrogen to Ammonia: District Heating Output,",2015.0 air separation unit,electricity-input,0.25,MWh_el/t_N2,"DEA (2022): Technology Data for Renewable Fuels (https://ens.dk/en/our-services/projections-and-models/technology-data/technology-data-renewable-fuels), p.288.","For consistency reasons use value from Danish Energy Agency. DEA also reports range of values (0.2-0.4 MWh/t_N2) on pg. 288. Other efficienices reported are even higher, e.g. 0.11 Mwh/t_N2 from Morgan (2013): Techno-Economic Feasibility Study of Ammonia Plants Powered by Offshore Wind .", air separation unit,investment,514601.1327,EUR/t_N2/h,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Specific investment,2015.0 air separation unit,lifetime,30.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",103 Hydrogen to Ammonia: Technical lifetime,2015.0 @@ -548,12 +583,13 @@ battery inverter,lifetime,10.0,years,"Danish Energy Agency, technology_data_cata battery storage,investment,79.3666,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Energy storage expansion cost investment,2015.0 battery storage,lifetime,30.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",: Technical lifetime,2015.0 biochar pyrolysis,FOM,3.4,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Fixed O&M",2020.0 -biochar pyrolysis,VOM,823.497,EUR/MWh_biochar,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Variable O&M",2020.0 -biochar pyrolysis,efficiency-biochar,0.404,MWh_biochar/MWh_feedstock,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: efficiency biochar",2020.0 -biochar pyrolysis,efficiency-heat,0.4848,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: efficiency heat",2020.0 -biochar pyrolysis,investment,128671.4,EUR/kW_biochar,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 +biochar pyrolysis,VOM,47.6777,EUR/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Variable O&M",2020.0 +biochar pyrolysis,biomass input,7.6748,MWh_biomass/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Biomass Input",2020.0 +biochar pyrolysis,electricity input,0.3184,MWh_e/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: El-Input",2020.0 +biochar pyrolysis,heat output,3.7859,MWh_th/t_CO2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: H-Output",2020.0 +biochar pyrolysis,investment,7449637.6724,EUR/t_CO2/h,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Technical lifetime",2020.0 -biochar pyrolysis,yield-biochar,0.0582,ton biochar/MWh_feedstock,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: yield biochar",2020.0 +biochar pyrolysis,yield-biochar,0.0597,t_biochar/MWh_biomass,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: yield biochar",2020.0 biodiesel crops,fuel,131.8317,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIORPS1 (rape seed), ENS_BaU_GFTM",,2010.0 bioethanol crops,fuel,89.8502,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIOCRP11 (Bioethanol barley, wheat, grain maize, oats, other cereals and rye), ENS_BaU_GFTM",,2010.0 biogas,CO2 stored,0.0868,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, @@ -570,10 +606,18 @@ biogas CC,efficiency,1.0,per unit,Assuming input biomass is already given in bio biogas CC,investment,867.3532,EUR/kW,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","81 Biogas, Basic plant, small: Specific investment",2020.0 biogas CC,lifetime,20.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","81 Biogas, Basic plant, small: Technical lifetime",2020.0 biogas manure,fuel,19.9506,EUR/MWhth,"JRC ENSPRESO ca avg for MINBIOGAS1 (manure), ENS_BaU_GFTM",,2010.0 -biogas plus hydrogen,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Fixed O&M,2020.0 -biogas plus hydrogen,VOM,2.2969,EUR/MWh_CH4,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Variable O&M,2020.0 -biogas plus hydrogen,investment,482.3582,EUR/kW_CH4,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Specific investment,2020.0 +biogas plus hydrogen,Biogas Input,1.1522,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Biogas Consumption,",2020.0 +biogas plus hydrogen,CO2 Input,0.1235,t_CO2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: CO2 Input,",2020.0 +biogas plus hydrogen,Methane Output,1.9348,MWh_CH4/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Methane Output,",2020.0 +biogas plus hydrogen,VOM,4.4441,EUR/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Variable O&M,2020.0 +biogas plus hydrogen,electricity input,0.0217,MWh_e/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: El-Input,",2020.0 +biogas plus hydrogen,heat output,0.2174,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: H-Output,",2020.0 +biogas plus hydrogen,hydrogen input,1.0,MWh_H2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","99 SNG from methan. of biogas: Hydrogen Consumption,",2020.0 +biogas plus hydrogen,investment,933.2583,EUR/kW_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Specific investment,2020.0 biogas plus hydrogen,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",99 SNG from methan. of biogas: Technical lifetime,2020.0 +biogas storage,FOM,0.2,%/year,Aarhus University BCE estimate,,2025.0 +biogas storage,investment,16750.0,EUR/MWh_biogas,Aarhus University BCE estimate,,2020.0 +biogas storage,lifetime,15.0,years,Aarhus University BCE estimate,,2025.0 biogas upgrading,FOM,17.0397,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: Fixed O&M ",2020.0 biogas upgrading,VOM,2.6993,EUR/MWh output,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: Variable O&M",2020.0 biogas upgrading,investment,125.1744,EUR/kW,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","82 Upgrading 3,000 Nm3 per h: investment (upgrading, methane redution and grid injection)",2020.0 @@ -613,14 +657,18 @@ biomass HOP,VOM,3.3005,EUR/MWh,"Danish Energy Agency, technology_data_for_el_and biomass HOP,efficiency,0.03,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09c Straw HOP: Total efficiency , net, annual average",2015.0 biomass HOP,investment,797.0541,EUR/kW_th - heat output,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",09c Straw HOP: Nominal investment ,2015.0 biomass HOP,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",09c Straw HOP: Technical lifetime,2015.0 +biomass belt dryer,FOM,3.0,%/year,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,electricity-input,0.025,MWh/t_H2O removed,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,heat-input,1.0,MWh/t_H2O removed,DOI: 10.1080/07373937.2018.1492615,,2020.0 +biomass belt dryer,lifetime,20.0,years,DOI: 10.1080/07373937.2018.1492615,,2020.0 biomass boiler,FOM,7.5412,%/year,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Fixed O&M",2015.0 biomass boiler,efficiency,0.88,per unit,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Heat efficiency, annual average, net",2015.0 biomass boiler,investment,621.5592,EUR/kW_th,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Specific investment",2015.0 biomass boiler,lifetime,20.0,years,"Danish Energy Agency, technologydatafor_heating_installations_marts_2018.xlsx","204 Biomass boiler, automatic: Technical lifetime",2015.0 biomass boiler,pelletizing cost,9.0,EUR/MWh_pellets,Assumption based on doi:10.1016/j.rser.2019.109506,,2019.0 -biomass-to-methanol,C in fuel,0.44,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -biomass-to-methanol,C stored,0.56,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, -biomass-to-methanol,CO2 stored,0.2053,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,C in fuel,0.4295,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,C stored,0.5705,per unit,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, +biomass-to-methanol,CO2 stored,0.2143,tCO2/MWh_th,"Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016",, biomass-to-methanol,FOM,2.6667,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Fixed O&M,2020.0 biomass-to-methanol,VOM,14.4653,EUR/MWh_MeOH,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Variable O&M,2020.0 biomass-to-methanol,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, @@ -629,6 +677,15 @@ biomass-to-methanol,efficiency-electricity,0.02,MWh_e/MWh_th,"Danish Energy Agen biomass-to-methanol,efficiency-heat,0.22,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","97 Methanol from biomass gasif.: District heat Output,",2020.0 biomass-to-methanol,investment,1553.1646,EUR/kW_MeOH,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Specific investment,2020.0 biomass-to-methanol,lifetime,20.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",97 Methanol from biomass gasif.: Technical lifetime,2020.0 +biomethanation,Biogas Input,1.1444,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Biogas Consumption,",2020.0 +biomethanation,CO2 Input,0.165,t_CO2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: CO2 Input,",2020.0 +biomethanation,FOM,6.6667,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Fixed O&M ,2020.0 +biomethanation,Hydrogen Input,1.0,MWh_H2/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Hydrogen Input,",2020.0 +biomethanation,Methane Output,1.9673,MWh_CH4/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: Methane Output,",2020.0 +biomethanation,electricity input,0.0417,MWh_e/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: El-Input,",2020.0 +biomethanation,heat output,0.1667,MWh_th/MWh_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx","106 Biomethanation of biogas: H-Output,",2020.0 +biomethanation,investment,987.5,EUR/kW_H2,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Specific investment ,2020.0 +biomethanation,lifetime,30.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",106 Biomethanation of biogas: Technical lifetime,2020.0 cement capture,FOM,3.0,%/year,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 cement capture,capture_rate,0.95,per unit,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 cement capture,compression-electricity-input,0.075,MWh/tCO2,"Danish Energy Agency, technology_data_for_carbon_capture_transport_storage.xlsx",401.c Post comb - Cement kiln,2020.0 @@ -715,7 +772,7 @@ central solid biomass CHP CC,c_b,0.3423,50°C/100°C,"Danish Energy Agency, tech central solid biomass CHP CC,c_v,1.0,50°C/100°C,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Cv coefficient",2015.0 central solid biomass CHP CC,efficiency,0.2652,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Electricity efficiency, net, annual average",2015.0 central solid biomass CHP CC,efficiency-heat,0.8294,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Heat efficiency, net, annual average",2015.0 -central solid biomass CHP CC,investment,4755.697,EUR/kW_e,Combination of central solid biomass CHP CC and solid biomass boiler steam,,2015.0 +central solid biomass CHP CC,investment,4790.4001,EUR/kW_e,Combination of central solid biomass CHP CC and solid biomass boiler steam,,2015.0 central solid biomass CHP CC,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Technical lifetime",2015.0 central solid biomass CHP powerboost CC,FOM,2.8518,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Fixed O&M",2015.0 central solid biomass CHP powerboost CC,VOM,4.9394,EUR/MWh_e,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","09a Wood Chips, Large 50 degree: Variable O&M ",2015.0 @@ -742,7 +799,13 @@ central water-sourced heat pump,VOM,1.4709,EUR/MWh,"Danish Energy Agency, techno central water-sourced heat pump,efficiency,3.86,per unit,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Total efficiency , net, annual average",2015.0 central water-sourced heat pump,investment,1058.2216,EUR/kW,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Specific investment",2015.0 central water-sourced heat pump,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","40 Comp. hp, seawater 20 MW: Technical lifetime",2015.0 -clean water tank storage,FOM,2.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2013.0 +centrifugal dewatering,DM out,0.45,kgDM/kgtot,https://dcapub.au.dk/djfpublikation/djfpdf/DCArapport208.pdf,,2025.0 +centrifugal dewatering,DM separation,0.509,kg_out/kg_in,https://dcapub.au.dk/djfpublikation/djfpdf/DCArapport208.pdf,,2025.0 +centrifugal dewatering,FOM,3.5,%/year,https://doi.org/10.3390/agronomy11050836,,2025.0 +centrifugal dewatering,electricity-input,0.005,MWh/tDM_in,calc from : https://doi.org/10.3390/su16135461,,2025.0 +centrifugal dewatering,investment,130000.0,EUR/t/h fibers,https://doi.org/10.3390/agronomy11050836,,2020.0 +centrifugal dewatering,lifetime,20.0,years, https://doi.org/10.3390/su16135461,,2025.0 +clean water tank storage,FOM,2.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, clean water tank storage,investment,69.1286,EUR/m^3-H2O,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2013.0 clean water tank storage,lifetime,30.0,years,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, coal,CO2 intensity,0.3361,tCO2/MWh_th,Entwicklung der spezifischen Kohlendioxid-Emissionen des deutschen Strommix in den Jahren 1990 - 2018,, @@ -804,7 +867,7 @@ decentral water tank storage,energy to power ratio,0.15,h,"Danish Energy Agency, decentral water tank storage,investment,433.8709,EUR/kWh,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",142 Small scale hot water tank: Specific investment,2015.0 decentral water tank storage,lifetime,30.0,years,"Danish Energy Agency, technology_data_catalogue_for_energy_storage.xlsx",142 Small scale hot water tank: Technical lifetime,2015.0 digestible biomass,fuel,17.0611,EUR/MWh_th,"JRC ENSPRESO ca avg for MINBIOAGRW1, ENS_Ref for 2040",,2010.0 -digestible biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 +digestible biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, digestible biomass to hydrogen,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, digestible biomass to hydrogen,efficiency,0.39,per unit,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, digestible biomass to hydrogen,investment,2648.1996,EUR/kW_th,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 @@ -869,18 +932,18 @@ electricity distribution grid,lifetime,40.0,years,TODO, from old pypsa cost assu electricity grid connection,FOM,2.0,%/year,TODO, from old pypsa cost assumptions,2015.0 electricity grid connection,investment,148.151,EUR/kW,DEA, from old pypsa cost assumptions,2015.0 electricity grid connection,lifetime,40.0,years,TODO, from old pypsa cost assumptions,2015.0 -electrobiofuels,C in fuel,0.9316,per unit,Stoichiometric calculation,, -electrobiofuels,FOM,3.0,%/year,combination of BtL and electrofuels,,2015.0 -electrobiofuels,VOM,2.6044,EUR/MWh_th,combination of BtL and electrofuels,,2017.0 +electrobiofuels,C in fuel,0.9308,per unit,Stoichiometric calculation,, +electrobiofuels,FOM,3.0,%/year,combination of BtL and electrofuels,, +electrobiofuels,VOM,2.6202,EUR/MWh_th,combination of BtL and electrofuels,,2017.0 electrobiofuels,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, -electrobiofuels,efficiency-biomass,1.3283,per unit,Stoichiometric calculation,, -electrobiofuels,efficiency-hydrogen,1.2971,per unit,Stoichiometric calculation,, -electrobiofuels,efficiency-tot,0.6563,per unit,Stoichiometric calculation,, -electrobiofuels,investment,322224.6071,EUR/kW_th,combination of BtL and electrofuels,,2017.0 +electrobiofuels,efficiency-biomass,1.3598,per unit,Stoichiometric calculation,, +electrobiofuels,efficiency-hydrogen,1.283,per unit,Stoichiometric calculation,, +electrobiofuels,efficiency-tot,0.6601,per unit,Stoichiometric calculation,, +electrobiofuels,investment,325755.8934,EUR/kW_th,combination of BtL and electrofuels,,2017.0 electrolysis,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Fixed O&M ,2020.0 electrolysis,efficiency,0.6994,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Hydrogen Output,2020.0 electrolysis,efficiency-heat,0.1294,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: - hereof recoverable for district heating,2020.0 -electrolysis,investment,1000.0,EUR/kW_e,private communications; IEA https://iea.blob.core.windows.net/assets/9e0c82d4-06d2-496b-9542-f184ba803645/TheRoleofE-fuelsinDecarbonisingTransport.pdf,,2020.0 +electrolysis,investment,300.0,EUR/kW_e,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Specific investment,2020.0 electrolysis,lifetime,25.0,years,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 100 MW: Technical lifetime,2020.0 electrolysis small,FOM,4.0,%/year,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 10 MW: Fixed O&M ,2020.0 electrolysis small,efficiency,0.6994,per unit,"Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx",86 AEC 10 MW: Hydrogen Output,2020.0 @@ -900,7 +963,7 @@ gas boiler steam,VOM,1.007,EUR/MWh,"Danish Energy Agency, technology_data_for_in gas boiler steam,efficiency,0.94,per unit,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx","311.1c Steam boiler Gas: Total efficiency, net, annual average",2019.0 gas boiler steam,investment,45.7727,EUR/kW,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1c Steam boiler Gas: Nominal investment,2019.0 gas boiler steam,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1c Steam boiler Gas: Technical lifetime,2019.0 -gas storage,FOM,3.5919,%,Danish Energy Agency,"150 Underground Storage of Gas, Operation and Maintenance, salt cavern (units converted)",2015.0 +gas storage,FOM,3.5919,%,Danish Energy Agency,"150 Underground Storage of Gas, Operation and Maintenace, salt cavern (units converted)",2015.0 gas storage,investment,0.0348,EUR/kWh,Danish Energy Agency,"150 Underground Storage of Gas, Establishment of one cavern (units converted)",2015.0 gas storage,lifetime,100.0,years,TODO no source,"estimation: most underground storage are already build, they do have a long lifetime",2015.0 gas storage charger,investment,15.1737,EUR/kW,Danish Energy Agency,"150 Underground Storage of Gas, Process equipment (units converted)",2015.0 @@ -1006,7 +1069,7 @@ nuclear,investment,8594.1354,EUR/kW_e,"Lazard's levelized cost of energy analysi nuclear,lifetime,40.0,years,"Lazard's levelized cost of energy analysis - version 16.0 (2023): https://www.lazard.com/media/typdgxmm/lazards-lcoeplus-april-2023.pdf , pg. 49 (Levelized Cost of Energy - Key Assumptions), accessed: 2023-12-14.",,2023.0 offwind,FOM,2.1655,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Fixed O&M [EUR/MW_e/y, 2020]",2020.0 offwind,VOM,0.0212,EUR/MWhel,RES costs made up to fix curtailment order, from old pypsa cost assumptions,2015.0 -offwind,investment,1523.9311,"EUR/kW_e, 2020","Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Nominal investment [MEUR/MW_e, 2020] grid connection costs subtracted from investment costs",2020.0 +offwind,investment,1523.9311,"EUR/kW_e, 2020","Danish Energy Agency, technology_data_for_el_and_dh.xlsx","21 Offshore turbines: Nominal investment [MEUR/MW_e, 2020] grid connection costs substracted from investment costs",2020.0 offwind,lifetime,30.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",21 Offshore turbines: Technical lifetime [years],2020.0 offwind-ac-connection-submarine,investment,2841.3251,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions,2015.0 offwind-ac-connection-underground,investment,1420.1334,EUR/MW/km,DEA https://ens.dk/en/our-services/projections-and-models/technology-data, from old pypsa cost assumptions,2015.0 @@ -1035,12 +1098,22 @@ organic rankine cycle,FOM,2.0,%/year,"Aghahosseini, Breyer 2020: From hot rock t organic rankine cycle,electricity-input,0.12,MWh_el/MWh_th,"Aghahosseini, Breyer 2020: From hot rock to useful energy: A global estimate of enhanced geothermal systems potential, https://www.sciencedirect.com/science/article/pii/S0306261920312551; Breede et al. 2015: Overcoming challenges in the classification of deep geothermal potential, https://eprints.gla.ac.uk/169585/","Heat-input, Electricity-output. This is a rough estimate, depends on input temperature, implies ~150 C.",2020.0 organic rankine cycle,investment,1376.0,EUR/kW_el,Tartiere and Astolfi 2017: A world overview of the organic Rankine cycle market,"Low rollout complicates the estimation, compounded by a dependence both on plant size and temperature, converted from 1500 USD/kW using currency conversion 1.09 USD = 1 EUR.",2020.0 organic rankine cycle,lifetime,30.0,years,"Aghahosseini, Breyer 2020: From hot rock to useful energy: A global estimate of enhanced geothermal systems potential, https://www.sciencedirect.com/science/article/pii/S0306261920312551",,2020.0 +pelletization,FOM,3.0,%/year,Own assumption: find better,,2025.0 +pelletization,electricity-input,0.1,MW_e/MW_pellets,Own assumption: find better,,2025.0 +pelletization,investment,0.0,EUR/MW_pellets,Own assumption: find better,,2020.0 +pelletization,lifetime,15.0,years,Own assumption: find better,,2025.0 +perennials gbr,FOM,0.0,%year,Own assumption,,2015.0 +perennials gbr,VOM,43.2317,EUR/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,"includes purchase of perennial crops and sales of proteine concentrate, table 8.1 wages, maintenance and auxiliary costs",2015.0 +perennials gbr,biogas-output,0.1947,MWh/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,table 2,2015.0 +perennials gbr,electricity-input,0.0733,MWh/tDM,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,table 2,2015.0 +perennials gbr,investment,1371168.1394,EUR/tDM/h,https://doi.org/10.1016/B978-0-323-95879-0.50147-8,includes cost for biogas plant without upgrading,2015.0 +perennials gbr,lifetime,25.0,years,Own assumption,,2015.0 ror,FOM,2.0,%/year,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 ror,efficiency,0.9,per unit,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2015.0 ror,investment,3412.2266,EUR/kWel,DIW DataDoc http://hdl.handle.net/10419/80348, from old pypsa cost assumptions,2010.0 ror,lifetime,80.0,years,IEA2010, from old pypsa cost assumptions,2015.0 seawater RO desalination,electricity-input,0.003,MWHh_el/t_H2O,"Caldera et al. (2016): Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Fig. 4.",Desalination using SWRO. Assume medium salinity of 35 Practical Salinity Units (PSUs) = 35 kg/m^3., -seawater desalination,FOM,4.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",,2015.0 +seawater desalination,FOM,4.0,%/year,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, seawater desalination,electricity-input,3.0348,kWh/m^3-H2O,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Fig. 4.",, seawater desalination,investment,22249.7881,EUR/(m^3-H2O/h),"Caldera et al 2017: Learning Curve for Seawater Reverse Osmosis Desalination Plants: Capital Cost Trend of the Past, Present, and Future (https://doi.org/10.1002/2017WR021402), Table 4.",,2015.0 seawater desalination,lifetime,30.0,years,"Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004), Table 1.",, @@ -1066,7 +1139,7 @@ solar-utility,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_ solar-utility single-axis tracking,FOM,2.5531,%/year,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Fixed O&M [2020-EUR/MW_e/y],2020.0 solar-utility single-axis tracking,investment,352.5127,EUR/kW_e,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Nominal investment [2020-MEUR/MW_e],2020.0 solar-utility single-axis tracking,lifetime,40.0,years,"Danish Energy Agency, technology_data_for_el_and_dh.xlsx",22 Utility-scale PV tracker: Technical lifetime [years],2020.0 -solid biomass,CO2 intensity,0.3667,tCO2/MWh_th,Stoichiometric calculation with 18 GJ/t_DM LHV and 50% C-content for solid biomass,, +solid biomass,CO2 intensity,0.3757,tCO2/MWh_th,Stoichiometric calculation with 18 GJ/t_DM LHV and 50% C-content for solid biomass,, solid biomass,fuel,13.6489,EUR/MWh_th,"JRC ENSPRESO ca avg for MINBIOWOOW1 (secondary forest residue wood chips), ENS_Ref for 2040",,2010.0 solid biomass boiler steam,FOM,6.2831,%/year,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Fixed O&M,2019.0 solid biomass boiler steam,VOM,2.8679,EUR/MWh,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Variable O&M,2019.0 @@ -1078,7 +1151,7 @@ solid biomass boiler steam CC,VOM,2.8679,EUR/MWh,"Danish Energy Agency, technolo solid biomass boiler steam CC,efficiency,0.9,per unit,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx","311.1e Steam boiler Wood: Total efficiency, net, annual average",2019.0 solid biomass boiler steam CC,investment,540.1182,EUR/kW,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Nominal investment,2019.0 solid biomass boiler steam CC,lifetime,25.0,years,"Danish Energy Agency, technology_data_for_industrial_process_heat.xlsx",311.1e Steam boiler Wood: Technical lifetime,2019.0 -solid biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 +solid biomass to hydrogen,FOM,4.25,%/year,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, solid biomass to hydrogen,capture rate,0.9,per unit,Assumption based on doi:10.1016/j.biombioe.2015.01.006,, solid biomass to hydrogen,efficiency,0.56,per unit,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",, solid biomass to hydrogen,investment,2648.1996,EUR/kW_th,"Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014",,2014.0 diff --git a/scripts/compile_cost_assumptions.py b/scripts/compile_cost_assumptions.py index 1c5a546b..a48ebd75 100644 --- a/scripts/compile_cost_assumptions.py +++ b/scripts/compile_cost_assumptions.py @@ -1,10 +1,7 @@ -# SPDX-FileCopyrightText: Contributors to technology-data -# -# SPDX-License-Identifier: GPL-3.0-only - -# coding: utf-8 +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- """ -Script creates cost csv for chosen years from different source (source_dict). +Script creates cost csv for choosen years from different source (source_dict). The data is standardized for uniform: - cost years (depending on the rate of inflation ) - technology names @@ -28,367 +25,310 @@ @author: Marta, Lisa """ -import logging -from datetime import date - -import numpy as np import pandas as pd -from _helpers import adjust_for_inflation -from currency_converter import ECB_URL, CurrencyConverter -from scipy import interpolate - -logging.basicConfig(level=logging.INFO) -logger = logging.getLogger(__name__) - +import numpy as np try: - pd.set_option("future.no_silent_downcasting", True) + pd.set_option('future.no_silent_downcasting', True) except Exception: pass # ---------- sources ------------------------------------------------------- source_dict = { - "DEA": "Danish Energy Agency", - # solar utility - "Vartiaien": "Impact of weighted average cost of capital, capital expenditure, and other parameters on future utility‐scale PV levelised cost of electricity", - # solar rooftop - "ETIP": "European PV Technology and Innovation Platform", - # fuel cost - "zappa": "Is a 100% renewable European power system feasible by 2050?", - # co2 intensity - "co2": "Entwicklung der spezifischen Kohlendioxid-Emissionen des deutschen Strommix in den Jahren 1990 - 2018", - # gas pipeline costs - "ISE": "WEGE ZU EINEM KLIMANEUTRALEN ENERGIESYSEM, Anhang zur Studie, Fraunhofer-Institut für Solare Energiesysteme ISE, Freiburg", - # Water desalination costs - "Caldera2016": "Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004)", - "Caldera2017": "Caldera et al 2017: Learning Curve for Seawater Reverse Osmosis Desalination Plants: Capital Cost Trend of the Past, Present, and Future (https://doi.org/10.1002/2017WR021402)", - # home battery storage and inverter investment costs - "EWG": "Global Energy System based on 100% Renewable Energy, Energywatchgroup/LTU University, 2019", - "HyNOW": "Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014", - # efficiencies + lifetime SMR / SMR + CC - "IEA": "IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050", - # SMR capture rate - "Timmerberg": "Hydrogen and hydrogen-derived fuels through methane decomposition of natural gas – GHG emissions and costs Timmerberg et al. (2020), https://doi.org/10.1016/j.ecmx.2020.100043", - # geothermal (enhanced geothermal systems) - "Aghahosseini2020": "Aghahosseini, Breyer 2020: From hot rock to useful energy: A global estimate of enhanced geothermal systems potential, https://www.sciencedirect.com/science/article/pii/S0306261920312551", - # review of existing deep geothermal projects - "Breede2015": "Breede et al. 2015: Overcoming challenges in the classification of deep geothermal potential, https://eprints.gla.ac.uk/169585/", - # Study of deep geothermal systems in the Northern Upper Rhine Graben - "Frey2022": "Frey et al. 2022: Techno-Economic Assessment of Geothermal Resources in the Variscan Basement of the Northern Upper Rhine Graben", - # vehicles - "vehicles": "PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html", -} + 'DEA': 'Danish Energy Agency', + # solar utility + 'Vartiaien': 'Impact of weighted average cost of capital, capital expenditure, and other parameters on future utility‐scale PV levelised cost of electricity', + # solar rooftop + 'ETIP': 'European PV Technology and Innovation Platform', + # fuel cost + 'zappa': 'Is a 100% renewable European power system feasible by 2050?', + # co2 intensity + "co2" :'Entwicklung der spezifischen Kohlendioxid-Emissionen des deutschen Strommix in den Jahren 1990 - 2018', + # gas pipeline costs + "ISE": "WEGE ZU EINEM KLIMANEUTRALEN ENERGIESYSEM, Anhang zur Studie, Fraunhofer-Institut für Solare Energiesysteme ISE, Freiburg", + # Water desalination costs + "Caldera2016": "Caldera et al 2016: Local cost of seawater RO desalination based on solar PV and windenergy: A global estimate. (https://doi.org/10.1016/j.desal.2016.02.004)", + "Caldera2017": "Caldera et al 2017: Learning Curve for Seawater Reverse Osmosis Desalination Plants: Capital Cost Trend of the Past, Present, and Future (https://doi.org/10.1002/2017WR021402)", + # home battery storage and inverter investment costs + "EWG": "Global Energy System based on 100% Renewable Energy, Energywatchgroup/LTU University, 2019", + "HyNOW" : "Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014", + # efficiencies + lifetime SMR / SMR + CC + "IEA": "IEA Global average levelised cost of hydrogen production by energy source and technology, 2019 and 2050 (2020), https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050", + # SMR capture rate + "Timmerberg": "Hydrogen and hydrogen-derived fuels through methane decomposition of natural gas – GHG emissions and costs Timmerberg et al. (2020), https://doi.org/10.1016/j.ecmx.2020.100043", + # geothermal (enhanced geothermal systems) + "Aghahosseini2020": "Aghahosseini, Breyer 2020: From hot rock to useful energy: A global estimate of enhanced geothermal systems potential, https://www.sciencedirect.com/science/article/pii/S0306261920312551", + # review of existing deep geothermal projects + "Breede2015": "Breede et al. 2015: Overcoming challenges in the classification of deep geothermal potential, https://eprints.gla.ac.uk/169585/", + # Study of deep geothermal systems in the Northern Upper Rhine Graben + "Frey2022": "Frey et al. 2022: Techno-Economic Assessment of Geothermal Resources in the Variscan Basement of the Northern Upper Rhine Graben", + # vehicles + "vehicles" : "PATHS TO A CLIMATE-NEUTRAL ENERGY SYSTEM The German energy transformation in its social context. https://www.ise.fraunhofer.de/en/publications/studies/paths-to-a-climate-neutral-energy-system.html" + } # [DEA-sheet-names] -dea_sheet_names = { - "onwind": "20 Onshore turbines", - "offwind": "21 Offshore turbines", - "solar-utility": "22 Utility-scale PV", - "solar-utility single-axis tracking": "22 Utility-scale PV tracker", - "solar-rooftop residential": "22 Rooftop PV residential", - "solar-rooftop commercial": "22 Rooftop PV commercial", - "OCGT": "52 OCGT - Natural gas", - "CCGT": "05 Gas turb. CC, steam extract.", - "oil": "50 Diesel engine farm", - "biomass CHP": "09c Straw, Large, 40 degree", - "biomass EOP": "09c Straw, Large, 40 degree", - "biomass HOP": "09c Straw HOP", - "central coal CHP": "01 Coal CHP", - "central gas CHP": "04 Gas turb. simple cycle, L", - "central gas CHP CC": "04 Gas turb. simple cycle, L", - "central solid biomass CHP": "09a Wood Chips, Large 50 degree", - "central solid biomass CHP CC": "09a Wood Chips, Large 50 degree", - "central solid biomass CHP powerboost CC": "09a Wood Chips, Large 50 degree", - "central air-sourced heat pump": "40 Comp. hp, airsource 3 MW", - "central geothermal-sourced heat pump": "45.1.a Geothermal DH, 1200m, E", - "central geothermal heat source": "45.1.a Geothermal DH, 1200m, E", - "central excess-heat-sourced heat pump": "40 Comp. hp, excess heat 10 MW", - "central water-sourced heat pump": "40 Comp. hp, seawater 20 MW", - "central ground-sourced heat pump": "40 Absorption heat pump, DH", - "central resistive heater": "41 Electric Boilers", - "central gas boiler": "44 Natural Gas DH Only", - "decentral gas boiler": "202 Natural gas boiler", - "direct firing gas": "312.a Direct firing Natural Gas", - "direct firing gas CC": "312.a Direct firing Natural Gas", - "direct firing solid fuels": "312.b Direct firing Sold Fuels", - "direct firing solid fuels CC": "312.b Direct firing Sold Fuels", - "decentral ground-sourced heat pump": "207.7 Ground source existing", - "decentral air-sourced heat pump": "207.3 Air to water existing", - "central water pit storage": "140 PTES seasonal", - "central water tank storage": "141 Large hot water tank", - "decentral water tank storage": "142 Small scale hot water tank", - "fuel cell": "12 LT-PEMFC CHP", - "hydrogen storage underground": "151c Hydrogen Storage - Caverns", - "hydrogen storage tank type 1 including compressor": "151a Hydrogen Storage - Tanks", - "micro CHP": "219 LT-PEMFC mCHP - natural gas", - "biogas": "81 Biogas, Basic plant, small", - "biogas CC": "81 Biogas, Basic plant, small", - "biogas upgrading": "82 Upgrading 3,000 Nm3 per h", - "battery": "180 Lithium Ion Battery", - "industrial heat pump medium temperature": "302.a High temp. hp Up to 125 C", - "industrial heat pump high temperature": "302.b High temp. hp Up to 150", - "electric boiler steam": "310.1 Electric boiler steam ", - "gas boiler steam": "311.1c Steam boiler Gas", - "solid biomass boiler steam": "311.1e Steam boiler Wood", - "solid biomass boiler steam CC": "311.1e Steam boiler Wood", - "biomass boiler": "204 Biomass boiler, automatic", - "electrolysis": "86 AEC 100 MW", - "direct air capture": "403.a Direct air capture", - "biomass CHP capture": "401.a Post comb - small CHP", - "cement capture": "401.c Post comb - Cement kiln", - "BioSNG": "84 Gasif. CFB, Bio-SNG", - "BtL": "85 Gasif. Ent. Flow FT, liq fu ", - "biomass-to-methanol": "97 Methanol from biomass gasif.", - "biogas plus hydrogen": "99 SNG from methan. of biogas", - "methanolisation": "98 Methanol from hydrogen", - "Fischer-Tropsch": "102 Hydrogen to Jet", - "central hydrogen CHP": "12 LT-PEMFC CHP", - "Haber-Bosch": "103 Hydrogen to Ammonia", - "air separation unit": "103 Hydrogen to Ammonia", - "waste CHP": "08 WtE CHP, Large, 50 degree", - "waste CHP CC": "08 WtE CHP, Large, 50 degree", - "biochar pyrolysis": "105 Slow pyrolysis, Straw", - "electrolysis small": "86 AEC 10 MW", -} +sheet_names = {'onwind': '20 Onshore turbines', + 'offwind': '21 Offshore turbines', + 'solar-utility': '22 Utility-scale PV', + 'solar-utility single-axis tracking': '22 Utility-scale PV tracker', + 'solar-rooftop residential': '22 Rooftop PV residential', + 'solar-rooftop commercial': '22 Rooftop PV commercial', + 'OCGT': '52 OCGT - Natural gas', + 'CCGT': '05 Gas turb. CC, steam extract.', + 'oil': '50 Diesel engine farm', + 'biomass CHP': '09c Straw, Large, 40 degree', + 'biomass EOP': '09c Straw, Large, 40 degree', + 'biomass HOP': '09c Straw HOP', + 'central coal CHP': '01 Coal CHP', + 'central gas CHP': '04 Gas turb. simple cycle, L', + 'central gas CHP CC': '04 Gas turb. simple cycle, L', + 'central solid biomass CHP': '09a Wood Chips, Large 50 degree', + 'central solid biomass CHP CC': '09a Wood Chips, Large 50 degree', + 'central solid biomass CHP powerboost CC': '09a Wood Chips, Large 50 degree', + # 'solid biomass power': '09a Wood Chips extract. plant', + # 'solid biomass power CC': '09a Wood Chips extract. plant', + 'central air-sourced heat pump': '40 Comp. hp, airsource 3 MW', + 'central geothermal-sourced heat pump': '45.1.a Geothermal DH, 1200m, E', + 'central geothermal heat source': '45.1.a Geothermal DH, 1200m, E', + 'central excess-heat-sourced heat pump': '40 Comp. hp, excess heat 10 MW', + 'central water-sourced heat pump': '40 Comp. hp, seawater 20 MW', + 'central ground-sourced heat pump': '40 Absorption heat pump, DH', + 'central resistive heater': '41 Electric Boilers', + 'central gas boiler': '44 Natural Gas DH Only', + 'decentral gas boiler': '202 Natural gas boiler', + 'direct firing gas': '312.a Direct firing Natural Gas', + 'direct firing gas CC': '312.a Direct firing Natural Gas', + 'direct firing solid fuels': '312.b Direct firing Sold Fuels', + 'direct firing solid fuels CC': '312.b Direct firing Sold Fuels', + 'decentral ground-sourced heat pump': '207.7 Ground source existing', + 'decentral air-sourced heat pump': '207.3 Air to water existing', + # 'decentral resistive heater': '216 Electric heating', + 'central water pit storage': '140 PTES seasonal', + 'central water tank storage': '141 Large hot water tank', + 'decentral water tank storage': '142 Small scale hot water tank', + 'fuel cell': '12 LT-PEMFC CHP', + 'hydrogen storage underground': '151c Hydrogen Storage - Caverns', + 'hydrogen storage tank type 1 including compressor': '151a Hydrogen Storage - Tanks', + 'micro CHP': '219 LT-PEMFC mCHP - natural gas', + 'biogas' : '81 Biogas, Basic plant, small', + 'biogas CC' : '81 Biogas, Basic plant, small', + 'biogas upgrading': '82 Upgrading 3,000 Nm3 per h', + 'battery': '180 Lithium Ion Battery', + 'industrial heat pump medium temperature': '302.a High temp. hp Up to 125 C', + 'industrial heat pump high temperature': '302.b High temp. hp Up to 150', + 'electric boiler steam': '310.1 Electric boiler steam ', + 'gas boiler steam': '311.1c Steam boiler Gas', + 'solid biomass boiler steam': '311.1e Steam boiler Wood', + 'solid biomass boiler steam CC': '311.1e Steam boiler Wood', + 'biomass boiler': '204 Biomass boiler, automatic', + 'electrolysis': '86 AEC 100 MW', + 'direct air capture': '403.a Direct air capture', + 'biomass CHP capture': '401.a Post comb - small CHP', + 'cement capture': '401.c Post comb - Cement kiln', + 'BioSNG': '84 Gasif. CFB, Bio-SNG', + 'BtL': '85 Gasif. Ent. Flow FT, liq fu ', + 'biomass-to-methanol': '97 Methanol from biomass gasif.', + 'biogas plus hydrogen': '99 SNG from methan. of biogas', + 'methanolisation': '98 Methanol from hydrogen', + 'Fischer-Tropsch': '102 Hydrogen to Jet', + 'central hydrogen CHP': '12 LT-PEMFC CHP', + 'Haber-Bosch': '103 Hydrogen to Ammonia', + 'air separation unit': '103 Hydrogen to Ammonia', + 'waste CHP': '08 WtE CHP, Large, 50 degree', + 'waste CHP CC': '08 WtE CHP, Large, 50 degree', + # 'electricity distribution rural': '101 2 el distri Rural', + # 'electricity distribution urban': '101 4 el distri city', + # 'gas distribution rural': '102 7 gas Rural', + # 'gas distribution urban': '102 9 gas City', + # 'DH distribution rural': '103_12 DH_Distribu Rural', + # 'DH distribution urban': '103_14 DH_Distribu City', + # 'DH distribution low T': '103_16 DH_Distr New area LTDH', + # 'gas pipeline': '102 6 gas Main distri line', + # "DH main transmission": "103_11 DH transmission", + 'biochar pyrolysis': '105 Slow pyrolysis, Straw', + 'biomethanation': '106 Biomethanation of biogas', + 'electrolysis small': '86 AEC 10 MW', + } # [DEA-sheet-names] -uncrtnty_lookup = { - "onwind": "J:K", - "offwind": "J:K", - "solar-utility": "J:K", - "solar-utility single-axis tracking": "J:K", - "solar-rooftop residential": "J:K", - "solar-rooftop commercial": "J:K", - "OCGT": "I:J", - "CCGT": "I:J", - "oil": "I:J", - "biomass CHP": "I:J", - "biomass EOP": "I:J", - "biomass HOP": "I:J", - "central coal CHP": "", - "central gas CHP": "I:J", - "central gas CHP CC": "I:J", - "central hydrogen CHP": "I:J", - "central solid biomass CHP": "I:J", - "central solid biomass CHP CC": "I:J", - "central solid biomass CHP powerboost CC": "I:J", - "solar": "", - "central air-sourced heat pump": "J:K", - "central geothermal-sourced heat pump": "H:K", - "central geothermal heat source": "H:K", - "central excess-heat-sourced heat pump": "H:K", - "central water-sourced heat pump": "H:K", - "central ground-sourced heat pump": "I:J", - "central resistive heater": "I:J", - "central gas boiler": "I:J", - "decentral gas boiler": "I:J", - "direct firing gas": "H:I", - "direct firing gas CC": "H:I", - "direct firing solid fuels": "H:I", - "direct firing solid fuels CC": "H:I", - "decentral ground-sourced heat pump": "I:J", - "decentral air-sourced heat pump": "I:J", - "central water pit storage": "J:K", - "central water tank storage": "J:K", - "decentral water tank storage": "J:K", - "fuel cell": "I:J", - "hydrogen storage underground": "J:K", - "hydrogen storage tank type 1 including compressor": "J:K", - "micro CHP": "I:J", - "biogas": "I:J", - "biogas CC": "I:J", - "biogas upgrading": "I:J", - "electrolysis": "I:J", - "battery": "L,N", - "direct air capture": "I:J", - "cement capture": "I:J", - "biomass CHP capture": "I:J", - "BioSNG": "I:J", - "BtL": "J:K", - "biomass-to-methanol": "J:K", - "biogas plus hydrogen": "J:K", - "industrial heat pump medium temperature": "H:I", - "industrial heat pump high temperature": "H:I", - "electric boiler steam": "H:I", - "gas boiler steam": "H:I", - "solid biomass boiler steam": "H:I", - "solid biomass boiler steam CC": "H:I", - "biomass boiler": "I:J", - "Fischer-Tropsch": "I:J", - "Haber-Bosch": "I:J", - "air separation unit": "I:J", - "methanolisation": "J:K", - "waste CHP": "I:J", - "waste CHP CC": "I:J", - "biochar pyrolysis": "J:K", - "biomethanation": "J:K", - "electrolysis small": "I:J", -} +uncrtnty_lookup = {'onwind': 'J:K', + 'offwind': 'J:K', + 'solar-utility': 'J:K', + 'solar-utility single-axis tracking': 'J:K', + 'solar-rooftop residential': 'J:K', + 'solar-rooftop commercial': 'J:K', + 'OCGT': 'I:J', + 'CCGT': 'I:J', + 'oil': 'I:J', + 'biomass CHP': 'I:J', + 'biomass EOP': 'I:J', + 'biomass HOP': 'I:J', + 'central coal CHP': '', + 'central gas CHP': 'I:J', + 'central gas CHP CC': 'I:J', + 'central hydrogen CHP': 'I:J', + 'central solid biomass CHP': 'I:J', + 'central solid biomass CHP CC': 'I:J', + 'central solid biomass CHP powerboost CC': 'I:J', + # 'solid biomass power': 'J:K', + # 'solid biomass power CC': 'J:K', + 'solar': '', + 'central air-sourced heat pump': 'J:K', + 'central geothermal-sourced heat pump': 'H:K', + 'central geothermal heat source': 'H:K', + 'central excess-heat-sourced heat pump': 'H:K', + 'central water-sourced heat pump': 'H:K', + 'central ground-sourced heat pump': 'I:J', + 'central resistive heater': 'I:J', + 'central gas boiler': 'I:J', + 'decentral gas boiler': 'I:J', + 'direct firing gas': 'H:I', + 'direct firing gas CC': 'H:I', + 'direct firing solid fuels': 'H:I', + 'direct firing solid fuels CC': 'H:I', + 'decentral ground-sourced heat pump': 'I:J', + 'decentral air-sourced heat pump': 'I:J', + 'central water pit storage': 'J:K', + 'central water tank storage': 'J:K', + 'decentral water tank storage': 'J:K', + 'fuel cell': 'I:J', + 'hydrogen storage underground': 'J:K', + 'hydrogen storage tank type 1 including compressor': 'J:K', + 'micro CHP': 'I:J', + 'biogas': 'I:J', + 'biogas CC': 'I:J', + 'biogas upgrading': 'I:J', + 'electrolysis': 'I:J', + 'battery': 'L,N', + 'direct air capture': 'I:J', + 'cement capture': 'I:J', + 'biomass CHP capture': 'I:J', + 'BioSNG': 'I:J', + 'BtL': 'J:K', + 'biomass-to-methanol': 'J:K', + 'biogas plus hydrogen': 'J:K', + 'industrial heat pump medium temperature': 'H:I', + 'industrial heat pump high temperature': 'H:I', + 'electric boiler steam': 'H:I', + 'gas boiler steam': 'H:I', + 'solid biomass boiler steam': 'H:I', + 'solid biomass boiler steam CC': 'H:I', + 'biomass boiler': 'I:J', + 'Fischer-Tropsch': 'I:J', + 'Haber-Bosch': 'I:J', + 'air separation unit': 'I:J', + 'methanolisation': 'J:K', + 'waste CHP': 'I:J', + 'waste CHP CC': 'I:J', + 'biochar pyrolysis': 'J:K', + 'biomethanation': 'J:K', + 'electrolysis small': 'I:J', + } # since February 2022 DEA uses a new format for the technology data -# all Excel sheets of updated technologies have a different layout and are +# all excel sheets of updated technologies have a different layout and are # given in EUR_2020 money (instead of EUR_2015) -cost_year_2020 = [ - "solar-utility", - "solar-utility single-axis tracking", - "solar-rooftop residential", - "solar-rooftop commercial", - "offwind", - "electrolysis", - "biogas", - "biogas CC", - "biogas upgrading", - "direct air capture", - "biomass CHP capture", - "cement capture", - "BioSNG", - "BtL", - "biomass-to-methanol", - "biogas plus hydrogen", - "methanolisation", - "Fischer-Tropsch", - "biochar pyrolysis", - "biomethanation", - "electrolysis small", -] - -cost_year_2019 = [ - "direct firing gas", - "direct firing gas CC", - "direct firing solid fuels", - "direct firing solid fuels CC", - "industrial heat pump medium temperature", - "industrial heat pump high temperature", - "electric boiler steam", - "gas boiler steam", - "solid biomass boiler steam", - "solid biomass boiler steam CC", -] +cost_year_2020 = ['solar-utility', + 'solar-utility single-axis tracking', + 'solar-rooftop residential', + 'solar-rooftop commercial', + 'offwind', + 'electrolysis', + 'biogas', + 'biogas CC', + 'biogas upgrading', + 'direct air capture', + 'biomass CHP capture', + 'cement capture', + 'BioSNG', + 'BtL', + 'biomass-to-methanol', + 'biogas plus hydrogen', + 'methanolisation', + 'Fischer-Tropsch', + 'biochar pyrolysis', + 'biomethanation', + 'electrolysis small', + ] + +cost_year_2019 = ['direct firing gas', + 'direct firing gas CC', + 'direct firing solid fuels', + 'direct firing solid fuels CC', + 'industrial heat pump medium temperature', + 'industrial heat pump high temperature', + 'electric boiler steam', + 'gas boiler steam', + 'solid biomass boiler steam', + 'solid biomass boiler steam CC', + ] # -------- FUNCTIONS --------------------------------------------------- - -def get_excel_sheets(list_of_excel_files: list) -> dict: - """ - The function reads Excel files and returns them in a dictionary. - The dictionary has the files names as keys and the lists of sheet names as values. - - Parameters - ---------- - list_of_excel_files : list - Excel files to process - - Returns - ------- - Dictionary - data from DEA +def get_excel_sheets(excel_files): + """" + read all excel sheets and return + them as a dictionary (data_in) """ - - excel_sheets_dictionary = {} - for entry in list_of_excel_files: + data_in = {} + for entry in excel_files: if entry[-5:] == ".xlsx": - excel_sheets_dictionary[entry] = pd.ExcelFile(entry).sheet_names - logger.info(f"found {len(excel_sheets_dictionary)} excel sheets: ") - for key in excel_sheets_dictionary.keys(): - logger.info(f"* {key}") - return excel_sheets_dictionary + data_in[entry] = pd.ExcelFile(entry).sheet_names + print("found ", len(data_in), " excel sheets: ") + for key in data_in.keys(): + print("* ", key) + return data_in -def get_sheet_location( - tech_name: str, sheet_names_dict: dict, input_data_dict: dict -) -> str: +def get_sheet_location(tech, sheet_names, data_in): """ - The function returns a dictionary. The dictionary has the technology names as keys and - the Excel file names where the technology is saved as values - - Parameters - ---------- - tech_name : str - technology name - sheet_names_dict : dict - dictionary having the technology name as keys and Excel sheet names as values - input_data_dict : dict - dictionary having the files names as keys and the lists of sheet names as values - - Returns - ------- - str - Excel file name where the technology is present + looks up in which excel file technology is saved """ + for key in data_in: + if sheet_names[tech] in data_in[key]: + return key + print("******* warning *************") + print("tech ", tech, " with sheet name ", sheet_names[tech], + " not found in excel sheets.") + print("****************************") + return None - key_list = [ - key - for key, value in input_data_dict.items() - if any(sheet_names_dict[tech_name] in s for s in value) - ] - - if len(key_list) == 1: - return key_list[0] - elif len(key_list) > 1: - logger.info(f"{tech_name} appears in more than one sheet name") - return "Multiple sheets found" - else: - logger.info( - f"tech {tech_name} with sheet name {sheet_names_dict[tech_name]} not found in excel sheets. " - ) - return "Sheet not found" - +# -def get_dea_maritime_data( - fn: str, years: list, input_data_df: pd.DataFrame -) -> pd.DataFrame: +def get_dea_maritime_data(fn, data): """ - The function returns a dataframe containing the technology data for shipping from the DEA database. - - Parameters - ---------- - fn : str - path to DEA input data file for shipping - years : list - years for which a cost assumption is provided - input_data_df : pd.DataFrame - technology data cost assumptions - - Returns - ------- - DataFrame - technology data cost assumptions enriched with shipping data from DEA + Get technology data for shipping from DEA. """ - - dea_maritime_data_sheet_names = [ - "Container feeder, diesel", - "Container feeder, methanol", - "Container feeder, ammonia", - "Container, diesel", - "Container, methanol", - "Container, ammonia", - "Tank&bulk, diesel", - "Tank&bulk, methanol", - "Tankbulk, ammonia", - ] - - excel = pd.read_excel( - fn, - sheet_name=dea_maritime_data_sheet_names, - index_col=[0, 1], - usecols="A:F", - na_values="N/A", - ) - - wished_index = [ - "Typical ship lifetime (years)", - "Upfront ship cost (mill. €)", - "Fixed O&M (€/year)", - "Variable O&M (€/nm)", - ] - + sheet_names = ['Container feeder, diesel', + 'Container feeder, methanol', + 'Container feeder, ammonia', + 'Container, diesel', + 'Container, methanol', + 'Container, ammonia', + 'Tank&bulk, diesel', + 'Tank&bulk, methanol', + 'Tankbulk, ammonia', + ] + excel = pd.read_excel(fn, + sheet_name=sheet_names, + index_col=[0,1], + usecols="A:F", + na_values="N/A") + + wished_index = ["Typical ship lifetime (years)", + "Upfront ship cost (mill. €)", + "Fixed O&M (€/year)", + "Variable O&M (€/nm)", + ] + + for sheet in excel.keys(): df = excel[sheet] - df = df.iloc[1:, :].set_axis(df.iloc[0], axis=1) - + df = df.iloc[1:,:].set_axis(df.iloc[0], axis=1) + assert "Typical operational speed" in df.index.get_level_values(1)[22] # in unit GJ/nm efficiency = df.iloc[22] - + df = df[df.index.get_level_values(1).isin(wished_index)] df = df.droplevel(level=0) df.loc["efficiency (GJ/nm)"] = efficiency @@ -396,292 +336,209 @@ def get_dea_maritime_data( df = df.astype(float) df = df.interpolate(axis=1, limit_direction="both") df = df[years] - + # dropna df = df.dropna(how="all", axis=0) # add column for units - df["unit"] = df.rename( - index=lambda x: x[x.rfind("(") + 1 : x.rfind(")")] - ).index.values + df["unit"] = (df.rename(index=lambda x: + x[x.rfind("(")+1: x.rfind(")")]).index.values) df["unit"] = df.unit.str.replace("€", "EUR") # remove units from index - df.index = df.index.str.replace(r" \(.*\)", "", regex=True) - + df.index = df.index.str.replace(r" \(.*\)","", regex=True) + # convert million Euro -> Euro - df_i = df[df.unit == "mill. EUR"].index + df_i = df[df.unit == 'mill. EUR'].index df.loc[df_i, years] *= 1e6 df.loc[df_i, "unit"] = "EUR" - + # convert FOM in % of investment/year - if "Fixed O&M" in df.index: - df.loc["Fixed O&M", years] /= df.loc["Upfront ship cost", years] * 100 - df.loc["Fixed O&M", "unit"] = "%/year" - + if 'Fixed O&M' in df.index: + df.loc['Fixed O&M', years] /= (df.loc['Upfront ship cost', years] + * 100) + df.loc['Fixed O&M', "unit"] = "%/year" + # convert nm in km # 1 Nautical Mile (nm) = 1.852 Kilometers (km) - df_i = df[df.unit.str.contains("/nm")].index + df_i = df[df.unit.str.contains('/nm')].index df.loc[df_i, years] /= 1.852 df.loc[df_i, "unit"] = df.loc[df_i, "unit"].str.replace("/nm", "/km") - + # 1 GJ = 1/3600 * 1e9 Wh = 1/3600 * 1e3 MWh - df_i = df[df.unit.str.contains("GJ")].index - df.loc[df_i, years] *= 1e3 / 3600 + df_i = df[df.unit.str.contains('GJ')].index + df.loc[df_i, years] *= 1e3/3600 df.loc[df_i, "unit"] = df.loc[df_i, "unit"].str.replace("GJ", "MWh") - + # add source + cost year df["source"] = f"Danish Energy Agency, {fn}" # cost year is 2023 p.10 df["currency_year"] = 2023 # add sheet name - df["further description"] = sheet - + df['further description'] = sheet + # FOM, VOM,efficiency, lifetime, investment - rename = { - "Typical ship lifetime": "lifetime", - "Upfront ship cost": "investment", - "Fixed O&M": "FOM", - "Variable O&M": "VOM", - } - + rename = {'Typical ship lifetime': "lifetime", + 'Upfront ship cost': "investment", + 'Fixed O&M': "FOM", + 'Variable O&M': "VOM", + } + df = df.rename(index=rename) - + df = pd.concat([df], keys=[sheet], names=["technology", "parameter"]) - - input_data_df = pd.concat([input_data_df, df]) - - return input_data_df - - -def get_dea_vehicle_data( - fn: str, years: list, technology_dataframe: pd.DataFrame -) -> pd.DataFrame: - """ - The function gets heavy-duty vehicle data from DEA. - - Parameters - ---------- - fn : str - path to DEA input data file for shipping - years : list - years for which a cost assumption is provided - technology_dataframe : pd.DataFrame - technology data cost assumptions - - Returns - ------- - DataFrame - technology data cost assumptions enriched with shipping data from DEA - """ - - dea_vehicle_data_sheet_names = [ - "Diesel L1", - "Diesel L2", - "Diesel L3", - "Diesel B1", - "Diesel B2", - "BEV L1", - "BEV L2", - "BEV L3", - "BEV B1", - "BEV B2", - "FCV L1", - "FCV L2", - "FCV L3", - "FCV B1", - "FCV B2", - ] - excel = pd.read_excel( - fn, - sheet_name=dea_vehicle_data_sheet_names, - index_col=0, - usecols="A:F", - na_values="no data", - ) - - wished_index = [ - "Typical vehicle lifetime (years)", - "Upfront vehicle cost (€)", - "Fixed maintenance cost (€/year)", - "Variable maintenance cost (€/km)", - "Motor size (kW)", - ] - + + data = pd.concat([data, df]) + + return data + + + +def get_dea_vehicle_data(fn, data): + """ + Get heavy-duty vehicle data from DEA. + """ + sheet_names = ['Diesel L1', 'Diesel L2', 'Diesel L3', + 'Diesel B1', 'Diesel B2', + 'BEV L1', 'BEV L2', 'BEV L3', + 'BEV B1', 'BEV B2', + 'FCV L1', 'FCV L2', 'FCV L3', + 'FCV B1', 'FCV B2'] + excel = pd.read_excel(fn, + sheet_name=sheet_names, + index_col=0, + usecols="A:F", + na_values="no data") + + wished_index = ["Typical vehicle lifetime (years)", + "Upfront vehicle cost (€)", + "Fixed maintenance cost (€/year)", + "Variable maintenance cost (€/km)", + "Motor size (kW)", + ] + # clarify DEA names - types = { - "L1": "Truck Solo max 26 tons", - "L2": "Truck Trailer max 56 tons", - "L3": "Truck Semi-Trailer max 50 tons", - "B1": "Bus city", - "B2": "Coach", - } - + types = {"L1": "Truck Solo max 26 tons", + "L2": "Truck Trailer max 56 tons", + "L3": "Truck Semi-Trailer max 50 tons", + "B1": "Bus city", + "B2": "Coach"} + for sheet in excel.keys(): df = excel[sheet] tech = sheet.split()[0] + " " + types.get(sheet.split()[1], "") - df = df.iloc[1:, :].set_axis(df.iloc[0], axis=1) - # "Fuel energy - typical load (MJ/km)" + df = df.iloc[1:,:].set_axis(df.iloc[0], axis=1) + # "Fuel energy - typical load (MJ/km)" # represents efficiency for average weight vehicle carries during normal # operation, currently assuming mean between urban, regional and long haul - assert df.index[27] == "Fuel energy - typical load (MJ/km)" - efficiency = df.iloc[28:31].mean() + assert df.index[27] == 'Fuel energy - typical load (MJ/km)' + efficiency = df.iloc[28:31].mean() df = df[df.index.isin(wished_index)] df.loc["efficiency (MJ/km)"] = efficiency df = df.reindex(columns=pd.Index(years).union(df.columns)) df = df.interpolate(axis=1, limit_direction="both") df = df[years] - + # add column for units - df["unit"] = df.rename( - index=lambda x: x[x.rfind("(") + 1 : x.rfind(")")] - ).index.values + df["unit"] = (df.rename(index=lambda x: + x[x.rfind("(")+1: x.rfind(")")]).index.values) df["unit"] = df.unit.str.replace("€", "EUR") # remove units from index - df.index = df.index.str.replace(r" \(.*\)", "", regex=True) - + df.index = df.index.str.replace(r" \(.*\)","", regex=True) + # convert MJ in kWh -> 1 kWh = 3.6 MJ - df_i = df.index[df.unit == "MJ/km"] + df_i = df.index[df.unit=="MJ/km"] df.loc[df_i, years] /= 3.6 - df.loc[df_i, "unit"] = "kWh/km" - + df.loc[df_i, "unit"] = "kWh/km" + # convert FOM in % of investment/year - df.loc["Fixed maintenance cost", years] /= ( - df.loc["Upfront vehicle cost", years] * 100 - ) + df.loc["Fixed maintenance cost", years] /= (df.loc["Upfront vehicle cost", years] + * 100) df.loc["Fixed maintenance cost", "unit"] = "%/year" - + # clarify costs are per vehicle df.loc["Upfront vehicle cost", "unit"] += "/vehicle" - + # add source + cost year df["source"] = f"Danish Energy Agency, {fn}" # cost year is 2022 p.12 df["currency_year"] = 2022 # add sheet name - df["further description"] = sheet - + df['further description'] = sheet + # FOM, VOM,efficiency, lifetime, investment - rename = { - "Typical vehicle lifetime": "lifetime", - "Upfront vehicle cost": "investment", - "Fixed maintenance cost": "FOM", - "Variable maintenance cost": "VOM", - } - + rename = {'Typical vehicle lifetime': "lifetime", + 'Upfront vehicle cost': "investment", + 'Fixed maintenance cost': "FOM", + 'Variable maintenance cost': "VOM", + } + df = df.rename(index=rename) - - to_keep = ["Motor size", "lifetime", "FOM", "VOM", "efficiency", "investment"] + + to_keep = ['Motor size', 'lifetime', "FOM", "VOM", "efficiency", + "investment"] df = df[df.index.isin(to_keep)] - + df = pd.concat([df], keys=[tech], names=["technology", "parameter"]) + + data = pd.concat([data, df]) + + return data - technology_dataframe = pd.concat([technology_dataframe, df]) - - return technology_dataframe - - -def get_data_DEA( - years: list, - tech_name: str, - sheet_names_dict: dict, - input_data_dict: dict, - offwind_no_grid_costs_flag: bool = True, - expectation: str = None, -) -> pd.DataFrame: - """ - The function interpolates costs for a given technology from DEA database sheet and - stores technology data from DEA in a dictionary. - - Parameters - ---------- - years : list - years for which a cost assumption is provided - tech_name : str - technology name - sheet_names_dict : dict - dictionary having the technology name as keys and Excel sheet names as values - input_data_dict : dict - dictionary where the keys are the path to the DEA inputs and the values are the sheet names - offwind_no_grid_costs_flag : bool - flag to remove grid connection costs from DEA for offwind. Such costs are calculated separately in pypsa-eur - expectation : str - tech data uncertainty. The possible options are [None, "optimist", "pessimist"] - - Returns - ------- - DataFrame - technology data from DEA + +def get_data_DEA(tech, data_in, expectation=None): """ + interpolate cost for a given technology from DEA database sheet - excel_file = get_sheet_location(tech_name, sheet_names_dict, input_data_dict) - if excel_file == "Sheet not found" or excel_file == "Multiple sheets found": - logger.info(f"excel file not found for technology: {tech_name}") - return pd.DataFrame() + uncertainty can be "optimist", "pessimist" or None|"" + """ + excel_file = get_sheet_location(tech, sheet_names, data_in) + if excel_file is None: + print("excel file not found for tech ", tech) + return None - if tech_name == "battery": + if tech=="battery": usecols = "B:J" - elif tech_name in [ - "direct air capture", - "cement capture", - "biomass CHP capture", - ]: + elif tech in ['direct air capture', 'cement capture', 'biomass CHP capture']: usecols = "A:F" - elif tech_name in [ - "industrial heat pump medium temperature", - "industrial heat pump high temperature", - "electric boiler steam", - "gas boiler steam", - "solid biomass boiler steam", - "solid biomass boiler steam CC", - "direct firing gas", - "direct firing gas CC", - "direct firing solid fuels", - "direct firing solid fuels CC", - ]: + elif tech in ['industrial heat pump medium temperature', 'industrial heat pump high temperature', + 'electric boiler steam', "gas boiler steam", "solid biomass boiler steam", "solid biomass boiler steam CC", "direct firing gas", "direct firing gas CC", "direct firing solid fuels", "direct firing solid fuels CC"]: usecols = "A:E" - elif tech_name in ["Fischer-Tropsch", "Haber-Bosch", "air separation unit"]: + elif tech in ['Fischer-Tropsch', 'Haber-Bosch', 'air separation unit']: usecols = "B:F" - elif tech_name in ["central water-sourced heat pump"]: + elif tech in ["central water-sourced heat pump"]: usecols = "B,I,K" else: usecols = "B:G" - usecols += f",{uncrtnty_lookup[tech_name]}" + usecols += f",{uncrtnty_lookup[tech]}" - if ( - (tech_name in cost_year_2019) - or (tech_name in cost_year_2020) - or ("renewable_fuels" in excel_file) - ): + + if ((tech in cost_year_2019) or (tech in cost_year_2020) or ("renewable_fuels" in excel_file)): skiprows = [0] else: - skiprows = [0, 1] - - excel = pd.read_excel( - excel_file, - sheet_name=sheet_names_dict[tech_name], - index_col=0, - usecols=usecols, - skiprows=skiprows, - na_values="N.A", - ) + skiprows = [0,1] + + excel = pd.read_excel(excel_file, + sheet_name=sheet_names[tech], + index_col=0, + usecols=usecols, + skiprows=skiprows, + na_values="N.A") + # print(excel) excel.dropna(axis=1, how="all", inplace=True) + excel.index = excel.index.fillna(" ") excel.index = excel.index.astype(str) excel.dropna(axis=0, how="all", inplace=True) + # print(excel) - if tech_name in ["central water-sourced heat pump"]: + if tech in ["central water-sourced heat pump"]: # use only upper uncertainty range for systems without existing water intake # convert "Uncertainty (2025)"" to "2025", "Uncertainty (2050)"" to "2050" (and so on if more years are added) - this_years = ( - excel.loc[:, excel.iloc[1, :] == "Lower"] - .iloc[0, :] - .str.slice(-5, -1) - .astype(int) - ) + this_years = excel.loc[:,excel.iloc[1,:]=="Lower"].iloc[0,:].str.slice(-5,-1).astype(int) # get values in upper uncertainty range - excel = excel.loc[:, excel.iloc[1, :] == "Upper"] + excel = excel.loc[:,excel.iloc[1,:]=="Upper"] # rename columns to years constructed above excel.columns = this_years # add missing years @@ -700,11 +557,8 @@ def get_data_DEA( # Extrapolation for missing values (not native in pandas) # Currently, this is only first column (2020), since DEA data is available for 2025 and 2050 if excel.iloc[:, 0].isnull().all(): - excel.iloc[:, 0] = excel.iloc[:, 1] + ( - excel.iloc[:, 1] - excel.iloc[:, 2] - ) / (excel.columns[2] - excel.columns[1]) * ( - excel.columns[1] - excel.columns[0] - ) + excel.iloc[:, 0] = excel.iloc[:, 1] + (excel.iloc[:, 1] - excel.iloc[:, 2]) / (excel.columns[2] - excel.columns[1]) * (excel.columns[1] - excel.columns[0]) + if 2020 not in excel.columns: selection = excel[excel.isin([2020])].dropna(how="all").index @@ -712,29 +566,18 @@ def get_data_DEA( excel.drop(selection, inplace=True) uncertainty_columns = ["2050-optimist", "2050-pessimist"] - if uncrtnty_lookup[tech_name]: + if uncrtnty_lookup[tech]: # hydrogen storage sheets have reverse order of lower/upper estimates - if tech_name in [ - "hydrogen storage tank type 1 including compressor", - "hydrogen storage cavern", - ]: + if tech in ["hydrogen storage tank type 1 including compressor", "hydrogen storage cavern"]: uncertainty_columns.reverse() - excel.rename( - columns={ - excel.columns[-2]: uncertainty_columns[0], - excel.columns[-1]: uncertainty_columns[1], - }, - inplace=True, - ) + excel.rename(columns={excel.columns[-2]: uncertainty_columns[0], + excel.columns[-1]: uncertainty_columns[1] + }, inplace=True) else: for col in uncertainty_columns: - excel.loc[:, col] = excel.loc[:, 2050] + excel.loc[:,col] = excel.loc[:,2050] - swap_patterns = [ - "technical life", - "efficiency", - "Hydrogen output, at LHV", - ] # cases where bigger is better + swap_patterns = ["technical life", "efficiency", "Hydrogen output, at LHV"] # cases where bigger is better swap = [any(term in idx.lower() for term in swap_patterns) for idx in excel.index] tmp = excel.loc[swap, "2050-pessimist"] excel.loc[swap, "2050-pessimist"] = excel.loc[swap, "2050-optimist"] @@ -743,65 +586,56 @@ def get_data_DEA( if expectation: # drop duplicates excel = excel[~excel.index.duplicated()] - excel.loc[:, 2050] = excel.loc[:, f"2050-{expectation}"].combine_first( - excel.loc[:, 2050] - ) + excel.loc[:,2050] = excel.loc[:,f"2050-{expectation}"].combine_first(excel.loc[:,2050]) excel.drop(columns=uncertainty_columns, inplace=True) - # fix for battery with different Excel sheet format - if tech_name == "battery": - excel.rename(columns={"Technology": 2040}, inplace=True) + # fix for battery with different excel sheet format + if tech == "battery": + excel.rename(columns={"Technology":2040}, inplace=True) if expectation: - excel = excel.loc[:, [2020, 2050]] - - parameters = [ - "efficiency", - "investment", - "Fixed O&M", - "Variable O&M", - "production capacity for one unit", - "Output capacity expansion cost", - "Hydrogen Output", - "Hydrogen (% total input_e (MWh / MWh))", - "Hydrogen [% total input_e", - " - hereof recoverable for district heating (%-points of heat loss)", - "Cb coefficient", - "Cv coefficient", - "Distribution network costs", - "Technical life", - "Energy storage expansion cost", - "Output capacity expansion cost (M€2015/MW)", - "Heat input", - "Heat input", - "Electricity input", - "Eletricity input", - "Heat out", - "capture rate", - "FT Liquids Output, MWh/MWh Total Input", - " - hereof recoverable for district heating [%-points of heat loss]", - " - hereof recoverable for district heating (%-points of heat loss)", - "Bio SNG Output [% of fuel input]", - "Methanol Output", - "District heat Output", - "Electricity Output", - "Total O&M", - "Biochar Output", # biochar pyrolysis - "Pyrolysis oil Output", # biochar pyrolysis - "Pyrolysis gas Output", # biochar pyrolysis - "Heat Output", # biochar pyrolysis - "Specific energy content [GJ/ton] biochar", # biochar pyrolysis - "Electricity Consumption", - "Feedstock Consumption", # biochar pyrolysis - "Methane Output", - "CO2 Consumption", - "Hydrogen Consumption", - " - of which is equipment excluding heat pump", - " - of which is heat pump including its installation", - "Input capacity", - "Output capacity", - "Energy storage capacity", - ] + excel = excel.loc[:,[2020,2050]] + + parameters = ["efficiency", "investment", "Fixed O&M", + "Variable O&M", "production capacity for one unit", + "Output capacity expansion cost", + "Hydrogen Output", + "Hydrogen (% total input_e (MWh / MWh))", + "Hydrogen [% total input_e", + " - hereof recoverable for district heating (%-points of heat loss)", + "Cb coefficient", + "Cv coefficient", + "Distribution network costs", "Technical life", + "Energy storage expansion cost", + 'Output capacity expansion cost (M€2015/MW)', + 'Heat input', 'Heat input', 'Electricity input', 'Eletricity input', 'Heat out', + 'capture rate', + "FT Liquids Output, MWh/MWh Total Input", + " - hereof recoverable for district heating [%-points of heat loss]", + " - hereof recoverable for district heating (%-points of heat loss)", + "Bio SNG Output [% of fuel input]", + "Methanol Output", + "District heat Output", + "Electricity Output", + "Total O&M", + "Biochar Output", # biochar pyrolysis + "Pyrolysis oil Output", # biochar pyrolysis + "Pyrolysis gas Output", # biochar pyrolysis + "Heat Output", # biochar pyrolysis + "Specific energy content [GJ/ton] biochar", # biochar pyrolysis + 'Electricity Consumption', + 'Feedstock Consumption', # biochar pyrolysis + 'Methane Output', + 'CO2 Consumption', + 'Hydrogen Consumption', + 'Biogas Consumption', + 'SNG Output', + 'District Heating Output', + ' - of which is equipment excluding heat pump', + ' - of which is heat pump including its installation', + 'Input capacity', + 'Output capacity', + 'Energy storage capacity'] df = pd.DataFrame() for para in parameters: @@ -809,498 +643,510 @@ def get_data_DEA( attr = excel[[para in index for index in excel.index]] if len(attr) != 0: df = pd.concat([df, attr]) - df.index = df.index.str.replace("€", "EUR") + df.index = df.index.str.replace('€', 'EUR') df = df.reindex(columns=df.columns[df.columns.isin(years)]) - df = df[~df.index.duplicated(keep="first")] + df = df[~df.index.duplicated(keep='first')] # replace missing data df.replace("-", np.nan, inplace=True) # average data in format "lower_value-upper_value" - df = df.apply( - lambda row: row.apply( - lambda x: (float(x.split("-")[0]) + float(x.split("-")[1])) / 2 - if isinstance(x, str) and "-" in x - else x - ), - axis=1, - ) + df = df.apply(lambda row: row.apply(lambda x: (float(x.split("-")[0]) + + float(x.split("-")[1])) + / 2 if isinstance(x, str) and "-" in x else x), + axis=1) # remove symbols "~", ">", "<" and " " for sym in ["~", ">", "<", " "]: - df = df.apply( - lambda col: col.apply( - lambda x: x.replace(sym, "") if isinstance(x, str) else x - ) - ) + df = df.apply(lambda col: col.apply(lambda x: x.replace(sym, "") + if isinstance(x, str) else x)) + df = df.astype(float) - df = df.mask( - df.apply(pd.to_numeric, errors="coerce").isnull(), - df.astype(str).apply(lambda x: x.str.strip()), - ) + df = df.mask(df.apply(pd.to_numeric, errors='coerce').isnull(), df.astype(str).apply(lambda x: x.str.strip())) + # print(df) - # Modify data loaded from DEA on a per-technology case - if (tech_name == "offwind") and offwind_no_grid_costs_flag: - df.loc["Nominal investment (*total) [MEUR/MW_e, 2020]"] -= excel.loc[ - "Nominal investment (installation: grid connection) [M€/MW_e, 2020]" - ] + ## Modify data loaded from DEA on a per-technology case + if (tech == "offwind") and snakemake.config['offwind_no_gridcosts']: + df.loc['Nominal investment (*total) [MEUR/MW_e, 2020]'] -= excel.loc['Nominal investment (installation: grid connection) [M€/MW_e, 2020]'] - # Exclude indirect costs for centralised system with additional piping. - if tech_name.startswith("industrial heat pump"): - df = df.drop("Indirect investments cost (MEUR per MW)") + # Exlucde indirect costs for centralised system with additional piping. + if tech.startswith('industrial heat pump'): + df = df.drop('Indirect investments cost (MEUR per MW)') - if tech_name == "biogas plus hydrogen": + if tech == 'biogas plus hydrogen': df.drop(df.loc[df.index.str.contains("GJ SNG")].index, inplace=True) - if tech_name == "BtL": + if tech == 'BtL': df.drop(df.loc[df.index.str.contains("1,000 t FT Liquids")].index, inplace=True) - if tech_name == "biomass-to-methanol": + if tech == "biomass-to-methanol": df.drop(df.loc[df.index.str.contains("1,000 t Methanol")].index, inplace=True) - if tech_name == "methanolisation": + if tech == 'methanolisation': df.drop(df.loc[df.index.str.contains("1,000 t Methanol")].index, inplace=True) - if tech_name == "Fischer-Tropsch": + if tech == 'Fischer-Tropsch': df.drop(df.loc[df.index.str.contains("l FT Liquids")].index, inplace=True) - if tech_name == "biomass boiler": - df.drop( - df.loc[df.index.str.contains("Possible additional")].index, inplace=True - ) + if tech == 'biomass boiler': + df.drop(df.loc[df.index.str.contains("Possible additional")].index, inplace=True) df.drop(df.loc[df.index.str.contains("Total efficiency")].index, inplace=True) - if tech_name == "Haber-Bosch": - df.drop( - df.loc[ - df.index.str.contains("Specific investment mark-up factor optional ASU") - ].index, - inplace=True, - ) - df.drop( - df.loc[ - df.index.str.contains( - "Specific investment (MEUR /TPD Ammonia output", regex=False - ) - ].index, - inplace=True, - ) - df.drop( - df.loc[ - df.index.str.contains("Fixed O&M (MEUR /TPD Ammonia", regex=False) - ].index, - inplace=True, - ) - df.drop( - df.loc[ - df.index.str.contains("Variable O&M (EUR /t Ammonia)", regex=False) - ].index, - inplace=True, - ) - - if tech_name == "air separation unit": - divisor = ( - (df.loc["Specific investment mark-up factor optional ASU"] - 1.0) - / excel.loc["N2 Consumption, [t/t] Ammonia"] - ).astype(float) + if tech == "Haber-Bosch": + df.drop(df.loc[df.index.str.contains("Specific investment mark-up factor optional ASU")].index, inplace=True) + df.drop(df.loc[df.index.str.contains("Specific investment (MEUR /TPD Ammonia output", regex=False)].index, inplace=True) + df.drop(df.loc[df.index.str.contains("Fixed O&M (MEUR /TPD Ammonia", regex=False)].index, inplace=True) + df.drop(df.loc[df.index.str.contains("Variable O&M (EUR /t Ammonia)", regex=False)].index, inplace=True) + if tech == "air separation unit": + divisor = ((df.loc["Specific investment mark-up factor optional ASU"] - 1.0) + / excel.loc["N2 Consumption, [t/t] Ammonia"]).astype(float) + # Calculate ASU cost separate to HB facility in terms of t N2 output - df.loc[ - [ - "Specific investment [MEUR /TPD Ammonia output]", - "Fixed O&M [kEUR /TPD Ammonia]", - "Variable O&M [EUR /t Ammonia]", - ] - ] *= divisor + df.loc[[ + "Specific investment [MEUR /TPD Ammonia output]", + "Fixed O&M [kEUR /TPD Ammonia]", + "Variable O&M [EUR /t Ammonia]" + ]] *= divisor # Convert output to hourly generation - df.loc[ - [ - "Specific investment [MEUR /TPD Ammonia output]", - "Fixed O&M [kEUR /TPD Ammonia]", - ] - ] *= 24 + df.loc[[ + "Specific investment [MEUR /TPD Ammonia output]", + "Fixed O&M [kEUR /TPD Ammonia]", + ]] *= 24 # Rename costs for correct units df.index = df.index.str.replace("MEUR /TPD Ammonia output", "MEUR/t_N2/h") df.index = df.index.str.replace("kEUR /TPD Ammonia", "kEUR/t_N2/h/year") df.index = df.index.str.replace("EUR /t Ammonia", "EUR/t_N2") - df.drop( - df.loc[ - df.index.str.contains("Specific investment mark-up factor optional ASU") - ].index, - inplace=True, - ) - df.drop( - df.loc[ - df.index.str.contains( - "Specific investment [MEUR /MW Ammonia output]", regex=False - ) - ].index, - inplace=True, - ) - df.drop( - df.loc[ - df.index.str.contains("Fixed O&M [kEUR/MW Ammonia/year]", regex=False) - ].index, - inplace=True, - ) - df.drop( - df.loc[ - df.index.str.contains("Variable O&M [EUR/MWh Ammonia]", regex=False) - ].index, - inplace=True, - ) - - if "solid biomass power" in tech_name: + df.drop(df.loc[df.index.str.contains("Specific investment mark-up factor optional ASU")].index, inplace=True) + df.drop(df.loc[df.index.str.contains("Specific investment [MEUR /MW Ammonia output]", regex=False)].index, inplace=True) + df.drop(df.loc[df.index.str.contains("Fixed O&M [kEUR/MW Ammonia/year]", regex=False)].index, inplace=True) + df.drop(df.loc[df.index.str.contains("Variable O&M [EUR/MWh Ammonia]", regex=False)].index, inplace=True) + + if "solid biomass power" in tech: df.index = df.index.str.replace("EUR/MWeh", "EUR/MWh") - if "biochar pyrolysis" in tech_name: - df = biochar_pyrolysis_harmonise_dea(df) + if "biochar pyrolysis" in tech: + df = biochar_pyrolysis_dea(df) - elif tech_name == "central geothermal-sourced heat pump": - df.loc["Nominal investment (MEUR per MW)"] = df.loc[ - " - of which is heat pump including its installation" - ] + if "biomethanation" in tech: + df = biomethanation_dea(df) - elif tech_name == "central geothermal heat source": - df.loc["Nominal investment (MEUR per MW)"] = df.loc[ - " - of which is equipment excluding heat pump" - ] + if "biogas plus hydrogen" in tech: + df = biogas_plus_hydrogen_dea(df) + + elif tech == "central geothermal-sourced heat pump": + df.loc["Nominal investment (MEUR per MW)"] = df.loc[" - of which is heat pump including its installation"] + + elif tech == "central geothermal heat source": + df.loc["Nominal investment (MEUR per MW)"] = df.loc[" - of which is equipment excluding heat pump"] df_final = pd.DataFrame(index=df.index, columns=years) # [RTD-interpolation-example] for index in df_final.index: - values = np.interp( - x=years, - xp=df.columns.values.astype(float), - fp=df.loc[index, :].values.astype(float), - ) + values = np.interp(x=years, xp=df.columns.values.astype(float), fp=df.loc[index, :].values.astype(float)) df_final.loc[index, :] = values # if year-specific data is missing and not fixed by interpolation fill forward with same values df_final = df_final.ffill(axis=1) - df_final["source"] = source_dict["DEA"] + ", " + excel_file.replace("inputs/", "") - if ( - tech_name in cost_year_2020 - and ("for_carbon_capture_transport_storage" not in excel_file) - and ("renewable_fuels" not in excel_file) - ): + df_final["source"] = source_dict["DEA"] + ", " + excel_file.replace("inputs/","") + if tech in cost_year_2020 and (not ("for_carbon_capture_transport_storage" in excel_file)) and (not ("renewable_fuels" in excel_file)): for attr in ["investment", "Fixed O&M"]: - to_drop = df[ - df.index.str.contains(attr) & ~df.index.str.contains(r"\(\*total\)") - ].index + to_drop = df[df.index.str.contains(attr) & + ~df.index.str.contains("\(\*total\)")].index df_final.drop(to_drop, inplace=True) - df_final["unit"] = df_final.rename( - index=lambda x: x[x.rfind("[") + 1 : x.rfind("]")] - ).index.values + df_final["unit"] = (df_final.rename(index=lambda x: + x[x.rfind("[")+1: x.rfind("]")]).index.values) else: - df_final.index = df_final.index.str.replace(r"\[", "(", regex=True).str.replace( - r"\]", ")", regex=True - ) - df_final["unit"] = df_final.rename( - index=lambda x: x[x.rfind("(") + 1 : x.rfind(")")] - ).index.values - df_final.index = df_final.index.str.replace(r" \(.*\)", "", regex=True) + df_final.index = df_final.index.str.replace("\[", "(", regex=True).str.replace("\]", ")", regex=True) + df_final["unit"] = (df_final.rename(index=lambda x: + x[x.rfind("(")+1: x.rfind(")")]).index.values) + df_final.index = df_final.index.str.replace(r" \(.*\)","", regex=True) - return df_final + return df_final -def add_desalination_data(cost_dataframe: pd.DataFrame) -> pd.DataFrame: +def add_desalinsation_data(costs): """ - The function adds technology data for seawater desalination (SWRO) and water storage. - - Parameters - ---------- - cost_dataframe : pd.DataFrame - cost dataframe - - Returns - ------- - DataFrame - updated cost dataframe + add technology data for sea water desalination (SWRO) and water storage. """ # Interpolate cost based on historic costs/cost projection to fitting year - cs = [2070, 1917, 1603, 1282, 1025] # in USD/(m^3/d) - ys = [2015, 2022, 2030, 2040, 2050] + cs = [2070,1917,1603,1282,1025] # in USD/(m^3/d) + ys = [2015,2022,2030,2040,2050] c = np.interp(year, ys, cs) - c *= 24 # in USD/(m^3/h) - c /= 1.17 # in EUR/(m^3/h) + c *= 24 # in USD/(m^3/h) + c /= 1.17 # in EUR/(m^3/h) + + tech = "seawater desalination" + costs.loc[(tech, 'investment'), 'value'] = c + costs.loc[(tech, 'investment'), 'unit'] = "EUR/(m^3-H2O/h)" + costs.loc[(tech, 'investment'), 'source'] = source_dict['Caldera2017'] + ", Table 4." + costs.loc[(tech, 'investment'), 'currency_year'] = 2015 + + costs.loc[(tech, 'FOM'), 'value'] = 4. + costs.loc[(tech, 'FOM'), 'unit'] = "%/year" + costs.loc[(tech, 'FOM'), 'source'] = source_dict['Caldera2016'] + ", Table 1." + + costs.loc[(tech, 'lifetime'), 'value'] = 30 + costs.loc[(tech, 'lifetime'), 'unit'] = "years" + costs.loc[(tech, 'lifetime'), 'source'] = source_dict['Caldera2016'] + ", Table 1." + + salinity = snakemake.config['desalination']['salinity'] + costs.loc[(tech, 'electricity-input'), 'value'] = (0.0003*salinity**2+0.0018*salinity+2.6043) + costs.loc[(tech, 'electricity-input'), 'unit'] = "kWh/m^3-H2O" + costs.loc[(tech, 'electricity-input'), 'source'] = source_dict['Caldera2016'] + ", Fig. 4." + + tech = "clean water tank storage" + costs.loc[(tech, 'investment'), 'value'] = 65 + costs.loc[(tech, 'investment'), 'unit'] = "EUR/m^3-H2O" + costs.loc[(tech, 'investment'), 'source'] = source_dict['Caldera2016'] + ", Table 1." + costs.loc[(tech, 'investment'), 'currency_year'] = 2013 + + costs.loc[(tech, 'FOM'), 'value'] = 2 + costs.loc[(tech, 'FOM'), 'unit'] = "%/year" + costs.loc[(tech, 'FOM'), 'source'] = source_dict['Caldera2016'] + ", Table 1." + + costs.loc[(tech, 'lifetime'), 'value'] = 30 + costs.loc[(tech, 'lifetime'), 'unit'] = "years" + costs.loc[(tech, 'lifetime'), 'source'] = source_dict['Caldera2016'] + ", Table 1." + + return costs + +def biomass_properties(): + """ function that harmonises the properties of solid biomass properties with biomass potentials (JRC ENSPRESO) + NOTE: all energy contents are on Lower Heating Value (LHV)""" + + idx_biomass = ['biomass_specific_energy_DM', 'biomass_carbon_content', 'biomass_moisture_content', + 'water_evap_heat', 'biomass_specific_energy', 'pyrolysis_feedstock_moisture_content', + 'pyrolysis_feedstock_specific_energy'] + cols_biomass = ['value', 'unit'] + units = ['GJ/t_DM', 'tC/t_biom_DM', 't_h2o/t_biom', 'GJ/t_h2o', 'GJ/t_biom', 't_h2o/t_pyrofeed', 'GJ/t_pyrofeed'] + solid_biomass_df = pd.DataFrame(index=idx_biomass, data=0, columns=cols_biomass) + solid_biomass_df = solid_biomass_df.astype({'value': 'float', 'unit': 'object'}) + solid_biomass_df.loc[:, 'unit'] = units + + solid_biomass_df.at['biomass_specific_energy_DM', 'value'] = 18 + solid_biomass_df.at['biomass_carbon_content', 'value'] = 0.5 + solid_biomass_df.at['biomass_moisture_content', 'value'] = 0.15 + solid_biomass_df.at['water_evap_heat', 'value'] = 2.44 + solid_biomass_df.at['pyrolysis_feedstock_moisture_content', 'value'] = 0.1 + + LHV_solid_biomass = solid_biomass_df.at['biomass_specific_energy_DM','value'] * (1-solid_biomass_df.at['biomass_moisture_content','value']) - solid_biomass_df.at['biomass_moisture_content','value'] * solid_biomass_df.at['water_evap_heat','value'] + LHV_pyrolysis_feedstock = solid_biomass_df.at['biomass_specific_energy_DM','value'] * (1-solid_biomass_df.at['pyrolysis_feedstock_moisture_content','value']) - solid_biomass_df.at['pyrolysis_feedstock_moisture_content','value'] * solid_biomass_df.at['water_evap_heat','value'] + + solid_biomass_df.at['biomass_specific_energy', 'value'] = LHV_solid_biomass + solid_biomass_df.at['pyrolysis_feedstock_specific_energy', 'value'] = LHV_pyrolysis_feedstock + + return solid_biomass_df + +def add_co2_intensity(costs): + """" + add CO2 intensity for the carriers + """ + TJ_to_MWh = 277.78 + costs.loc[('gas', 'CO2 intensity'), 'value'] = 55827 / 1e3 / TJ_to_MWh # Erdgas + costs.loc[('coal', 'CO2 intensity'), 'value'] = 93369 / 1e3 / TJ_to_MWh # Steinkohle + costs.loc[('lignite', 'CO2 intensity'), 'value'] = 113031 / 1e3 / TJ_to_MWh # Rohbraunkohle Rheinland + costs.loc[('oil', 'CO2 intensity'), 'value'] = 74020 / 1e3 / TJ_to_MWh # Heizöl, leicht + costs.loc[('methanol', 'CO2 intensity'), 'value'] = 0.2482 # t_CO2/MWh_th, based on stochiometric composition. + costs.loc[('solid biomass', 'CO2 intensity'), 'value'] = 0.3 - tech_name = "seawater desalination" + oil_specific_energy = 44 #GJ/t + CO2_CH2_mass_ratio = 44/14 #kg/kg (1 mol per mol) + CO2_C_mass_ratio = 44/12 #kg/kg + methane_specific_energy = 50 #GJ/t + CO2_CH4_mass_ratio = 44/16 #kg/kg (1 mol per mol) + solid_biomass_df = biomass_properties() + biomass_specific_energy = solid_biomass_df.at['biomass_specific_energy','value'] # GJ/t_biom LHV + biomass_carbon_content = solid_biomass_df.at['biomass_carbon_content','value'] # tC/tbiomass_DM + biomass_moisture_content = solid_biomass_df.at['biomass_moisture_content','value'] # th2o/tbiom + costs.loc[('oil', 'CO2 intensity'), 'value'] = (1/oil_specific_energy) * 3.6 * CO2_CH2_mass_ratio #tCO2/MWh + costs.loc[('gas', 'CO2 intensity'), 'value'] = (1/methane_specific_energy) * 3.6 * CO2_CH4_mass_ratio #tCO2/MWh + costs.loc[('solid biomass', 'CO2 intensity'), 'value'] = biomass_carbon_content * (1 - biomass_moisture_content) * ( + 1 / biomass_specific_energy) * 3.6 * CO2_C_mass_ratio # tCO2/MWh - cost_dataframe.loc[(tech_name, "investment"), "value"] = c - cost_dataframe.loc[(tech_name, "investment"), "unit"] = "EUR/(m^3-H2O/h)" - cost_dataframe.loc[(tech_name, "investment"), "source"] = ( - source_dict["Caldera2017"] + ", Table 4." - ) - cost_dataframe.loc[(tech_name, "investment"), "currency_year"] = 2015 + costs.loc[('oil', 'CO2 intensity'), 'source'] = "Stoichiometric calculation with 44 GJ/t diesel and -CH2- approximation of diesel" + costs.loc[('gas', 'CO2 intensity'), 'source'] = "Stoichiometric calculation with 50 GJ/t CH4" + costs.loc[('solid biomass', 'CO2 intensity'), 'source'] = "Stoichiometric calculation with 18 GJ/t_DM LHV and 50% C-content for solid biomass" + costs.loc[('coal', 'CO2 intensity'), 'source'] = source_dict["co2"] + costs.loc[('lignite', 'CO2 intensity'), 'source'] = source_dict["co2"] - cost_dataframe.loc[(tech_name, "FOM"), "value"] = 4.0 - cost_dataframe.loc[(tech_name, "FOM"), "unit"] = "%/year" - cost_dataframe.loc[(tech_name, "FOM"), "source"] = ( - source_dict["Caldera2016"] + ", Table 1." - ) - cost_dataframe.loc[(tech_name, "FOM"), "currency_year"] = 2015 - cost_dataframe.loc[(tech_name, "FOM"), "value"] = 4.0 - cost_dataframe.loc[(tech_name, "FOM"), "unit"] = "%/year" - cost_dataframe.loc[(tech_name, "FOM"), "source"] = ( - source_dict["Caldera2016"] + ", Table 1." - ) + costs.loc[pd.IndexSlice[:, "CO2 intensity"], "unit"] = "tCO2/MWh_th" - cost_dataframe.loc[(tech_name, "lifetime"), "value"] = 30 - cost_dataframe.loc[(tech_name, "lifetime"), "unit"] = "years" - cost_dataframe.loc[(tech_name, "lifetime"), "source"] = ( - source_dict["Caldera2016"] + ", Table 1." - ) + return costs - salinity = snakemake.config["desalination"]["salinity"] - cost_dataframe.loc[(tech_name, "electricity-input"), "value"] = ( - 0.0003 * salinity**2 + 0.0018 * salinity + 2.6043 - ) - cost_dataframe.loc[(tech_name, "electricity-input"), "unit"] = "kWh/m^3-H2O" - cost_dataframe.loc[(tech_name, "electricity-input"), "source"] = ( - source_dict["Caldera2016"] + ", Fig. 4." - ) - tech_name = "clean water tank storage" - cost_dataframe.loc[(tech_name, "investment"), "value"] = 65 - cost_dataframe.loc[(tech_name, "investment"), "unit"] = "EUR/m^3-H2O" - cost_dataframe.loc[(tech_name, "investment"), "source"] = ( - source_dict["Caldera2016"] + ", Table 1." - ) - cost_dataframe.loc[(tech_name, "investment"), "currency_year"] = 2013 +def add_solar_from_other(costs): + """" + add solar from other sources than DEA (since the lifetime assumed in + DEA is very optimistic) + """ - cost_dataframe.loc[(tech_name, "FOM"), "value"] = 2 - cost_dataframe.loc[(tech_name, "FOM"), "unit"] = "%/year" - cost_dataframe.loc[(tech_name, "FOM"), "source"] = ( - source_dict["Caldera2016"] + ", Table 1." - ) - cost_dataframe.loc[(tech_name, "FOM"), "currency_year"] = 2013 + # solar utility from Vartiaian 2019 + data = np.interp(x=years, xp=[2020, 2030, 2040, 2050], + fp=[431, 275, 204, 164]) + # the paper says 'In this report, all results are given in real 2019 + # money.' + data = data / (1 + snakemake.config['rate_inflation'])**(2019 - snakemake.config['eur_year']) + solar_uti = pd.Series(data=data, index=years) - cost_dataframe.loc[(tech_name, "lifetime"), "value"] = 30 - cost_dataframe.loc[(tech_name, "lifetime"), "unit"] = "years" - cost_dataframe.loc[(tech_name, "lifetime"), "source"] = ( - source_dict["Caldera2016"] + ", Table 1." - ) + # solar rooftop from ETIP 2019 + data = np.interp(x=years, xp=[2020, 2030, 2050], fp=[1150, 800, 550]) + # using 2016 money in page 10 + data = data / (1 + snakemake.config['rate_inflation'])**(2016 - snakemake.config['eur_year']) + solar_roof = pd.Series(data=data, index=years) - return cost_dataframe + # solar utility from Vartiaian 2019 + if snakemake.config['solar_utility_from_vartiaien']: + costs.loc[('solar-utility', 'investment'), 'value'] = solar_uti[year] + costs.loc[('solar-utility', 'investment'), 'source'] = source_dict['Vartiaien'] + costs.loc[('solar-utility', 'investment'), 'currency_year'] = 2019 + + costs.loc[('solar-utility', 'lifetime'), 'value'] = 30 + costs.loc[('solar-utility', 'lifetime'), 'source'] = source_dict['Vartiaien'] + costs.loc[('solar-utility', 'lifetime'), 'currency_year'] = 2019 + if snakemake.config['solar_rooftop_from_etip']: + # solar rooftop from ETIP 2019 + costs.loc[('solar-rooftop', 'investment'), 'value'] = solar_roof[year] + costs.loc[('solar-rooftop', 'investment'), 'source'] = source_dict['ETIP'] + costs.loc[('solar-rooftop', 'investment'), 'currency_year'] = 2019 + + costs.loc[('solar-rooftop', 'lifetime'), 'value'] = 30 + costs.loc[('solar-rooftop', 'lifetime'), 'source'] = source_dict['ETIP'] + costs.loc[('solar-rooftop', 'lifetime'), 'currency_year'] = 2019 + + # lifetime&efficiency for solar + costs.loc[('solar', 'lifetime'), 'value'] = costs.loc[( + ['solar-rooftop', 'solar-utility'], 'lifetime'), 'value'].mean() + costs.loc[('solar', 'lifetime'), 'unit'] = 'years' + costs.loc[('solar', 'lifetime'), 'currency_year'] = 2019 + costs.loc[('solar', 'lifetime'), + 'source'] = 'Assuming 50% rooftop, 50% utility' + # costs.loc[('solar', 'efficiency'), 'value'] = 1 + # costs.loc[('solar', 'efficiency'), 'unit'] = 'per unit' + + return costs -def add_co2_intensity(cost_dataframe: pd.DataFrame) -> pd.DataFrame: +# [add-h2-from-other] +def add_h2_from_other(costs): + """ + assume higher efficiency for electrolysis(0.8) and fuel cell(0.58) """ - The function adds CO2 intensity for the carriers. + costs.loc[('electrolysis', 'efficiency'), 'value'] = 0.8 + costs.loc[('fuel cell', 'efficiency'), 'value'] = 0.58 + costs.loc[('electrolysis', 'efficiency'), 'source'] = 'budischak2013' + costs.loc[('electrolysis', 'efficiency'), 'currency_year'] = 2013 + costs.loc[('fuel cell', 'efficiency'), 'source'] = 'budischak2013' + costs.loc[('fuel cell', 'efficiency'), 'currency_year'] = 2013 - Parameters - ---------- - cost_dataframe : pd.DataFrame - cost dataframe + return costs - Returns - ------- - DataFrame - updated cost dataframe +# [unify-diw-inflation] +def unify_diw(costs): + """" + add currency year for the DIW costs from 2010 """ - TJ_to_MWh = 277.78 - cost_dataframe.loc[("gas", "CO2 intensity"), "value"] = ( - 55827 / 1e3 / TJ_to_MWh - ) # Erdgas - cost_dataframe.loc[("coal", "CO2 intensity"), "value"] = ( - 93369 / 1e3 / TJ_to_MWh - ) # Steinkohle - cost_dataframe.loc[("lignite", "CO2 intensity"), "value"] = ( - 113031 / 1e3 / TJ_to_MWh - ) # Rohbraunkohle Rheinland - cost_dataframe.loc[("oil", "CO2 intensity"), "value"] = ( - 74020 / 1e3 / TJ_to_MWh - ) # Heizöl, leicht - cost_dataframe.loc[("methanol", "CO2 intensity"), "value"] = ( - 0.2482 # t_CO2/MWh_th, based on stochiometric composition. - ) - cost_dataframe.loc[("solid biomass", "CO2 intensity"), "value"] = 0.3 - - oil_specific_energy = 44 # GJ/t - CO2_CH2_mass_ratio = 44 / 14 # kg/kg (1 mol per mol) - CO2_C_mass_ratio = 44 / 12 # kg/kg - methane_specific_energy = 50 # GJ/t - CO2_CH4_mass_ratio = 44 / 16 # kg/kg (1 mol per mol) - biomass_specific_energy = 18 # GJ/t LHV - biomass_carbon_content = 0.5 - cost_dataframe.loc[("oil", "CO2 intensity"), "value"] = ( - (1 / oil_specific_energy) * 3.6 * CO2_CH2_mass_ratio - ) # tCO2/MWh - cost_dataframe.loc[("gas", "CO2 intensity"), "value"] = ( - (1 / methane_specific_energy) * 3.6 * CO2_CH4_mass_ratio - ) # tCO2/MWh - cost_dataframe.loc[("solid biomass", "CO2 intensity"), "value"] = ( - biomass_carbon_content * (1 / biomass_specific_energy) * 3.6 * CO2_C_mass_ratio - ) # tCO2/MWh - - cost_dataframe.loc[("oil", "CO2 intensity"), "source"] = ( - "Stoichiometric calculation with 44 GJ/t diesel and -CH2- approximation of diesel" - ) - cost_dataframe.loc[("gas", "CO2 intensity"), "source"] = ( - "Stoichiometric calculation with 50 GJ/t CH4" - ) - cost_dataframe.loc[("solid biomass", "CO2 intensity"), "source"] = ( - "Stoichiometric calculation with 18 GJ/t_DM LHV and 50% C-content for solid biomass" - ) - cost_dataframe.loc[("coal", "CO2 intensity"), "source"] = source_dict["co2"] - cost_dataframe.loc[("lignite", "CO2 intensity"), "source"] = source_dict["co2"] + costs.loc[('PHS', 'investment'), 'currency_year'] = 2010 + costs.loc[('ror', 'investment'), 'currency_year'] = 2010 + costs.loc[('hydro', 'investment'), 'currency_year'] = 2010 - cost_dataframe.loc[pd.IndexSlice[:, "CO2 intensity"], "unit"] = "tCO2/MWh_th" + return costs - return cost_dataframe +def biomethanation_dea(df): + """This function does: + - import DEA data for biomethanation (4H2 + CO2 -> CH4 + 2H2O) + - recalculates cost and inputs per MW of H2 added (bus 0 is H2) + """ + CO2_density = 1.98 / 1000 # kg/Nm3 + CH4_vol = 0.58 # biogas vol%, from DEA source for biomethanation + CO2_vol = 0.42 # biogas vol%, from DEA source for biomethanation + CH4_lhv = 35.8 / 3600 # MWh/Nm3 + CO2_biogas = CO2_vol / CH4_vol / CH4_lhv * CO2_density # t_CO2/MWh_biogas -def add_solar_from_other(years: list, cost_dataframe: pd.DataFrame) -> pd.DataFrame: - """ - The function adds solar from other sources than DEA (since the lifetime assumed in - DEA is very optimistic). - - Parameters - ---------- - years : list - years for which a cost assumption is provided - cost_dataframe : pd.DataFrame - costs - - Returns - ------- - DataFrame - updated cost dataframe - """ + # Find index labels directly + idx = df.index[df.index.str.contains("Total Input")] + idx2 = df.index[df.index.str.contains("Hydrogen Consumption")] + idx3 = df.index[df.index.str.contains("CO2 Consumption")] + idx4 = df.index[df.index.str.contains("Methane Output")] + idx5 = df.index[df.index.str.contains("EUR")] - # solar utility from Vartiaian 2019 - interpolated_data = np.interp( - x=years, xp=[2020, 2030, 2040, 2050], fp=[431, 275, 204, 164] + # H2/CH4 ratio (MW/MW) + CH4_H2_ratio = df.loc[idx4].astype(float) / df.loc[idx2[0]].astype(float) + + # Adjust costs from €/MWh CH4 to €/MW_H2 + df.loc[idx5] = df.loc[idx5].astype(float).mul(CH4_H2_ratio.values.flatten(), axis=1) + df.index = [ + i.replace("MW", "MW_H2").replace("MWh", "MWh_H2") if i in idx5 else i + for i in df.index + ] + + # Normalize all inputs & outputs to MW of hydrogen + df.loc[idx] = df.loc[idx].astype(float) / df.loc[idx2[0]].astype(float) + + # Convert CO2 input from Nm3 to tons + df.loc[idx3[0]] = df.loc[idx3[0]].astype(float) * CO2_density # tCO2 / h / MW_H2 + + # Biogas input in MWh/MWh_H2 + df.loc['Biogas Consumption, [MWh_th/MWh_H2]'] = ( + df.loc[idx3[0]].astype(float) / CO2_biogas ) - # the paper says 'In this report, all results are given in real 2019 - # money.' - interpolated_data = interpolated_data / ( - 1 + snakemake.config["rate_inflation"] - ) ** (2019 - snakemake.config["eur_year"]) - solar_uti = pd.Series(data=interpolated_data, index=years) - # solar rooftop from ETIP 2019 - interpolated_data = np.interp(x=years, xp=[2020, 2030, 2050], fp=[1150, 800, 550]) - # using 2016 money in page 10 - interpolated_data = interpolated_data / ( - 1 + snakemake.config["rate_inflation"] - ) ** (2016 - snakemake.config["eur_year"]) - solar_roof = pd.Series(data=interpolated_data, index=years) + # Add biogas back to methane output (correct total output) + df.loc[idx4] = df.loc[idx4].astype(float) + df.loc['Biogas Consumption, [MWh_th/MWh_H2]'] - # solar utility from Vartiaian 2019 - if snakemake.config["solar_utility_from_vartiaien"]: - cost_dataframe.loc[("solar-utility", "investment"), "value"] = solar_uti[year] - cost_dataframe.loc[("solar-utility", "investment"), "source"] = source_dict[ - "Vartiaien" - ] - cost_dataframe.loc[("solar-utility", "investment"), "currency_year"] = 2019 + # change unit to H2 basis + df.index = df.index.str.replace(" Total Input", "_H2") - cost_dataframe.loc[("solar-utility", "lifetime"), "value"] = 30 - cost_dataframe.loc[("solar-utility", "lifetime"), "source"] = source_dict[ - "Vartiaien" - ] - cost_dataframe.loc[("solar-utility", "lifetime"), "currency_year"] = 2019 + # Rename indices and update units + replacements = { + "Hydrogen Consumption": "Hydrogen Input", + "CO2 Consumption": "CO2 Input", + "Electricity Consumption": "El-Input", + "Methane Output": "Methane Output", + "Heat Output": "H-Output", + } - if snakemake.config["solar_rooftop_from_etip"]: - # solar rooftop from ETIP 2019 - cost_dataframe.loc[("solar-rooftop", "investment"), "value"] = solar_roof[year] - cost_dataframe.loc[("solar-rooftop", "investment"), "source"] = source_dict[ - "ETIP" - ] - cost_dataframe.loc[("solar-rooftop", "investment"), "currency_year"] = 2019 + old_units = { + "Hydrogen Consumption": "MWh/", + "CO2 Consumption": "Nm3", + "Electricity Consumption": "MWh/", + "Methane Output": "MWh/", + "Heat Output": "MWh/", + } - cost_dataframe.loc[("solar-rooftop", "lifetime"), "value"] = 30 - cost_dataframe.loc[("solar-rooftop", "lifetime"), "source"] = source_dict[ - "ETIP" - ] - cost_dataframe.loc[("solar-rooftop", "lifetime"), "currency_year"] = 2019 - - # lifetime & efficiency for solar - cost_dataframe.loc[("solar", "lifetime"), "value"] = cost_dataframe.loc[ - (["solar-rooftop", "solar-utility"], "lifetime"), "value" - ].mean() - cost_dataframe.loc[("solar", "lifetime"), "unit"] = "years" - cost_dataframe.loc[("solar", "lifetime"), "currency_year"] = 2019 - cost_dataframe.loc[("solar", "lifetime"), "source"] = ( - "Assuming 50% rooftop, 50% utility" - ) + new_units = { + "Hydrogen Consumption": "MWh_H2/", + "CO2 Consumption": "t_CO2", + "Electricity Consumption": "MWh_e/", + "Methane Output": "MWh_CH4/", + "Heat Output": "MWh_th/", + } - return cost_dataframe + for old_label, new_label in replacements.items(): + matches = df.index[df.index.str.contains(old_label)] + if not matches.empty: + old_index = matches[0] + updated_index = old_index.replace(old_label, new_label) + updated_index = updated_index.replace(old_units[old_label], new_units[old_label]) + df.rename(index={old_index: updated_index}, inplace=True) + return df -# [add-h2-from-other] -def add_h2_from_other(cost_dataframe: pd.DataFrame) -> pd.DataFrame: - """ - The function assumes higher efficiency for electrolysis (0.8) and fuel cell (0.58). +def biogas_plus_hydrogen_dea(df): + # convert efficiencies from MW/MWTotal input to bigas input basis + # adjust names of efficiencies paramaters for further processing + + CO2_density = 1.98 / 1000 # kg/Nm3 + CH4_vol = 0.65 # biogas vol%, from DEA source for SNG from Methanation of Biogas + CO2_vol = 0.35 # biogas vol%, from DEA source for SNG from Methanation of Biogas + CH4_lhv = 35.8 / 3600 # MWh/Nm3 + CO2_biogas = CO2_vol / CH4_vol / CH4_lhv * CO2_density # t_CO2/MWh_biogas + + # use actual index names instead of boolean masks + idx = df.index[df.index.str.contains("Total Input")] + idx2 = df.index[df.index.str.contains("Hydrogen Consumption")] + idx3 = df.index[df.index.str.contains("Biogas Consumption")] + idx4 = df.index[df.index.str.contains("SNG Output")] + idx5 = df.index[df.index.str.contains("EUR")] + + # calculate H2/CH4 ratio (MW/MW) using the first match (assuming one match) + SNG_H2_ratio = df.loc[idx4].astype(float) / df.loc[idx2[0]].astype(float) + + # adjust cost basis from €/MWh CH4 to €/MW H2 + df.loc[idx5] = df.loc[idx5].astype(float).mul(SNG_H2_ratio.values.flatten(), axis=1) + df.index = [ + i.replace(" SNG", "_H2") if i in idx5 else i + for i in df.index + ] - Parameters - ---------- - cost_dataframe : pd.DataFrame - costs + # normalize all inputs & outputs to MW of hydrogen + df.loc[idx] = df.loc[idx].astype(float) / df.loc[idx2[0]].astype(float) - Returns - ------- - DataFrame - updated cost dataframe - """ + # Calculate CO2 input in t_CO2/MWh_H2 + df.loc['CO2 Input, [t_CO2/MWh_H2]'] = df.loc[idx3[0]].astype(float) * CO2_biogas - cost_dataframe.loc[("electrolysis", "efficiency"), "value"] = 0.8 - cost_dataframe.loc[("fuel cell", "efficiency"), "value"] = 0.58 - cost_dataframe.loc[("electrolysis", "efficiency"), "source"] = "budischak2013" - cost_dataframe.loc[("electrolysis", "efficiency"), "currency_year"] = 2013 - cost_dataframe.loc[("fuel cell", "efficiency"), "source"] = "budischak2013" - cost_dataframe.loc[("fuel cell", "efficiency"), "currency_year"] = 2013 + # change unit to H2 basis + df.index = df.index.str.replace(" Total Input", "_H2") - return cost_dataframe + # Renaming for standardization + replacements = { + "Hydrogen Consumption": "Hydrogen Consumption", + "Biogas Consumption": "Biogas Consumption", + "Electricity Consumption": "El-Input", + "SNG Output": "Methane Output", + "District Heating Output": "H-Output", + } + old_units = { + "Hydrogen Consumption": "MWh/", + "Biogas Consumption": "MWh/", + "Electricity Consumption": "MWh/", + "SNG Output": "MWh/", + "District Heating Output": "MWh/", + } -# [unify-diw-inflation] -def unify_diw(cost_dataframe: pd.DataFrame) -> pd.DataFrame: - """ - The function adds currency year for the DIW costs from 2010. + new_units = { + "Hydrogen Consumption": "MWh_H2/", + "Biogas Consumption": "MWh_th/", + "Electricity Consumption": "MWh_e/", + "SNG Output": "MWh_CH4/", + "District Heating Output": "MWh_th/", + } - Parameters - ---------- - cost_dataframe : pd.DataFrame - costs + for old_label, new_label in replacements.items(): + matches = df.index[df.index.str.contains(old_label)] + if not matches.empty: + old_index = matches[0] + updated_index = old_index.replace(old_label, new_label) + updated_index = updated_index.replace(old_units[old_label], new_units[old_label]) + df.rename(index={old_index: updated_index}, inplace=True) - Returns - ------- - DataFrame - updated cost dataframe - """ + return df - cost_dataframe.loc[("PHS", "investment"), "currency_year"] = 2010 - cost_dataframe.loc[("ror", "investment"), "currency_year"] = 2010 - cost_dataframe.loc[("hydro", "investment"), "currency_year"] = 2010 - return cost_dataframe +def biochar_pyrolysis_dea (df): + """This function does: + 1) defined the properties of solid biomass in pypsa-eur: moisture, LHV dry and LHV moist + 2) defines the properties of the feedstock for pyrolysis (dried biomass) + 3) calculates the energy required for drying the biomass to feedstock + 4) imports the DEA data for biochar pyrolysis + 5) re-calculate the parameters from DEA per MWh of biomass in pypsa-eur. + 6) if not specified all values refer to DEA renewable fuels""" + # definition of solid biomass in pypsa + solid_biomass_df = biomass_properties() + biomass_specific_energy = solid_biomass_df.at['biomass_specific_energy','value'] / 3.6 # MWh/t_biom LHV + biomass_carbon_content = solid_biomass_df.at['biomass_carbon_content','value'] # tC/tbiomass_DM + biomass_moisture_content = solid_biomass_df.at['biomass_moisture_content','value'] # th2o/tbiom -def biochar_pyrolysis_harmonise_dea(df: pd.DataFrame) -> pd.DataFrame: - """ - The function harmonises biochar and pyrolysis costs. + # definition of feedstock for pyrolysis + pyrolysis_feedstock_moisture_content = solid_biomass_df.at['pyrolysis_feedstock_moisture_content','value'] # t H2O/ t feedstock + pyrolysis_feedstock_specific_energy = solid_biomass_df.at['pyrolysis_feedstock_specific_energy','value'] / 3.6 # LHV feedstock (MWh /t feedstock) - Parameters - ---------- - df : pd.DataFrame - costs + # mass ratio between feedstock and solid biomass + pyrolysis_feedstock_biomass_mass_ratio = (pyrolysis_feedstock_moisture_content / (1 - pyrolysis_feedstock_moisture_content) + (1 - biomass_moisture_content)) # (t_feedstock / t_biomass) after drying + pyrolysis_feedstock_biomass_energy_ratio = pyrolysis_feedstock_biomass_mass_ratio * pyrolysis_feedstock_specific_energy / biomass_specific_energy # MWh feedstock / MWh biomass input to the process - Returns - ------- - DataFrame - updated cost dataframe - """ + # Updated pre-treatment heat demand. DEA includes drying (13% - 10%) + heat_drying = 0.83 # MWh/tH2O removed + Delta_heat_drying = heat_drying * (biomass_moisture_content / (1 - biomass_moisture_content) - 0.13 / (1 - 0.13)) * ( + 1 - biomass_moisture_content) / biomass_specific_energy # (MWh heat/MWh LHV biomass) + + # DEA pyrolysis carbon balance + C_biochar_feedstock_ratio = 0.5 # (%) of carbon from original biomass contained in biochar - from DEA (for straw) + + # Assumption on biochar stability in soil beyond 100 years + biochar_100years = 0.7 # tC >100 years /tC application https://www.nature.com/articles/s41558-023-01604-9 # data for 2020 not available if 2020 in df.columns: @@ -1308,1507 +1154,1166 @@ def biochar_pyrolysis_harmonise_dea(df: pd.DataFrame) -> pd.DataFrame: # normalize biochar and total heat output to feedstock input idx = df.index.str.contains("Total Input") idx2 = df.index.str.contains("Feedstock Consumption") - df.loc[idx] = df.loc[idx].astype(float) / df.loc[idx2].values.astype(float) - df.index = df.index.str.replace("Total Input", "feedstock") + df.loc[idx] = df.loc[idx].astype(float) / df.loc[idx2].values.astype(float) * pyrolysis_feedstock_biomass_energy_ratio + df.index = df.index.str.replace("Total Input", "biomass") # all pyrolysis product except char are combusted for heat df_sum = pd.concat( - ( - df.iloc[df.index.str.contains("Pyrolysis oil Output")], - df.iloc[df.index.str.contains("Pyrolysis gas Output")], - df.iloc[df.index.str.contains("Heat Output")], - ), - axis=0, - ).sum(axis=0, skipna=False) - df.iloc[df.index.str.contains("Heat Output")] = df_sum * 100 - - to_drop = df[ - df.index.str.contains("Pyrolysis oil Output") - | df.index.str.contains("Pyrolysis gas Output") - | df.index.str.contains("Electricity Consumption") - | df.index.str.contains("Feedstock Consumption") - ].index + (df.iloc[df.index.str.contains("Pyrolysis oil Output")], + df.iloc[df.index.str.contains("Pyrolysis gas Output")], + df.iloc[df.index.str.contains("Heat Output")]), axis=0).sum(axis=0, skipna=False) + df.iloc[df.index.str.contains("Heat Output")] = df_sum # adjust for difference in drying heat demand + + # normalizing costs to biomass input + df_tot_out_DEA = pd.concat((df.iloc[df.index.str.contains("Biochar Output")], + df.iloc[df.index.str.contains("Heat Output")]), axis=0).sum(axis=0, skipna=False) + + + # remove additional heat for drying + df.iloc[df.index.str.contains( + "Heat Output")] = df_sum - Delta_heat_drying # adjust for difference in drying heat demand + + # Calcualte biochar yield (t biochar / MWh biomass) + df_div2 = df.iloc[df.index.str.contains("Specific energy content")].astype(float) / 3.6 + df.iloc[df.index.str.contains("Biochar Output")] = df.iloc[df.index.str.contains( + "Biochar Output")].astype(float) / df_div2.values.astype(float) + + df.rename( index={df.loc[df.index.str.contains("Biochar Output")].index.values[ + 0]: 'yield biochar [t_biochar/MWh_biomass]'}, inplace=True) + + # drop unnecessary indexes + to_drop = df[df.index.str.contains("Pyrolysis oil Output") | + df.index.str.contains("Pyrolysis gas Output") | + df.index.str.contains("Feedstock Consumption")].index df.drop(to_drop, inplace=True) - # normalizing costs to biochar output - df_divid = pd.concat( - ( - df.iloc[df.index.str.contains("Biochar Output")], - df.iloc[df.index.str.contains("Heat Output")], - ), - axis=0, - ).sum(axis=0, skipna=False) - biochar_totoutput = df.iloc[df.index.str.contains("Biochar Output")] / df_divid - idx3 = df.index.str.contains("EUR") - df.loc[idx3] = df.loc[idx3].values.astype(float) / biochar_totoutput.values.astype( - float - ) - df.index = df.index.str.replace(" output from pyrolysis process", "", regex=True) + # Calculated biochar Carbon content from: PyPSA-Eur solid biomass and DEA pyrolysis inputs + # Cw_biochar (tC_biochar/tbiochar) = (tC_feedstock/t_feedstock) * (tfeedstcok/GJfeedstock) * (GJ feedstock / t biochar) * (tCbiochar / tC feedstock) + biochar_carbon_content = biomass_carbon_content * (1 - pyrolysis_feedstock_moisture_content) / pyrolysis_feedstock_specific_energy / df.loc['yield biochar [t_biochar/MWh_biomass]',:] * C_biochar_feedstock_ratio # tC/tbiochar - # rename units - df.rename( - index={ - df.loc[df.index.str.contains("Specific investment")].index[0]: df.loc[ - df.index.str.contains("Specific investment") - ].index.str.replace("MW", "MW_biochar")[0], - df.loc[df.index.str.contains("Fixed O&M")].index[0]: df.loc[ - df.index.str.contains("Fixed O&M") - ].index.str.replace("MW", "MW_biochar")[0], - df.loc[df.index.str.contains("Variable O&M")].index[0]: df.loc[ - df.index.str.contains("Variable O&M") - ].index.str.replace("MWh", "MWh_biochar")[0], - }, - inplace=True, - ) + # Calculated CO2 sequestration in biochar per unit of biomass + # CO2seq_biomass = (tC/tbiochar) * (tbiochar/GJbiomass) * (tbiochar>100y /tbiochar) + df.loc['Biomass Input [MWh_biomass/t_CO2]',:] = 1 / (biochar_carbon_content * df.loc['yield biochar [t_biochar/MWh_biomass]', :] * biochar_100years * 44 / 12) # MWh_biomass/tCO2seq - df_div = ( - df.iloc[df.index.str.contains("Specific energy content")].astype(float) / 3.6 - ) - df.iloc[df.index.str.contains("Specific energy content")] = df.iloc[ - df.index.str.contains("Biochar Output") - ].astype(float) / df_div.values.astype(float) + # express all data per tonne of CO2 sequestred + df.loc[df.index.str.contains("Heat Output")] = df.loc[df.index.str.contains("Heat Output")].astype(float) * df.loc['Biomass Input [MWh_biomass/t_CO2]'].astype(float) + df.loc[df.index.str.contains("Electricity Consumption")] = df.loc[df.index.str.contains("Electricity Consumption")].astype(float) * df.loc['Biomass Input [MWh_biomass/t_CO2]'].astype(float) df.rename( index={ - df.loc[df.index.str.contains("Specific energy content")].index.values[ - 0 - ]: "yield biochar [ton biochar/MWh_feedstock]", - df.loc[df.index.str.contains("Biochar Output")].index.values[ - 0 - ]: "efficiency biochar [MWh_biochar/MWh_feedstock]", - df.loc[df.index.str.contains("Heat Output")].index.values[ - 0 - ]: "efficiency heat [% MWh_feedstock]", - }, - inplace=True, - ) + df.loc[df.index.str.contains("Heat Output")].index.values[ + 0]: 'H-Output [MWh_th/t_CO2]', + df.loc[df.index.str.contains("Electricity Consumption")].index.values[ + 0]: 'El-Input [MWh_e/t_CO2]'}, inplace=True) + + # adjust cost basis from €/MWh tot_output to €/tCO2 sequestred + idx3 = df.index.str.contains("EUR") + df.loc[idx3] = df.loc[idx3].values.astype(float) * df_tot_out_DEA.values.astype(float) # converto to €/MWhbiom + df.loc[idx3] = df.loc[idx3] * df.loc['Biomass Input [MWh_biomass/t_CO2]'].astype(float) # converto to € /t_CO2/h + df.index = df.index.str.replace(" output from pyrolysis process", "", regex=True) + + # rename units + df.rename(index={df.loc[df.index.str.contains('Specific investment')].index[0]: + df.loc[df.index.str.contains("Specific investment")].index.str.replace( + "MW", "t_CO2/h")[0], + df.loc[df.index.str.contains('Fixed O&M')].index[0]: + df.loc[df.index.str.contains("Fixed O&M")].index.str.replace( + "MW", "t_CO2/h")[0], + df.loc[df.index.str.contains("Variable O&M")].index[0]: + df.loc[df.index.str.contains("Variable O&M")].index.str.replace( + "MWh", "t_CO2")[0]}, inplace=True) + + # print intermediate results (for publications) + print_flag = 0 + if print_flag == 1: + print(df.loc[df.index.str.contains('Specific investment')]) + print(df.loc[df.index.str.contains("Variable O&M")]) + print(df.loc[df.index.str.contains("Fixed O&M")]) + print('Cw biochar = ' + str(biochar_carbon_content)) + print(df.loc['Biomass Input [MWh_biomass/t_CO2]',:]) + print(str(df.loc['yield biochar [t_biochar/MWh_biomass]', :])) + print(df.loc[df.index.str.contains("H-Output")]) + print(df.loc[df.index.str.contains("El-Input")]) return df -def get_data_from_DEA( - years: list, - sheet_names_dict: dict, - input_data_dictionary: dict, - offwind_no_grid_costs: bool = True, - expectation: str = None, -) -> dict: +def get_data_from_DEA(data_in, expectation=None): """ - The function stores technology data from DEA in a dictionary. - - Parameters - ---------- - years : list - years for which a cost assumption is provided - sheet_names_dict : dict - dictionary having the technology name as keys and Excel sheet names as values - input_data_dictionary : dict - dictionary where the keys are the path to the DEA inputs and the values are the sheet names - offwind_no_grid_costs : bool - flag to remove grid connection costs from DEA for offwind. Such costs are calculated separately in pypsa-eur - expectation : str - tech data uncertainty. The possible options are [None, "optimist", "pessimist"] - - Returns - ------- - Dictionary - technology data from DEA + saves technology data from DEA in dictionary d_by_tech """ + d_by_tech = {} - data_by_tech_dict = {} + for tech, dea_tech in sheet_names.items(): + print(f'{tech} in PyPSA corresponds to {dea_tech} in DEA database.') + df = get_data_DEA(tech, data_in, expectation).fillna(0) + d_by_tech[tech] = df - for tech_name, dea_tech in sheet_names_dict.items(): - logger.info(f"{tech_name} in PyPSA corresponds to {dea_tech} in DEA database.") - df = get_data_DEA( - years, - tech_name, - sheet_names_dict, - input_data_dictionary, - offwind_no_grid_costs, - expectation, - ).fillna(0) - data_by_tech_dict[tech_name] = df + return d_by_tech - return data_by_tech_dict +def adjust_for_inflation(inflation_rate, costs, techs, ref_year, col): + """ + adjust the investment costs for the specified techs for inflation. + + techs: str or list + One or more techs in costs index for which the inflation adjustment is done. + ref_year: int + Reference year for which the costs are provided and based on which the inflation adjustment is done. + costs: pd.Dataframe + Dataframe containing the costs data with multiindex on technology and one index key 'investment'. + """ + + def get_factor(inflation_rate, ref_year, eur_year): + if (pd.isna(ref_year)) or (ref_year<1900): return np.nan + if ref_year == eur_year: return 1 + mean = inflation_rate.mean() + if ref_year< eur_year: + new_index = np.arange(ref_year+1, eur_year+1) + df = 1 + inflation_rate.reindex(new_index).fillna(mean) + return df.cumprod().loc[eur_year] + else: + new_index = np.arange(eur_year+1, ref_year+1) + df = 1 + inflation_rate.reindex(new_index).fillna(mean) + return 1/df.cumprod().loc[ref_year] + + inflation = costs.currency_year.apply(lambda x: get_factor(inflation_rate, x, snakemake.config['eur_year'])) + + paras = ["investment", "VOM", "fuel"] + filter_i = costs.index.get_level_values(0).isin(techs) & costs.index.get_level_values(1).isin(paras) + costs.loc[filter_i, col] = costs.loc[filter_i, col].mul(inflation.loc[filter_i], axis=0) -def clean_up_units( - technology_dataframe: pd.DataFrame, value_column: str = "", source: str = "" -) -> pd.DataFrame: + return costs + + +def clean_up_units(tech_data, value_column="", source=""): """ - The function converts units of an input dataframe. Namely, it converts: - - power: Mega Watt (MW) - - energy: Mega-Watt-hour (MWh) - - currency: Euro (EUR) - - Parameters - ---------- - technology_dataframe : pd.DataFrame - technology data cost assumptions - value_column : str - column to modify - source : str - either empty string or 'dea' - - Returns - ------- - Dataframe - technology data with converted units + converts units of a pd.Dataframe tech_data to match: + power: Mega Watt (MW) + energy: Mega-Watt-hour (MWh) + currency: Euro (EUR) + + clarifies if MW_th or MW_e """ + from currency_converter import CurrencyConverter + from datetime import date + from currency_converter import ECB_URL # Currency conversion REPLACEMENTS = [ - ("€", "EUR"), - ("$", "USD"), - ("₤", "GBP"), + ('€', 'EUR'), + ('$', 'USD'), + ('₤', 'GBP'), ] - # Download the full history, this will be up-to-date. Current value is: + # Download the full history, this will be up to date. Current value is: # https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist.zip - c = CurrencyConverter(ECB_URL, fallback_on_missing_rate=True) + c = CurrencyConverter(ECB_URL) + c = CurrencyConverter(fallback_on_missing_rate=True) for old, new in REPLACEMENTS: - technology_dataframe.unit = technology_dataframe.unit.str.replace( - old, new, regex=False - ) - technology_dataframe.loc[ - technology_dataframe.unit.str.contains(new), value_column - ] *= c.convert(1, new, "EUR", date=date(2020, 1, 1)) - technology_dataframe.unit = technology_dataframe.unit.str.replace(new, "EUR") + tech_data.unit = tech_data.unit.str.replace(old, new, regex=False) + tech_data.loc[tech_data.unit.str.contains(new), value_column] *= c.convert(1, new, "EUR", date=date(2020, 1, 1)) + tech_data.unit = tech_data.unit.str.replace(new, "EUR") - technology_dataframe.unit = technology_dataframe.unit.str.replace(" per ", "/") - technology_dataframe.unit = technology_dataframe.unit.str.replace(" / ", "/") - technology_dataframe.unit = technology_dataframe.unit.str.replace(" /", "/") - technology_dataframe.unit = technology_dataframe.unit.str.replace("J/s", "W") + tech_data.unit = tech_data.unit.str.replace(" per ", "/") + tech_data.unit = tech_data.unit.str.replace(" / ", "/") + tech_data.unit = tech_data.unit.str.replace(" /", "/") + tech_data.unit = tech_data.unit.str.replace("J/s", "W") # units - technology_dataframe.loc[ - technology_dataframe.unit.str.contains("MEUR"), value_column - ] *= 1e6 - technology_dataframe.unit = technology_dataframe.unit.str.replace("MEUR", "EUR") - - technology_dataframe.loc[ - technology_dataframe.unit.str.contains("mio EUR"), value_column - ] *= 1e6 - technology_dataframe.unit = technology_dataframe.unit.str.replace("mio EUR", "EUR") - - technology_dataframe.loc[ - technology_dataframe.unit.str.contains("mill. EUR"), value_column - ] *= 1e6 - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "mill. EUR", "EUR" - ) + tech_data.loc[tech_data.unit.str.contains("MEUR"), value_column] *= 1e6 + tech_data.unit = tech_data.unit.str.replace("MEUR", "EUR") + + tech_data.loc[tech_data.unit.str.contains("mio EUR"), value_column] *= 1e6 + tech_data.unit = tech_data.unit.str.replace("mio EUR", "EUR") + + tech_data.loc[tech_data.unit.str.contains("mill. EUR"), value_column] *= 1e6 + tech_data.unit = tech_data.unit.str.replace("mill. EUR", "EUR") + + tech_data.loc[tech_data.unit.str.contains("1000EUR"), value_column] *= 1e3 + tech_data.unit = tech_data.unit.str.replace("1000EUR", "EUR") + + tech_data.unit = tech_data.unit.str.replace("k EUR", "kEUR") + tech_data.loc[tech_data.unit.str.contains("kEUR"), value_column] *= 1e3 + tech_data.unit = tech_data.unit.str.replace("kEUR", "EUR") + + tech_data.loc[tech_data.unit.str.contains("/kW"), value_column] *= 1e3 + + tech_data.loc[tech_data.unit.str.contains("kW") & ~tech_data.unit.str.contains("/kW"), value_column] /= 1e3 + tech_data.unit = tech_data.unit.str.replace("kW", "MW") + + tech_data.loc[tech_data.unit.str.contains("/GWh"), value_column] /= 1e3 + tech_data.unit = tech_data.unit.str.replace("/GWh", "/MWh") - technology_dataframe.loc[ - technology_dataframe.unit.str.contains("1000EUR"), value_column - ] *= 1e3 - technology_dataframe.unit = technology_dataframe.unit.str.replace("1000EUR", "EUR") - - technology_dataframe.unit = technology_dataframe.unit.str.replace("k EUR", "kEUR") - technology_dataframe.loc[ - technology_dataframe.unit.str.contains("kEUR"), value_column - ] *= 1e3 - technology_dataframe.unit = technology_dataframe.unit.str.replace("kEUR", "EUR") - - technology_dataframe.loc[ - technology_dataframe.unit.str.contains("/kW"), value_column - ] *= 1e3 - - technology_dataframe.loc[ - technology_dataframe.unit.str.contains("kW") - & ~technology_dataframe.unit.str.contains("/kW"), - value_column, - ] /= 1e3 - technology_dataframe.unit = technology_dataframe.unit.str.replace("kW", "MW") - - technology_dataframe.loc[ - technology_dataframe.unit.str.contains("/GWh"), value_column - ] /= 1e3 - technology_dataframe.unit = technology_dataframe.unit.str.replace("/GWh", "/MWh") - - technology_dataframe.loc[ - technology_dataframe.unit.str.contains("/GJ"), value_column - ] *= 3.6 - technology_dataframe.unit = technology_dataframe.unit.str.replace("/GJ", "/MWh") + tech_data.loc[tech_data.unit.str.contains("/GJ"), value_column] *= 3.6 + tech_data.unit = tech_data.unit.str.replace("/GJ", "/MWh") # Harmonise individual units so that they can be handled later - technology_dataframe.unit = technology_dataframe.unit.str.replace( - " a year", "/year" - ) - technology_dataframe.unit = technology_dataframe.unit.str.replace("2015EUR", "EUR") - technology_dataframe.unit = technology_dataframe.unit.str.replace("2015-EUR", "EUR") - technology_dataframe.unit = technology_dataframe.unit.str.replace("2020-EUR", "EUR") - technology_dataframe.unit = technology_dataframe.unit.str.replace("EUR2015", "EUR") - technology_dataframe.unit = technology_dataframe.unit.str.replace("EUR-2015", "EUR") - technology_dataframe.unit = technology_dataframe.unit.str.replace("MWe", "MW_e") - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "EUR/MW of total input_e", "EUR/MW_e" - ) - technology_dataframe.unit = technology_dataframe.unit.str.replace( - r"MWh/MWh\)", "MWh_H2/MWh_e", regex=True - ) - technology_dataframe.unit = technology_dataframe.unit.str.replace("MWth", "MW_th") - technology_dataframe.unit = technology_dataframe.unit.str.replace("MWheat", "MW_th") - technology_dataframe.unit = technology_dataframe.unit.str.replace("MWhth", "MWh_th") - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "MWhheat", "MWh_th" - ) - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "MWH Liquids", "MWh_FT" - ) - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "MW Liquids", "MW_FT" - ) - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "MW Methanol", "MW_MeOH" - ) - technology_dataframe.unit = technology_dataframe.unit.str.replace("MW output", "MW") - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "MW/year FT Liquids/year", "MW_FT/year" - ) - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "MW/year Methanol", "MW_MeOH/year" - ) - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "MWh FT Liquids/year", "MWh_FT" - ) - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "MWh methanol", "MWh_MeOH" - ) - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "MW/year SNG", "MW_CH4/year" - ) - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "MWh SNG", "MWh_CH4" - ) - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "MW SNG", "MW_CH4" - ) - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "EUR/MWh of total input", "EUR/MWh_e" - ) - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "EUR/MWeh", "EUR/MWh_e" - ) - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "% -points of heat loss", "MWh_th/MWh_el" - ) - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "FT Liquids Output, MWh/MWh Total Input", "MWh_FT/MWh_H2" - ) + tech_data.unit = tech_data.unit.str.replace(" a year", "/year") + tech_data.unit = tech_data.unit.str.replace("2015EUR", "EUR") + tech_data.unit = tech_data.unit.str.replace("2015-EUR", "EUR") + tech_data.unit = tech_data.unit.str.replace("2020-EUR", "EUR") + tech_data.unit = tech_data.unit.str.replace("EUR2015", "EUR") + tech_data.unit = tech_data.unit.str.replace("EUR-2015", "EUR") + tech_data.unit = tech_data.unit.str.replace("MWe", "MW_e") + tech_data.unit = tech_data.unit.str.replace("EUR/MW of total input_e", "EUR/MW_e") + tech_data.unit = tech_data.unit.str.replace("MWh/MWh\)", "MWh_H2/MWh_e", regex=True) + tech_data.unit = tech_data.unit.str.replace("MWth", "MW_th") + tech_data.unit = tech_data.unit.str.replace("MWheat", "MW_th") + tech_data.unit = tech_data.unit.str.replace("MWhth", "MWh_th") + tech_data.unit = tech_data.unit.str.replace("MWhheat", "MWh_th") + tech_data.unit = tech_data.unit.str.replace("MWH Liquids", "MWh_FT") + tech_data.unit = tech_data.unit.str.replace("MW Liquids", "MW_FT") + tech_data.unit = tech_data.unit.str.replace("MW Methanol", "MW_MeOH") + tech_data.unit = tech_data.unit.str.replace("MW output", "MW") + tech_data.unit = tech_data.unit.str.replace("MW/year FT Liquids/year", "MW_FT/year") + tech_data.unit = tech_data.unit.str.replace("MW/year Methanol", "MW_MeOH/year") + tech_data.unit = tech_data.unit.str.replace("MWh FT Liquids/year", "MWh_FT") + tech_data.unit = tech_data.unit.str.replace("MWh methanol", "MWh_MeOH") + tech_data.unit = tech_data.unit.str.replace("MW/year SNG", "MW_CH4/year") + tech_data.unit = tech_data.unit.str.replace("MWh SNG", "MWh_CH4") + tech_data.unit = tech_data.unit.str.replace("MW SNG", "MW_CH4") + tech_data.unit = tech_data.unit.str.replace("EUR/MWh of total input", "EUR/MWh_e") + tech_data.unit = tech_data.unit.str.replace("EUR/MWeh", "EUR/MWh_e") + tech_data.unit = tech_data.unit.str.replace("% -points of heat loss", "MWh_th/MWh_el") + tech_data.unit = tech_data.unit.str.replace("FT Liquids Output, MWh/MWh Total Inpu", "MWh_FT/MWh_H2") # biomass-to-methanol-specific - if isinstance(technology_dataframe.index, pd.MultiIndex): - technology_dataframe.loc[ - technology_dataframe.index.get_level_values(1) == "Methanol Output,", "unit" - ] = "MWh_MeOH/MWh_th" - technology_dataframe.loc[ - technology_dataframe.index.get_level_values(1) == "District heat Output,", - "unit", - ] = "MWh_th/MWh_th" - technology_dataframe.loc[ - technology_dataframe.index.get_level_values(1) == "Electricity Output,", - "unit", - ] = "MWh_e/MWh_th" - + if isinstance(tech_data.index, pd.MultiIndex): + tech_data.loc[tech_data.index.get_level_values(1)=="Methanol Output,", "unit"] = "MWh_MeOH/MWh_th" + tech_data.loc[tech_data.index.get_level_values(1)=='District heat Output,', "unit"] = "MWh_th/MWh_th" + tech_data.loc[tech_data.index.get_level_values(1)=='Electricity Output,', "unit"] = "MWh_e/MWh_th" + # Ammonia-specific - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "MW Ammonia output", "MW_NH3" - ) # specific investment - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "MW Ammonia", "MW_NH3" - ) # fom - technology_dataframe.unit = technology_dataframe.unit.str.replace( - "MWh Ammonia", "MWh_NH3" - ) # vom - technology_dataframe.loc[technology_dataframe.unit == "EUR/MW/y", "unit"] = ( - "EUR/MW/year" - ) + tech_data.unit = tech_data.unit.str.replace("MW Ammonia output", "MW_NH3") #specific investment + tech_data.unit = tech_data.unit.str.replace("MW Ammonia", "MW_NH3") #fom + tech_data.unit = tech_data.unit.str.replace("MWh Ammonia", "MWh_NH3") #vom + tech_data.loc[tech_data.unit=='EUR/MW/y', "unit"] = 'EUR/MW/year' # convert per unit costs to MW - cost_per_unit = technology_dataframe.unit.str.contains("/unit") - technology_dataframe.loc[cost_per_unit, value_column] = technology_dataframe.loc[ - cost_per_unit, value_column - ].apply( - lambda val_x: ( - val_x - / technology_dataframe.loc[ - (val_x.name[0], "Heat production capacity for one unit") - ][value_column] - ).iloc[0, :], - axis=1, - ) - technology_dataframe.loc[cost_per_unit, "unit"] = technology_dataframe.loc[ - cost_per_unit, "unit" - ].str.replace("/unit", "/MW_th") + cost_per_unit = tech_data.unit.str.contains("/unit") + tech_data.loc[cost_per_unit, value_column] = tech_data.loc[cost_per_unit, value_column].apply( + lambda x: (x / tech_data.loc[(x.name[0], + "Heat production capacity for one unit")][value_column]).iloc[0,:], + axis=1) + tech_data.loc[cost_per_unit, "unit"] = tech_data.loc[cost_per_unit, + "unit"].str.replace("/unit", "/MW_th") if source == "dea": # clarify MW -> MW_th # see on p.278 of docu: "However, the primary purpose of the heat pumps in the # technology catalogue is heating. In this chapter the unit MW is referring to # the heat output (also MJ/s) unless otherwise noted" - techs_mwth = [ - "central air-sourced heat pump", - "central geothermal-sourced heat pump", - "central gas boiler", - "central resistive heater", - "decentral air-sourced heat pump", - "decentral gas boiler", - "decentral ground-sourced heat pump", - ] - technology_dataframe.loc[techs_mwth, "unit"] = technology_dataframe.loc[ - techs_mwth, "unit" - ].replace( - { - "EUR/MW": "EUR/MW_th", - "EUR/MW/year": "EUR/MW_th/year", - "EUR/MWh": "EUR/MWh_th", - "MW": "MW_th", - } - ) + techs_mwth = ['central air-sourced heat pump', 'central geothermal-sourced heat pump', + 'central gas boiler', 'central resistive heater', 'decentral air-sourced heat pump', + 'decentral gas boiler', 'decentral ground-sourced heat pump' ] + tech_data.loc[techs_mwth, "unit"] = (tech_data.loc[techs_mwth, "unit"] + .replace({"EUR/MW": "EUR/MW_th", + "EUR/MW/year": "EUR/MW_th/year", + 'EUR/MWh':'EUR/MWh_th', + "MW": "MW_th"})) # clarify MW -> MW_e - techs_e = ["fuel cell"] - technology_dataframe.loc[techs_e, "unit"] = technology_dataframe.loc[ - techs_e, "unit" - ].replace( - { - "EUR/MW": "EUR/MW_e", - "EUR/MW/year": "EUR/MW_e/year", - "EUR/MWh": "EUR/MWh_e", - "MW": "MW_e", - } - ) + techs_e = ['fuel cell'] + tech_data.loc[techs_e, "unit"] = (tech_data.loc[techs_e, "unit"] + .replace({"EUR/MW": "EUR/MW_e", + "EUR/MW/year": "EUR/MW_e/year", + 'EUR/MWh':'EUR/MWh_e', + "MW": "MW_e"})) - if "methanolisation" in technology_dataframe.index: - technology_dataframe = technology_dataframe.sort_index() - technology_dataframe.loc[("methanolisation", "Variable O&M"), "unit"] = ( - "EUR/MWh_MeOH" - ) + if "methanolisation" in tech_data.index: + tech_data = tech_data.sort_index() + tech_data.loc[('methanolisation', 'Variable O&M'), "unit"] = "EUR/MWh_MeOH" + + tech_data.unit = tech_data.unit.str.replace("\)", "") + return tech_data - technology_dataframe.unit = technology_dataframe.unit.str.replace(r"\)", "") - return technology_dataframe - -def set_specify_assumptions( - years: list, technology_dataframe: pd.DataFrame -) -> pd.DataFrame: +def set_specify_assumptions(tech_data): """ - The function implements more specific investment and efficiency assumptions for the following technologies: - - central resistive heater (investment costs for large > 10 MW generators are assumed) + for following technologies more specific investment and efficiency + assumptions are taken: + + - central resistive heater (investment costs for large > 10 MW + generators are assumed) - decentral gas boiler (grid connection costs) - biogas upgrading (include grid connection costs) - heat pumps (efficiencies for radiators assumed) - Furthermore, to avoid duplicates some investment + efficiency, rows are dropped for: + to avoid duplicates some investment + efficiency data is dropped for: + - decentral gas boilers (drop duplicated efficiency) - PV module (drop efficiency) - Parameters - ---------- - years : list - years for which a cost assumption is provided - technology_dataframe : pd.DataFrame - technology data cost assumptions - - Returns - ------- - Dataframe - updated technology dataframe """ # for central resistive heater there are investment costs for small (1-5MW) # and large (>10 MW) generators, assume the costs for large generators - to_drop = [ - ("central resistive heater", "Nominal investment, 400/690 V; 1-5 MW"), - ("decentral gas boiler", "Heat efficiency, annual average, net"), - ] + to_drop = [("central resistive heater", 'Nominal investment, 400/690 V; 1-5 MW')] # for decentral gas boilers total and heat efficiency given, the values are # the same, drop one of the rows to avoid duplicates + to_drop.append(("decentral gas boiler", "Heat efficiency, annual average, net")) # for decentral gas boilers there are investment costs and possible # additional investments which apply for grid connection if the house is # not connected yet those costs are added as an extra row since the - # lifetime of the branch pipe is assumed to be 50 years (see comment K in - # Excel sheet) - boiler_connect = technology_dataframe.loc[ - [ - ("decentral gas boiler", "Possible additional specific investment"), - ("decentral gas boiler", "Technical lifetime"), - ] - ] - boiler_connect.loc[("decentral gas boiler", "Technical lifetime"), years] = 50.0 - boiler_connect.rename( - index={"decentral gas boiler": "decentral gas boiler connection"}, inplace=True - ) - technology_dataframe = pd.concat([technology_dataframe, boiler_connect]) + # lifetime of the branchpipe is assumed to be 50 years (see comment K in + # excel sheet) + boiler_connect = tech_data.loc[[("decentral gas boiler", + "Possible additional specific investment"), + ("decentral gas boiler", + "Technical lifetime")]] + boiler_connect.loc[("decentral gas boiler", "Technical lifetime"), years] = 50 + boiler_connect.rename(index={"decentral gas boiler": + "decentral gas boiler connection"}, inplace=True) + tech_data = pd.concat([tech_data, boiler_connect]) to_drop.append(("decentral gas boiler", "Possible additional specific investment")) # biogas upgrading investment costs should include grid injection costs - index = technology_dataframe.loc["biogas upgrading"].index.str.contains( - "investment" - ) - name = "investment (upgrading, methane redution and grid injection)" - inv = ( - technology_dataframe.loc["biogas upgrading"] - .loc[index] - .groupby(["unit", "source"]) - .sum() - .reset_index() - ) - new = pd.concat( - [technology_dataframe.loc["biogas upgrading"].loc[~index], inv] - ).rename({0: name}) - new.index = pd.MultiIndex.from_product([["biogas upgrading"], new.index.to_list()]) - technology_dataframe.drop("biogas upgrading", level=0, inplace=True) - technology_dataframe = pd.concat([technology_dataframe, new]) + index = tech_data.loc["biogas upgrading"].index.str.contains("investment") + name = 'investment (upgrading, methane redution and grid injection)' + inv = tech_data.loc["biogas upgrading"].loc[index].groupby(["unit", "source"]).sum().reset_index() + new = pd.concat([tech_data.loc["biogas upgrading"].loc[~index], + inv]).rename({0:name}) + new.index = pd.MultiIndex.from_product([["biogas upgrading"], + new.index.to_list()]) + tech_data.drop("biogas upgrading", level=0, inplace=True) + tech_data = pd.concat([tech_data, new]) # drop PV module conversion efficiency - technology_dataframe = technology_dataframe.drop( - "PV module conversion efficiency [p.u.]", level=1 - ) + tech_data = tech_data.drop("PV module conversion efficiency [p.u.]", level=1) # heat pump efficiencies are assumed the one's for existing building, # in the DEA they do differ between heating the floor area or heating with # radiators, since most households heat with radiators and there # efficiencies are lower (conservative approach) those are assumed - # furthermore the total efficiency is assumed which includes auxiliary electricity + # furthermore the total efficiency is assumed which includes auxilary electricity # consumption - name = "Heat efficiency, annual average, net, radiators" - techs_radiator = technology_dataframe.xs(name, level=1).index - for tech_name in techs_radiator: - df = technology_dataframe.loc[tech_name] - df = df[(~df.index.str.contains("efficiency")) | (df.index == name)] + name = 'Heat efficiency, annual average, net, radiators' + techs_radiator = tech_data.xs(name, level=1).index + for tech in techs_radiator: + df = tech_data.loc[tech] + df = df[(~df.index.str.contains("efficiency")) | (df.index==name)] df.rename(index={name: name + ", existing one family house"}, inplace=True) - df.index = pd.MultiIndex.from_product([[tech_name], df.index.to_list()]) - technology_dataframe.drop(tech_name, level=0, inplace=True) - technology_dataframe = pd.concat([technology_dataframe, df]) + df.index = pd.MultiIndex.from_product([[tech], df.index.to_list()]) + tech_data.drop(tech, level=0, inplace=True) + tech_data = pd.concat([tech_data, df]) - technology_dataframe = technology_dataframe.drop(to_drop) + tech_data = tech_data.drop(to_drop) - return technology_dataframe.sort_index() + return tech_data.sort_index() -def set_round_trip_efficiency( - years: list, technology_dataframe: pd.DataFrame -) -> pd.DataFrame: +def set_round_trip_efficiency(tech_data): """ - The function get round trip efficiency for hydrogen and battery storage. - It assumes for battery sqrt(DC efficiency) and it splits it into inverter + storage. - Finally, it renames investment rows for easier sorting. - - Parameters - ---------- - years: list - years for which a cost assumption is provided - technology_dataframe: pd.DataFrame - technology data cost assumptions - - Returns - ------- - Dataframe - updated technology dataframe + get round trip efficiency for hydrogen and battery storage + assume for battery sqrt(DC efficiency) and split into inverter + storage + rename investment rows for easier sorting """ - technology_dataframe.loc[ - ("hydrogen storage underground", "Round trip efficiency"), years - ] *= 100.0 - technology_dataframe.loc[ - ("hydrogen storage tank type 1 including compressor", "Round trip efficiency"), - years, - ] *= 100.0 + # hydrogen storage + to_drop = [("hydrogen storage tank type 1 including compressor", ' - Charge efficiency')] + to_drop.append(("hydrogen storage tank type 1 including compressor", ' - Discharge efficiency')) + to_drop.append(("hydrogen storage underground", ' - Charge efficiency')) + to_drop.append(("hydrogen storage underground", ' - Discharge efficiency')) + tech_data.loc[("hydrogen storage underground", "Round trip efficiency"), years] *= 100 + tech_data.loc[("hydrogen storage tank type 1 including compressor", "Round trip efficiency"), years] *= 100 + + # battery split into inverter and storage, assume for efficiency sqr(round trip DC) - df = technology_dataframe.loc["battery"] - inverter = df.loc[ - [ - "Round trip efficiency DC", - "Output capacity expansion cost", - "Technical lifetime", - "Fixed O&M", - ] - ] + df = tech_data.loc["battery"] + inverter = df.loc[['Round trip efficiency DC', + 'Output capacity expansion cost', + 'Technical lifetime', 'Fixed O&M']] - inverter.rename( - index={ - "Output capacity expansion cost": "Output capacity expansion cost investment" - }, - inplace=True, - ) + inverter.rename(index ={'Output capacity expansion cost': + 'Output capacity expansion cost investment'}, + inplace=True) # Manual correction based on footnote. - inverter.loc["Technical lifetime", years] = 10.0 - inverter.loc["Technical lifetime", "source"] += ", Note K." + inverter.loc['Technical lifetime', years] = 10. + inverter.loc['Technical lifetime', 'source'] += ', Note K.' - inverter.index = pd.MultiIndex.from_product( - [["battery inverter"], inverter.index.to_list()] - ) + inverter.index = pd.MultiIndex.from_product([["battery inverter"], + inverter.index.to_list()]) - storage = df.reindex(index=["Technical lifetime", "Energy storage expansion cost"]) - storage.rename( - index={ - "Energy storage expansion cost": "Energy storage expansion cost investment" - }, - inplace=True, - ) - storage.index = pd.MultiIndex.from_product( - [["battery storage"], storage.index.to_list()] - ) - technology_dataframe.drop("battery", level=0, inplace=True) - technology_dataframe = pd.concat([technology_dataframe, inverter, storage]) + storage = df.reindex(index=['Technical lifetime', + 'Energy storage expansion cost']) + storage.rename(index={'Energy storage expansion cost': + 'Energy storage expansion cost investment'}, inplace=True) + storage.index = pd.MultiIndex.from_product([["battery storage"], + storage.index.to_list()]) + tech_data.drop("battery", level=0, inplace=True) + tech_data = pd.concat([tech_data, inverter, storage]) - return technology_dataframe.sort_index() + return tech_data.sort_index() -def order_data(years: list, technology_dataframe: pd.DataFrame) -> pd.DataFrame: +def order_data(tech_data): """ - The function check if the units of different variables are conform and logs warnings if not. - - Parameters - ---------- - years : list - years for which a cost assumption is provided - technology_dataframe : pd.DataFrame - technology data cost assumptions - - Returns - ------- - Dataframe - technology data in pypsa tech data syntax (investment, FOM,VOM, efficiency) + check if the units of different variables are conform + -> print warning if not + return a pd.Dataframe 'data' in pypsa tech data syntax (investment, FOM, + VOM, efficiency) """ clean_df = {} - for tech_name in technology_dataframe.index.get_level_values(0).unique(): - clean_df[tech_name] = pd.DataFrame() + for tech in tech_data.index.get_level_values(0).unique(): + clean_df[tech] = pd.DataFrame() switch = False - df = technology_dataframe.loc[tech_name] + df = tech_data.loc[tech] # --- investment ---- - investment = df[ - ( - df.index.str.contains("investment") - | df.index.str.contains("Distribution network costs") - ) - & ( - (df.unit == "EUR/MW") - | (df.unit == "EUR/MW_e") - | (df.unit == "EUR/MW_th - heat output") - | (df.unit == "EUR/MW_th excluding drive energy") - | (df.unit == "EUR/MW_th") - | (df.unit == "EUR/MW_MeOH") - | (df.unit == "EUR/MW_FT/year") - | (df.unit == "EUR/MW_NH3") - | (df.unit == "EUR/MWhCapacity") - | (df.unit == "EUR/MWh") - | (df.unit == "EUR/MW_CH4") - | (df.unit == "EUR/MWh/year") - | (df.unit == "EUR/MW_e, 2020") - | (df.unit == "EUR/MW input") - | (df.unit == "EUR/MW-methanol") - | (df.unit == "EUR/t_N2/h") # air separation unit - | (df.unit == "EUR/MW_biochar") - ) - ].copy() + investment = df[(df.index.str.contains("investment") | + df.index.str.contains("Distribution network costs")) + & ((df.unit == "EUR/MW") | + (df.unit == "EUR/MW_e") | + (df.unit == "EUR/MW_th - heat output") | + (df.unit == "EUR/MW_th excluding drive energy") | + (df.unit == "EUR/MW_th") | + (df.unit == "EUR/MW_MeOH") | + (df.unit == "EUR/MW_FT/year") | + (df.unit == "EUR/MW_NH3") | + (df.unit == "EUR/MWhCapacity") | + (df.unit == "EUR/MWh") | + (df.unit == "EUR/MW_CH4") | + (df.unit == "EUR/MWh/year") | + (df.unit == "EUR/MW_e, 2020") | + (df.unit == "EUR/MW input") | + (df.unit == 'EUR/MW-methanol') | + (df.unit == "EUR/t_N2/h") | # air separation unit + (df.unit == 'EUR/t_CO2/h') | + (df.unit == 'EUR/MW_H2') | + (df.unit == 'EUR/MW_biomass')) + ].copy() if len(investment) != 1: switch = True - if df[df.index.str.contains("investment")].unit.empty: - logger.info(f"check investment: {str(tech_name)} is not available") - else: - logger.info( - f"check investment: {str(tech_name)} {str(df[df.index.str.contains('investment')].unit)}" - ) + print("check investment: ", tech, " ", + df[df.index.str.contains("investment")].unit) else: investment["parameter"] = "investment" - clean_df[tech_name] = investment + clean_df[tech] = investment # ---- FOM ---------------- if len(investment): - fixed = df[ - ( - df.index.str.contains("Fixed O&M") - | df.index.str.contains("Total O&M") - ) - & ( - (df.unit == investment.unit.iloc[0] + "/year") - | (df.unit == "EUR/MW/km/year") - | (df.unit == "EUR/MW/year") - | (df.unit == "EUR/MW_e/y, 2020") - | (df.unit == "EUR/MW_e/y") - | (df.unit == "EUR/MW_FT/year") - | (df.unit == "EUR/MWh_FT") - | (df.unit == "EUR/MW_MeOH/year") - | (df.unit == "EUR/MW_CH4/year") - | (df.unit == "EUR/MW_biochar/year") - | (df.unit == "% of specific investment/year") - | (df.unit == investment.unit.str.split(" ").iloc[0][0] + "/year") - ) - ].copy() + fixed = df[(df.index.str.contains("Fixed O&M") | + df.index.str.contains("Total O&M")) & + ((df.unit == investment.unit.iloc[0] + "/year") | + (df.unit == "EUR/MW/km/year") | + (df.unit == "EUR/MW/year") | + (df.unit == "EUR/MW_e/y, 2020") | + (df.unit == "EUR/MW_e/y") | + (df.unit == "EUR/MW_FT/year") | + (df.unit == "EUR/MWh_FT") | + (df.unit == "EUR/MW_MeOH/year") | + (df.unit == "EUR/MW_CH4/year") | + (df.unit == 'EUR/MW_biomass/year') | + (df.unit == 'EUR/t_CO2/h/year') | + (df.unit == 'EUR/MW_H2/year') | + (df.unit == '% of specific investment/year') | + (df.unit == investment.unit.str.split(" ").iloc[0][0] + "/year"))].copy() if (len(fixed) != 1) and (len(df[df.index.str.contains("Fixed O&M")]) != 0): switch = True - if df[df.index.str.contains("Fixed O&M")].unit.empty: - logger.info("check FOM: ", str(tech_name), " is not available") - else: - logger.info( - f"check FOM: {str(tech_name)} {str(df[df.index.str.contains('Fixed O&M')].unit)}", - ) + print("check FOM: ", tech, " ", + df[df.index.str.contains("Fixed O&M")].unit) if len(fixed) == 1: fixed["parameter"] = "fixed" - clean_df[tech_name] = pd.concat([clean_df[tech_name], fixed]) + clean_df[tech] = pd.concat([clean_df[tech], fixed]) fom = pd.DataFrame(columns=fixed.columns) - if not any(fixed.unit.str.contains("% of specific investment/year")): - investment[investment == 0] = float("nan") + if not any(fixed.unit.str.contains('% of specific investment/year')): + investment[investment==0] = float('nan') investment = investment.ffill(axis=1).fillna(0) - fom[years] = fixed[years] / investment[years].values * 100 + fom[years] = fixed[years]/investment[years].values*100 else: fom[years] = fixed[years] fom["parameter"] = "FOM" fom["unit"] = "%/year" fom["source"] = fixed["source"] - clean_df[tech_name] = pd.concat([clean_df[tech_name], fom]) + clean_df[tech] = pd.concat([clean_df[tech], fom]) # ---- VOM ----- - vom = df[ - df.index.str.contains("Variable O&M") - & ( - (df.unit == "EUR/MWh") - | (df.unit == "EUR/MWh_e") - | (df.unit == "EUR/MWh_th") - | (df.unit == "EUR/MWh_FT") - | (df.unit == "EUR/MWh_NH3") - | (df.unit == "EUR/MWh_MeOH") - | (df.unit == "EUR/MWh/year") - | (df.unit == "EUR/MWh/km") - | (df.unit == "EUR/MWh") - | (df.unit == "EUR/MWhoutput") - | (df.unit == "EUR/MWh_CH4") - | (df.unit == "EUR/MWh_biochar") - | (tech_name == "biogas upgrading") - ) - ].copy() + vom = df[df.index.str.contains("Variable O&M") & ((df.unit == "EUR/MWh") | + (df.unit == "EUR/MWh_e") | + (df.unit == "EUR/MWh_th") | + (df.unit == "EUR/MWh_FT") | + (df.unit == "EUR/MWh_NH3") | + (df.unit == "EUR/MWh_MeOH") | + (df.unit == "EUR/MWh/year") | + (df.unit == "EUR/MWh/km") | + (df.unit == "EUR/MWh") | + (df.unit == "EUR/MWhoutput") | + (df.unit == "EUR/MWh_CH4") | + (df.unit == 'EUR/MWh_biomass')| + (df.unit == 'EUR/t_CO2') | + (df.unit == 'EUR/MWh_H2') | + (tech == "biogas upgrading"))].copy() if len(vom) == 1: vom.loc[:, "parameter"] = "VOM" - clean_df[tech_name] = pd.concat([clean_df[tech_name], vom]) + clean_df[tech] = pd.concat([clean_df[tech], vom]) - elif len(vom) != 1 and len(df[df.index.str.contains("Variable O&M")]) != 0: + elif len(vom)!=1 and len(df[df.index.str.contains("Variable O&M")])!=0: switch = True - if df[df.index.str.contains("Variable O&M")].unit.empty: - logger.info(f"check VOM: {str(tech_name)} is not available") - else: - logger.info( - f"check VOM: {str(tech_name)} {str(df[df.index.str.contains('Variable O&M')].unit)}" - ) + print("check VOM: ", tech, " ", + df[df.index.str.contains("Variable O&M")].unit) # ----- lifetime -------- - lifetime = df[ - df.index.str.contains("Technical life") & (df.unit == "years") - ].copy() - if len(lifetime) != 1: - switch = True - if df[df.index.str.contains("Technical life")].unit.empty: - logger.info(f"check lifetime: {tech_name} is not available") - else: - logger.info( - f"check lifetime: {tech_name} {str(df[df.index.str.contains('Technical life')].unit)}" - ) + lifetime = df[df.index.str.contains("Technical life") & (df.unit=="years")].copy() + if len(lifetime)!=1: + switch = True + print("check lifetime: ", tech, " ", + df[df.index.str.contains("Technical life")].unit) else: lifetime["parameter"] = "lifetime" - clean_df[tech_name] = pd.concat([clean_df[tech_name], lifetime]) + clean_df[tech] = pd.concat([clean_df[tech], lifetime]) + # ----- efficiencies ------ - efficiency = df[ - ( - (df.index.str.contains("efficiency")) - | (df.index.str.contains("Hydrogen output, at LHV")) - | (df.index.str.contains("Hydrogen Output")) - | (df.index.str.contains("FT Liquids Output, MWh/MWh Total Input")) - | (df.index.str.contains("Methanol Output")) - | (df.index.str.contains("District heat Output")) - | (df.index.str.contains("Electricity Output")) - | (df.index.str.contains("hereof recoverable for district heating")) - | (df.index.str.contains("Bio SNG")) - | (df.index.str.contains("biochar")) - | (df.index == ("Hydrogen")) - ) - & ( - (df.unit == "%") - | (df.unit == "% total size") - | (df.unit == "% of fuel input") - | (df.unit == "MWh_H2/MWh_e") - | (df.unit == "%-points of heat loss") - | (df.unit == "MWh_MeOH/MWh_th") - | (df.unit == "MWh_e/MWh_th") - | (df.unit == "MWh_th/MWh_th") - | (df.unit == "MWh/MWh Total Input") - | df.unit.str.contains("MWh_FT/MWh_H2") - | df.unit.str.contains("MWh_biochar/MWh_feedstock") - | df.unit.str.contains("ton biochar/MWh_feedstock") - | df.unit.str.contains("MWh_CH4/MWh_H2") - | df.unit.str.contains("% MWh_feedstock") - ) - ].copy() - - if tech_name == "Fischer-Tropsch": + efficiency = df[((df.index.str.contains("efficiency")) | + (df.index.str.contains("Hydrogen output, at LHV")) | + (df.index.str.contains("Hydrogen Output")) | + (df.index.str.contains("Hydrogen Consumption")) | + (df.index.str.contains("FT Liquids Output, MWh/MWh Total Input")) | + (df.index.str.contains("Methanol Output")) | + (df.index.str.contains("District heat Output")) | + (df.index.str.contains("District Heating Output")) | + (df.index.str.contains("Electricity Output")) | + (df.index.str.contains("Electricity Consumption")) | + (df.index.str.contains("Electricity Intput")) | + (df.index.str.contains("hereof recoverable for district heating")) | + (df.index.str.contains("Bio SNG")) | + (df.index.str.contains("biochar")) | + (df.index.str.contains("biomethanation")) | + (df.index.str.contains("H-Output")) | + (df.index.str.contains("Hydrogen Input")) | + (df.index.str.contains("CO2 Input")) | + (df.index.str.contains("SNG Output")) | + (df.index.str.contains("Biogas Consumption")) | + (df.index.str.contains("Methane Output")) | + (df.index.str.contains("Biomass Input")) | + (df.index.str.contains("El-Input")) | + (df.index == ("Hydrogen"))) + & ((df.unit == "%") | (df.unit == "% total size") | + (df.unit == "% of fuel input") | + (df.unit == "MWh_H2/MWh_e") | + (df.unit == "%-points of heat loss") | + (df.unit == "MWh_MeOH/MWh_th") | + (df.unit == "MWh_e/MWh_th") | + (df.unit == "MWh_th/MWh_th") | + (df.unit == 'MWh/MWh Total Input') | + df.unit.str.contains("MWh_FT/MWh_H2") | + df.unit.str.contains("MWh_biochar/MWh_biomass") | # efficiency biochar + df.unit.str.contains("t_biochar/MWh_biomass") | # yield biochar + df.unit.str.contains("MWh_th/t_CO2") | # Heat Output + df.unit.str.contains("MWh_biomass/t_CO2") | # Biomass Input + df.unit.str.contains("MWh_e/t_CO2") | # Electricity Input + df.unit.str.contains("t_CO2/MWh_H2") | # Electricity Input + df.unit.str.contains("MWh_e/MWh_H2") | # Electricity Input + df.unit.str.contains("MWh_CH4/MWh_H2") | + df.unit.str.contains("MWh/MWh_H2") | + df.unit.str.contains("MWh_th/MWh_H2") | + df.unit.str.contains("/MWh_H2") | + df.unit.str.contains("% MWh_biomass"))].copy() + + if tech == 'Fischer-Tropsch': efficiency[years] *= 100 + # take annual average instead of name plate efficiency, unless central air-sourced heat pump - if ( - any(efficiency.index.str.contains("annual average")) - and tech_name != "central air-sourced heat pump" - ): + if any(efficiency.index.str.contains("annual average")) and tech != "central air-sourced heat pump": efficiency = efficiency[efficiency.index.str.contains("annual average")] elif any(efficiency.index.str.contains("name plate")): efficiency = efficiency[efficiency.index.str.contains("name plate")] - # hydrogen electrolysiswith recoverable heat + # hydrogen electrolysis with recoverable heat heat_recovery_label = "hereof recoverable for district heating" with_heat_recovery = efficiency.index.str.contains(heat_recovery_label) if with_heat_recovery.any(): efficiency_heat = efficiency[with_heat_recovery].copy() efficiency_heat["parameter"] = "efficiency-heat" - clean_df[tech_name] = pd.concat([clean_df[tech_name], efficiency_heat]) - efficiency_h2 = efficiency[ - efficiency.index.str.contains("Hydrogen Output") - ].copy() + clean_df[tech] = pd.concat([clean_df[tech], efficiency_heat]) + efficiency_h2 = efficiency[efficiency.index.str.contains("Hydrogen Output")].copy() efficiency_h2["parameter"] = "efficiency" - clean_df[tech_name] = pd.concat([clean_df[tech_name], efficiency_h2]) + clean_df[tech] = pd.concat([clean_df[tech], efficiency_h2]) # check if electric and heat efficiencies are given - if any(["Electric" in ind for ind in efficiency.index]) and any( - ["Heat" in ind for ind in efficiency.index] - ): + if (any(["Electric" in ind for ind in efficiency.index]) and + any(["Heat" in ind for ind in efficiency.index])): efficiency_heat = efficiency[efficiency.index.str.contains("Heat")].copy() efficiency_heat["parameter"] = "efficiency-heat" - clean_df[tech_name] = pd.concat([clean_df[tech_name], efficiency_heat]) + clean_df[tech] = pd.concat([clean_df[tech], efficiency_heat]) efficiency = efficiency[efficiency.index.str.contains("Electric")].copy() efficiency["parameter"] = "efficiency" - clean_df[tech_name] = pd.concat([clean_df[tech_name], efficiency]) + clean_df[tech] = pd.concat([clean_df[tech], efficiency]) - elif tech_name == "biomass-to-methanol": - efficiency_heat = efficiency[ - efficiency.index.str.contains("District heat") - ].copy() + elif tech == "biomass-to-methanol": + efficiency_heat = efficiency[efficiency.index.str.contains("District heat")].copy() efficiency_heat["parameter"] = "efficiency-heat" - efficiency_heat.loc[:, years] *= 100 # in % - clean_df[tech_name] = pd.concat([clean_df[tech_name], efficiency_heat]) - efficiency_elec = efficiency[ - efficiency.index.str.contains("Electric") - ].copy() + efficiency_heat.loc[:,years] *= 100 # in % + clean_df[tech] = pd.concat([clean_df[tech], efficiency_heat]) + efficiency_elec = efficiency[efficiency.index.str.contains("Electric")].copy() efficiency_elec["parameter"] = "efficiency-electricity" - clean_df[tech_name] = pd.concat([clean_df[tech_name], efficiency_elec]) - efficiency_meoh = efficiency[ - efficiency.index.str.contains("Methanol") - ].copy() + clean_df[tech] = pd.concat([clean_df[tech], efficiency_elec]) + efficiency_meoh = efficiency[efficiency.index.str.contains("Methanol")].copy() efficiency_meoh["parameter"] = "efficiency" - efficiency_meoh.loc[:, years] *= 100 # in % - clean_df[tech_name] = pd.concat([clean_df[tech_name], efficiency_meoh]) + efficiency_meoh.loc[:,years] *= 100 # in % + clean_df[tech] = pd.concat([clean_df[tech], efficiency_meoh]) - elif tech_name == "biochar pyrolysis": - efficiency_biochar = efficiency[ - efficiency.index.str.contains("efficiency biochar") - ].copy() + elif tech == "biochar pyrolysis": + efficiency_biochar = efficiency[efficiency.index.str.contains("efficiency biochar")].copy() efficiency_biochar["parameter"] = "efficiency-biochar" - clean_df[tech_name] = pd.concat([clean_df[tech_name], efficiency_biochar]) - efficiency_biochar_mass = efficiency[ - efficiency.index.str.contains("yield biochar") - ].copy() + clean_df[tech] = pd.concat([clean_df[tech], efficiency_biochar]) + efficiency_biochar_mass = efficiency[efficiency.index.str.contains("yield biochar")].copy() efficiency_biochar_mass["parameter"] = "yield-biochar" - clean_df[tech_name] = pd.concat( - [clean_df[tech_name], efficiency_biochar_mass] - ) - efficiency_heat = efficiency[ - efficiency.index.str.contains("efficiency heat") - ].copy() - efficiency_heat["parameter"] = "efficiency-heat" - clean_df[tech_name] = pd.concat([clean_df[tech_name], efficiency_heat]) + clean_df[tech] = pd.concat([clean_df[tech], efficiency_biochar_mass]) + efficiency_heat_out = efficiency[efficiency.index.str.contains("H-Output")].copy() + efficiency_heat_out["parameter"] = "heat output" + clean_df[tech] = pd.concat([clean_df[tech], efficiency_heat_out]) + biomass_input = efficiency[efficiency.index.str.contains("Biomass Input")].copy() + biomass_input["parameter"] = "biomass input" + clean_df[tech] = pd.concat([clean_df[tech], biomass_input]) + electricity_input = efficiency[efficiency.index.str.contains("El-Input")].copy() + electricity_input["parameter"] = "electricity input" + clean_df[tech] = pd.concat([clean_df[tech], electricity_input]) + + elif tech == "biomethanation": + h2_input = efficiency[efficiency.index.str.contains("Hydrogen Input")].copy() + h2_input["parameter"] = "Hydrogen Input" + clean_df[tech] = pd.concat([clean_df[tech], h2_input]) + co2_input = efficiency[efficiency.index.str.contains("CO2 Input")].copy() + co2_input["parameter"] = "CO2 Input" + clean_df[tech] = pd.concat([clean_df[tech], co2_input]) + efficiency_heat_out = efficiency[efficiency.index.str.contains("H-Output")].copy() + efficiency_heat_out["parameter"] = "heat output" + clean_df[tech] = pd.concat([clean_df[tech], efficiency_heat_out]) + biomass_input = efficiency[efficiency.index.str.contains("Methane Output")].copy() + biomass_input["parameter"] = "Methane Output" + clean_df[tech] = pd.concat([clean_df[tech], biomass_input]) + electricity_input = efficiency[efficiency.index.str.contains("El-Input")].copy() + electricity_input["parameter"] = "electricity input" + clean_df[tech] = pd.concat([clean_df[tech], electricity_input]) + biogas_input = efficiency[efficiency.index.str.contains("Biogas Consumption")].copy() + biogas_input["parameter"] = "Biogas Input" + clean_df[tech] = pd.concat([clean_df[tech], biogas_input]) + + elif tech == "biogas plus hydrogen": + h2_input = efficiency[efficiency.index.str.contains("Hydrogen Consumption")].copy() + if not h2_input.empty: + h2_input["parameter"] = "hydrogen input" + clean_df[tech] = pd.concat([clean_df[tech], h2_input]) + + biogas_input = efficiency[efficiency.index.str.contains("Biogas Consumption")].copy() + if not biogas_input.empty: + biogas_input["parameter"] = "Biogas Input" + clean_df[tech] = pd.concat([clean_df[tech], biogas_input]) + + co2_input = efficiency[efficiency.index.str.contains("CO2 Input")].copy() + if not biogas_input.empty: + co2_input["parameter"] = "CO2 Input" + clean_df[tech] = pd.concat([clean_df[tech], co2_input]) + + sng_output = efficiency[efficiency.index.str.contains("Methane Output")].copy() + if not sng_output.empty: + sng_output["parameter"] = "Methane Output" + clean_df[tech] = pd.concat([clean_df[tech], sng_output]) + + heat_output = efficiency[efficiency.index.str.contains("H-Output")].copy() + if not heat_output.empty: + heat_output["parameter"] = "heat output" + clean_df[tech] = pd.concat([clean_df[tech], heat_output]) + + elec_input = efficiency[efficiency.index.str.contains("El-Input")].copy() + if not elec_input.empty: + elec_input["parameter"] = "electricity input" + clean_df[tech] = pd.concat([clean_df[tech], elec_input]) elif len(efficiency) != 1: switch = True if not any(efficiency.index.str.contains("Round trip")): - if df[df.index.str.contains("efficiency")].unit.empty: - logger.info(f"check efficiency: {str(tech_name)} is not available") - else: - logger.info( - f"check efficiency: {str(tech_name)} {df[df.index.str.contains('efficiency')].unit}" - ) + print("check efficiency: ", tech, " ", + df[df.index.str.contains("efficiency")].unit) else: efficiency["parameter"] = "efficiency" - clean_df[tech_name] = pd.concat([clean_df[tech_name], efficiency]) + clean_df[tech] = pd.concat([clean_df[tech], efficiency]) # add c_v and c_b coefficient if "Cb coefficient" in df.index: c_b = df.loc[df.index.str.contains("Cb coefficient")].dropna().copy() if len(c_b): c_b["parameter"] = "c_b" - clean_df[tech_name] = pd.concat([clean_df[tech_name], c_b]) + clean_df[tech] = pd.concat([clean_df[tech], c_b]) if "Cv coefficient" in df.index: c_v = df.loc[df.index.str.contains("Cv coefficient")].dropna().copy() if len(c_v): c_v["parameter"] = "c_v" - clean_df[tech_name] = pd.concat([clean_df[tech_name], c_v]) + clean_df[tech] = pd.concat([clean_df[tech], c_v]) if switch: - logger.info("---------------------------------------") + print("---------------------------------------") # concat data - output_data_dataframe = ( - pd.concat(clean_df) - .reset_index() - .rename(columns={"level_0": "technology", "level_1": "further description"}) - .set_index(["technology", "parameter"]) - ) + data = (pd.concat(clean_df).reset_index().rename(columns={"level_0":"technology", + "level_1": "further description"}) + .set_index(["technology", "parameter"])) # add central water tank charger/ discharger - charger_tank = technology_dataframe.loc[ - ("central water tank storage", " - Charge efficiency") - ].copy() + charger_tank = tech_data.loc[("central water tank storage", " - Charge efficiency")].copy() charger_tank["further description"] = "Charger efficiency" - charger_tank.rename( - index={" - Charge efficiency": "efficiency"}, level=1, inplace=True - ) - charger_tank.rename( - index={"central water tank storage": "central water tank charger"}, - level=0, - inplace=True, - ) - output_data_dataframe = pd.concat([output_data_dataframe, charger_tank], sort=True) - charger_tank.rename( - index={"central water tank charger": "central water tank discharger"}, - level=0, - inplace=True, - ) + charger_tank.rename(index={" - Charge efficiency": "efficiency"}, + level=1, inplace=True) + charger_tank.rename(index={'central water tank storage': "central water tank charger"}, + level=0, inplace=True) + data = pd.concat([data, charger_tank], sort=True) + charger_tank.rename(index={"central water tank charger": "central water tank discharger"}, + level=0, inplace=True) charger_tank["further description"] = "Discharger efficiency" - output_data_dataframe = pd.concat([output_data_dataframe, charger_tank], sort=True) + data = pd.concat([data, charger_tank], sort=True) # add decentral water tank charger/ discharger - charger_tank = technology_dataframe.loc[ - ("decentral water tank storage", " - Charge efficiency") - ].copy() + charger_tank = tech_data.loc[("decentral water tank storage", " - Charge efficiency")].copy() charger_tank["further description"] = "Charger efficiency" - charger_tank.rename( - index={" - Charge efficiency": "efficiency"}, level=1, inplace=True - ) - charger_tank.rename( - index={"decentral water tank storage": "decentral water tank charger"}, - level=0, - inplace=True, - ) - output_data_dataframe = pd.concat([output_data_dataframe, charger_tank], sort=True) - charger_tank.rename( - index={"decentral water tank charger": "decentral water tank discharger"}, - level=0, - inplace=True, - ) + charger_tank.rename(index={" - Charge efficiency": "efficiency"}, + level=1, inplace=True) + charger_tank.rename(index={'decentral water tank storage': "decentral water tank charger"}, + level=0, inplace=True) + data = pd.concat([data, charger_tank], sort=True) + charger_tank.rename(index={"decentral water tank charger": "decentral water tank discharger"}, + level=0, inplace=True) charger_tank["further description"] = "Discharger efficiency" - output_data_dataframe = pd.concat([output_data_dataframe, charger_tank], sort=True) + data = pd.concat([data, charger_tank], sort=True) # add water pit charger/ discharger - charger_pit = technology_dataframe.loc[ - ("central water pit storage", " - Charge efficiency") - ].copy() + charger_pit = tech_data.loc[("central water pit storage", " - Charge efficiency")].copy() charger_pit["further description"] = "Charger efficiency" - charger_pit.rename( - index={" - Charge efficiency": "efficiency"}, level=1, inplace=True - ) - charger_pit.rename( - index={"central water pit storage": "central water pit charger"}, - level=0, - inplace=True, - ) - output_data_dataframe = pd.concat([output_data_dataframe, charger_pit], sort=True) - charger_pit.rename( - index={"central water pit charger": "central water pit discharger"}, - level=0, - inplace=True, - ) + charger_pit.rename(index={" - Charge efficiency": "efficiency"}, + level=1, inplace=True) + charger_pit.rename(index={'central water pit storage': "central water pit charger"}, + level=0, inplace=True) + data = pd.concat([data, charger_pit], sort=True) + charger_pit.rename(index={"central water pit charger": "central water pit discharger"}, + level=0, inplace=True) charger_pit["further description"] = "Discharger efficiency" - output_data_dataframe = pd.concat([output_data_dataframe, charger_pit], sort=True) + data = pd.concat([data, charger_pit], sort=True) + # add energy to power ratio for central water tank storage - power_ratio_tank = ( - technology_dataframe.loc[ - ("central water tank storage", "Input capacity for one unit") - ] - .copy() - .squeeze() - ) - storage_capacity_tank = ( - technology_dataframe.loc[ - ("central water tank storage", "Energy storage capacity for one unit") - ] - .copy() - .squeeze() - ) + power_ratio_tank = tech_data.loc[("central water tank storage", "Input capacity for one unit")].copy().squeeze() + storage_capacity_tank = tech_data.loc[("central water tank storage", "Energy storage capacity for one unit")].copy().squeeze() power_ratio_tank[years] = storage_capacity_tank[years].div(power_ratio_tank[years]) - power_ratio_tank["further description"] = ( - "Ratio between energy storage and input capacity" - ) + power_ratio_tank["further description"] = "Ratio between energy storage and input capacity" power_ratio_tank["unit"] = "h" power_ratio_tank = power_ratio_tank.to_frame().T - power_ratio_tank.rename( - index={"Input capacity for one unit": "energy to power ratio"}, - level=1, - inplace=True, - ) - output_data_dataframe = pd.concat( - [output_data_dataframe, power_ratio_tank], sort=True - ) + power_ratio_tank.rename(index={"Input capacity for one unit": "energy to power ratio"}, + level=1, inplace=True) + data = pd.concat([data, power_ratio_tank], sort=True) # add energy to power ratio for decentral water tank storage - power_ratio_tank = ( - technology_dataframe.loc[ - ("decentral water tank storage", "Input capacity for one unit") - ] - .copy() - .squeeze() - ) - storage_capacity_tank = ( - technology_dataframe.loc[ - ("decentral water tank storage", "Energy storage capacity for one unit") - ] - .copy() - .squeeze() - ) + power_ratio_tank = tech_data.loc[("decentral water tank storage", "Input capacity for one unit")].copy().squeeze() + storage_capacity_tank = tech_data.loc[("decentral water tank storage", "Energy storage capacity for one unit")].copy().squeeze() power_ratio_tank[years] = storage_capacity_tank[years].div(power_ratio_tank[years]) - power_ratio_tank["further description"] = ( - "Ratio between energy storage and input capacity" - ) + power_ratio_tank["further description"] = "Ratio between energy storage and input capacity" power_ratio_tank["unit"] = "h" power_ratio_tank = power_ratio_tank.to_frame().T - power_ratio_tank.rename( - index={"Input capacity for one unit": "energy to power ratio"}, - level=1, - inplace=True, - ) - output_data_dataframe = pd.concat( - [output_data_dataframe, power_ratio_tank], sort=True - ) + power_ratio_tank.rename(index={"Input capacity for one unit": "energy to power ratio"}, + level=1, inplace=True) + data = pd.concat([data, power_ratio_tank], sort=True) # add energy to power ratio for water pit storage - power_ratio_pit = ( - technology_dataframe.loc[ - ("central water pit storage", "Input capacity for one unit") - ] - .copy() - .squeeze() - ) - storage_capacity_pit = ( - technology_dataframe.loc[ - ("central water pit storage", "Energy storage capacity for one unit") - ] - .copy() - .squeeze() - ) + power_ratio_pit = tech_data.loc[("central water pit storage", "Input capacity for one unit")].copy().squeeze() + storage_capacity_pit = tech_data.loc[("central water pit storage", "Energy storage capacity for one unit")].copy().squeeze() power_ratio_pit[years] = storage_capacity_pit[years].div(power_ratio_pit[years]) - power_ratio_pit["further description"] = ( - "Ratio between energy storage and input capacity" - ) + power_ratio_pit["further description"] = "Ratio between energy storage and input capacity" power_ratio_pit["unit"] = "h" power_ratio_pit = power_ratio_pit.to_frame().T - power_ratio_pit.rename( - index={"Input capacity for one unit": "energy to power ratio"}, - level=1, - inplace=True, - ) - output_data_dataframe = pd.concat( - [output_data_dataframe, power_ratio_pit], sort=True - ) + power_ratio_pit.rename(index={"Input capacity for one unit": "energy to power ratio"}, + level=1, inplace=True) + data = pd.concat([data, power_ratio_pit], sort=True) - return output_data_dataframe + return data -def add_description( - years: list, - technology_dataframe: pd.DataFrame, - offwind_no_grid_costs_flag: bool = True, -) -> pd.DataFrame: +def add_description(data): """ - The function adds the Excel sheet name as a column to the tech data and adds comments for offwind connection costs. - - Parameters - ---------- - years : list - years for which a cost assumption is provided - technology_dataframe : pd.DataFrame - technology data cost assumptions - offwind_no_grid_costs_flag : bool - flag to remove grid connection costs from DEA for offwind. Such costs are calculated separately in pypsa-eur - - Returns - ------- - Dataframe - updated technology data + add as a column to the tech data the excel sheet name, + add comment for offwind connection costs """ - - # add Excel sheet names to technology_dataframe frame - wished_order = years + ["unit", "source", "further description"] - technology_dataframe = technology_dataframe.reindex(columns=wished_order) - technology_dataframe.index.set_names(["technology", "parameter"], inplace=True) - sheets = ( - technology_dataframe.reset_index()["technology"].map(dea_sheet_names).fillna("") - ) - sheets.index = technology_dataframe.index - technology_dataframe["further description"] = ( - sheets + ": " + technology_dataframe["further description"] - ) + # add excel sheet names to data frame + wished_order = list(years) + ["unit", "source", "further description"] + data = data.reindex(columns=wished_order) + data.index.set_names(["technology", "parameter"], inplace=True) + sheets = data.reset_index()["technology"].map(sheet_names).fillna("") + sheets.index = data.index + data["further description"] = sheets + ": " + data["further description"] # add comment for offwind investment - if offwind_no_grid_costs_flag: - technology_dataframe.loc[("offwind", "investment"), "further description"] += ( - " grid connection costs subtracted from investment costs" - ) + if snakemake.config['offwind_no_gridcosts']: + data.loc[("offwind", "investment"), + "further description"] += " grid connection costs substracted from investment costs" - return technology_dataframe + return data -def convert_units(years: list, technology_dataframe: pd.DataFrame) -> pd.DataFrame: +def convert_units(data): """ - The function converts investment and efficiency units to be aligned with old pypsa assumptions. - - Parameters - ---------- - years : list - years for which a cost assumption is provided - technology_dataframe : pd.DataFrame - technology data cost assumptions - - Returns - ------- - Dataframe - updated technology data + convert investment and efficiency units to be align with old pypsa + assumptions """ - # convert efficiency from % -> per unit - technology_dataframe.loc[ - technology_dataframe.index.get_level_values(1).isin( - ["efficiency", "efficiency-heat"] - ), - years, - ] /= 100 - technology_dataframe.loc[ - technology_dataframe.index.get_level_values(1).isin( - ["efficiency", "efficiency-heat"] - ), - "unit", - ] = "per unit" + data.loc[data.index.get_level_values(1).isin(["efficiency", "efficiency-heat"]) + , years] /= 100 + data.loc[data.index.get_level_values(1).isin(["efficiency", "efficiency-heat"]) + , "unit"] = "per unit" # convert MW -> kW - to_convert = technology_dataframe.index.get_level_values(1).isin( - ["fixed", "investment"] - ) & technology_dataframe.unit.str.contains("/MW") - technology_dataframe.loc[to_convert, years] /= 1e3 - technology_dataframe.loc[to_convert, "unit"] = technology_dataframe.loc[ - to_convert, "unit" - ].str.replace("/MW", "/kW") + to_convert = (data.index.get_level_values(1).isin(["fixed", "investment"]) & + data.unit.str.contains("/MW")) + data.loc[to_convert, years] /= 1e3 + data.loc[to_convert, "unit"] = (data.loc[to_convert, "unit"].str + .replace("/MW","/kW")) - return technology_dataframe + return data -def add_gas_storage( - gas_storage_file_name: str, years: list, technology_dataframe: pd.DataFrame -) -> pd.DataFrame: +def add_gas_storage(data): """ - The function adds gas storage technology data, different methodology from other sheets. - - Parameters - ---------- - gas_storage_file_name: str - name of the dea input file containing the gas storage data - years : list - years for which a cost assumption is provided - technology_dataframe : pd.DataFrame - technology data cost assumptions - - Returns - ------- - Dataframe - updated technology data + add gas storage tech data, different methodolgy than other sheets and + therefore added later """ - gas_storage = pd.read_excel( - gas_storage_file_name, - sheet_name="150 Underground Storage of Gas", - index_col=1, - ) + gas_storage = pd.read_excel(snakemake.input.dea_storage, + sheet_name="150 Underground Storage of Gas", + index_col=1) gas_storage.dropna(axis=1, how="all", inplace=True) # establishment of one cavern ~ 100*1e6 Nm3 = 1.1 TWh - investment = gas_storage.loc["Total cost, 100 mio Nm3 active volume"].iloc[0] + investment = gas_storage.loc['Total cost, 100 mio Nm3 active volume'].iloc[0] # convert million EUR/1.1 TWh -> EUR/kWh - investment /= 1.1 * 1e3 - technology_dataframe.loc[("gas storage", "investment"), years] = investment - technology_dataframe.loc[("gas storage", "investment"), "source"] = source_dict[ - "DEA" - ] - technology_dataframe.loc[("gas storage", "investment"), "further description"] = ( - "150 Underground Storage of Gas, Establishment of one cavern (units converted)" - ) - technology_dataframe.loc[("gas storage", "investment"), "unit"] = "EUR/kWh" - technology_dataframe.loc[("gas storage", "investment"), "currency_year"] = 2015 - - technology_dataframe.loc[("gas storage", "lifetime"), years] = 100 - technology_dataframe.loc[("gas storage", "lifetime"), "source"] = "TODO no source" - technology_dataframe.loc[("gas storage", "lifetime"), "further description"] = ( - "estimation: most underground storage are already build, they do have a long lifetime" - ) - technology_dataframe.loc[("gas storage", "lifetime"), "unit"] = "years" - - # process equipment, injection (2200MW) withdrawal (6600MW) - # assuming half of investment costs for injection, half for withdrawal - investment_charge = ( - gas_storage.loc["Total investment cost"].iloc[0, 0] / 2 / 2200 * 1e3 - ) - investment_discharge = ( - gas_storage.loc["Total investment cost"].iloc[0, 0] / 2 / 6600 * 1e3 - ) - technology_dataframe.loc[("gas storage charger", "investment"), years] = ( - investment_charge - ) - technology_dataframe.loc[("gas storage discharger", "investment"), years] = ( - investment_discharge - ) - - technology_dataframe.loc[("gas storage charger", "investment"), "source"] = ( - source_dict["DEA"] - ) - technology_dataframe.loc[ - ("gas storage charger", "investment"), "further description" - ] = "150 Underground Storage of Gas, Process equipment (units converted)" - technology_dataframe.loc[("gas storage charger", "investment"), "unit"] = "EUR/kW" - technology_dataframe.loc[("gas storage charger", "investment"), "currency_year"] = ( - 2015 - ) - - technology_dataframe.loc[("gas storage discharger", "investment"), "source"] = ( - source_dict["DEA"] - ) - technology_dataframe.loc[ - ("gas storage discharger", "investment"), "further description" - ] = "150 Underground Storage of Gas, Process equipment (units converted)" - technology_dataframe.loc[("gas storage discharger", "investment"), "unit"] = ( - "EUR/kW" - ) - technology_dataframe.loc[("gas storage charger", "investment"), "currency_year"] = ( - 2015 - ) + investment /= (1.1 * 1e3) + data.loc[("gas storage", "investment"), years] = investment + data.loc[("gas storage", "investment"), "source"] = source_dict["DEA"] + data.loc[("gas storage", "investment"), "further description"] = "150 Underground Storage of Gas, Establishment of one cavern (units converted)" + data.loc[("gas storage", "investment"), "unit"] = "EUR/kWh" + data.loc[("gas storage", "investment"), "currency_year"] = 2015 + + data.loc[("gas storage", "lifetime"), years] = 100 + data.loc[("gas storage", "lifetime"), "source"] = "TODO no source" + data.loc[("gas storage", "lifetime"), "further description"] = "estimation: most underground storage are already build, they do have a long lifetime" + data.loc[("gas storage", "lifetime"), "unit"] = "years" + + + # process equipment, injection (2200MW) withdrawl (6600MW) + # assuming half of investment costs for injection, half for withdrawl + investment_charge = gas_storage.loc["Total investment cost"].iloc[0,0]/2/2200*1e3 + investment_discharge = gas_storage.loc["Total investment cost"].iloc[0,0]/2/6600*1e3 + data.loc[("gas storage charger", "investment"), years] = investment_charge + data.loc[("gas storage discharger", "investment"), years] = investment_discharge + + data.loc[("gas storage charger", "investment"), "source"] = source_dict["DEA"] + data.loc[("gas storage charger", "investment"), "further description"] = "150 Underground Storage of Gas, Process equipment (units converted)" + data.loc[("gas storage charger", "investment"), "unit"] = "EUR/kW" + data.loc[("gas storage charger", "investment"), "currency_year"] = 2015 + + + data.loc[("gas storage discharger", "investment"), "source"] = source_dict["DEA"] + data.loc[("gas storage discharger", "investment"), "further description"] = "150 Underground Storage of Gas, Process equipment (units converted)" + data.loc[("gas storage discharger", "investment"), "unit"] = "EUR/kW" + data.loc[("gas storage charger", "investment"), "currency_year"] = 2015 # operation + maintenance 400-500 million m³ = 4.4-5.5 TWh - FOM = ( - gas_storage.loc["Total, incl. administration"].iloc[0] - / (5.5 * investment * 1e3) - * 100 - ) - technology_dataframe.loc[("gas storage", "FOM"), years] = FOM - technology_dataframe.loc[("gas storage", "FOM"), "source"] = source_dict["DEA"] - technology_dataframe.loc[("gas storage", "FOM"), "further description"] = ( - "150 Underground Storage of Gas, Operation and Maintenance, salt cavern (units converted)" - ) - technology_dataframe.loc[("gas storage", "FOM"), "unit"] = "%" + FOM = gas_storage.loc["Total, incl. administration"].iloc[0] /(5.5*investment*1e3)*100 + data.loc[("gas storage", "FOM"), years] = FOM + data.loc[("gas storage", "FOM"), "source"] = source_dict["DEA"] + data.loc[("gas storage", "FOM"), "further description"] = "150 Underground Storage of Gas, Operation and Maintenace, salt cavern (units converted)" + data.loc[("gas storage", "FOM"), "unit"] = "%" - return technology_dataframe + return data +def add_carbon_capture(data, tech_data): -def add_carbon_capture( - years: list, - new_technology_dataframe: pd.DataFrame, - technology_dataframe: pd.DataFrame, -) -> pd.DataFrame: - """ - The function adds carbon capture rates. - - Parameters - ---------- - years : list - years for which a cost assumption is provided - new_technology_dataframe: - updated technology data cost assumptions - technology_dataframe : pd.DataFrame - existing technology data cost assumptions - - Returns - ------- - Dataframe - updated technology data - """ + for tech in ['cement capture', 'biomass CHP capture']: + data.loc[(tech,"capture_rate"), years] = tech_data.loc[(tech,'Ax) CO2 capture rate, net'), years].values[0]/100 + data.loc[(tech,"capture_rate"), 'unit'] = 'per unit' - for tech_name in ["cement capture", "biomass CHP capture"]: - new_technology_dataframe.loc[(tech_name, "capture_rate"), years] = ( - technology_dataframe.loc[ - (tech_name, "Ax) CO2 capture rate, net"), years - ].values[0] - / 100 - ) - new_technology_dataframe.loc[(tech_name, "capture_rate"), "unit"] = "per unit" - - for tech_name in ["direct air capture", "cement capture", "biomass CHP capture"]: - new_technology_dataframe.loc[(tech_name, "investment"), years] = ( - technology_dataframe.loc[(tech_name, "Specific investment"), years].values[ - 0 - ] - * 1e6 - ) - new_technology_dataframe.loc[(tech_name, "investment"), "unit"] = "EUR/(tCO2/h)" - - new_technology_dataframe.loc[(tech_name, "FOM"), years] = ( - technology_dataframe.loc[(tech_name, "Fixed O&M"), years].values[0] - / technology_dataframe.loc[ - (tech_name, "Specific investment"), years - ].values[0] - * 100 - ) - new_technology_dataframe.loc[(tech_name, "FOM"), "unit"] = "%/year" - - name_list = [ - ("C2) Eletricity input ", "electricity-input"), - ("C1) Heat input ", "heat-input"), - ("C1) Heat out ", "heat-output"), - ( - "CO₂ compression and dehydration - Electricity input", - "compression-electricity-input", - ), - ("CO₂ compression and dehydration - Heat out", "compression-heat-output"), - ] - for dea_name, our_name in name_list: - new_technology_dataframe.loc[(tech_name, our_name), years] = ( - technology_dataframe.loc[(tech_name, dea_name), years].values[0] - ) - new_technology_dataframe.loc[(tech_name, our_name), "unit"] = "MWh/tCO2" + for tech in ['direct air capture', 'cement capture', 'biomass CHP capture']: - new_technology_dataframe.loc[tech_name, "source"] = ( - new_technology_dataframe.loc[(tech_name, "lifetime"), "source"] - ) - new_technology_dataframe.loc[tech_name, "further description"] = ( - dea_sheet_names[tech_name] - ) - - return new_technology_dataframe + data.loc[(tech,"investment"), years] = tech_data.loc[(tech,'Specific investment'), years].values[0]*1e6 + data.loc[(tech,"investment"), 'unit'] = 'EUR/(tCO2/h)' + data.loc[(tech,"FOM"), years] = tech_data.loc[(tech,'Fixed O&M'), years].values[0]/tech_data.loc[(tech,'Specific investment'), years].values[0]*100 + data.loc[(tech,"FOM"), 'unit'] = '%/year' -def rename_pypsa_old(cost_dataframe_pypsa: pd.DataFrame) -> pd.DataFrame: - """ - The function renames old technology names to new ones to compare converts units from water tanks to compare. - - Parameters - ---------- - cost_dataframe_pypsa: - technology data cost assumptions + name_list = [('C2) Eletricity input ',"electricity-input"), + ('C1) Heat input ',"heat-input"), + ('C1) Heat out ','heat-output'), + ('CO₂ compression and dehydration - Electricity input',"compression-electricity-input"), + ('CO₂ compression and dehydration - Heat out',"compression-heat-output")] - Returns - ------- - Dataframe - updated technology data - """ - - to_drop = ["retrofitting I", "retrofitting II"] - cost_dataframe_pypsa.drop(to_drop, level=0, inplace=True) + for dea_name, our_name in name_list: + data.loc[(tech,our_name), years] = tech_data.loc[(tech,dea_name), years].values[0] + data.loc[(tech,our_name), 'unit'] = 'MWh/tCO2' + + data.loc[tech,'source'] = data.loc[(tech,'lifetime'),'source'] + data.loc[tech,'further description'] = sheet_names[tech] + + return data + +def add_perennials_gbr(data): + """function that add perennials and green biorefining (GBR) including biogas production plant. + it considers purchase of raw materials (perennials) and sales of other products (proteins and biogas feedstock) in the VOM + + references: + R1 : https://doi.org/10.1016/B978-0-323-95879-0.50147-8 + R3: https://dcapub.au.dk/djfpublikation/djfpdf/DCArapport193.pdf + """ + """ general paramaters""" + LHV_ch4 = 50 / 3.6 # MWh/t + EUR_DKK = 7.46 # €/DKK + '''PERENNIALS AND GREEN BIOREFINING''' + + """GBR Cost estimation - Investment + OPEX. TENTATIVE + ref: R1 """ + + # MASS & ENERGY BALANCE + DM_perennials = 0.18 # dry matter content + biogas_ch4_vol = 0.348 # mass% CH4 in biogas + flh_y = 4200 # green crops harvest is only May-October + perennials_input_flow = 40 * DM_perennials # t_DM/h + perennials_input_annual = perennials_input_flow * flh_y # t_DM /y + protein_output_flow = 1.4 # t_DM/h + protein_output_annual = protein_output_flow * flh_y # t_protein_concentrate / y + biogas_output_flow = 0.29 * biogas_ch4_vol * LHV_ch4 # (t/tDM) * (%m CH4) + electricity_input_flow = 7.33/100 * perennials_input_flow + + # COSTS + # NOTE the biogas plat capacity was adjusted based assuming that the biogas plant can run the whole year around + capacity_ratio_biogas_gbr = flh_y / 8760 # we assume the feedstock from gbr can be stored + investment_biogas_adjusted = data.loc[('biogas','investment'), 2020] * biogas_output_flow / perennials_input_flow * (capacity_ratio_biogas_gbr - 1) # €/tDM biomass + FOM = 0 # (%investment) Own assumption + investment = 9.33 * 1e6 / (40 * DM_perennials) + investment_biogas_adjusted # t/tDM/h including biogas plant ref: R1 Table 4 + + # OPEX + protein_price = 535 # €/t ref: R1 + perennial_cost = 130 # €/tDM ref: R1 + other_VOM = (0.45 * 1e6)/ (40* DM_perennials * flh_y) # €/tDM ref: R1, Table 4: "labor and maintenance" + VOM = (perennial_cost - protein_price * protein_output_annual / perennials_input_annual + other_VOM) # EUR//tDM + + data.loc[("perennials gbr", "investment"), years] = investment + data.loc[("perennials gbr", "investment"), "source"] = 'https://doi.org/10.1016/B978-0-323-95879-0.50147-8' + data.loc[("perennials gbr", + "investment"), "further description"] = "includes cost for biogas plant without upgrading" + data.loc[("perennials gbr", "investment"), "unit"] = "EUR/tDM/h" + data.loc[("perennials gbr", "investment"), "currency_year"] = 2020 + + data.loc[("perennials gbr", "lifetime"), years] = 25 + data.loc[("perennials gbr", "lifetime"), "source"] = "Own assumption" + data.loc[("perennials gbr", + "lifetime"), "further description"] = "" + data.loc[("perennials gbr", "lifetime"), "unit"] = "years" + + data.loc[("perennials gbr", "FOM"), years] = FOM + data.loc[("perennials gbr", "FOM"), "source"] = "Own assumption" + data.loc[("perennials gbr", + "FOM"), "further description"] = "" + data.loc[("perennials gbr", "FOM"), "unit"] = "%year" + data.loc[("perennials gbr", "FOM"), "currency_year"] = 2020 + + data.loc[("perennials gbr", "VOM"), years] = VOM + data.loc[("perennials gbr", "VOM"), "source"] = "https://doi.org/10.1016/B978-0-323-95879-0.50147-8" + data.loc[("perennials gbr", + "VOM"), "further description"] = "includes purchase of perennial crops and sales of proteine concentrate, table 8.1 wages, maintenance and auxiliary costs" + data.loc[("perennials gbr", "VOM"), "unit"] = "EUR/tDM" + data.loc[("perennials gbr", "VOM"), "currency_year"] = 2020 + + data.loc[("perennials gbr", "biogas-output"), years] = biogas_output_flow / perennials_input_flow # MWh/tDM + data.loc[("perennials gbr", "biogas-output"), "source"] = "https://doi.org/10.1016/B978-0-323-95879-0.50147-8" + data.loc[("perennials gbr", + "biogas-output"), "further description"] = "table 2" + data.loc[("perennials gbr", "biogas-output"), "unit"] = "MWh/tDM" + + data.loc[("perennials gbr", "electricity-input"), years] = electricity_input_flow / perennials_input_flow + data.loc[("perennials gbr", "electricity-input"), "source"] = "https://doi.org/10.1016/B978-0-323-95879-0.50147-8" + data.loc[("perennials gbr", + "electricity-input"), "further description"] = "table 2" + data.loc[("perennials gbr", "electricity-input"), "unit"] = "MWh/tDM" + + return data + + +def rename_pypsa_old(costs_pypsa): + """ + renames old technology names to new ones to compare + converts units from water tanks to compare + """ + + to_drop = ['retrofitting I', 'retrofitting II'] + costs_pypsa.drop(to_drop, level=0, inplace=True) # rename to new names - cost_dataframe_pypsa.rename({"central CHP": "central gas CHP"}, inplace=True) - cost_dataframe_pypsa.rename( - {"hydrogen underground storage": "hydrogen storage underground"}, inplace=True - ) + costs_pypsa.rename({'central CHP': 'central gas CHP'}, inplace=True) + costs_pypsa.rename({'hydrogen underground storage': 'hydrogen storage underground'}, + inplace=True) - # convert EUR/m^3 to EUR/kWh for 40 K diff and 1.17 kWh/m^3/K - cost_dataframe_pypsa.loc[ - ("decentral water tank storage", "investment"), "value" - ] /= 1.17 * 40 - cost_dataframe_pypsa.loc[("decentral water tank storage", "investment"), "unit"] = ( - "EUR/kWh" - ) + #convert EUR/m^3 to EUR/kWh for 40 K diff and 1.17 kWh/m^3/K + costs_pypsa.loc[('decentral water tank storage','investment'), + 'value'] /= 1.17*40 + costs_pypsa.loc[('decentral water tank storage','investment'),'unit'] = 'EUR/kWh' - return cost_dataframe_pypsa + return costs_pypsa +def add_manual_input(data, exclusions=None): -def add_manual_input(technology_dataframe: pd.DataFrame) -> pd.DataFrame: - """ - The function adds input from manual_input.csv. + df = pd.read_csv(snakemake.input['manual_input'], quotechar='"',sep=',', keep_default_na=False) + df = df.rename(columns={"further_description": "further description"}) - Parameters - ---------- - technology_dataframe: - technology data cost assumptions - Returns - ------- - Dataframe - updated technology data - """ + # --- exact-match exclusion (case-sensitive) --- + if exclusions: + df = df[~df['technology'].isin(exclusions)].copy() + # --------------------------------------------------- + + l = [] + for tech in df['technology'].unique(): + c0 = df[df['technology'] == tech] + for param in c0['parameter'].unique(): - df = pd.read_csv( - snakemake.input["manual_input"], quotechar='"', sep=",", keep_default_na=False - ) - df = df.rename(columns={"further_description": "further description"}) + c = df.query('technology == @tech and parameter == @param') - content_list = [] - for tech_name in df["technology"].unique(): - c0 = df[df["technology"] == tech_name] - for param in c0["parameter"].unique(): - queried_df = df.query("technology == @tech_name and parameter == @param") - - row_series = pd.Series( - index=snakemake.config["years"], - data=np.interp( - snakemake.config["years"], queried_df["year"], queried_df["value"] - ), - name=param, - ) - row_series["parameter"] = param - row_series["technology"] = tech_name + s = pd.Series(index=snakemake.config['years'], + data=np.interp(snakemake.config['years'], c['year'], c['value']), + name=param) + s['parameter'] = param + s['technology'] = tech try: - row_series["currency_year"] = int(queried_df["currency_year"].values[0]) + s["currency_year"] = int(c["currency_year"].values[0]) except ValueError: - row_series["currency_year"] = np.nan - for col in ["unit", "source", "further description"]: - row_series[col] = "; and\n".join(queried_df[col].unique().astype(str)) - row_series = row_series.rename( - {"further_description": "further description"} - ) # match column name between manual_input and original TD workflow - content_list.append(row_series) - - new_df = pd.DataFrame(content_list).set_index(["technology", "parameter"]) - technology_dataframe.index.set_names(["technology", "parameter"], inplace=True) + s["currency_year"] = np.nan + for col in ['unit','source','further description']: + s[col] = "; and\n".join(c[col].unique().astype(str)) + s = s.rename({"further_description":"further description"}) # match column name between manual_input and original TD workflow + l.append(s) + + new_df = pd.DataFrame(l).set_index(['technology','parameter']) + data.index.set_names(["technology", "parameter"], inplace=True) # overwrite DEA data with manual input - technology_dataframe = new_df.combine_first(technology_dataframe) - - return technology_dataframe + data = new_df.combine_first(data) + return data -def rename_ISE(cost_dataframe_ise: pd.DataFrame) -> pd.DataFrame: - """ - The function renames ISE costs to fit to tech data. - - Parameters - ---------- - cost_dataframe_ise: - ISE cost assumptions - - Returns - ------- - Dataframe - updated technology data - """ - - cost_dataframe_ise.rename( - index={ - "Investition": "investment", - "Lebensdauer": "lifetime", - "M/O-Kosten": "FOM", - }, - columns={ - "Einheit": "unit", - "2020": 2020, - "2025": 2025, - "2030": 2030, - "2035": 2035, - "2040": 2040, - "2045": 2045, - "2050": 2050, - }, - inplace=True, - ) - cost_dataframe_ise.index.names = ["technology", "parameter"] - cost_dataframe_ise["unit"] = cost_dataframe_ise.unit.replace( - {"a": "years", "% Invest": "%"} - ) - cost_dataframe_ise["source"] = source_dict["ISE"] - cost_dataframe_ise["further description"] = cost_dataframe_ise.reset_index()[ - "technology" - ].values - # could not find specific currency year in report, assume year of publication - cost_dataframe_ise["currency_year"] = 2020 - - return cost_dataframe_ise +def add_manual_input_industry(data, exclusions=None): + # function that adds manual inputs for industrial components + df = pd.read_csv(snakemake.input['manual_input_industry'], quotechar='"', sep=',', keep_default_na=False) + df = df.rename(columns={"further_description": "further description"}) -def rename_ISE_vehicles(costs_vehicles_dataframe: pd.DataFrame) -> pd.DataFrame: - """ - The function renames ISE vehicles costs to fit to tech data. + # --- exact-match exclusion (case-sensitive) --- + if exclusions: + df = df[~df['technology'].isin(exclusions)].copy() + # --------------------------------------------------- - Parameters - ---------- - costs_vehicles_dataframe: - vehicles ISE cost assumptions + l = [] + for tech in df['technology'].unique(): + c0 = df[df['technology'] == tech] + for param in c0['parameter'].unique(): - Returns - ------- - Dataframe - updated technology data - """ + c = df.query('technology == @tech and parameter == @param') - costs_vehicles_dataframe.rename( - index={ - "Investition": "investment", - "Lebensdauer": "lifetime", - "M/O-Kosten": "FOM", - "Wirkungsgrad*": "efficiency", - "PKW Batterie-Elektromotor": "Battery electric (passenger cars)", - "LKW Batterie-Elektromotor": "Battery electric (trucks)", - "LKW H2- Brennstoffzelle": "Hydrogen fuel cell (trucks)", - "PKW H2- Brennstoffzelle": "Hydrogen fuel cell (passenger cars)", - "LKW ICE- Fl�ssigtreibstoff": "Liquid fuels ICE (trucks)", - "PKW ICE- Fl�ssigtreibstoff": "Liquid fuels ICE (passenger cars)", - "LKW Ladeinfrastruktur Brennstoffzellen Fahrzeuge * LKW": "Charging infrastructure fuel cell vehicles trucks", - "PKW Ladeinfrastruktur Brennstoffzellen Fahrzeuge * PKW": "Charging infrastructure fuel cell vehicles passenger cars", - "PKW Ladeinfrastruktur schnell (reine) Batteriefahrzeuge*": "Charging infrastructure fast (purely) battery electric vehicles passenger cars", - "Ladeinfrastruktur langsam (reine) Batteriefahrzeuge*": "Charging infrastructure slow (purely) battery electric vehicles passenger cars", - }, - columns={ - "Einheit": "unit", - "2020": 2020, - "2025": 2025, - "2030": 2030, - "2035": 2035, - "2040": 2040, - "2045": 2045, - "2050": 2050, - }, - inplace=True, - ) - costs_vehicles_dataframe.index.names = ["technology", "parameter"] - costs_vehicles_dataframe["unit"] = costs_vehicles_dataframe.unit.replace( - {"a": "years", "% Invest": "%"} - ) - costs_vehicles_dataframe["source"] = source_dict["vehicles"] + s = pd.Series(index=snakemake.config['years'], + data=np.interp(snakemake.config['years'], c['year'], c['value']), + name=param) + s['parameter'] = param + s['technology'] = tech + try: + s["currency_year"] = int(c["currency_year"].values[0]) + except ValueError: + s["currency_year"] = np.nan + for col in ['unit', 'source', 'further description']: + s[col] = "; and\n".join(c[col].unique().astype(str)) + s = s.rename({ + "further_description": "further description"}) # match column name between manual_input and original TD workflow + l.append(s) + + new_df = pd.DataFrame(l).set_index(['technology', 'parameter']) + data.index.set_names(["technology", "parameter"], inplace=True) + # overwrite DEA data with manual input + data = new_df.combine_first(data) + + return data + + +def rename_ISE(costs_ISE): + """ + rename ISE costs to fit to tech data + """ + costs_ISE.rename(index = {"Investition": "investment", + "Lebensdauer": "lifetime", + "M/O-Kosten": "FOM"}, + columns = {"Einheit": "unit", + "2020": 2020, + "2025": 2025, + "2030": 2030, + "2035": 2035, + "2040": 2040, + "2045": 2045, + "2050": 2050}, inplace=True) + costs_ISE.index.names = ["technology", "parameter"] + costs_ISE["unit"] = costs_ISE.unit.replace({"a": "years", "% Invest": "%"}) + costs_ISE["source"] = source_dict["ISE"] + costs_ISE['further description'] = costs_ISE.reset_index()["technology"].values # could not find specific currency year in report, assume year of publication - costs_vehicles_dataframe["currency_year"] = 2020 - costs_vehicles_dataframe["further description"] = ( - costs_vehicles_dataframe.reset_index()["technology"].values - ) - return costs_vehicles_dataframe - - -def carbon_flow( - years: list, cost_dataframe: pd.DataFrame, year_to_use: int -) -> pd.DataFrame: - """ - The function renames ISE vehicles costs to fit to tech data. - - Parameters - ---------- - years : list - years for which a cost assumption is provided - cost_dataframe: - cost dataframe - year_to_use: int - year to use - - Returns - ------- - Dataframe - updated technology data - """ + costs_ISE['currency_year'] = 2020 + + return costs_ISE + + +def rename_ISE_vehicles(costs_vehicles): + """ + rename ISE_vehicles costs to fit to tech data + """ + + costs_vehicles.rename(index = {"Investition": "investment", + "Lebensdauer": "lifetime", + "M/O-Kosten": "FOM", + "Wirkungsgrad*" : "efficiency", + "PKW Batterie-Elektromotor" : "Battery electric (passenger cars)", + "LKW Batterie-Elektromotor" : "Battery electric (trucks)", + "LKW H2- Brennstoffzelle": "Hydrogen fuel cell (trucks)", + "PKW H2- Brennstoffzelle": "Hydrogen fuel cell (passenger cars)", + "LKW ICE- Fl�ssigtreibstoff": "Liquid fuels ICE (trucks)", + "PKW ICE- Fl�ssigtreibstoff": "Liquid fuels ICE (passenger cars)", + "LKW Ladeinfrastruktur Brennstoffzellen Fahrzeuge * LKW": "Charging infrastructure fuel cell vehicles trucks", + "PKW Ladeinfrastruktur Brennstoffzellen Fahrzeuge * PKW": "Charging infrastructure fuel cell vehicles passenger cars", + "PKW Ladeinfrastruktur schnell (reine) Batteriefahrzeuge*" : "Charging infrastructure fast (purely) battery electric vehicles passenger cars", + "Ladeinfrastruktur langsam (reine) Batteriefahrzeuge*" : "Charging infrastructure slow (purely) battery electric vehicles passenger cars"}, + columns = {"Einheit": "unit", + "2020": 2020, + "2025": 2025, + "2030": 2030, + "2035": 2035, + "2040": 2040, + "2045": 2045, + "2050": 2050}, inplace=True) + costs_vehicles.index.names = ["technology", "parameter"] + costs_vehicles["unit"] = costs_vehicles.unit.replace({"a": "years", "% Invest": "%"}) + costs_vehicles["source"] = source_dict["vehicles"] + # could not find specific currency year in report, assume year of publication + costs_vehicles["currency_year"] = 2020 + costs_vehicles['further description'] = costs_vehicles.reset_index()["technology"].values + return costs_vehicles +def carbon_flow(costs,year): # NB: This requires some digits of accuracy; rounding to two digits creates carbon inbalances when scaling up - c_in_char = 0 # Carbon ending up in char: zero avoids inbalace -> assumed to be circulated back and eventually end up in one of the other output streams - medium_out = "" - CH4_specific_energy = 50 # GJ/t methane + c_in_char = 0 # Carbon ending up in char: zero avoids inbalace -> assumed to be circulated back and eventually end up in one of the other output streams + medium_out = '' + CH4_specific_energy = 50 #GJ/t methane btlcost_data = np.interp(x=years, xp=[2020, 2050], fp=[3500, 2000]) btl_cost = pd.Series(data=btlcost_data, index=years) @@ -2819,656 +2324,421 @@ def carbon_flow( btleta_data = np.interp(x=years, xp=[2020, 2050], fp=[0.35, 0.45]) btl_eta = pd.Series(data=btleta_data, index=years) - # Adding pelletizing cost to biomass boiler - cost_dataframe.loc[("biomass boiler", "pelletizing cost"), "value"] = 9 - cost_dataframe.loc[("biomass boiler", "pelletizing cost"), "unit"] = ( - "EUR/MWh_pellets" - ) - cost_dataframe.loc[("biomass boiler", "pelletizing cost"), "currency_year"] = 2019 - cost_dataframe.loc[("biomass boiler", "pelletizing cost"), "source"] = ( - "Assumption based on doi:10.1016/j.rser.2019.109506" - ) + #Adding pelletizing cost to biomass boiler + costs.loc[('biomass boiler', 'pelletizing cost'), 'value'] = 9 + costs.loc[('biomass boiler', 'pelletizing cost'), 'unit'] = "EUR/MWh_pellets" + costs.loc[('biomass boiler', 'pelletizing cost'), 'currency_year'] = 2019 + costs.loc[('biomass boiler', 'pelletizing cost'), 'source'] = "Assumption based on doi:10.1016/j.rser.2019.109506" + - for tech_name in [ - "Fischer-Tropsch", - "methanolisation", - "BtL", - "biomass-to-methanol", - "BioSNG", - "biogas", - "biogas CC", - "digestible biomass to hydrogen", - "solid biomass to hydrogen", - "electrobiofuels", - ]: + for tech in ['Fischer-Tropsch', 'methanolisation', 'BtL', 'biomass-to-methanol', 'BioSNG', 'biogas', + 'biogas CC', 'digestible biomass to hydrogen', + 'solid biomass to hydrogen', 'electrobiofuels']: inv_cost = 0 eta = 0 lifetime = 0 FOM = 0 VOM = 0 currency_year = np.nan - source = "TODO" + source = 'TODO' co2_capture_rate = 0.90 - if (tech_name, "capture rate") not in cost_dataframe.index: - cost_dataframe.loc[(tech_name, "capture rate"), "value"] = co2_capture_rate - cost_dataframe.loc[(tech_name, "capture rate"), "unit"] = "per unit" - cost_dataframe.loc[(tech_name, "capture rate"), "source"] = ( - "Assumption based on doi:10.1016/j.biombioe.2015.01.006" - ) - - if tech_name == "BtL": - inv_cost = btl_cost[year_to_use] - medium_out = "oil" - eta = btl_eta[year_to_use] + if not (tech, "capture rate") in costs.index: + costs.loc[(tech, 'capture rate'), 'value'] = co2_capture_rate + costs.loc[(tech, 'capture rate'), 'unit'] = "per unit" + costs.loc[(tech, 'capture rate'), 'source'] = "Assumption based on doi:10.1016/j.biombioe.2015.01.006" + + + if tech == 'BtL': + inv_cost = btl_cost[year] + medium_out = 'oil' + eta = btl_eta[year] source = "doi:10.1016/j.enpol.2017.05.013" currency_year = 2017 - if tech_name == "biomass-to-methanol": - medium_out = "methanol" + if tech == 'biomass-to-methanol': + medium_out = 'methanol' - elif tech_name == "BioSNG": - medium_out = "gas" + elif tech == 'BioSNG': + medium_out = 'gas' lifetime = 25 - elif tech_name in ["biogas", "biogas CC"]: + elif tech in ['biogas', 'biogas CC']: eta = 1 source = "Assuming input biomass is already given in biogas output" - AD_CO2_share = 0.4 # volumetric share in biogas (rest is CH4) - - elif tech_name == "biogas plus hydrogen": - # NB: this falls between power to gas and biogas and should be used with care, due to possible minor - # differences in resource use etc. which may tweak results in favour of one tech or another - eta = 1.6 - H2_in = 0.46 - - heat_out = 0.19 - source = "Calculated from data in Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx" - cost_dataframe.loc[(tech_name, "hydrogen input"), "value"] = H2_in - cost_dataframe.loc[(tech_name, "hydrogen input"), "unit"] = "MWh_H2/MWh_CH4" - cost_dataframe.loc[(tech_name, "hydrogen input"), "source"] = source - - cost_dataframe.loc[(tech_name, "heat output"), "value"] = heat_out - cost_dataframe.loc[(tech_name, "heat output"), "unit"] = "MWh_th/MWh_CH4" - cost_dataframe.loc[(tech_name, "heat output"), "source"] = source - currency_year = cost_dataframe.loc[ - ("biogas plus hydrogen", "VOM"), "currency_year" - ] - - # TODO: this needs to be refined based on e.g. stoichiometry: - AD_CO2_share = 0.1 # volumetric share in biogas (rest is CH4). - - elif tech_name == "digestible biomass to hydrogen": - inv_cost = bmH2_cost[year_to_use] + AD_CO2_share = 0.4 #volumetric share in biogas (rest is CH4) + + + #elif tech == 'biogas plus hydrogen': + # #NB: this falls between power to gas and biogas and should be used with care, due to possible minor + # # differences in resource use etc. which may tweak results in favour of one tech or another + # eta = 1.6 + # H2_in = 0.46 + + # heat_out = 0.19 + # source = "Calculated from data in Danish Energy Agency, data_sheets_for_renewable_fuels.xlsx" + # costs.loc[(tech, 'hydrogen input'), 'value'] = H2_in + # costs.loc[(tech, 'hydrogen input'), 'unit'] = "MWh_H2/MWh_CH4" + # costs.loc[(tech, 'hydrogen input'), 'source'] = source + + # costs.loc[(tech, 'heat output'), 'value'] = heat_out + # costs.loc[(tech, 'heat output'), 'unit'] = "MWh_th/MWh_CH4" + # costs.loc[(tech, 'heat output'), 'source'] = source + # currency_year = costs.loc[('biogas plus hydrogen', 'VOM'), "currency_year"] + + # #TODO: this needs to be refined based on e.g. stoichiometry: + # AD_CO2_share = 0.1 #volumetric share in biogas (rest is CH4). + + elif tech == 'digestible biomass to hydrogen': + inv_cost = bmH2_cost[year] eta = 0.39 FOM = 4.25 currency_year = 2014 - costs.loc[(tech_name, "FOM"), "currency_year"] = 2014 - source = "Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014" # source_dict('HyNOW') + source = 'Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014' #source_dict('HyNOW') - elif tech_name == "solid biomass to hydrogen": - inv_cost = bmH2_cost[year_to_use] + elif tech == 'solid biomass to hydrogen': + inv_cost = bmH2_cost[year] eta = 0.56 FOM = 4.25 currency_year = 2014 - cost_dataframe.loc[(tech_name, "FOM"), "currency_year"] = 2014 - source = "Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014" # source_dict('HyNOW') + source = 'Zech et.al. DBFZ Report Nr. 19. Hy-NOW - Evaluierung der Verfahren und Technologien für die Bereitstellung von Wasserstoff auf Basis von Biomasse, DBFZ, 2014' #source_dict('HyNOW') if eta > 0: - cost_dataframe.loc[(tech_name, "efficiency"), "value"] = eta - cost_dataframe.loc[(tech_name, "efficiency"), "unit"] = "per unit" - cost_dataframe.loc[(tech_name, "efficiency"), "source"] = source - - if tech_name in ["BioSNG", "BtL", "biomass-to-methanol"]: - input_CO2_intensity = cost_dataframe.loc[ - ("solid biomass", "CO2 intensity"), "value" - ] - - cost_dataframe.loc[(tech_name, "C in fuel"), "value"] = ( - cost_dataframe.loc[(tech_name, "efficiency"), "value"] - * cost_dataframe.loc[(medium_out, "CO2 intensity"), "value"] - / input_CO2_intensity - ) - cost_dataframe.loc[(tech_name, "C stored"), "value"] = ( - 1 - cost_dataframe.loc[(tech_name, "C in fuel"), "value"] - c_in_char - ) - cost_dataframe.loc[(tech_name, "CO2 stored"), "value"] = ( - input_CO2_intensity - * cost_dataframe.loc[(tech_name, "C stored"), "value"] - ) - - cost_dataframe.loc[(tech_name, "C in fuel"), "unit"] = "per unit" - cost_dataframe.loc[(tech_name, "C stored"), "unit"] = "per unit" - cost_dataframe.loc[(tech_name, "CO2 stored"), "unit"] = "tCO2/MWh_th" - - cost_dataframe.loc[(tech_name, "C in fuel"), "source"] = ( - "Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016" - ) - cost_dataframe.loc[(tech_name, "C stored"), "source"] = ( - "Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016" - ) - cost_dataframe.loc[(tech_name, "CO2 stored"), "source"] = ( - "Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016" - ) - - elif tech_name in ["electrobiofuels"]: - input_CO2_intensity = cost_dataframe.loc[ - ("solid biomass", "CO2 intensity"), "value" - ] - oil_CO2_intensity = cost_dataframe.loc[("oil", "CO2 intensity"), "value"] - - cost_dataframe.loc[("electrobiofuels", "C in fuel"), "value"] = ( - cost_dataframe.loc[("BtL", "C in fuel"), "value"] - + cost_dataframe.loc[("BtL", "C stored"), "value"] - * cost_dataframe.loc[("Fischer-Tropsch", "capture rate"), "value"] - ) - cost_dataframe.loc[("electrobiofuels", "C in fuel"), "unit"] = "per unit" - cost_dataframe.loc[("electrobiofuels", "C in fuel"), "source"] = ( - "Stoichiometric calculation" - ) - - cost_dataframe.loc[("electrobiofuels", "efficiency-biomass"), "value"] = ( - cost_dataframe.loc[("electrobiofuels", "C in fuel"), "value"] - * input_CO2_intensity - / oil_CO2_intensity - ) - cost_dataframe.loc[("electrobiofuels", "efficiency-biomass"), "unit"] = ( - "per unit" - ) - cost_dataframe.loc[("electrobiofuels", "efficiency-biomass"), "source"] = ( - "Stoichiometric calculation" - ) - - efuel_scale_factor = ( - cost_dataframe.loc[("BtL", "C stored"), "value"] - * cost_dataframe.loc[("Fischer-Tropsch", "capture rate"), "value"] - ) - - cost_dataframe.loc[("electrobiofuels", "efficiency-hydrogen"), "value"] = ( - cost_dataframe.loc[("Fischer-Tropsch", "efficiency"), "value"] - / efuel_scale_factor - ) - cost_dataframe.loc[("electrobiofuels", "efficiency-hydrogen"), "unit"] = ( - "per unit" - ) - cost_dataframe.loc[("electrobiofuels", "efficiency-hydrogen"), "source"] = ( - "Stoichiometric calculation" - ) - - cost_dataframe.loc[("electrobiofuels", "efficiency-tot"), "value"] = 1 / ( - 1 - / cost_dataframe.loc[ - ("electrobiofuels", "efficiency-hydrogen"), "value" - ] - + 1 - / cost_dataframe.loc[("electrobiofuels", "efficiency-biomass"), "value"] - ) - cost_dataframe.loc[("electrobiofuels", "efficiency-tot"), "unit"] = ( - "per unit" - ) - cost_dataframe.loc[("electrobiofuels", "efficiency-tot"), "source"] = ( - "Stoichiometric calculation" - ) - - cost_dataframe.loc[("electrobiofuels", "efficiency-hydrogen"), "value"] = ( - cost_dataframe.loc[("Fischer-Tropsch", "efficiency"), "value"] - / efuel_scale_factor - ) - cost_dataframe.loc[("electrobiofuels", "efficiency-hydrogen"), "unit"] = ( - "per unit" - ) - cost_dataframe.loc[("electrobiofuels", "efficiency-hydrogen"), "source"] = ( - "Stoichiometric calculation" - ) - - cost_dataframe.loc[("electrobiofuels", "efficiency-tot"), "value"] = 1 / ( - 1 - / cost_dataframe.loc[ - ("electrobiofuels", "efficiency-hydrogen"), "value" - ] - + 1 - / cost_dataframe.loc[("electrobiofuels", "efficiency-biomass"), "value"] - ) - cost_dataframe.loc[("electrobiofuels", "efficiency-tot"), "unit"] = ( - "per unit" - ) - cost_dataframe.loc[("electrobiofuels", "efficiency-tot"), "source"] = ( - "Stoichiometric calculation" - ) - - inv_cost = ( - btl_cost[year_to_use] - + cost_dataframe.loc[("Fischer-Tropsch", "investment"), "value"] - * efuel_scale_factor - ) - VOM = ( - cost_dataframe.loc[("BtL", "VOM"), "value"] - + cost_dataframe.loc[("Fischer-Tropsch", "VOM"), "value"] - * efuel_scale_factor - ) - FOM = cost_dataframe.loc[("BtL", "FOM"), "value"] - medium_out = "oil" - currency_year = cost_dataframe.loc[ - ("Fischer-Tropsch", "investment"), "currency_year" - ] - cost_dataframe.loc[(tech_name, "FOM"), "currency_year"] = 2015 + costs.loc[(tech, 'efficiency'), 'value'] = eta + costs.loc[(tech, 'efficiency'), 'unit'] = "per unit" + costs.loc[(tech, 'efficiency'), 'source'] = source + + if tech in ['BioSNG', 'BtL', 'biomass-to-methanol']: + input_CO2_intensity = costs.loc[('solid biomass', 'CO2 intensity'), 'value'] + + costs.loc[(tech, 'C in fuel'), 'value'] = costs.loc[(tech, 'efficiency'), 'value'] \ + * costs.loc[(medium_out, 'CO2 intensity'), 'value'] \ + / input_CO2_intensity + costs.loc[(tech, 'C stored'), 'value'] = 1 - costs.loc[(tech, 'C in fuel'), 'value'] - c_in_char + costs.loc[(tech, 'CO2 stored'), 'value'] = input_CO2_intensity * costs.loc[(tech, 'C stored'), 'value'] + + costs.loc[(tech, 'C in fuel'), 'unit'] = "per unit" + costs.loc[(tech, 'C stored'), 'unit'] = "per unit" + costs.loc[(tech, 'CO2 stored'), 'unit'] = "tCO2/MWh_th" + + costs.loc[(tech, 'C in fuel'), 'source'] = "Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016" + costs.loc[(tech, 'C stored'), 'source'] = "Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016" + costs.loc[(tech, 'CO2 stored'), 'source'] = "Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016" + + elif tech in ['electrobiofuels']: + + input_CO2_intensity = costs.loc[('solid biomass', 'CO2 intensity'), 'value'] + oil_CO2_intensity = costs.loc[('oil', 'CO2 intensity'), 'value'] + + costs.loc[('electrobiofuels', 'C in fuel'), 'value'] = (costs.loc[('BtL', 'C in fuel'), 'value'] + + costs.loc[('BtL', 'C stored'), 'value'] + * costs.loc[('Fischer-Tropsch', 'capture rate'), 'value']) + costs.loc[('electrobiofuels', 'C in fuel'), 'unit'] = 'per unit' + costs.loc[('electrobiofuels', 'C in fuel'), 'source'] = 'Stoichiometric calculation' + + costs.loc[('electrobiofuels', 'efficiency-biomass'), 'value'] = costs.loc[('electrobiofuels', 'C in fuel'), 'value'] \ + * input_CO2_intensity / oil_CO2_intensity + costs.loc[('electrobiofuels', 'efficiency-biomass'), 'unit'] = 'per unit' + costs.loc[('electrobiofuels', 'efficiency-biomass'), 'source'] = 'Stoichiometric calculation' + + + efuel_scale_factor = costs.loc[('BtL', 'C stored'), 'value']* costs.loc[('Fischer-Tropsch', 'capture rate'), 'value'] + + costs.loc[('electrobiofuels', 'efficiency-hydrogen'), 'value'] = costs.loc[('Fischer-Tropsch', 'efficiency'), 'value']\ + / efuel_scale_factor + costs.loc[('electrobiofuels', 'efficiency-hydrogen'), 'unit'] = 'per unit' + costs.loc[('electrobiofuels', 'efficiency-hydrogen'), 'source'] = 'Stoichiometric calculation' + + costs.loc[('electrobiofuels', 'efficiency-tot'), 'value'] = (1 / + (1 / costs.loc[('electrobiofuels', 'efficiency-hydrogen'), 'value'] + + 1 / costs.loc[('electrobiofuels', 'efficiency-biomass'), 'value'])) + costs.loc[('electrobiofuels', 'efficiency-tot'), 'unit'] = 'per unit' + costs.loc[('electrobiofuels', 'efficiency-tot'), 'source'] = 'Stoichiometric calculation' + + inv_cost = btl_cost[year] + costs.loc[('Fischer-Tropsch', 'investment'), 'value'] * efuel_scale_factor + VOM = costs.loc[('BtL', 'VOM'), 'value'] + costs.loc[('Fischer-Tropsch', 'VOM'), 'value'] * efuel_scale_factor + FOM = costs.loc[('BtL', 'FOM'), 'value'] + medium_out = 'oil' + currency_year = costs.loc[('Fischer-Tropsch', 'investment'), "currency_year"] source = "combination of BtL and electrofuels" - elif tech_name in ["biogas", "biogas CC", "biogas plus hydrogen"]: - CH4_density = 0.657 # kg/Nm3 - CO2_density = 1.98 # kg/Nm3 - CH4_vol_energy_density = ( - CH4_specific_energy * CH4_density / (1000 * 3.6) - ) # MJ/Nm3 -> MWh/Nm3 - CO2_weight_share = ( - AD_CO2_share * CO2_density - ) # TODO: what value is used for AD_CO2_share in this if branch? - - cost_dataframe.loc[(tech_name, "CO2 stored"), "value"] = ( - CO2_weight_share / CH4_vol_energy_density / 1000 - ) # tCO2/MWh,in (NB: assuming the input is already given in the biogas potential and cost - cost_dataframe.loc[(tech_name, "CO2 stored"), "unit"] = "tCO2/MWh_th" - cost_dataframe.loc[(tech_name, "CO2 stored"), "source"] = ( - "Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016" - ) + elif tech in ['biogas', 'biogas CC', 'biogas plus hydrogen']: + CH4_density = 0.657 #kg/Nm3 + CO2_density = 1.98 #kg/Nm3 + CH4_vol_energy_density = CH4_specific_energy * CH4_density / (1000 * 3.6) #MJ/Nm3 -> MWh/Nm3 + CO2_weight_share = AD_CO2_share * CO2_density + + costs.loc[(tech, 'CO2 stored'), 'value'] = CO2_weight_share / CH4_vol_energy_density / 1000 #tCO2/MWh,in (NB: assuming the input is already given in the biogas potential and cost + costs.loc[(tech, 'CO2 stored'), 'unit'] = "tCO2/MWh_th" + costs.loc[(tech, 'CO2 stored'), 'source'] = "Stoichiometric calculation, doi:10.1016/j.apenergy.2022.120016" if inv_cost > 0: - cost_dataframe.loc[(tech_name, "investment"), "value"] = inv_cost - cost_dataframe.loc[(tech_name, "investment"), "unit"] = "EUR/kW_th" - cost_dataframe.loc[(tech_name, "investment"), "source"] = source - cost_dataframe.loc[(tech_name, "investment"), "currency_year"] = ( - currency_year - ) + costs.loc[(tech, 'investment'), 'value'] = inv_cost + costs.loc[(tech, 'investment'), 'unit'] = "EUR/kW_th" + costs.loc[(tech, 'investment'), 'source'] = source + costs.loc[(tech, 'investment'), 'currency_year'] = currency_year if lifetime > 0: - cost_dataframe.loc[(tech_name, "lifetime"), "value"] = lifetime - cost_dataframe.loc[(tech_name, "lifetime"), "unit"] = "years" - cost_dataframe.loc[(tech_name, "lifetime"), "source"] = source + costs.loc[(tech, 'lifetime'), 'value'] = lifetime + costs.loc[(tech, 'lifetime'), 'unit'] = "years" + costs.loc[(tech, 'lifetime'), 'source'] = source if FOM > 0: - cost_dataframe.loc[(tech_name, "FOM"), "value"] = FOM - cost_dataframe.loc[(tech_name, "FOM"), "unit"] = "%/year" - cost_dataframe.loc[(tech_name, "FOM"), "source"] = source + costs.loc[(tech, 'FOM'), 'value'] = FOM + costs.loc[(tech, 'FOM'), 'unit'] = "%/year" + costs.loc[(tech, 'FOM'), 'source'] = source if VOM > 0: - cost_dataframe.loc[(tech_name, "VOM"), "value"] = VOM - cost_dataframe.loc[(tech_name, "VOM"), "unit"] = "EUR/MWh_th" - cost_dataframe.loc[(tech_name, "VOM"), "source"] = source - cost_dataframe.loc[(tech_name, "VOM"), "currency_year"] = currency_year - - return cost_dataframe - + costs.loc[(tech, 'VOM'), 'value'] = VOM + costs.loc[(tech, 'VOM'), 'unit'] = "EUR/MWh_th" + costs.loc[(tech, 'VOM'), 'source'] = source + costs.loc[(tech, 'VOM'), 'currency_year'] = currency_year -def energy_penalty(cost_dataframe: pd.DataFrame) -> pd.DataFrame: - """ - The function adds energy penalty for biomass carbon capture. - - Parameters - ---------- - cost_dataframe: - cost dataframe + return costs - Returns - ------- - Dataframe - updated technology data - """ +def energy_penalty(costs): + # Energy penalty for biomass carbon capture # Need to take steam production for CC into account, assumed with the main feedstock, # e.g. the input biomass is used also for steam, and the efficiency for el and heat is scaled down accordingly - for tech_name in [ - "central solid biomass CHP CC", - "waste CHP CC", - "solid biomass boiler steam CC", - "direct firing solid fuels CC", - "direct firing gas CC", - "biogas CC", - ]: - if "powerboost" in tech_name: - boiler = "electric boiler steam" - feedstock = "solid biomass" - co2_capture = cost_dataframe.loc[(feedstock, "CO2 intensity"), "value"] - elif "gas" in tech_name: - boiler = "gas boiler steam" - feedstock = "gas" - co2_capture = cost_dataframe.loc[(feedstock, "CO2 intensity"), "value"] - elif "biogas" in tech_name: - boiler = "gas boiler steam" - co2_capture = cost_dataframe.loc[(tech_name, "CO2 stored"), "value"] + for tech in ['central solid biomass CHP CC', 'waste CHP CC', 'solid biomass boiler steam CC', 'direct firing solid fuels CC', 'direct firing gas CC', 'biogas CC']: + + if 'powerboost' in tech: + boiler = 'electric boiler steam' + feedstock = 'solid biomass' + co2_capture = costs.loc[(feedstock, 'CO2 intensity'), 'value'] + elif 'gas' in tech: + boiler = 'gas boiler steam' + feedstock = 'gas' + co2_capture = costs.loc[(feedstock, 'CO2 intensity'), 'value'] + elif 'biogas' in tech: + boiler = 'gas boiler steam' + co2_capture = costs.loc[(tech, 'CO2 stored'), 'value'] else: - boiler = "solid biomass boiler steam" - feedstock = "solid biomass" - co2_capture = cost_dataframe.loc[(feedstock, "CO2 intensity"), "value"] - - # Scaling biomass input to account for heat demand of carbon capture - scalingFactor = 1 / ( - 1 - + co2_capture - * cost_dataframe.loc[("biomass CHP capture", "heat-input"), "value"] - / cost_dataframe.loc[(boiler, "efficiency"), "value"] - ) + boiler = 'solid biomass boiler steam' + feedstock = 'solid biomass' + co2_capture = costs.loc[(feedstock, 'CO2 intensity'), 'value'] - eta_steam = (1 - scalingFactor) * cost_dataframe.loc[ - (boiler, "efficiency"), "value" - ] - eta_old = cost_dataframe.loc[(tech_name, "efficiency"), "value"] + #Scaling biomass input to account for heat demand of carbon capture + scalingFactor = 1 / (1 + co2_capture * costs.loc[ + ('biomass CHP capture', 'heat-input'), 'value'] + / costs.loc[(boiler, 'efficiency'), 'value']) - eta_main = ( - cost_dataframe.loc[(tech_name, "efficiency"), "value"] * scalingFactor - ) + eta_steam = (1 - scalingFactor) * costs.loc[(boiler, 'efficiency'), 'value'] + eta_old = costs.loc[(tech, 'efficiency'), 'value'] + + temp = costs.loc[(tech, 'efficiency'), 'value'] + eta_main = costs.loc[(tech, 'efficiency'), 'value'] * scalingFactor # Adapting investment share of tech due to steam boiler addition. Investment per MW_el. - cost_dataframe.loc[(tech_name, "investment"), "value"] = ( - cost_dataframe.loc[(tech_name, "investment"), "value"] * eta_old / eta_main - + cost_dataframe.loc[(boiler, "investment"), "value"] * eta_steam / eta_main - ) - cost_dataframe.loc[(tech_name, "investment"), "source"] = ( - "Combination of " + tech_name + " and " + boiler - ) - cost_dataframe.loc[(tech_name, "investment"), "further description"] = "" + costs.loc[(tech, 'investment'), 'value'] = costs.loc[(tech, 'investment'), 'value'] * eta_old / eta_main \ + + costs.loc[(boiler, 'investment'), 'value'] * eta_steam / eta_main + costs.loc[(tech, 'investment'), 'source'] = 'Combination of ' + tech + ' and ' + boiler + costs.loc[(tech, 'investment'), 'further description'] = '' - if cost_dataframe.loc[(tech_name, "VOM"), "value"]: + if costs.loc[(tech, 'VOM'), 'value']: break else: - cost_dataframe.loc[(tech_name, "VOM"), "value"] = 0.0 + costs.loc[(tech, 'VOM'), 'value'] = 0. - cost_dataframe.loc[(tech_name, "VOM"), "value"] = ( - cost_dataframe.loc[(tech_name, "VOM"), "value"] * eta_old / eta_main - + cost_dataframe.loc[(boiler, "VOM"), "value"] * eta_steam / eta_main - ) - cost_dataframe.loc[(tech_name, "VOM"), "source"] = ( - "Combination of " + tech_name + " and " + boiler - ) - cost_dataframe.loc[(tech_name, "VOM"), "further description"] = "" + costs.loc[(tech, 'VOM'), 'value'] = costs.loc[(tech, 'VOM'), 'value'] * eta_old / eta_main \ + + costs.loc[(boiler, 'VOM'), 'value'] * eta_steam / eta_main + costs.loc[(tech, 'VOM'), 'source'] = 'Combination of ' + tech + ' and ' + boiler + costs.loc[(tech, 'VOM'), 'further description'] = '' - cost_dataframe.loc[(tech_name, "efficiency"), "value"] = eta_main - cost_dataframe.loc[(tech_name, "efficiency"), "source"] = ( - "Combination of " + tech_name + " and " + boiler - ) - cost_dataframe.loc[(tech_name, "efficiency"), "further description"] = "" - - if "CHP" in tech_name: - cost_dataframe.loc[(tech_name, "efficiency-heat"), "value"] = ( - cost_dataframe.loc[(tech_name, "efficiency-heat"), "value"] - * scalingFactor - + cost_dataframe.loc[("solid biomass", "CO2 intensity"), "value"] - * ( - cost_dataframe.loc[("biomass CHP capture", "heat-output"), "value"] - + cost_dataframe.loc[ - ("biomass CHP capture", "compression-heat-output"), "value" - ] - ) - ) - cost_dataframe.loc[(tech_name, "efficiency-heat"), "source"] = ( - "Combination of " + tech_name + " and " + boiler - ) - cost_dataframe.loc[ - (tech_name, "efficiency-heat"), "further description" - ] = "" - - if "biogas CC" in tech_name: - cost_dataframe.loc[(tech_name, "VOM"), "value"] = 0 - cost_dataframe.loc[(tech_name, "VOM"), "unit"] = "EUR/MWh" - - cost_dataframe.loc[(tech_name, "VOM"), "value"] = ( - cost_dataframe.loc[(tech_name, "VOM"), "value"] * eta_old / eta_main - + cost_dataframe.loc[(boiler, "VOM"), "value"] * eta_steam / eta_main - ) - cost_dataframe.loc[(tech_name, "VOM"), "source"] = ( - "Combination of " + tech_name + " and " + boiler - ) - cost_dataframe.loc[(tech_name, "VOM"), "further description"] = "" + costs.loc[(tech, 'efficiency'), 'value'] = eta_main + costs.loc[(tech, 'efficiency'), 'source'] = 'Combination of ' + tech + ' and ' + boiler + costs.loc[(tech, 'efficiency'), 'further description'] = '' - return cost_dataframe + if 'CHP' in tech: + costs.loc[(tech, 'efficiency-heat'), 'value'] = \ + costs.loc[(tech, 'efficiency-heat'), 'value'] * scalingFactor \ + + costs.loc[('solid biomass', 'CO2 intensity'), 'value'] * \ + (costs.loc[('biomass CHP capture', 'heat-output'), 'value'] + + costs.loc[('biomass CHP capture', 'compression-heat-output'), 'value']) + costs.loc[(tech, 'efficiency-heat'), 'source'] = 'Combination of ' + tech + ' and ' + boiler + costs.loc[(tech, 'efficiency-heat'), 'further description'] = '' + if 'biogas CC' in tech: + costs.loc[(tech, 'VOM'), 'value'] = 0 + costs.loc[(tech, 'VOM'), 'unit'] = 'EUR/MWh' -def add_egs_data(technology_dataframe: pd.DataFrame) -> pd.DataFrame: - """ - The function adds enhanced geothermal systems cost assumptions. - Data taken from Aghahosseini, Breyer 2020: From hot rock to useful energy... + costs.loc[(tech, 'VOM'), 'value'] = costs.loc[(tech, 'VOM'), 'value'] * eta_old / eta_main \ + + costs.loc[(boiler, 'VOM'), 'value'] * eta_steam / eta_main + costs.loc[(tech, 'VOM'), 'source'] = 'Combination of ' + tech + ' and ' + boiler + costs.loc[(tech, 'VOM'), 'further description'] = '' - Parameters - ---------- - technology_dataframe: - technology data + return costs - Returns - ------- - Dataframe - updated technology data +def add_egs_data(data): """ + Adds data of enhanced geothermal systems. - parameters = [ - "CO2 intensity", - "lifetime", - "efficiency residential heat", - "efficiency electricity", - "FOM", - ] - tech_name_list = ["geothermal"] - multi_i = pd.MultiIndex.from_product( - [tech_name_list, parameters], names=["technology", "parameter"] - ) + Data taken from Aghahosseini, Breyer 2020: From hot rock to useful energy... + + """ + parameters = ["CO2 intensity", "lifetime", "efficiency residential heat", "efficiency electricity", "FOM"] + techs = ["geothermal"] + multi_i = pd.MultiIndex.from_product([techs, parameters], names=["technology", "parameter"]) geoth_df = pd.DataFrame(index=multi_i, columns=data.columns) years = [col for col in data.columns if isinstance(col, int)] # lifetime - geoth_df.loc[("geothermal", "lifetime"), years] = 30 # years + geoth_df.loc[("geothermal", "lifetime"), years] = 30 #years geoth_df.loc[("geothermal", "lifetime"), "unit"] = "years" geoth_df.loc[("geothermal", "lifetime"), "source"] = source_dict["Aghahosseini2020"] # co2 emissions - geoth_df.loc[("geothermal", "CO2 intensity"), years] = 0.12 # tCO2/MWh_el + geoth_df.loc[("geothermal", "CO2 intensity"), years] = 0.12 # tCO2/MWh_el geoth_df.loc[("geothermal", "CO2 intensity"), "unit"] = "tCO2/MWh_el" - geoth_df.loc[("geothermal", "CO2 intensity"), "source"] = source_dict[ - "Aghahosseini2020" - ] - geoth_df.loc[("geothermal", "CO2 intensity"), "further description"] = ( - "Likely to be improved; Average of 85 percent of global egs power plant capacity" - ) + geoth_df.loc[("geothermal", "CO2 intensity"), "source"] = source_dict["Aghahosseini2020"] + geoth_df.loc[("geothermal", "CO2 intensity"), "further description"] = "Likely to be improved; Average of 85 percent of global egs power plant capacity" # efficiency for heat generation using organic rankine cycle geoth_df.loc[("geothermal", "efficiency residential heat"), years] = 0.8 geoth_df.loc[("geothermal", "efficiency residential heat"), "unit"] = "per unit" - geoth_df.loc[("geothermal", "efficiency residential heat"), "source"] = ( - "{}; {}".format(source_dict["Aghahosseini2020"], source_dict["Breede2015"]) - ) - geoth_df.loc[ - ("geothermal", "efficiency residential heat"), "further description" - ] = "This is a rough estimate, depends on local conditions" + geoth_df.loc[("geothermal", "efficiency residential heat"), "source"] = "{}; {}".format(source_dict["Aghahosseini2020"], source_dict["Breede2015"]) + geoth_df.loc[("geothermal", "efficiency residential heat"), "further description"] = "This is a rough estimate, depends on local conditions" # efficiency for electricity generation using organic rankine cycle geoth_df.loc[("geothermal", "efficiency electricity"), years] = 0.1 geoth_df.loc[("geothermal", "efficiency electricity"), "unit"] = "per unit" - geoth_df.loc[("geothermal", "efficiency electricity"), "source"] = "{}; {}".format( - source_dict["Aghahosseini2020"], source_dict["Breede2015"] - ) - geoth_df.loc[("geothermal", "efficiency electricity"), "further description"] = ( - "This is a rough estimate, depends on local conditions" - ) + geoth_df.loc[("geothermal", "efficiency electricity"), "source"] = "{}; {}".format(source_dict["Aghahosseini2020"], source_dict["Breede2015"]) + geoth_df.loc[("geothermal", "efficiency electricity"), "further description"] = "This is a rough estimate, depends on local conditions" # relative additional capital cost of using residual heat for district heating (25 percent) geoth_df.loc[("geothermal", "district heating cost"), years] = 0.25 geoth_df.loc[("geothermal", "district heating cost"), "unit"] = "%" - geoth_df.loc[("geothermal", "district heating cost"), "source"] = "{}".format( - source_dict["Frey2022"] - ) - geoth_df.loc[("geothermal", "district heating cost"), "further description"] = ( - "If capital cost of electric generation from EGS is 100%, district heating adds additional 25%" - ) + geoth_df.loc[("geothermal", "district heating cost"), "source"] = "{}".format(source_dict["Frey2022"]) + geoth_df.loc[("geothermal", "district heating cost"), "further description"] = "If capital cost of electric generation from EGS is 100%, district heating adds additional 25%" # fixed operational costs - geoth_df.loc[("geothermal", "FOM"), years] = 2.0 + geoth_df.loc[("geothermal", "FOM"), years] = 2. geoth_df.loc[("geothermal", "FOM"), "unit"] = "%/year" - geoth_df.loc[("geothermal", "FOM"), "source"] = source_dict["Aghahosseini2020"] - geoth_df.loc[("geothermal", "FOM"), "further description"] = ( - "Both for flash, binary and ORC plants. See Supplemental Material for details" - ) - - geoth_df = geoth_df.dropna(axis=1, how="all") + geoth_df.loc[("geothermal", "FOM"), "source"] = source_dict["Aghahosseini2020"] + geoth_df.loc[("geothermal", "FOM"), "further description"] = "Both for flash, binary and ORC plants. See Supplemental Material for details" + + geoth_df = geoth_df.dropna(axis=1, how='all') + + return pd.concat([data, geoth_df]) - return pd.concat([technology_dataframe, geoth_df]) - -def annuity(n: float, r: float = 0.07) -> float: +def annuity(n,r=0.07): """ - The function calculates the annuity factor for an asset with lifetime n years and discount rate of r. - - Parameters - ---------- - n: float: - lifetime - r: float - discount rate - - Returns - ------- - float - annuity + Calculate the annuity factor for an asset with lifetime n years and + discount rate of r """ - - if r > 0: - return r / (1.0 - 1.0 / (1.0 + r) ** n) + 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 + return 1/n - -def add_home_battery_costs( - ewg_cost_file_name: str, years: list, cost_dataframe: pd.DataFrame -) -> pd.DataFrame: +def add_home_battery_costs(costs): """ - The function adds investment costs for home battery storage and inverter. - Since home battery costs are not part of the DEA catalogue, utility-scale - costs are multiplied by a factor determined by data from the EWG study. - - Parameters - ---------- - ewg_cost_file_name: str - file name for the cost assumptions from the EWG study - years : list - years for which a cost assumption is provided - cost_dataframe: pd.DataFrame - existing cost dataframe - - Returns - ------- - Dataframe - updated technology data + adds investment costs for home battery storage and inverter. + Since home battery costs are not part of the DEA cataloque, utility-scale + costs are multiplied by a factor determined by data from the EWG study """ - # get DEA assumptions for utility scale - home_battery = data.loc[["battery storage", "battery inverter"]].rename( - index=lambda x: "home " + x, level=0 - ) + home_battery = (data.loc[["battery storage", "battery inverter"]] + .rename(index=lambda x: "home " + x, level=0)) # get EWG cost assumptions - costs_ewg = pd.read_csv(ewg_cost_file_name, index_col=list(range(2))).sort_index() + costs_ewg = pd.read_csv(snakemake.input.EWG_costs, + index_col=list(range(2))).sort_index() v = costs_ewg.unstack()[[str(year) for year in years]].swaplevel(axis=1) + def annuity(n,r=0.07): + """ + Calculate the annuity factor for an asset with lifetime n years and + discount rate of r + """ + 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 + # annualise EWG cost assumptions - fixed = (annuity(v["lifetime"]) + v["FOM"] / 100.0) * v["investment"] + fixed = (annuity(v["lifetime"])+v["FOM"]/100.) * v["investment"] # battery storage index in EWG -------------- battery_store_i = [ - "Battery PV prosumer - commercial storage", - "Battery PV prosumer - industrial storage", - "Battery PV prosumer - residential storage", - "Battery storage", - ] + 'Battery PV prosumer - commercial storage', + 'Battery PV prosumer - industrial storage', + 'Battery PV prosumer - residential storage', + 'Battery storage'] battery_store_ewg = fixed.loc[battery_store_i].T def get_factor(df, cols, utility_col): - """Get factor by which costs are increasing for home installations""" - return ( - df[cols] - .div(df[utility_col], axis=0) - .mean(axis=1) - .rename(index=lambda x: float(x)) - ) + """get factor by which costs are increasing for home installations""" + return (df[cols].div(df[utility_col], axis=0).mean(axis=1) + .rename(index=lambda x: float(x))) # take mean of cost increase for commercial and residential storage compared to utility-scale - home_cols = [ - "Battery PV prosumer - commercial storage", - "Battery PV prosumer - residential storage", - ] + home_cols = ['Battery PV prosumer - commercial storage', + 'Battery PV prosumer - residential storage'] factor = get_factor(battery_store_ewg, home_cols, "Battery storage") - home_cost = ( - home_battery.loc[("home battery storage", "investment"), years] * factor - ).values + home_cost = (home_battery.loc[("home battery storage", "investment"), years] * factor).values home_battery.loc[("home battery storage", "investment"), years] = home_cost # battery inverter index in EWG ----------------------- battery_inverter_i = [ - "Battery PV prosumer - commercial interface", - "Battery PV prosumer - industrial interface PHES", - "Battery PV prosumer - residential interface", - "Battery interface", - ] + 'Battery PV prosumer - commercial interface', + 'Battery PV prosumer - industrial interface PHES', + 'Battery PV prosumer - residential interface', + 'Battery interface'] battery_inverter_ewg = fixed.loc[battery_inverter_i].T - home_cols = [ - "Battery PV prosumer - commercial interface", - "Battery PV prosumer - residential interface", - ] + home_cols = ['Battery PV prosumer - commercial interface', + 'Battery PV prosumer - residential interface'] factor = get_factor(battery_inverter_ewg, home_cols, "Battery interface") - home_cost = ( - home_battery.loc[("home battery inverter", "investment"), years] * factor - ).values + home_cost = (home_battery.loc[("home battery inverter", "investment"), years] * factor).values home_battery.loc[("home battery inverter", "investment"), years] = home_cost # adjust source - home_battery["source"] = home_battery["source"].apply( - lambda x: source_dict["EWG"] + ", " + x - ) + home_battery["source"] = home_battery["source"].apply(lambda x: source_dict["EWG"] + ", " + x) - return pd.concat([cost_dataframe, home_battery]) + return pd.concat([costs, home_battery]) -def add_SMR_data(years: list, technology_dataframe: pd.DataFrame) -> pd.DataFrame: - """ - The function adds steam methane reforming (SMR) technology data. The data set used are: - - investment cost : currently no cost reduction for investment costs of SMR CC assumed. +def add_SMR_data(data): + """Add steam methane reforming (SMR) technology data. + + investment cost : + Currently no cost reduction for investment costs of SMR CC assumed. + - IEA (2020) [1]: assumes cost reduction -19.2% from 2019-2050 - Agora [2]: no cost reduction - - carbon capture rate: + + carbon capture rate: - IEA (2020) [1]: 0.9 - Agora [2]: 0.9 - [3]: 0.9 - Timmerberg et al.: 0.56-0.9 - - efficiency: + + efficiency: - Agora SMR + CC (LHV/LHV) 0.58 [1] IEA (2020) https://www.iea.org/data-and-statistics/charts/global-average-levelised-cost-of-hydrogen-production-by-energy-source-and-technology-2019-and-2050 [2] Agora (2021) p.52 https://static.agora-energiewende.de/fileadmin/Projekte/2021/2021_02_EU_H2Grid/A-EW_203_No-regret-hydrogen_WEB.pdf [3] p.12 https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/1011506/Hydrogen_Production_Costs_2021.pdf - - Parameters - ---------- - years : list - years for which a cost assumption is provided - technology_dataframe: pd.DataFrame - technology cost dataframe - - Returns - ------- - Dataframe - updated technology data """ - parameters = ["FOM", "investment", "lifetime", "efficiency"] techs = ["SMR", "SMR CC"] - multi_i = pd.MultiIndex.from_product( - [techs, parameters], names=["technology", "parameter"] - ) - SMR_df = pd.DataFrame(index=multi_i, columns=technology_dataframe.columns) + multi_i = pd.MultiIndex.from_product([techs, parameters], names=["technology", "parameter"]) + SMR_df = pd.DataFrame(index=multi_i, columns=data.columns) # efficiencies per unit in LHV (stays constant 2019 to 2050) - SMR_df.loc[("SMR", "efficiency"), years] = 0.76 - SMR_df.loc[("SMR CC", "efficiency"), years] = 0.69 + SMR_df.loc[("SMR", "efficiency"), years] = 0.76 + SMR_df.loc[("SMR CC", "efficiency"), years] = 0.69 SMR_df.loc[(techs, "efficiency"), "source"] = source_dict["IEA"] SMR_df.loc[(techs, "efficiency"), "unit"] = "per unit (in LHV)" @@ -3481,107 +2751,62 @@ def add_SMR_data(years: list, technology_dataframe: pd.DataFrame) -> pd.DataFram SMR_df.loc[(techs, "FOM"), years] = 5 SMR_df.loc[(techs, "FOM"), "source"] = source_dict["DEA"] SMR_df.loc[(techs, "FOM"), "unit"] = "%/year" - SMR_df.loc[(techs, "FOM"), "currency_year"] = 2015 - SMR_df.loc[(techs, "FOM"), "further description"] = ( - "Technology data for renewable fuels, in pdf on table 3 p.311" - ) + SMR_df.loc[(techs, "FOM"), "further description"] = "Technology data for renewable fuels, in pdf on table 3 p.311" # investment # investment given in unit EUR/kg H_2/h -> convert to EUR/MW_CH4 # lower heating value (LHV) of H2 - LHV_H2 = 33.33 # unit kWh/kg - SMR = 12500 / LHV_H2 * 1e3 * 1 / SMR_df.loc[("SMR", "efficiency"), years] - SMR_CCS = 14500 / LHV_H2 * 1e3 * 1 / SMR_df.loc[("SMR", "efficiency"), years] + LHV_H2 = 33.33 # unit kWh/kg + SMR = 12500 / LHV_H2 * 1e3 * 1/SMR_df.loc[("SMR", "efficiency"), years] + SMR_CCS = 14500 / LHV_H2 * 1e3 * 1/SMR_df.loc[("SMR", "efficiency"), years] SMR_df.loc[("SMR", "investment"), years] = SMR SMR_df.loc[("SMR CC", "investment"), years] = SMR_CCS SMR_df.loc[(techs, "investment"), "source"] = source_dict["DEA"] SMR_df.loc[(techs, "investment"), "unit"] = "EUR/MW_CH4" SMR_df.loc[(techs, "investment"), "currency_year"] = 2015 - SMR_df.loc[(techs, "investment"), "further description"] = ( - "Technology data for renewable fuels, in pdf on table 3 p.311" - ) + SMR_df.loc[(techs, "investment"), "further description"] = "Technology data for renewable fuels, in pdf on table 3 p.311" # carbon capture rate SMR_df.loc[("SMR CC", "capture_rate"), years] = 0.9 SMR_df.loc[("SMR CC", "capture_rate"), "source"] = source_dict["IEA"] - SMR_df.loc[("SMR CC", "capture_rate"), "unit"] = "per unit" - SMR_df.loc[("SMR CC", "capture_rate"), "further description"] = ( - "wide range: capture rates between 54%-90%" - ) - - SMR_df = SMR_df.dropna(axis=1, how="all") + SMR_df.loc[("SMR CC", "capture_rate"), "unit"] = "EUR/MW_CH4" + SMR_df.loc[("SMR CC", "capture_rate"), "further description"] = "wide range: capture rates betwen 54%-90%" + + SMR_df = SMR_df.dropna(axis=1, how='all') + + return pd.concat([data, SMR_df]) - return pd.concat([technology_dataframe, SMR_df]) - - -def add_mean_solar_rooftop( - years: list, technology_dataframe: pd.DataFrame -) -> pd.DataFrame: - """ - The function adds costs for solar rooftop. - - Parameters - ---------- - years : list - years for which a cost assumption is provided - technology_dataframe: pd.DataFrame - technology cost dataframe - - Returns - ------- - Dataframe - updated technology data - """ +def add_mean_solar_rooftop(data): # take mean of rooftop commercial and residential - rooftop = ( - technology_dataframe.loc[ - technology_dataframe.index.get_level_values(0).str.contains("solar-rooftop") - ][years] - .astype(float) - .groupby(level=1) - .mean() - ) - for col in technology_dataframe.columns[~technology_dataframe.columns.isin(years)]: - rooftop[col] = technology_dataframe.loc["solar-rooftop residential"][col] + rooftop = (data.loc[data.index.get_level_values(0) + .str.contains("solar-rooftop")][years] + .astype(float).groupby(level=1).mean()) + for col in data.columns[~data.columns.isin(years)]: + rooftop[col] = data.loc["solar-rooftop residential"][col] # set multi index rooftop = pd.concat([rooftop], keys=["solar-rooftop"]) rooftop["source"] = "Calculated. See 'further description'." - rooftop["further description"] = ( - "Mixed investment costs based on average of 50% 'solar-rooftop commercial' and 50% 'solar-rooftop residential'" - ) - # add to technology_dataframe - rooftop.index.names = technology_dataframe.index.names - technology_dataframe = pd.concat([technology_dataframe, rooftop]) + rooftop["further description"] = "Mixed investment costs based on average of 50% 'solar-rooftop commercial' and 50% 'solar-rooftop residential'" + # add to data + rooftop.index.names = data.index.names + data = pd.concat([data, rooftop]) # add solar assuming 50% utility and 50% rooftop - solar = ( - (technology_dataframe.loc[["solar-rooftop", "solar-utility"]][years]) - .astype(float) - .groupby(level=1) - .mean() - ) - for col in technology_dataframe.columns[~technology_dataframe.columns.isin(years)]: - solar[col] = technology_dataframe.loc["solar-rooftop residential"][col] + solar = (data.loc[["solar-rooftop", "solar-utility"]][years]).astype(float).groupby(level=1).mean() + for col in data.columns[~data.columns.isin(years)]: + solar[col] = data.loc["solar-rooftop residential"][col] solar["source"] = "Calculated. See 'further description'." - solar["further description"] = ( - "Mixed investment costs based on average of 50% 'solar-rooftop' and 50% 'solar-utility'" - ) + solar["further description"] = "Mixed investment costs based on average of 50% 'solar-rooftop' and 50% 'solar-utility'" # set multi index solar = pd.concat([solar], keys=["solar"]) - solar.index.names = technology_dataframe.index.names - return pd.concat([technology_dataframe, solar]) - + solar.index.names = data.index.names + return pd.concat([data, solar]) -def add_energy_storage_database( - pnnl_storage_file_name: str, - pnnl_energy_storage_dict: dict, - cost_dataframe: pd.DataFrame, - data_year: int, -) -> (pd.DataFrame, pd.Series): - """ - The function adds energy storage database compiled. +def add_energy_storage_database(costs, data_year): + """Add energy storage database compiled + Learning rate drop. For example, the nominal DC SB learning rate for RFBs is set at 4.5%, 1.5% for lead-acid batteries, compared to 10% for Li-ion batteries, corresponding to cost drops of 17%, 6%, and 35%, respectively. For the rest of the categories for battery-based systems, the learning @@ -3592,28 +2817,13 @@ def add_energy_storage_database( systems. For example, a 20% cost drop in DC SB and 10% drop in DCBOS was assumed for zinc batteries, while keeping the cost drops for power equipment in line with Li-ion BESS, while system integration, EPC, and project development costs are maintained at 90% of Li-ion BESS 2030 values. - - Parameters - ---------- - pnnl_storage_file_name: str - PNNL storage file name - pnnl_energy_storage_dict: dict - PNNL storage configuration dictionary - cost_dataframe: pd.DataFrame - existing cost dataframe - data_year: int - year to consider - - Returns - ------- - tuple with DataFrame and Series - updated cost dataframe and technologies """ + from scipy import interpolate - logger.info(f"Add energy storage database compiled for year {data_year}") + print(f"Add energy storage database compiled for year {data_year}") # a) Import csv file df = pd.read_excel( - pnnl_storage_file_name, + snakemake.input["pnnl_energy_storage"], sheet_name="energy-storage-database", dtype={ "technology": str, @@ -3628,147 +2838,107 @@ def add_energy_storage_database( "reference": str, "ref_size_MW": float, "EP_ratio_h": float, - }, + }, ) df = df.drop(columns=["ref_size_MW", "EP_ratio_h"]) df = df.fillna(df.dtypes.replace({"float64": 0.0, "O": "NULL"})) - df.loc[:, "unit"] = df.unit.str.replace("NULL", "per unit") + df.loc[:,"unit"] = df.unit.str.replace("NULL", "per unit") - # b) Change data to PyPSA format (aggregation of components, units, currency, etc.) + # b) Change data to PyPSA format (aggregation of components, units, currency, etc.) df = clean_up_units(df, "value") # base clean up # rewrite technology to be charger, store, discharger, bidirectional-charger - df.loc[:, "carrier"] = df.carrier.str.replace("NULL", "") - df.loc[:, "carrier"] = df["carrier"].apply(lambda x: x.split("-")) + df.loc[:,"carrier"] = df.carrier.str.replace("NULL", "") + df.loc[:,"carrier"] = df["carrier"].apply(lambda x: x.split('-')) carrier_list_len = df["carrier"].apply(lambda x: len(x)) carrier_str_len = df["carrier"].apply(lambda x: len(x[0])) - carrier_first_item = df["carrier"].apply(lambda x: x[0]) - carrier_last_item = df["carrier"].apply(lambda x: x[-1]) - bicharger_filter = carrier_list_len == 3 + carrier_first_item = df["carrier"].apply(lambda x: x[0]) + carrier_last_item = df["carrier"].apply(lambda x: x[-1]) + bicharger_filter = (carrier_list_len == 3) charger_filter = (carrier_list_len == 2) & (carrier_first_item == "elec") discharger_filter = (carrier_list_len == 2) & (carrier_last_item == "elec") store_filter = (carrier_list_len == 1) & (carrier_str_len > 0) - reference_filter = (carrier_list_len == 1) & ( - carrier_first_item == "reference_value" - ) + reference_filter = (carrier_list_len == 1) & (carrier_first_item == "reference_value") df = df[~reference_filter] # remove reference values - df.loc[bicharger_filter, "technology_type"] = "bicharger" - df.loc[charger_filter, "technology_type"] = "charger" - df.loc[discharger_filter, "technology_type"] = "discharger" - df.loc[store_filter, "technology_type"] = "store" - df.loc[df.unit == "EUR/MWh-year", "technology_type"] = "store" - # Some investment inputs need to be distributed between charger and discharger - for tech_name in df.technology.unique(): - nan_filter = ( - (df.technology == tech_name) - & (carrier_str_len == 0) - & (df.parameter == "investment") - ) - store_filter = nan_filter & (df.unit == "EUR/MWh") + df.loc[bicharger_filter,"technology_type"] = "bicharger" + df.loc[charger_filter,"technology_type"] = "charger" + df.loc[discharger_filter,"technology_type"] = "discharger" + df.loc[store_filter,"technology_type"] = "store" + df.loc[df.unit=="EUR/MWh-year", "technology_type"] = "store" + # Some investment inputs need to be distributed between charger and discharger + for tech in df.technology.unique(): + nan_filter = (df.technology==tech) & (carrier_str_len==0) & (df.parameter=="investment") + store_filter = nan_filter & (df.unit=="EUR/MWh") if not df.loc[store_filter].empty: - df.loc[store_filter, "technology_type"] = ( - "store" # value will be aggregated later in the groupby - ) + df.loc[store_filter, "technology_type"] = "store" # value will be aggregated later in the groupby # charger and discharger with 50% distribution e.g. in case of Hydrogen - power_filter = nan_filter & (df.unit == "EUR/MW") + power_filter = nan_filter & (df.unit=="EUR/MW") if not df.loc[power_filter].empty: - agg = ( - df.loc[power_filter] - .groupby(["technology", "year"]) - .sum(numeric_only=True) - ) - charger_investment_filter = ( - charger_filter - & (df.technology == tech_name) - & (df.parameter == "investment") - ) - discharger_investment_filter = ( - discharger_filter - & (df.technology == tech_name) - & (df.parameter == "investment") - ) - df.loc[charger_investment_filter & df.year == 2021, "value"] += ( - agg.loc[(tech_name, 2021)] / 2 - ) - df.loc[charger_investment_filter & df.year == 2030, "value"] += ( - agg.loc[(tech_name, 2030)] / 2 - ) - df.loc[discharger_investment_filter & df.year == 2021, "value"] += ( - agg.loc[(tech_name, 2021)] / 2 - ) - df.loc[discharger_investment_filter & df.year == 2030, "value"] += ( - agg.loc[(tech_name, 2030)] / 2 - ) - df.loc[:, "technology"] = df["technology"] + "-" + df["technology_type"] + agg = df.loc[power_filter].groupby(["technology", "year"]).sum(numeric_only=True) + charger_investment_filter = charger_filter & (df.technology==tech) & (df.parameter=="investment") + discharger_investment_filter = discharger_filter & (df.technology==tech) & (df.parameter=="investment") + df.loc[charger_investment_filter & df.year==2021, "value"] += agg.loc[(tech, 2021)]/2 + df.loc[charger_investment_filter & df.year==2030, "value"] += agg.loc[(tech, 2030)]/2 + df.loc[discharger_investment_filter & df.year==2021, "value"] += agg.loc[(tech, 2021)]/2 + df.loc[discharger_investment_filter & df.year==2030, "value"] += agg.loc[(tech, 2030)]/2 + df.loc[:,"technology"] = df["technology"] + "-" + df["technology_type"] # aggregate technology_type and unit - df = ( - df.groupby(["technology", "unit", "year"]) - .agg( - { - "technology": "first", - "year": "first", - "parameter": "first", - "value": "sum", - "unit": "first", - "type": "first", - "carrier": "first", - "technology_type": "first", - "source": "first", - "note": "first", - "reference": "first", - } - ) - .reset_index(drop=True) - ) + df = df.groupby(["technology", "unit", "year"]).agg({ + 'technology': 'first', + 'year': 'first', + 'parameter': 'first', + 'value': 'sum', + 'unit': 'first', + 'type': 'first', + 'carrier': 'first', + 'technology_type': 'first', + 'source': 'first', + 'note': 'first', + 'reference': 'first', + }).reset_index(drop=True) # calculate %/year FOM on aggregated values - for tech_name in df.technology.unique(): + for tech in df.technology.unique(): for year in df.year.unique(): - df_tech = df.loc[(df.technology == tech_name) & (df.year == year)].copy() - a = df_tech.loc[df_tech.unit == "EUR/MW-year", "value"].values - b = df_tech.loc[df_tech.unit == "EUR/MW", "value"].values - df.loc[df_tech.loc[df_tech.unit == "EUR/MW-year"].index, "value"] = ( - a / b * 100 - ) # EUR/MW-year / EUR/MW = %/year - c = df_tech.loc[df_tech.unit == "EUR/MWh-year", "value"].values - d = df_tech.loc[df_tech.unit == "EUR/MWh", "value"].values - df.loc[df_tech.loc[df_tech.unit == "EUR/MWh-year"].index, "value"] = ( - c / d * 100 - ) # EUR/MWh-year / EUR/MWh = %/year - - df.loc[:, "unit"] = df.unit.str.replace("EUR/MW-year", "%/year") - df.loc[:, "unit"] = df.unit.str.replace("EUR/MWh-year", "%/year") + df_tech = df.loc[(df.technology == tech) & (df.year == year)].copy() + a = df_tech.loc[df_tech.unit=="EUR/MW-year", "value"].values + b = df_tech.loc[df_tech.unit=="EUR/MW", "value"].values + df.loc[df_tech.loc[df_tech.unit=="EUR/MW-year"].index, "value"] = a / b * 100 # EUR/MW-year / EUR/MW = %/year + c = df_tech.loc[df_tech.unit=="EUR/MWh-year", "value"].values + d = df_tech.loc[df_tech.unit=="EUR/MWh", "value"].values + df.loc[df_tech.loc[df_tech.unit=="EUR/MWh-year"].index, "value"] = c / d * 100 # EUR/MWh-year / EUR/MWh = %/year + + df.loc[:,"unit"] = df.unit.str.replace("EUR/MW-year", "%/year") + df.loc[:,"unit"] = df.unit.str.replace("EUR/MWh-year", "%/year") # c) Linear Inter/Extrapolation # data available for 2021 and 2030, but value for given "year" passed by function needs to be calculated - for tech_name in df.technology.unique(): + for tech in df.technology.unique(): for param in df.parameter.unique(): - filter = (df.technology == tech_name) & (df.parameter == param) + filter = (df.technology == tech) & (df.parameter == param) y = df.loc[filter, "value"] if y.empty: continue # nothing to interpolate - elif y.iloc[0] == y.iloc[1] or param == "efficiency" or param == "lifetime": + elif y.iloc[0]==y.iloc[1] or param=="efficiency" or param=="lifetime": ynew = y.iloc[1] # assume new value is the same as 2030 - elif y.iloc[0] != y.iloc[1]: - x = df.loc[filter, "year"] # both values 2021+2030 - first_segment_diff = y.iloc[0] - y.iloc[1] + elif y.iloc[0]!=y.iloc[1]: + x = df.loc[filter, "year"] # both values 2021+2030 + first_segment_diff = y.iloc[0]-y.iloc[1] endp_first_segment = y.iloc[1] - + # Below we create linear segments between 2021-2030 - # While the first segment is known, the others are defined by the initial segments with a accumulating quadratic decreasing gradient + # While the first segment is known, the others are defined by the initial segments with a accumulating quadratic descreasing gradient other_segments_points = [2034, 2039, 2044, 2049, 2054, 2059] - - def geometric_series( - nominator, denominator=1, number_of_terms=1, start=1 - ): + + def geometric_series(nominator, denominator=1, number_of_terms=1, start=1): """ A geometric series is a series with a constant ratio between successive terms. When moving to infinity the geometric series converges to a limit. https://en.wikipedia.org/wiki/Series_(mathematics) Example: - ------- + -------- nominator = 1 denominator = 2 number_of_terms = 3 @@ -3777,86 +2947,37 @@ def geometric_series( If moving to infinity the result converges to 2 """ - return sum( - [ - nominator / denominator**i - for i in range(start, start + number_of_terms) - ] - ) - - if ( - tech_name == "Hydrogen-discharger" - or tech_name == "Pumped-Heat-store" - ): - x1 = pd.concat( - [x, pd.DataFrame(other_segments_points)], ignore_index=True - ) + return sum([nominator/denominator**i for i in range(start, start+number_of_terms)]) + + if tech=="Hydrogen-discharger" or tech=="Pumped-Heat-store": + x1 = pd.concat([x,pd.DataFrame(other_segments_points)], ignore_index=True) y1 = y factor = 5 - for i in range( - len(other_segments_points) - ): # -1 because of segments - cost_at_year = endp_first_segment - geometric_series( - nominator=first_segment_diff, - denominator=factor, - number_of_terms=i + 1, - ) - y1 = pd.concat( - [y1, pd.DataFrame([cost_at_year])], ignore_index=True - ) - f = interpolate.interp1d( - x1.squeeze(), - y1.squeeze(), - kind="linear", - fill_value="extrapolate", - ) - elif tech_name == "Hydrogen-charger": - x2 = pd.concat( - [x, pd.DataFrame(other_segments_points)], ignore_index=True - ) + for i in range(len(other_segments_points)): # -1 because of segments + cost_at_year = endp_first_segment - geometric_series(nominator=first_segment_diff, denominator=factor, number_of_terms=i+1) + y1 = pd.concat([y1, pd.DataFrame([cost_at_year])], ignore_index=True) + f = interpolate.interp1d(x1.squeeze(), y1.squeeze(), kind='linear', fill_value="extrapolate") + elif tech=="Hydrogen-charger": + x2 = pd.concat([x,pd.DataFrame(other_segments_points)], ignore_index=True) y2 = y factor = 6.5 for i in range(len(other_segments_points)): - cost_at_year = endp_first_segment - geometric_series( - nominator=first_segment_diff, - denominator=factor, - number_of_terms=i + 1, - ) - y2 = pd.concat( - [y2, pd.DataFrame([cost_at_year])], ignore_index=True - ) - f = interpolate.interp1d( - x2.squeeze(), - y2.squeeze(), - kind="linear", - fill_value="extrapolate", - ) + cost_at_year = endp_first_segment - geometric_series(nominator=first_segment_diff, denominator=factor, number_of_terms=i+1) + y2 = pd.concat([y2, pd.DataFrame([cost_at_year])], ignore_index=True) + f = interpolate.interp1d(x2.squeeze(), y2.squeeze(), kind='linear', fill_value="extrapolate") else: - x3 = pd.concat( - [x, pd.DataFrame(other_segments_points)], ignore_index=True - ) + x3 = pd.concat([x,pd.DataFrame(other_segments_points)], ignore_index=True) y3 = y factor = 2 for i in range(len(other_segments_points)): - cost_at_year = endp_first_segment - geometric_series( - nominator=first_segment_diff, - denominator=factor, - number_of_terms=i + 1, - ) - y3 = pd.concat( - [y3, pd.DataFrame([cost_at_year])], ignore_index=True - ) - f = interpolate.interp1d( - x3.squeeze(), - y3.squeeze(), - kind="linear", - fill_value="extrapolate", - ) - - option = pnnl_energy_storage_dict - if option.get("approx_beyond_2030") == ["geometric_series"]: + cost_at_year = endp_first_segment - geometric_series(nominator=first_segment_diff, denominator=factor, number_of_terms=i+1) + y3 = pd.concat([y3, pd.DataFrame([cost_at_year])], ignore_index=True) + f = interpolate.interp1d(x3.squeeze(), y3.squeeze(), kind='linear', fill_value="extrapolate") + + option = snakemake.config['energy_storage_database']['pnnl_energy_storage'] + if option.get('approx_beyond_2030') == ["geometric_series"]: ynew = f(data_year) - if option.get("approx_beyond_2030") == ["same_as_2030"]: + if option.get('approx_beyond_2030') == ["same_as_2030"]: if data_year <= 2030: # apply linear interpolation ynew = f(data_year) @@ -3864,136 +2985,113 @@ def geometric_series( # apply same value as 2030 ynew = y.iloc[1] # assume new value is the same as 2030 - df_new = pd.DataFrame( - [ - { - "technology": tech_name, - "year": data_year, - "parameter": param, - "value": ynew, - "unit": df.loc[filter, "unit"].unique().item(), - "source": df.loc[filter, "source"].unique().item(), - "carrier": df.loc[filter, "carrier"].iloc[1], - "technology_type": df.loc[filter, "technology_type"] - .unique() - .item(), - "type": df.loc[filter, "type"].unique().item(), - "note": df.loc[filter, "note"].iloc[1], - "reference": df.loc[filter, "reference"].iloc[1], - } - ] - ) - # not concat if df year is 2021 or 2030 (otherwise duplicate) + df_new = pd.DataFrame([{ + "technology": tech, + "year": data_year, + "parameter": param, + "value": ynew, + "unit": df.loc[filter, "unit"].unique().item(), + "source": df.loc[filter, "source"].unique().item(), + 'carrier': df.loc[filter, "carrier"].iloc[1], + 'technology_type': df.loc[filter, "technology_type"].unique().item(), + 'type': df.loc[filter, "type"].unique().item(), + 'note': df.loc[filter, "note"].iloc[1], + 'reference': df.loc[filter, "reference"].iloc[1], + }]) + # not concat if df year is 2021 or 2030 (otherwhise duplicate) if data_year == 2021 or data_year == 2030: continue else: df = pd.concat([df, df_new], ignore_index=True) # d) Combine metadata and add to cost database - df.loc[:, "source"] = df["source"] + ", " + df["reference"] + df.loc[:,"source"] = df["source"] + ", " + df["reference"] for i in df.index: - df.loc[i, "further description"] = str( + df.loc[i,"further description"] = str( { - "carrier": df.loc[i, "carrier"], - "technology_type": [df.loc[i, "technology_type"]], - "type": [df.loc[i, "type"]], - "note": [df.loc[i, "note"]], + "carrier": df.loc[i,"carrier"], + "technology_type": [df.loc[i,"technology_type"]], + "type": [df.loc[i,"type"]], + "note": [df.loc[i,"note"]], } ) # keep only relevant columns - df = df.loc[ - df.year == data_year, - ["technology", "parameter", "value", "unit", "source", "further description"], - ] - tech_names = df.technology.unique() - df = df.set_index(["technology", "parameter"]) + df = df.loc[df.year == data_year,["technology", "parameter", "value", "unit", "source", "further description"]] + tech = df.technology.unique() + df = df.set_index(['technology', 'parameter']) - return pd.concat([cost_dataframe, df]), tech_names + return pd.concat([costs, df]), tech -def prepare_inflation_rate(fn: str) -> pd.DataFrame: - """ - The function reads-in annual the inflation rates from Eurostat +def prepare_inflation_rate(fn): + """read in annual inflation rate from Eurostat https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/dataflow/ESTAT/prc_hicp_aind/1.0?references=descendants&detail=referencepartial&format=sdmx_2.1_generic&compressed=true - - Parameters - ---------- - fn - file name for the Eurostat inflation rates - - Returns - ------- - DataFrame - inflation rates dataframe """ - - inflation_rate = pd.read_excel(fn, sheet_name="Sheet 1", index_col=0, header=[8]) - inflation_rate = ( - inflation_rate.loc["European Union - 27 countries (from 2020)"].dropna() - ).loc["2001"::] + inflation_rate = pd.read_excel(fn, + sheet_name="Sheet 1", index_col=0, + header=[8]) + inflation_rate = (inflation_rate.loc["European Union - 27 countries (from 2020)"] + .dropna()).loc["2001"::] inflation_rate.rename(index=lambda x: int(x), inplace=True) inflation_rate = inflation_rate.astype(float) - + inflation_rate /= 100 - + return inflation_rate - - + # %% ************************************************************************* # ---------- MAIN ------------------------------------------------------------ if __name__ == "__main__": - if "snakemake" not in globals(): - from _helpers import mock_snakemake - - # os.chdir(os.path.join(os.getcwd(), "scripts")) + if 'snakemake' not in globals(): + import os + from scripts._helpers import mock_snakemake + #os.chdir(os.path.join(os.getcwd(), "scripts")) snakemake = mock_snakemake("compile_cost_assumptions") - years_list = list(snakemake.config["years"]) + years = snakemake.config['years'] inflation_rate = prepare_inflation_rate(snakemake.input.inflation_rate) - + # p.77 Figure 51 share of vehicle-km driven by truck # (1) DEA data # (a)-------- get data from DEA excel sheets ---------------------------------- # read excel sheet names of all excel files - excel_files = [v for k, v in snakemake.input.items() if "dea" in k.casefold()] + excel_files = [v for k,v in snakemake.input.items() if "dea" in k] data_in = get_excel_sheets(excel_files) # create dictionary with raw data from DEA sheets - d_by_tech = get_data_from_DEA( - years_list, - dea_sheet_names, - data_in, - snakemake.config["offwind_no_gridcosts"], - expectation=snakemake.config["expectation"], - ) + d_by_tech = get_data_from_DEA(data_in, expectation=snakemake.config["expectation"]) # concat into pd.Dataframe tech_data = pd.concat(d_by_tech).sort_index() + # clean up units - tech_data = clean_up_units(tech_data, years_list, source="dea") + tech_data = clean_up_units(tech_data, years, source="dea") # (b) ------ specific assumptions for some technologies ----------------------- # specify investment and efficiency assumptions for: # resistive heater, decentral gas boiler, biogas upgrading and heat pumps - tech_data = set_specify_assumptions(years_list, tech_data) + tech_data = set_specify_assumptions(tech_data) # round trip efficiency for hydrogen + battery storage - tech_data = set_round_trip_efficiency(years_list, tech_data) + tech_data = set_round_trip_efficiency(tech_data) # drop all rows which only contains zeros - tech_data = tech_data.loc[(tech_data[years_list] != 0).sum(axis=1) != 0] + tech_data = tech_data.loc[(tech_data[years]!=0).sum(axis=1)!=0] # (c) ----- get tech data in pypsa syntax ----------------------------------- # make categories: investment, FOM, VOM, efficiency, c_b, c_v - data = order_data(years_list, tech_data) - # add Excel sheet names and further description - data = add_description(years_list, data, snakemake.config["offwind_no_gridcosts"]) + data = order_data(tech_data) + + # add excel sheet names and further description + data = add_description(data) # convert efficiency from %-> per unit and investment from MW->kW to compare - data = convert_units(years_list, data) + data = convert_units(data) # add gas storage (different methodology than other sheets) - data = add_gas_storage(snakemake.input.dea_storage, years_list, data) + data = add_gas_storage(data) # add carbon capture - data = add_carbon_capture(years_list, data, tech_data) + data = add_carbon_capture(data, tech_data) + # add perennials and green biorefining + data = add_perennials_gbr(data) # adjust for inflation for x in data.index.get_level_values("technology"): @@ -4003,103 +3101,86 @@ def prepare_inflation_rate(fn: str) -> pd.DataFrame: data.at[x, "currency_year"] = 2019 else: data.at[x, "currency_year"] = 2015 - - # add heavy-duty assumptions, cost year is 2022 - data = get_dea_vehicle_data(snakemake.input.dea_vehicles, years_list, data) + + # add heavy duty assumptions, cost year is 2022 + data = get_dea_vehicle_data(snakemake.input.dea_vehicles, data) # add shipping data - data = get_dea_maritime_data(snakemake.input.dea_ship, years_list, data) + data = get_dea_maritime_data(snakemake.input.dea_ship, data) # %% (2) -- get data from other sources which need formatting ----------------- # (a) ---------- get old pypsa costs --------------------------------------- - costs_pypsa = pd.read_csv( - snakemake.input.pypsa_costs, index_col=[0, 2] - ).sort_index() + costs_pypsa = pd.read_csv(snakemake.input.pypsa_costs, + index_col=[0,2]).sort_index() # rename some techs and convert units costs_pypsa = rename_pypsa_old(costs_pypsa) # (b1) ------- add vehicle costs from Fraunhofer vehicle study ------------------------ - costs_vehicles = pd.read_csv( - snakemake.input.fraunhofer_vehicles_costs, - engine="python", - index_col=[0, 1], - encoding="ISO-8859-1", - ) + costs_vehicles = pd.read_csv(snakemake.input.fraunhofer_vehicles_costs, + engine="python", + index_col=[0,1], + encoding="ISO-8859-1") # rename + reorder to fit to other data costs_vehicles = rename_ISE_vehicles(costs_vehicles) - if "NT" in costs_vehicles.index: - costs_vehicles.drop(["NT"], axis=0, inplace=True, level=0) - costs_vehicles = convert_units(years_list, costs_vehicles) + if 'NT' in costs_vehicles.index: + costs_vehicles.drop(['NT'], axis=0, inplace=True, level=0) + costs_vehicles = convert_units(costs_vehicles) # add costs for vehicles data = pd.concat([data, costs_vehicles], sort=True) + # (b) ------- add costs from Fraunhofer ISE study -------------------------- - costs_ISE = pd.read_csv( - snakemake.input.fraunhofer_costs, - engine="python", - index_col=[0, 1], - encoding="ISO-8859-1", - ) + costs_ISE = pd.read_csv(snakemake.input.fraunhofer_costs, + engine="python", + index_col=[0,1], + encoding = "ISO-8859-1") # rename + reorder to fit to other data - costs_ISE = rename_ISE(costs_ISE) + costs_ISE = rename_ISE(costs_ISE) # add costs for gas pipelines data = pd.concat([data, costs_ISE.loc[["Gasnetz"]]], sort=True) - data = add_manual_input(data) + exclusions = ['electrolysis'] + data = add_manual_input(data, exclusions =exclusions) + data = add_manual_input_industry(data) # add costs for home batteries if snakemake.config["energy_storage_database"].get("ewg_home_battery", True): - data = add_home_battery_costs(snakemake.input.EWG_costs, years_list, data) + data = add_home_battery_costs(data) # add SMR assumptions - data = add_SMR_data(years_list, data) + data = add_SMR_data(data) # add solar rooftop costs by taking the mean of commercial and residential - data = add_mean_solar_rooftop(years_list, data) + data = add_mean_solar_rooftop(data) + data.index.names = ["technology", "parameter"] # %% (3) ------ add additional sources and save cost as csv ------------------ # [RTD-target-multiindex-df] - for year in years_list: - costs = data[ - [year, "unit", "source", "further description", "currency_year"] - ].rename(columns={year: "value"}) + for year in years: + costs = (data[[year, "unit", "source", "further description", + "currency_year"]] + .rename(columns={year: "value"})) costs["value"] = costs["value"].astype(float) # biomass is differentiated by biomass CHP and HOP - costs.loc[("solid biomass", "fuel"), "value"] = 12 - costs.loc[("solid biomass", "fuel"), "unit"] = "EUR/MWh_th" - costs.loc[("solid biomass", "fuel"), "source"] = ( - "JRC ENSPRESO ca avg for MINBIOWOOW1 (secondary forest residue wood chips), ENS_Ref for 2040" - ) - costs.loc[("solid biomass", "fuel"), "currency_year"] = 2010 - - costs.loc[("digestible biomass", "fuel"), "value"] = 15 - costs.loc[("digestible biomass", "fuel"), "unit"] = "EUR/MWh_th" - costs.loc[("digestible biomass", "fuel"), "source"] = ( - "JRC ENSPRESO ca avg for MINBIOAGRW1, ENS_Ref for 2040" - ) - costs.loc[("digestible biomass", "fuel"), "currency_year"] = 2010 - + costs.loc[('solid biomass', 'fuel'), 'value'] = 12 + costs.loc[('solid biomass', 'fuel'), 'unit'] = 'EUR/MWh_th' + costs.loc[('solid biomass', 'fuel'), 'source'] = "JRC ENSPRESO ca avg for MINBIOWOOW1 (secondary forest residue wood chips), ENS_Ref for 2040" + costs.loc[('solid biomass', 'fuel'), 'currency_year'] = 2010 + + costs.loc[('digestible biomass', 'fuel'), 'value'] = 15 + costs.loc[('digestible biomass', 'fuel'), 'unit'] = 'EUR/MWh_th' + costs.loc[('digestible biomass', 'fuel'), 'source'] = "JRC ENSPRESO ca avg for MINBIOAGRW1, ENS_Ref for 2040" + costs.loc[('digestible biomass', 'fuel'), 'currency_year'] = 2010 + # add solar data from other source than DEA - if any( - [ - snakemake.config["solar_utility_from_vartiaien"], - snakemake.config["solar_rooftop_from_etip"], - ] - ): - costs = add_solar_from_other(years_list, costs) + if any([snakemake.config['solar_utility_from_vartiaien'], snakemake.config['solar_rooftop_from_etip']]): + costs = add_solar_from_other(costs) # add desalination and clean water tank storage - costs = add_desalination_data(costs) + costs = add_desalinsation_data(costs) # add energy storage database - if snakemake.config["energy_storage_database"]["pnnl_energy_storage"].get( - "add_data", True - ): - costs, tech = add_energy_storage_database( - snakemake.input["pnnl_energy_storage"], - snakemake.config["energy_storage_database"]["pnnl_energy_storage"], - costs, - year, - ) + if snakemake.config['energy_storage_database']['pnnl_energy_storage'].get("add_data", True): + costs, tech = add_energy_storage_database(costs, year) costs.loc[tech, "currency_year"] = 2020 # add electrolyzer and fuel cell efficiency from other source than DEA @@ -4110,7 +3191,7 @@ def prepare_inflation_rate(fn: str) -> pd.DataFrame: costs = add_co2_intensity(costs) # carbon balances - costs = carbon_flow(years_list, costs, year) + costs = carbon_flow(costs,year) # energy penalty of carbon capture costs = energy_penalty(costs) @@ -4120,32 +3201,30 @@ def prepare_inflation_rate(fn: str) -> pd.DataFrame: # missing technologies missing = costs_pypsa.index.levels[0].difference(costs.index.levels[0]) - if len(missing) & (year == years_list[0]): - logger.info("************************************************************") - logger.info("warning, in new cost assumptions the following components: ") + if (len(missing) & (year==years[0])): + print("************************************************************") + print("warning, in new cost assumptions the following components: ") for i in range(len(missing)): - logger.info(f"{i + 1} {missing[i]}") - logger.info(" are missing and the old cost assumptions are assumed.") - logger.info("************************************************************") + print(" ", i + 1, missing[i]) + print(" are missing and the old cost assumptions are assumed.") + print("************************************************************") to_add = costs_pypsa.loc[missing].drop("year", axis=1) - to_add.loc[:, "further description"] = " from old pypsa cost assumptions" + to_add.loc[:,"further description"] = " from old pypsa cost assumptions" # TODO check currency year from old pypsa cost assumptions to_add["currency_year"] = 2015 costs_tot = pd.concat([costs, to_add], sort=False) # single components missing comp_missing = costs_pypsa.index.difference(costs_tot.index) - if year == years_list[0]: - logger.info( - "single parameters of technologies are missing, using old PyPSA assumptions: " - ) - logger.info(comp_missing) - logger.info("old c_v and c_b values are assumed where given") + if (year==years[0]): + print("single parameters of technologies are missing, using old PyPSA assumptions: ") + print(comp_missing) + print("old c_v and c_b values are assumed where given") to_add = costs_pypsa.loc[comp_missing].drop("year", axis=1) to_add.loc[:, "further description"] = " from old pypsa cost assumptions" # more data on geothermal is added downstream, so old assumptions are redundant - to_add = to_add.drop("geothermal") + to_add = to_add.drop("geothermal") # TODO check currency year from old pypsa cost assumptions to_add["currency_year"] = 2015 costs_tot = pd.concat([costs_tot, to_add], sort=False) @@ -4157,13 +3236,11 @@ def prepare_inflation_rate(fn: str) -> pd.DataFrame: # adjust for inflation techs = costs_tot.index.get_level_values(0).unique() costs_tot["currency_year"] = costs_tot.currency_year.astype(float) - costs_tot = adjust_for_inflation( - inflation_rate, costs_tot, techs, snakemake.config["eur_year"], "value" - ) + costs_tot = adjust_for_inflation(inflation_rate, costs_tot, techs, + costs_tot.currency_year, ["value"]) # format and sort costs_tot.sort_index(inplace=True) - costs_tot.loc[:, "value"] = round( - costs_tot.value.astype(float), snakemake.config.get("ndigits", 2) - ) - costs_tot.to_csv([v for v in snakemake.output if str(year) in v][0]) + costs_tot.loc[:,'value'] = round(costs_tot.value.astype(float), + snakemake.config.get("ndigits", 2)) + costs_tot.to_csv([v for v in snakemake.output if str(year) in v][0]) \ No newline at end of file