Re-integrate industry, aviation and shipping into model
Following plan by Marta and Kun
This commit is contained in:
parent
990ab035c3
commit
06cb526fef
@ -2,7 +2,7 @@ logging_level: INFO
|
|||||||
|
|
||||||
results_dir: 'results/'
|
results_dir: 'results/'
|
||||||
summary_dir: results
|
summary_dir: results
|
||||||
run: '190712-test_district'
|
run: '190718-new_industry'
|
||||||
|
|
||||||
scenario:
|
scenario:
|
||||||
sectors: [E] # ,E+EV,E+BEV,E+BEV+V2G] # [ E+EV, E+BEV, E+BEV+V2G ]
|
sectors: [E] # ,E+EV,E+BEV,E+BEV+V2G] # [ E+EV, E+BEV, E+BEV+V2G ]
|
||||||
@ -62,6 +62,7 @@ sector:
|
|||||||
'bev_availability' : 0.5 #How many cars do smart charging
|
'bev_availability' : 0.5 #How many cars do smart charging
|
||||||
'v2g' : True #allows feed-in to grid from EV battery
|
'v2g' : True #allows feed-in to grid from EV battery
|
||||||
'transport_fuel_cell_share' : 0. #0 means all EVs, 1 means all FCs
|
'transport_fuel_cell_share' : 0. #0 means all EVs, 1 means all FCs
|
||||||
|
'shipping_average_efficiency' : 0.4 #For conversion of fuel oil to propulsion in 2011
|
||||||
'time_dep_hp_cop' : True
|
'time_dep_hp_cop' : True
|
||||||
'retrofitting' : False
|
'retrofitting' : False
|
||||||
'retroI-fraction' : 0.25
|
'retroI-fraction' : 0.25
|
||||||
|
@ -686,7 +686,7 @@ def add_transport(network):
|
|||||||
suffix=" transport fuel cell",
|
suffix=" transport fuel cell",
|
||||||
bus=nodes + " H2",
|
bus=nodes + " H2",
|
||||||
carrier="transport fuel cell",
|
carrier="transport fuel cell",
|
||||||
p_set=options['transport_fuel_cell_share']/0.58*transport[nodes])
|
p_set=options['transport_fuel_cell_share']/costs.at["fuel cell","efficiency"]*transport[nodes])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1153,56 +1153,71 @@ def add_industry(network):
|
|||||||
|
|
||||||
nodes = pop_layout.index
|
nodes = pop_layout.index
|
||||||
|
|
||||||
industrial_demand = pd.read_csv(snakemake.input.industrial_demand,
|
#1e6 to convert TWh to MWh
|
||||||
index_col=0)
|
industrial_demand = 1e6*pd.read_csv(snakemake.input.industrial_demand,
|
||||||
|
index_col=0)
|
||||||
|
|
||||||
|
solid_biomass_by_country = industrial_demand["solid biomass"].groupby(pop_layout.ct).sum()
|
||||||
|
countries = solid_biomass_by_country.index
|
||||||
|
|
||||||
network.madd("Bus",
|
network.madd("Bus",
|
||||||
nodes + " process heat",
|
countries + " solid biomass for industry",
|
||||||
carrier="process heat")
|
carrier="solid biomass for industry")
|
||||||
|
|
||||||
network.madd("Load",
|
network.madd("Load",
|
||||||
nodes,
|
countries,
|
||||||
suffix=" process heat",
|
suffix=" solid biomass for industry",
|
||||||
bus=nodes + " process heat",
|
bus=countries+ " solid biomass for industry",
|
||||||
carrier="process heat",
|
carrier="solid biomass for industry",
|
||||||
p_set = industrial_demand.loc[nodes,"industry process heat"]/8760.)
|
p_set=solid_biomass_by_country/8760.)
|
||||||
|
|
||||||
#with BECCS
|
#with BECCS
|
||||||
network.madd("Link",
|
network.madd("Link",
|
||||||
nodes + " solid biomass to process heat",
|
countries + " solid biomass for industry",
|
||||||
bus0=nodes.str[:2] + " solid biomass",
|
bus0=countries + " solid biomass",
|
||||||
bus1=nodes + " process heat",
|
bus1=countries + " solid biomass for industry",
|
||||||
bus2="co2 atmosphere",
|
bus2="co2 atmosphere",
|
||||||
bus3="co2 stored",
|
bus3="co2 stored",
|
||||||
efficiency2=-costs.at['solid biomass','CO2 intensity']*options["ccs_fraction"],
|
efficiency2=-costs.at['solid biomass','CO2 intensity']*options["ccs_fraction"],
|
||||||
efficiency3=costs.at['solid biomass','CO2 intensity']*options["ccs_fraction"],
|
efficiency3=costs.at['solid biomass','CO2 intensity']*options["ccs_fraction"],
|
||||||
carrier="solid biomass to process heat",
|
carrier="solid biomass for industry",
|
||||||
p_nom_extendable=True)
|
p_nom_extendable=True)
|
||||||
|
|
||||||
|
network.madd("Bus",
|
||||||
|
["gas for industry"],
|
||||||
|
carrier="gas for industry")
|
||||||
|
|
||||||
|
network.madd("Load",
|
||||||
|
["gas for industry"],
|
||||||
|
bus="gas for industry",
|
||||||
|
carrier="gas for industry",
|
||||||
|
p_set=industrial_demand.loc[nodes,"methane"].sum()/8760.)
|
||||||
|
|
||||||
network.madd("Link",
|
network.madd("Link",
|
||||||
nodes + " gas to process heat",
|
["gas for industry"],
|
||||||
bus0="EU gas",
|
bus0="EU gas",
|
||||||
bus1=nodes + " process heat",
|
bus1="gas for industry",
|
||||||
bus2="co2 atmosphere",
|
bus2="co2 atmosphere",
|
||||||
bus3="co2 stored",
|
bus3="co2 stored",
|
||||||
efficiency2=costs.at['gas','CO2 intensity']*(1-options["ccs_fraction"]),
|
efficiency2=costs.at['gas','CO2 intensity']*(1-options["ccs_fraction"]),
|
||||||
efficiency3=costs.at['gas','CO2 intensity']*options["ccs_fraction"],
|
efficiency3=costs.at['gas','CO2 intensity']*options["ccs_fraction"],
|
||||||
carrier="gas to process heat",
|
carrier="gas for industry",
|
||||||
p_nom_extendable=True)
|
|
||||||
|
|
||||||
network.madd("Link",
|
|
||||||
nodes + " H2 to process heat",
|
|
||||||
bus0=nodes + " H2",
|
|
||||||
bus1=nodes + " process heat",
|
|
||||||
carrier="H2 to process heat",
|
|
||||||
p_nom_extendable=True)
|
p_nom_extendable=True)
|
||||||
|
|
||||||
network.madd("Load",
|
network.madd("Load",
|
||||||
nodes,
|
nodes,
|
||||||
suffix=" shipping",
|
suffix=" H2 for industry",
|
||||||
bus=nodes + " H2",
|
bus=nodes + " H2",
|
||||||
carrier="shipping",
|
carrier="H2 for industry",
|
||||||
p_set = industrial_demand.loc[nodes,"shipping H2"]/8760.)
|
p_set=industrial_demand.loc[nodes,"hydrogen"]/8760.)
|
||||||
|
|
||||||
|
|
||||||
|
network.madd("Load",
|
||||||
|
nodes,
|
||||||
|
suffix=" H2 for shipping",
|
||||||
|
bus=nodes + " H2",
|
||||||
|
carrier="H2 for shipping",
|
||||||
|
p_set = nodal_energy_totals.loc[nodes,["total international navigation","total domestic navigation"]].sum(axis=1)*1e6*options['shipping_average_efficiency']/costs.at["fuel cell","efficiency"]/8760.)
|
||||||
|
|
||||||
network.add("Bus",
|
network.add("Bus",
|
||||||
"Fischer-Tropsch",
|
"Fischer-Tropsch",
|
||||||
@ -1252,29 +1267,45 @@ def add_industry(network):
|
|||||||
p_nom_extendable=True)
|
p_nom_extendable=True)
|
||||||
|
|
||||||
network.madd("Load",
|
network.madd("Load",
|
||||||
["Fischer-Tropsch"],
|
["naphtha for industry"],
|
||||||
bus="Fischer-Tropsch-demand",
|
bus="Fischer-Tropsch-demand",
|
||||||
carrier="Fischer-Tropsch",
|
carrier="naphtha for industry",
|
||||||
p_set = industrial_demand.loc[nodes,["aviation kerosene","naphtha feedstock"]].sum().sum()/8760.)
|
p_set = industrial_demand.loc[nodes,"naphtha"].sum()/8760.)
|
||||||
|
|
||||||
|
network.madd("Load",
|
||||||
|
["kerosene for aviation"],
|
||||||
|
bus="Fischer-Tropsch-demand",
|
||||||
|
carrier="kerosene for aviation",
|
||||||
|
p_set = nodal_energy_totals.loc[nodes,["total international aviation","total domestic aviation"]].sum(axis=1).sum()*1e6/8760.)
|
||||||
|
|
||||||
|
urban = n.buses.index[n.buses.index.str.contains("urban") & n.buses.index.str.contains("heat")]
|
||||||
|
network.madd("Load",
|
||||||
|
nodes,
|
||||||
|
suffix=" low-temperature heat for industry",
|
||||||
|
bus=urban,
|
||||||
|
carrier="low-temperature heat for industry",
|
||||||
|
p_set=industrial_demand.loc[nodes,"low-temperature heat"]/8760.)
|
||||||
|
|
||||||
network.madd("Load",
|
network.madd("Load",
|
||||||
nodes,
|
nodes,
|
||||||
suffix=" industry new electricity",
|
suffix=" industry new electricity",
|
||||||
bus=nodes,
|
bus=nodes,
|
||||||
carrier="industry new electricity",
|
carrier="industry new electricity",
|
||||||
p_set = industrial_demand.loc[nodes,"industry new electricity"]/8760.)
|
p_set = (industrial_demand.loc[nodes,"electricity"]-industrial_demand.loc[nodes,"current electricity"])/8760.)
|
||||||
|
|
||||||
network.madd("Load",
|
network.madd("Load",
|
||||||
["process emissions to atmosphere"],
|
["process emissions to atmosphere"],
|
||||||
bus="co2 atmosphere",
|
bus="co2 atmosphere",
|
||||||
carrier="process emissions to atmosphere",
|
carrier="process emissions to atmosphere",
|
||||||
p_set = -industrial_demand.loc[nodes,"process emissions"].sum()*(1-options["ccs_fraction"])/8760.)
|
p_set = -industrial_demand.loc[nodes,"process emission"].sum()*(1-options["ccs_fraction"])/8760.)
|
||||||
|
|
||||||
network.madd("Load",
|
network.madd("Load",
|
||||||
["process emissions to stored"],
|
["process emissions to stored"],
|
||||||
bus="co2 stored",
|
bus="co2 stored",
|
||||||
carrier="process emissions to stored",
|
carrier="process emissions to stored",
|
||||||
p_set = -industrial_demand.loc[nodes,"process emissions"].sum()*options["ccs_fraction"]/8760.)
|
p_set = -industrial_demand.loc[nodes,"process emission"].sum()*options["ccs_fraction"]/8760.)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def add_waste_heat(network):
|
def add_waste_heat(network):
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user