From c630547ee952eb08113e13103f3efc808c4a5b64 Mon Sep 17 00:00:00 2001 From: Alberto Alamia Date: Tue, 27 Jan 2026 19:32:53 +0100 Subject: [PATCH 1/2] updated biochar logic as CDR technology --- outputs/US/costs_2020.csv | 11 +- outputs/US/costs_2025.csv | 11 +- outputs/US/costs_2030.csv | 11 +- outputs/US/costs_2035.csv | 11 +- outputs/US/costs_2040.csv | 11 +- outputs/US/costs_2045.csv | 11 +- outputs/US/costs_2050.csv | 11 +- outputs/costs_2020.csv | 11 +- outputs/costs_2025.csv | 11 +- outputs/costs_2030.csv | 11 +- outputs/costs_2035.csv | 11 +- outputs/costs_2040.csv | 11 +- outputs/costs_2045.csv | 11 +- outputs/costs_2050.csv | 11 +- scripts/compile_cost_assumptions.py | 240 +++++++++++++++++----------- 15 files changed, 228 insertions(+), 166 deletions(-) diff --git a/outputs/US/costs_2020.csv b/outputs/US/costs_2020.csv index d155b1f6..294431e9 100644 --- a/outputs/US/costs_2020.csv +++ b/outputs/US/costs_2020.csv @@ -3508,12 +3508,13 @@ battery storage,investment,354.1815,USD/kWh,"NREL, 2024 ATB Excel Workbook, Shee battery storage,investment,354.1815,USD/kWh,"NREL, 2024 ATB Excel Workbook, Sheet “Utility-Scale Battery Storage”, https://data.openei.org/files/6006/2024_v3_Workbook.xlsx",Includes grid connection and project financing costs; Meaning of scenario and financial case: https://atb.nrel.gov/electricity/2024/definitions#scenarios,2022.0,Market,Advanced battery storage,lifetime,15.0,years,"NREL, 2024 ATB Excel Workbook, Sheet “Utility-Scale Battery Storage”, https://data.openei.org/files/6006/2024_v3_Workbook.xlsx",,,, biochar pyrolysis,FOM,3.4615,%/year,"Danish Energy Agency, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0,, biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, inputs/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, inputs/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, inputs/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,CO2 intensity,0.1289,tCO2/MWh_th,,"CO2 released during fermentation of bioethanol crops, based on stochiometric composition: C6H12O6 -> 2 C2H5OH + 2 CO2 , i.e. 1 kg ethanol → ~0.956 kg CO₂ (from fermentation) → 0.1289 tCO₂/MWh (with LHV = 26.7 MJ/kg).",,, 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,, diff --git a/outputs/US/costs_2025.csv b/outputs/US/costs_2025.csv index 8c911804..8351b22c 100644 --- a/outputs/US/costs_2025.csv +++ b/outputs/US/costs_2025.csv @@ -3588,12 +3588,13 @@ battery storage,investment,288.7881,USD/kWh,"NREL, 2024 ATB Excel Workbook, Shee battery storage,investment,288.7881,USD/kWh,"NREL, 2024 ATB Excel Workbook, Sheet “Utility-Scale Battery Storage”, https://data.openei.org/files/6006/2024_v3_Workbook.xlsx",Includes grid connection and project financing costs; Meaning of scenario and financial case: https://atb.nrel.gov/electricity/2024/definitions#scenarios,2022.0,Market,Advanced battery storage,lifetime,15.0,years,"NREL, 2024 ATB Excel Workbook, Sheet “Utility-Scale Battery Storage”, https://data.openei.org/files/6006/2024_v3_Workbook.xlsx",,,, biochar pyrolysis,FOM,3.4615,%/year,"Danish Energy Agency, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0,, biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, inputs/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, inputs/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, inputs/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,CO2 intensity,0.1289,tCO2/MWh_th,,"CO2 released during fermentation of bioethanol crops, based on stochiometric composition: C6H12O6 -> 2 C2H5OH + 2 CO2 , i.e. 1 kg ethanol → ~0.956 kg CO₂ (from fermentation) → 0.1289 tCO₂/MWh (with LHV = 26.7 MJ/kg).",,, 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,, diff --git a/outputs/US/costs_2030.csv b/outputs/US/costs_2030.csv index 35c38a65..63956cfe 100644 --- a/outputs/US/costs_2030.csv +++ b/outputs/US/costs_2030.csv @@ -3744,12 +3744,13 @@ battery storage,investment,179.7991,USD/kWh,"NREL, 2024 ATB Excel Workbook, Shee battery storage,investment,179.7991,USD/kWh,"NREL, 2024 ATB Excel Workbook, Sheet “Utility-Scale Battery Storage”, https://data.openei.org/files/6006/2024_v3_Workbook.xlsx",Includes grid connection and project financing costs; Meaning of scenario and financial case: https://atb.nrel.gov/electricity/2024/definitions#scenarios,2022.0,Market,Advanced battery storage,lifetime,15.0,years,"NREL, 2024 ATB Excel Workbook, Sheet “Utility-Scale Battery Storage”, https://data.openei.org/files/6006/2024_v3_Workbook.xlsx",,,, biochar pyrolysis,FOM,3.4167,%/year,"Danish Energy Agency, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0,, biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, inputs/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, inputs/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, inputs/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,CO2 intensity,0.1289,tCO2/MWh_th,,"CO2 released during fermentation of bioethanol crops, based on stochiometric composition: C6H12O6 -> 2 C2H5OH + 2 CO2 , i.e. 1 kg ethanol → ~0.956 kg CO₂ (from fermentation) → 0.1289 tCO₂/MWh (with LHV = 26.7 MJ/kg).",,, 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,, diff --git a/outputs/US/costs_2035.csv b/outputs/US/costs_2035.csv index 7ae12d4a..d615bcb6 100644 --- a/outputs/US/costs_2035.csv +++ b/outputs/US/costs_2035.csv @@ -3768,12 +3768,13 @@ battery storage,investment,163.9422,USD/kWh,"NREL, 2024 ATB Excel Workbook, Shee battery storage,investment,163.9422,USD/kWh,"NREL, 2024 ATB Excel Workbook, Sheet “Utility-Scale Battery Storage”, https://data.openei.org/files/6006/2024_v3_Workbook.xlsx",Includes grid connection and project financing costs; Meaning of scenario and financial case: https://atb.nrel.gov/electricity/2024/definitions#scenarios,2022.0,Market,Advanced battery storage,lifetime,15.0,years,"NREL, 2024 ATB Excel Workbook, Sheet “Utility-Scale Battery Storage”, https://data.openei.org/files/6006/2024_v3_Workbook.xlsx",,,, biochar pyrolysis,FOM,3.3913,%/year,"Danish Energy Agency, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0,, biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, inputs/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, inputs/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, inputs/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,CO2 intensity,0.1289,tCO2/MWh_th,,"CO2 released during fermentation of bioethanol crops, based on stochiometric composition: C6H12O6 -> 2 C2H5OH + 2 CO2 , i.e. 1 kg ethanol → ~0.956 kg CO₂ (from fermentation) → 0.1289 tCO₂/MWh (with LHV = 26.7 MJ/kg).",,, 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,, diff --git a/outputs/US/costs_2040.csv b/outputs/US/costs_2040.csv index f3d8fe55..46868aec 100644 --- a/outputs/US/costs_2040.csv +++ b/outputs/US/costs_2040.csv @@ -3768,12 +3768,13 @@ battery storage,investment,148.0852,USD/kWh,"NREL, 2024 ATB Excel Workbook, Shee battery storage,investment,148.0852,USD/kWh,"NREL, 2024 ATB Excel Workbook, Sheet “Utility-Scale Battery Storage”, https://data.openei.org/files/6006/2024_v3_Workbook.xlsx",Includes grid connection and project financing costs; Meaning of scenario and financial case: https://atb.nrel.gov/electricity/2024/definitions#scenarios,2022.0,Market,Advanced battery storage,lifetime,15.0,years,"NREL, 2024 ATB Excel Workbook, Sheet “Utility-Scale Battery Storage”, https://data.openei.org/files/6006/2024_v3_Workbook.xlsx",,,, biochar pyrolysis,FOM,3.3636,%/year,"Danish Energy Agency, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0,, biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, inputs/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, inputs/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, inputs/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,CO2 intensity,0.1289,tCO2/MWh_th,,"CO2 released during fermentation of bioethanol crops, based on stochiometric composition: C6H12O6 -> 2 C2H5OH + 2 CO2 , i.e. 1 kg ethanol → ~0.956 kg CO₂ (from fermentation) → 0.1289 tCO₂/MWh (with LHV = 26.7 MJ/kg).",,, 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,, diff --git a/outputs/US/costs_2045.csv b/outputs/US/costs_2045.csv index 9fb13c81..eb05fc98 100644 --- a/outputs/US/costs_2045.csv +++ b/outputs/US/costs_2045.csv @@ -3768,12 +3768,13 @@ battery storage,investment,132.5778,USD/kWh,"NREL, 2024 ATB Excel Workbook, Shee battery storage,investment,132.5778,USD/kWh,"NREL, 2024 ATB Excel Workbook, Sheet “Utility-Scale Battery Storage”, https://data.openei.org/files/6006/2024_v3_Workbook.xlsx",Includes grid connection and project financing costs; Meaning of scenario and financial case: https://atb.nrel.gov/electricity/2024/definitions#scenarios,2022.0,Market,Advanced battery storage,lifetime,15.0,years,"NREL, 2024 ATB Excel Workbook, Sheet “Utility-Scale Battery Storage”, https://data.openei.org/files/6006/2024_v3_Workbook.xlsx",,,, biochar pyrolysis,FOM,3.381,%/year,"Danish Energy Agency, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0,, biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, inputs/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, inputs/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, inputs/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,CO2 intensity,0.1289,tCO2/MWh_th,,"CO2 released during fermentation of bioethanol crops, based on stochiometric composition: C6H12O6 -> 2 C2H5OH + 2 CO2 , i.e. 1 kg ethanol → ~0.956 kg CO₂ (from fermentation) → 0.1289 tCO₂/MWh (with LHV = 26.7 MJ/kg).",,, 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,, diff --git a/outputs/US/costs_2050.csv b/outputs/US/costs_2050.csv index 9eba0494..aa120eb5 100644 --- a/outputs/US/costs_2050.csv +++ b/outputs/US/costs_2050.csv @@ -3768,12 +3768,13 @@ battery storage,investment,117.0703,USD/kWh,"NREL, 2024 ATB Excel Workbook, Shee battery storage,investment,117.0703,USD/kWh,"NREL, 2024 ATB Excel Workbook, Sheet “Utility-Scale Battery Storage”, https://data.openei.org/files/6006/2024_v3_Workbook.xlsx",Includes grid connection and project financing costs; Meaning of scenario and financial case: https://atb.nrel.gov/electricity/2024/definitions#scenarios,2022.0,Market,Advanced battery storage,lifetime,15.0,years,"NREL, 2024 ATB Excel Workbook, Sheet “Utility-Scale Battery Storage”, https://data.openei.org/files/6006/2024_v3_Workbook.xlsx",,,, biochar pyrolysis,FOM,3.4,%/year,"Danish Energy Agency, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0,, biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, inputs/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, inputs/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, inputs/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,CO2 intensity,0.1289,tCO2/MWh_th,,"CO2 released during fermentation of bioethanol crops, based on stochiometric composition: C6H12O6 -> 2 C2H5OH + 2 CO2 , i.e. 1 kg ethanol → ~0.956 kg CO₂ (from fermentation) → 0.1289 tCO₂/MWh (with LHV = 26.7 MJ/kg).",,, 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,, diff --git a/outputs/costs_2020.csv b/outputs/costs_2020.csv index d612abc2..9f361682 100644 --- a/outputs/costs_2020.csv +++ b/outputs/costs_2020.csv @@ -623,12 +623,13 @@ battery inverter,lifetime,10.0,years,"Danish Energy Agency, inputs/technology_da battery storage,investment,246.7088,EUR/kWh,"Danish Energy Agency, inputs/technology_data_catalogue_for_energy_storage.xlsx",: Energy storage expansion cost investment,2020.0 battery storage,lifetime,20.0,years,"Danish Energy Agency, inputs/technology_data_catalogue_for_energy_storage.xlsx",: Technical lifetime,2020.0 biochar pyrolysis,FOM,3.4615,%/year,"Danish Energy Agency, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, inputs/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, inputs/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, inputs/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,CO2 intensity,0.1289,tCO2/MWh_th,,"CO2 released during fermentation of bioethanol crops, based on stochiometric composition: C6H12O6 -> 2 C2H5OH + 2 CO2 , i.e. 1 kg ethanol → ~0.956 kg CO₂ (from fermentation) → 0.1289 tCO₂/MWh (with LHV = 26.7 MJ/kg).", 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 diff --git a/outputs/costs_2025.csv b/outputs/costs_2025.csv index e1e1c1c4..42b19c4e 100644 --- a/outputs/costs_2025.csv +++ b/outputs/costs_2025.csv @@ -623,12 +623,13 @@ battery inverter,lifetime,10.0,years,"Danish Energy Agency, inputs/technology_da battery storage,investment,198.8558,EUR/kWh,"Danish Energy Agency, inputs/technology_data_catalogue_for_energy_storage.xlsx",: Energy storage expansion cost investment,2020.0 battery storage,lifetime,22.5,years,"Danish Energy Agency, inputs/technology_data_catalogue_for_energy_storage.xlsx",: Technical lifetime,2020.0 biochar pyrolysis,FOM,3.4615,%/year,"Danish Energy Agency, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, inputs/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, inputs/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, inputs/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,CO2 intensity,0.1289,tCO2/MWh_th,,"CO2 released during fermentation of bioethanol crops, based on stochiometric composition: C6H12O6 -> 2 C2H5OH + 2 CO2 , i.e. 1 kg ethanol → ~0.956 kg CO₂ (from fermentation) → 0.1289 tCO₂/MWh (with LHV = 26.7 MJ/kg).", 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 diff --git a/outputs/costs_2030.csv b/outputs/costs_2030.csv index 81e8ceeb..39d59639 100644 --- a/outputs/costs_2030.csv +++ b/outputs/costs_2030.csv @@ -623,12 +623,13 @@ battery inverter,lifetime,10.0,years,"Danish Energy Agency, inputs/technology_da battery storage,investment,151.0028,EUR/kWh,"Danish Energy Agency, inputs/technology_data_catalogue_for_energy_storage.xlsx",: Energy storage expansion cost investment,2020.0 battery storage,lifetime,25.0,years,"Danish Energy Agency, inputs/technology_data_catalogue_for_energy_storage.xlsx",: Technical lifetime,2020.0 biochar pyrolysis,FOM,3.4167,%/year,"Danish Energy Agency, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, inputs/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, inputs/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, inputs/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,CO2 intensity,0.1289,tCO2/MWh_th,,"CO2 released during fermentation of bioethanol crops, based on stochiometric composition: C6H12O6 -> 2 C2H5OH + 2 CO2 , i.e. 1 kg ethanol → ~0.956 kg CO₂ (from fermentation) → 0.1289 tCO₂/MWh (with LHV = 26.7 MJ/kg).", 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 diff --git a/outputs/costs_2035.csv b/outputs/costs_2035.csv index 3ec9f1b1..3b11c4b7 100644 --- a/outputs/costs_2035.csv +++ b/outputs/costs_2035.csv @@ -623,12 +623,13 @@ battery inverter,lifetime,10.0,years,"Danish Energy Agency, inputs/technology_da battery storage,investment,125.4812,EUR/kWh,"Danish Energy Agency, inputs/technology_data_catalogue_for_energy_storage.xlsx",: Energy storage expansion cost investment,2020.0 battery storage,lifetime,27.5,years,"Danish Energy Agency, inputs/technology_data_catalogue_for_energy_storage.xlsx",: Technical lifetime,2020.0 biochar pyrolysis,FOM,3.3913,%/year,"Danish Energy Agency, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, inputs/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, inputs/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, inputs/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,CO2 intensity,0.1289,tCO2/MWh_th,,"CO2 released during fermentation of bioethanol crops, based on stochiometric composition: C6H12O6 -> 2 C2H5OH + 2 CO2 , i.e. 1 kg ethanol → ~0.956 kg CO₂ (from fermentation) → 0.1289 tCO₂/MWh (with LHV = 26.7 MJ/kg).", 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 diff --git a/outputs/costs_2040.csv b/outputs/costs_2040.csv index 23e2ab18..022c6857 100644 --- a/outputs/costs_2040.csv +++ b/outputs/costs_2040.csv @@ -623,12 +623,13 @@ battery inverter,lifetime,10.0,years,"Danish Energy Agency, inputs/technology_da battery storage,investment,99.9596,EUR/kWh,"Danish Energy Agency, inputs/technology_data_catalogue_for_energy_storage.xlsx",: Energy storage expansion cost investment,2020.0 battery storage,lifetime,30.0,years,"Danish Energy Agency, inputs/technology_data_catalogue_for_energy_storage.xlsx",: Technical lifetime,2020.0 biochar pyrolysis,FOM,3.3636,%/year,"Danish Energy Agency, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, inputs/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, inputs/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, inputs/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,CO2 intensity,0.1289,tCO2/MWh_th,,"CO2 released during fermentation of bioethanol crops, based on stochiometric composition: C6H12O6 -> 2 C2H5OH + 2 CO2 , i.e. 1 kg ethanol → ~0.956 kg CO₂ (from fermentation) → 0.1289 tCO₂/MWh (with LHV = 26.7 MJ/kg).", 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 diff --git a/outputs/costs_2045.csv b/outputs/costs_2045.csv index 92a95db2..f2baaf2c 100644 --- a/outputs/costs_2045.csv +++ b/outputs/costs_2045.csv @@ -623,12 +623,13 @@ battery inverter,lifetime,10.0,years,"Danish Energy Agency, inputs/technology_da battery storage,investment,89.8573,EUR/kWh,"Danish Energy Agency, inputs/technology_data_catalogue_for_energy_storage.xlsx",: Energy storage expansion cost investment,2020.0 battery storage,lifetime,30.0,years,"Danish Energy Agency, inputs/technology_data_catalogue_for_energy_storage.xlsx",: Technical lifetime,2020.0 biochar pyrolysis,FOM,3.381,%/year,"Danish Energy Agency, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, inputs/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, inputs/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, inputs/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,CO2 intensity,0.1289,tCO2/MWh_th,,"CO2 released during fermentation of bioethanol crops, based on stochiometric composition: C6H12O6 -> 2 C2H5OH + 2 CO2 , i.e. 1 kg ethanol → ~0.956 kg CO₂ (from fermentation) → 0.1289 tCO₂/MWh (with LHV = 26.7 MJ/kg).", 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 diff --git a/outputs/costs_2050.csv b/outputs/costs_2050.csv index 78b1a6c4..d9e093fc 100644 --- a/outputs/costs_2050.csv +++ b/outputs/costs_2050.csv @@ -623,12 +623,13 @@ battery inverter,lifetime,10.0,years,"Danish Energy Agency, inputs/technology_da battery storage,investment,79.755,EUR/kWh,"Danish Energy Agency, inputs/technology_data_catalogue_for_energy_storage.xlsx",: Energy storage expansion cost investment,2020.0 battery storage,lifetime,30.0,years,"Danish Energy Agency, inputs/technology_data_catalogue_for_energy_storage.xlsx",: Technical lifetime,2020.0 biochar pyrolysis,FOM,3.4,%/year,"Danish Energy Agency, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/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, inputs/data_sheets_for_renewable_fuels.xlsx","105 Slow pyrolysis, Straw: Specific investment",2020.0 biochar pyrolysis,lifetime,25.0,years,"Danish Energy Agency, inputs/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, inputs/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, inputs/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,CO2 intensity,0.1289,tCO2/MWh_th,,"CO2 released during fermentation of bioethanol crops, based on stochiometric composition: C6H12O6 -> 2 C2H5OH + 2 CO2 , i.e. 1 kg ethanol → ~0.956 kg CO₂ (from fermentation) → 0.1289 tCO₂/MWh (with LHV = 26.7 MJ/kg).", 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 diff --git a/scripts/compile_cost_assumptions.py b/scripts/compile_cost_assumptions.py index 27d90fc8..5b944ec9 100644 --- a/scripts/compile_cost_assumptions.py +++ b/scripts/compile_cost_assumptions.py @@ -974,7 +974,7 @@ def get_data_DEA( df.index = df.index.str.replace("EUR/MWeh", "EUR/MWh") if "biochar pyrolysis" in tech_name: - df = biochar_pyrolysis_harmonise_dea(df) + df = biochar_pyrolysis_dea(df) elif tech_name == "central geothermal heat source": # we need to convert from costs per MW of the entire system (including heat pump) @@ -1113,6 +1113,33 @@ def add_desalination_data(cost_dataframe: pd.DataFrame) -> pd.DataFrame: return cost_dataframe +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(cost_dataframe: pd.DataFrame) -> pd.DataFrame: """ @@ -1308,102 +1335,116 @@ def unify_diw(cost_dataframe: pd.DataFrame) -> pd.DataFrame: return cost_dataframe -def biochar_pyrolysis_harmonise_dea(df: pd.DataFrame) -> pd.DataFrame: - """ - The function harmonises biochar and pyrolysis costs. - Parameters - ---------- - df : pandas.DataFrame - costs +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 to the inlet of pyrolysis + 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""" - Returns - ------- - pandas.DataFrame - updated cost dataframe - """ + # 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 + + # 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) + + # 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 + + # 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: df.drop(columns=2020, inplace=True) + # 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 + + # Calculate 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 + # CALCULATION: 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) return df @@ -1926,7 +1967,8 @@ def order_data(years: list, technology_dataframe: pd.DataFrame) -> pd.DataFrame: | (df.unit == "EUR/MW input") | (df.unit == "EUR/MW-methanol") | (df.unit == "EUR/t_N2/h") # air separation unit - | (df.unit == "EUR/MW_biochar") + | (df.unit == 'EUR/t_CO2/h') + | (df.unit == 'EUR/MW_biomass') ) ].copy() @@ -1959,7 +2001,8 @@ def order_data(years: list, technology_dataframe: pd.DataFrame) -> pd.DataFrame: | (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 == 'EUR/MW_biomass/year') + | (df.unit == 'EUR/t_CO2/h/year') | (df.unit == "% of specific investment/year") | (df.unit == investment.unit.str.split(" ").iloc[0][0] + "/year") ) @@ -2007,7 +2050,8 @@ def order_data(years: list, technology_dataframe: pd.DataFrame) -> pd.DataFrame: | (df.unit == "EUR/MWh") | (df.unit == "EUR/MWhoutput") | (df.unit == "EUR/MWh_CH4") - | (df.unit == "EUR/MWh_biochar") + | (df.unit == 'EUR/MWh_biomass') + | (df.unit == 'EUR/t_CO2') | (tech_name == "biogas upgrading") ) ].copy() @@ -2074,6 +2118,9 @@ def order_data(years: list, technology_dataframe: pd.DataFrame) -> pd.DataFrame: | (df.index.str.contains("District Heat Output,")) | (df.index.str.contains("Bio SNG")) | (df.index.str.contains("biochar")) + | (df.index.str.contains("H-Output")) + | (df.index.str.contains("Biomass Input")) + | (df.index.str.contains("El-Input")) | (df.index == ("Hydrogen")) ) & ( @@ -2088,8 +2135,11 @@ def order_data(years: list, technology_dataframe: pd.DataFrame) -> pd.DataFrame: | (df.unit == "MWh/MWh Total Input") | (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_biochar/MWh_biomass") + | df.unit.str.contains("t_biochar/MWh_biomass") + | df.unit.str.contains("MWh_th/t_CO2") + | df.unit.str.contains("MWh_biomass/t_CO2") + | df.unit.str.contains("MWh_e/t_CO2") | df.unit.str.contains("MWh_CH4/MWh_H2") | df.unit.str.contains("% MWh_feedstock") ) @@ -2182,23 +2232,21 @@ def order_data(years: list, technology_dataframe: pd.DataFrame) -> pd.DataFrame: clean_df[tech_name] = pd.concat([clean_df[tech_name], efficiency_meoh]) elif tech_name == "biochar pyrolysis": - efficiency_biochar = efficiency[ - efficiency.index.str.contains("efficiency biochar") - ].copy() + 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() + 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_name] = pd.concat([clean_df[tech_name], efficiency_biochar_mass]) + efficiency_heat_out = efficiency[efficiency.index.str.contains("H-Output")].copy() + efficiency_heat_out["parameter"] = "heat output" + clean_df[tech_name] = pd.concat([clean_df[tech_name], efficiency_heat_out]) + biomass_input = efficiency[efficiency.index.str.contains("Biomass Input")].copy() + biomass_input["parameter"] = "biomass input" + clean_df[tech_name] = pd.concat([clean_df[tech_name], biomass_input]) + electricity_input = efficiency[efficiency.index.str.contains("El-Input")].copy() + electricity_input["parameter"] = "electricity input" + clean_df[tech_name] = pd.concat([clean_df[tech_name], electricity_input]) elif len(efficiency) != 1: switch = True From be1c642158db19ed3998504c8695e6378b9247b9 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 27 Jan 2026 18:36:47 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- scripts/compile_cost_assumptions.py | 289 ++++++++++++++++++++-------- 1 file changed, 205 insertions(+), 84 deletions(-) diff --git a/scripts/compile_cost_assumptions.py b/scripts/compile_cost_assumptions.py index 5b944ec9..6665dcd8 100644 --- a/scripts/compile_cost_assumptions.py +++ b/scripts/compile_cost_assumptions.py @@ -1113,30 +1113,59 @@ def add_desalination_data(cost_dataframe: pd.DataFrame) -> pd.DataFrame: return cost_dataframe -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 +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) + """ - 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'] + 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 + 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 @@ -1335,34 +1364,58 @@ def unify_diw(cost_dataframe: pd.DataFrame) -> pd.DataFrame: return cost_dataframe - -def biochar_pyrolysis_dea (df): - """This function does: +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 to the inlet of pyrolysis 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""" + 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 + 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 # 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) + 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) # 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 + 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 # 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) + 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) @@ -1377,74 +1430,130 @@ def biochar_pyrolysis_dea (df): # 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) * pyrolysis_feedstock_biomass_energy_ratio + 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 # adjust for difference in drying heat demand + ( + 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) - + 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 + df.iloc[df.index.str.contains("Heat Output")] = ( + df_sum - Delta_heat_drying + ) # adjust for difference in drying heat demand # Calculate 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_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) + 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 + 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) # Calculated biochar Carbon content from: PyPSA-Eur solid biomass and DEA pyrolysis inputs # CALCULATION: 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 + 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 # 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.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 # 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.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("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) + 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.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) + 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, + ) return df @@ -1967,8 +2076,8 @@ def order_data(years: list, technology_dataframe: pd.DataFrame) -> pd.DataFrame: | (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_biomass') + | (df.unit == "EUR/t_CO2/h") + | (df.unit == "EUR/MW_biomass") ) ].copy() @@ -2001,8 +2110,8 @@ def order_data(years: list, technology_dataframe: pd.DataFrame) -> pd.DataFrame: | (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_biomass/year") + | (df.unit == "EUR/t_CO2/h/year") | (df.unit == "% of specific investment/year") | (df.unit == investment.unit.str.split(" ").iloc[0][0] + "/year") ) @@ -2050,8 +2159,8 @@ def order_data(years: list, technology_dataframe: pd.DataFrame) -> pd.DataFrame: | (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_biomass") + | (df.unit == "EUR/t_CO2") | (tech_name == "biogas upgrading") ) ].copy() @@ -2232,19 +2341,31 @@ def order_data(years: list, technology_dataframe: pd.DataFrame) -> pd.DataFrame: clean_df[tech_name] = pd.concat([clean_df[tech_name], efficiency_meoh]) elif tech_name == "biochar pyrolysis": - efficiency_biochar = efficiency[efficiency.index.str.contains("efficiency biochar")].copy() + 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() + 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_out = efficiency[efficiency.index.str.contains("H-Output")].copy() + clean_df[tech_name] = pd.concat( + [clean_df[tech_name], efficiency_biochar_mass] + ) + efficiency_heat_out = efficiency[ + efficiency.index.str.contains("H-Output") + ].copy() efficiency_heat_out["parameter"] = "heat output" clean_df[tech_name] = pd.concat([clean_df[tech_name], efficiency_heat_out]) - biomass_input = efficiency[efficiency.index.str.contains("Biomass Input")].copy() + biomass_input = efficiency[ + efficiency.index.str.contains("Biomass Input") + ].copy() biomass_input["parameter"] = "biomass input" clean_df[tech_name] = pd.concat([clean_df[tech_name], biomass_input]) - electricity_input = efficiency[efficiency.index.str.contains("El-Input")].copy() + electricity_input = efficiency[ + efficiency.index.str.contains("El-Input") + ].copy() electricity_input["parameter"] = "electricity input" clean_df[tech_name] = pd.concat([clean_df[tech_name], electricity_input])