Merge pull request #92 from nworbmot/master

Change name of liquid hydrocarbon bus from Fischer-Tropsch to oil
This commit is contained in:
Tom Brown 2021-01-29 16:43:11 +01:00 committed by GitHub
commit 99ad066469
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 44 additions and 38 deletions

View File

@ -102,7 +102,7 @@ sector:
'bev_dsm' : True #turns on EV battery
'bev_availability' : 0.5 #How many cars do smart charging
'v2g' : True #allows feed-in to grid from EV battery
#what is not EV or FCEV is fossil-fuelled
#what is not EV or FCEV is oil-fuelled ICE
'land_transport_fuel_cell_share': # 1 means all FCEVs
2020: 0
2030: 0.05
@ -334,7 +334,7 @@ plotting:
"Fischer-Tropsch" : "#44DD33"
"kerosene for aviation": "#44BB11"
"naphtha for industry" : "#44FF55"
"land transport fossil" : "#44DD33"
"land transport oil" : "#44DD33"
"water tanks" : "#BBBBBB"
"hot water storage" : "#BBBBBB"
"hot water charging" : "#BBBBBB"
@ -369,6 +369,7 @@ plotting:
"process emissions to stored" : "#444444"
"process emissions to atmosphere" : "#888888"
"process emissions" : "#222222"
"oil emissions" : "#666666"
"land transport fuel cell" : "#AAAAAA"
"biogas" : "#800000"
"solid biomass" : "#DAA520"

View File

@ -4,9 +4,11 @@ Release Notes
Future release
===================
* For the myopic option, a carbon budget and a type of decay (exponential or beta) can be selected in the config file to distribute the budget across the planning_horizons.
* Added an option to alter the capital cost or maximum capacity of carriers by a factor via ``carrier+factor`` in the ``{opts}`` wildcard. This can be useful for exploring uncertain cost parameters. Example: ``solar+c0.5`` reduces the capital cost of solar to 50\% of original values. Similarly ``solar+p3`` multiplies the p_nom_max by 3.
* Bugfix: Fix reading in of ``pypsa-eur/resources/powerplants.csv`` to PyPSA-Eur Version 0.3.0 (use ``DateIn`` instead of old ``YearDecommissioned``).
* For the myopic investment option, a carbon budget and a type of decay (exponential or beta) can be selected in the ``config.yaml`` file to distribute the budget across the ``planning_horizons``. For example, ``cb40ex0`` in the ``{sector_opts}`` wildcard will distribute a carbon budget of 40 GtCO2 following an exponential decay with initial growth rate 0.
* Added an option to alter the capital cost or maximum capacity of carriers by a factor via ``carrier+factor`` in the ``{sector_opts}`` wildcard. This can be useful for exploring uncertain cost parameters. Example: ``solar+c0.5`` reduces the ``capital_cost`` of solar to 50\% of original values. Similarly ``solar+p3`` multiplies the ``p_nom_max`` by 3.
* Rename the bus for European liquid hydrocarbons from ``Fischer-Tropsch`` to ``EU oil``, since it can be supplied not just with the Fischer-Tropsch process, but also with fossil oil.
* Bugfix: Fix reading in of ``pypsa-eur/resources/powerplants.csv`` to PyPSA-Eur Version 0.3.0 (use column attribute name ``DateIn`` instead of old ``YearDecommissioned``).
* Bugfix: Make sure that ``Store`` components (battery and H2) are also removed from PyPSA-Eur, so they can be added later by PyPSA-Eur-Sec.

View File

