Source code for bw2io.strategies.special
[docs]
def add_dummy_processes_and_rename_exchanges(db):
"""
Add new processes to link to so-called "dummy" processes in the US LCI database.
This function adds new processes to link to dummy processes found in the US LCI
database and renames the exchanges accordingly.
Parameters
----------
db : list
A list of datasets containing exchanges with dummy processes.
Returns
-------
list
A modified list of datasets with new processes added and exchanges renamed.
Examples
--------
>>> db = [
{
"database": "uslci",
"exchanges": [
{
"name": "dummy_Production",
"input": ("uslci", "dummy_Production"),
"type": "production",
"amount": 1
}
]
}
]
>>> add_dummy_processes_and_rename_exchanges(db)
[
{
"database": "uslci",
"exchanges": [
{
"name": "dummy_Production",
"input": ("uslci", "Production"),
"type": "production",
"amount": 1
}
]
},
{
"name": "Production",
"database": "uslci",
"code": "Production",
"categories": ("dummy",),
"location": "GLO",
"type": "process",
"exchanges": [
{
"input": ("uslci", "Production"),
"type": "production",
"amount": 1
}
]
}
]
"""
new_processes = set()
for ds in db:
for exc in ds.get("exchanges"):
if exc["name"][:6].lower() in ("dummy_", "dummy,"):
name = exc["name"][6:].lower().strip()
new_processes.add(name)
exc["input"] = (ds["database"], name)
for name in sorted(new_processes):
db.append(
{
"name": name,
"database": ds["database"],
"code": name,
"categories": ("dummy",),
"location": "GLO",
"type": "process",
"exchanges": [
{"input": (ds["database"], name), "type": "production", "amount": 1}
],
}
)
return db