use spatial namespace to manage ammonia resolution

This commit is contained in:
Fabian Neumann 2022-06-10 16:53:37 +02:00
parent a2a4cf7c02
commit 4984ba199e
2 changed files with 20 additions and 8 deletions

View File

@ -244,7 +244,7 @@ sector:
# - onshore # more than 50 km from sea
- nearshore # within 50 km of sea
# - offshore
ammonia: false
ammonia: false # can be false (no NH3 carrier), true (copperplated NH3), "regional" (regionalised NH3 without network)
use_fischer_tropsch_waste_heat: true
use_fuel_cell_waste_heat: true
electricity_distribution_grid: true

View File

@ -93,6 +93,18 @@ def define_spatial(nodes, options):
spatial.gas.df = pd.DataFrame(vars(spatial.gas), index=nodes)
# ammonia
spatial.ammonia = SimpleNamespace()
if options["ammonia"] == "regional":
spatial.ammonia.nodes = nodes + " NH3"
spatial.ammonia.locations = nodes
else:
spatial.ammonia.nodes = ["EU ammonia"]
spatial.ammonia.locations = ["EU"]
spatial.ammonia.df = pd.DataFrame(vars(spatial.ammonia), index=nodes)
# oil
spatial.oil = SimpleNamespace()
spatial.oil.nodes = ["EU oil"]
@ -656,7 +668,7 @@ def add_generation(n, costs):
def add_ammonia(n, costs):
logger.info("adding ammonia carrier")
logger.info("adding ammonia carrier with synthesis, cracking and storage")
nodes = pop_layout.index
@ -665,8 +677,8 @@ def add_ammonia(n, costs):
n.add("Carrier", "NH3")
n.madd("Bus",
nodes + " NH3",
location=nodes,
spatial.ammonia.nodes,
location=spatial.ammonia.locations,
carrier="NH3"
)
@ -674,7 +686,7 @@ def add_ammonia(n, costs):
nodes,
suffix=" Haber-Bosch",
bus0=nodes,
bus1=nodes + " NH3",
bus1=spatial.ammonia.nodes,
bus2=nodes + " H2",
p_nom_extendable=True,
carrier="Haber-Bosch",
@ -687,7 +699,7 @@ def add_ammonia(n, costs):
n.madd("Link",
nodes,
suffix=" ammonia cracker",
bus0=nodes + " NH3",
bus0=spatial.ammonia.nodes,
bus1=nodes + " H2",
p_nom_extendable=True,
carrier="ammonia cracker",
@ -698,9 +710,9 @@ def add_ammonia(n, costs):
# Ammonia Storage
n.madd("Store",
nodes,
spatial.ammonia.nodes,
suffix=" ammonia store",
bus=nodes + " NH3",
bus=spatial.ammonia.nodes,
e_nom_extendable=True,
e_cyclic=True,
carrier="ammonia store",