@ -676,7 +676,7 @@ def add_generation(network):
capital_cost=0.) #could correct to e.g. 0.2 EUR/kWh * annuity and O&M
network.add("Generator",
"EU fossil " + carrier,
"EU " + carrier,
bus="EU " + carrier,
p_nom_extendable=True,
carrier=carrier,
@ -1056,14 +1056,14 @@ def add_land_transport(network):
fuel_cell_share = get_parameter(options["land_transport_fuel_cell_share"])
electric_share = get_parameter(options["land_transport_electric_share"])
fossil_share = 1 - fuel_cell_share - electric_share
ice_share = 1 - fuel_cell_share - electric_share
print("shares of FCEV, EV and ICEV are",
fuel_cell_share,
electric_share,
fossil_share)
ice_share)
if fossil_share < 0:
if ice_share < 0:
print("Error, more FCEV and EV share than 1.")
sys.exit()
@ -1141,14 +1141,14 @@ def add_land_transport(network):
p_set=fuel_cell_share/options['transport_fuel_cell_efficiency']*transport[nodes])
if fossil_share > 0:
if ice_share > 0:
network.madd("Load",
nodes,
suffix=" land transport fossil",
bus="Fischer-Tropsch",
carrier="land transport fossil",
p_set=fossil_share/options['transport_internal_combustion_efficiency']*transport[nodes])
suffix=" land transport oil",
bus="EU oil",
carrier="land transport oil",
p_set=ice_share/options['transport_internal_combustion_efficiency']*transport[nodes])
@ -1664,27 +1664,30 @@ def add_industry(network):
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.madd("Bus",
["Fischer-Tropsch"],
location="EU",
carrier="Fischer-Tropsch")
if "EU oil" not in network.buses.index:
network.madd("Bus",
["EU oil"],
location="EU",
carrier="oil")
#use madd to get carrier inserted
network.madd("Store",
["Fischer-Tropsch Store"],
bus="Fischer-Tropsch",
e_nom_extendable=True,
e_cyclic=True,
carrier="Fischer-Tropsch",
capital_cost=0.) #could correct to e.g. 0.001 EUR/kWh * annuity and O&M
if "EU oil Store" not in network.stores.index:
network.madd("Store",
["EU oil Store"],
bus="EU oil",
e_nom_extendable=True,
e_cyclic=True,
carrier="oil",
capital_cost=0.) #could correct to e.g. 0.001 EUR/kWh * annuity and O&M
network.add("Generator",
"fossil oil",
bus="Fischer-Tropsch",
p_nom_extendable=True,
carrier="oil",
capital_cost=0.,
marginal_cost=costs.at["oil",'fuel'])
if "EU oil" not in network.generators.index:
network.add("Generator",
"EU oil",
bus="EU oil",
p_nom_extendable=True,
carrier="oil",
capital_cost=0.,
marginal_cost=costs.at["oil",'fuel'])
if options["oil_boilers"]:
@ -1694,7 +1697,7 @@ def add_industry(network):
network.madd("Link",
nodes_heat[name] + " " + name + " oil boiler",
p_nom_extendable=True,
bus0=["Fischer-Tropsch"] * len(nodes_heat[name]),
bus0="EU oil",
bus1=nodes_heat[name] + " " + name + " heat",
bus2="co2 atmosphere",
carrier=name + " oil boiler",
@ -1707,7 +1710,7 @@ def add_industry(network):
network.madd("Link",
nodes + " Fischer-Tropsch",
bus0=nodes + " H2",
bus1="Fischer-Tropsch",
bus1="EU oil",
bus2="co2 stored",
carrier="Fischer-Tropsch",
efficiency=costs.at["Fischer-Tropsch",'efficiency'],
@ -1718,13 +1721,13 @@ def add_industry(network):
network.madd("Load",
["naphtha for industry"],
bus="Fischer-Tropsch",
bus="EU oil",
carrier="naphtha for industry",
p_set = industrial_demand.loc[nodes,"naphtha"].sum()/8760.)
network.madd("Load",
["kerosene for aviation"],
bus="Fischer-Tropsch",
bus="EU oil",
carrier="kerosene for aviation",
p_set = nodal_energy_totals.loc[nodes,["total international aviation","total domestic aviation"]].sum(axis=1).sum()*1e6/8760.)
@ -1734,9 +1737,9 @@ def add_industry(network):
co2 = network.loads.loc[["naphtha for industry","kerosene for aviation"],"p_set"].sum()*costs.at["oil",'CO2 intensity'] - industrial_demand.loc[nodes,"process emission from feedstock"].sum()/8760.
network.madd("Load",
["Fischer-Tropsch emissions"],
["oil emissions"],
bus="co2 atmosphere",
carrier="Fischer-Tropsch emissions",
carrier="oil emissions",
p_set=-co2)
network.madd("Load",