2

假设我想对汽车使用生态发明过程,并且过程模型包括对生产汽车、维护、道路维护、燃料等的影响。假设我想对没有燃料的汽车进行建模,因为我想要模拟不同燃料的使用。我可以告诉 Brightway 计算汽车的影响减去燃料吗?

4

1 回答 1

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)})

您还可以将修改后的功能单元保存在计算设置中。

回应有关易于操作数据集的评论,实际上并没有一种简单的方法。定义使用清单数据集的通用规则非常困难,因为输入的结构因行业部门而异。要回答具体评论,您可以执行以下操作:

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()

但这需要您手动检查搜索词以确保获得所需的行为。在理想的世界中,我们会有一种特定领域的语言来以简单的方式操作数据集,但我还不知道它会是什么样子。

于 2016-03-16T22:03:39.193 回答