让我们说我想要为汽车使用ecoinvent工艺,并且工艺模型包括对生产汽车,维护,道路维护,燃料等的影响。让我们假设我想要在没有燃料的情况下对汽车进行建模,因为我想模拟使用不同的燃料。我可以告诉Brightway计算汽车减去燃料的影响吗?
答案 0 :(得分:2)
至少有两种方法可以获得您想要的结果。假设您的库存数据集如下所示:
[
{
'code': 'car',
'database': 'example',
'exchanges': [{
'input': ('database', 'fuel'),
'amount': 1
}]
}, {
'code': 'fuel',
'database': 'example',
}
]
然后你可以构建一个新的数据集并减去燃料:
{
'code': 'car w/out fuel',
'database': 'example',
'exchanges': [{
'input': ('example', 'car'),
'amount': 1
}, {
'input': ('example', 'fuel'),
'amount': -1
}
}]
}
然后使用此数据集作为您的功能单元。或者,您可以直接在传递到LCA
类的功能单元中减去燃油输入:
LCA({('example', 'car'): 1, ('example', 'fuel'): -1)})
您还可以将此修改过的功能单元保存在calculation setup。
中回应关于操作数据集的简易性的评论,实际上没有一种简单的方法。定义处理库存数据集的通用规则非常困难,因为输入的结构与行业部门的结构截然不同。要回答具体评论,您可以执行以下操作:
from brightway2 import *
db = Database("ecoinvent 3.2 cutoff")
car = db.search('transport, passenger car, large size, diesel')[0]
new_car = car.copy()
for exc in new_car.exchanges():
if 'diesel, low-sulfur' in exc.input['name']:
exc.delete()
但这需要您手动检查搜索字词以确保获得所需的行为。在理想的世界中,我们将使用特定于域的语言以简单的方式操作数据集,但我不知道它会是什么样的。