Brightway2 - 获取即时交换的 LCA 分数

Brightway2 - Get LCA scores of immediate exchanges

我在对来自 brightway2 的 LCA 结果进行 post 处理分析时遇到了一些问题。在 运行 LCA 计算之后,例如,如果我输入 top_activities(),我会得到一系列活动及其相关分数的列表,但是 none activities/scores 是直接与我的功能单元相关联的(它们似乎是我交流的一些交流......)。

如何获得我在构建我的功能单元时定义的交换(技术圈和生物圈)的 LCA 分数?

谢谢!

我发现在 brightway 中获取前景模型聚合结果的最佳方法是使用 bw2analyzer.traverse_tagged_databases() 函数而不是 top_activities()。文档中的详细信息是 here.

它旨在计算前景模型元素的上游影响,然后根据它在 activity 中找到的 tag 汇总影响。例如如果您将 'tag':'use phase''tag':'processing' 添加到您的活动中,您可以按生命周期阶段汇总影响结果。

但是您可以更改它查找的默认标签,因此您可以告诉它查找 name 而不是 tag - 这将为您提供每个标签的汇总上游影响前台模型中的活动。它 returns 一个以标签名称作为键、影响作为值的字典。它还 returns 您的前台系统的图表,您可以使用它来创建一些很酷的 tree/bullseye 图表 - 请参阅 docs 了解格式。

这是您需要的功能:

results, graph = recurse_tagged_databases(functional_unit, method, label='name')

以下是您可以使用 recurse_tagged_databases 提供的数据进行可视化的几个示例:

结果字典中的瀑布图示例

来自标记图表的靶心图示例

手动遍历供应链非常容易,每个人都希望以稍微不同的方式来做这件事,所以它还没有内置到 Brightway 中。这是一个简单的例子:

from brightway2 import *

func_unit = Database("ecoinvent 3.4 cutoff").random()

lca = LCA({func_unit: 1}, methods.random())
lca.lci()
lca.lcia()

print(func_unit)

for exc in func_unit.technosphere():
    lca.redo_lcia({exc.input: exc['amount']})
    print(exc.input, exc['amount'], lca.score)