Include integrated steelworks in industry_sector_ratio

Also switch it from sep=";" to ","
This commit is contained in:
Tom Brown 2020-09-07 11:04:50 +02:00
parent f45b9a37ae
commit f3dcda9179
2 changed files with 115 additions and 14 deletions

View File

@ -10,7 +10,8 @@ eb_base_dir = "data/eurostat-energy_balances-may_2018_edition"
jrc_base_dir = "data/jrc-idees-2015" jrc_base_dir = "data/jrc-idees-2015"
# import EU ratios df as csv # import EU ratios df as csv
industry_sector_ratios=pd.read_csv(snakemake.input.industry_sector_ratios, sep=';', index_col=0) industry_sector_ratios=pd.read_csv(snakemake.input.industry_sector_ratios,
index_col=0)
#material demand per country and industry (kton/a) #material demand per country and industry (kton/a)
countries_production = pd.read_csv(snakemake.input.industrial_production_per_country, index_col=0) countries_production = pd.read_csv(snakemake.input.industrial_production_per_country, index_col=0)

View File

@ -26,7 +26,7 @@ sub_sheet_name_dict = { 'Iron and steel':'ISI',
'Wood and wood products': 'WWP', 'Wood and wood products': 'WWP',
'Other Industrial Sectors': 'OIS'} 'Other Industrial Sectors': 'OIS'}
index = ['elec','biomass','methane','hydrogen','heat','naphtha','process emission','process emission from feedstock'] index = ['elec','coal','coke','biomass','methane','hydrogen','heat','naphtha','process emission','process emission from feedstock']
df = pd.DataFrame(index=index) df = pd.DataFrame(index=index)
@ -58,7 +58,7 @@ excel_emi = pd.read_excel('{}/JRC-IDEES-2015_Industry_{}.xlsx'.format(base_dir,c
sector = 'Electric arc' sector = 'Electric arc'
df[sector] = 0 df[sector] = 0.
# read the corresponding lines # read the corresponding lines
s_fec = excel_fec.iloc[51:57,year] s_fec = excel_fec.iloc[51:57,year]
@ -150,15 +150,7 @@ df.loc['process emission',sector] = s_emi['Process emissions']/s_out[sector] # u
# final energy consumption per t # final energy consumption per t
df.loc[['elec','heat','methane'],sector] = df.loc[['elec','heat','methane'],sector]*conv_factor/s_out[sector] # unit MWh/t material df.loc[['elec','heat','methane'],sector] = df.loc[['elec','heat','methane'],sector]*conv_factor/s_out[sector] # unit MWh/t material
### For primary route: DRI with H2 + EAF
## Integrated steelworks is not used in future
## TODO Include integrated steelworks + CCS
df['Integrated steelworks']= 0.
## For primary route: DRI with H2 + EAF
df['DRI + Electric arc'] = df['Electric arc'] df['DRI + Electric arc'] = df['Electric arc']
@ -166,6 +158,114 @@ df['DRI + Electric arc'] = df['Electric arc']
df.loc['hydrogen', 'DRI + Electric arc'] = snakemake.config["industry"]["H2_DRI"] df.loc['hydrogen', 'DRI + Electric arc'] = snakemake.config["industry"]["H2_DRI"]
### Integrated steelworks (could be used in combination with CCS)
### Assume existing fuels are kept, except for furnaces, refining, rolling, finishing
### Ignore 'derived gases' since these are top gases from furnaces
sector = 'Integrated steelworks'
df['Integrated steelworks']= 0.
# read the corresponding lines
s_fec = excel_fec.iloc[3:9,year]
assert s_fec.index[0] == sector
# Lighting, Air compressors, Motor drives, Fans and pumps
df.loc['elec',sector] += s_fec[['Lighting','Air compressors','Motor drives','Fans and pumps']].sum()
# Low enthalpy heat
df.loc['heat',sector] += s_fec['Low enthalpy heat']
#### Steel: Sinter/Pellet making
subsector = 'Steel: Sinter/Pellet making'
# read the corresponding lines
s_fec = excel_fec.iloc[13:19,year]
s_ued = excel_ued.iloc[13:19,year]
assert s_fec.index[0] == subsector
df.loc['elec',sector] += s_fec['Electricity']
df.loc['methane',sector] += s_fec['Natural gas (incl. biogas)']
df.loc['methane',sector] += s_fec['Residual fuel oil']
df.loc['coal',sector] += s_fec['Solids']
#### Steel: Blast / Basic Oxygen Furnace
subsector = 'Steel: Blast /Basic oxygen furnace'
# read the corresponding lines
s_fec = excel_fec.iloc[19:25,year]
s_ued = excel_ued.iloc[19:25,year]
assert s_fec.index[0] == subsector
df.loc['methane',sector] += s_fec['Natural gas (incl. biogas)']
df.loc['methane',sector] += s_fec['Residual fuel oil']
df.loc['coal',sector] += s_fec['Solids']
df.loc['coke',sector] += s_fec['Coke']
#### Steel: Furnaces, Refining and Rolling
#> assume fully electrified
#
#> other processes are scaled by the used energy
subsector = 'Steel: Furnaces, Refining and Rolling'
# read the corresponding lines
s_fec = excel_fec.iloc[25:32,year]
s_ued = excel_ued.iloc[25:32,year]
assert s_fec.index[0] == subsector
# this process can be electrified
eff = s_ued['Steel: Furnaces, Refining and Rolling - Electric']/s_fec['Steel: Furnaces, Refining and Rolling - Electric']
df.loc['elec',sector] += s_ued[subsector]/eff
#### Steel: Products finishing
#> assume fully electrified
subsector = 'Steel: Products finishing'
# read the corresponding lines
s_fec = excel_fec.iloc[32:49,year]
s_ued = excel_ued.iloc[32:49,year]
assert s_fec.index[0] == subsector
# this process can be electrified
eff = s_ued['Steel: Products finishing - Electric']/s_fec['Steel: Products finishing - Electric']
df.loc['elec',sector] += s_ued[subsector]/eff
#### Process emissions (per physical output)
s_emi = excel_emi.iloc[3:50,year]
assert s_emi.index[0] == sector
s_out = excel_out.iloc[6:7,year]
assert sector in str(s_out.index)
df.loc['process emission',sector] = s_emi['Process emissions']/s_out[sector] # unit tCO2/t material
# final energy consumption per t
df.loc[['elec','heat','methane','coke','coal'],sector] = df.loc[['elec','heat','methane','coke','coal'],sector]*conv_factor/s_out[sector] # unit MWh/t material
## Chemicals Industry ## Chemicals Industry
sector = 'Chemicals Industry' sector = 'Chemicals Industry'
@ -185,7 +285,7 @@ excel_emi = pd.read_excel('{}/JRC-IDEES-2015_Industry_{}.xlsx'.format(base_dir,c
### Basic chemicals ### Basic chemicals
## Ammonia is separate afterwards ## Ammonia is separated afterwards
sector = 'Basic chemicals' sector = 'Basic chemicals'
@ -1400,4 +1500,4 @@ df.loc[sources,sector] = df.loc[sources,sector]*conv_factor/s_out['Physical outp
df.index.name = "MWh/tMaterial" df.index.name = "MWh/tMaterial"
df.to_csv('resources/industry_sector_ratios.csv', sep=';') df.to_csv('resources/industry_sector_ratios.csv')