0

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

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

谢谢!

4

2 回答 2

3

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

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

但是您可以更改它查找的默认标签,因此tag您可以告诉它查找name- 这将为您提供前台模型中每个活动的聚合上游影响。它返回一个字典,其中您的标签名称作为键,影响作为值。它还返回您的前景系统图表,您可以使用它来创建一些很酷的树形图/牛眼图 - 有关格式,请参阅文档

这是您需要的功能:

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

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

结果字典中的瀑布图示例 瀑布图示例

标记图表中的靶心图示例 瀑布图示例

于 2018-07-12T08:17:20.330 回答
2

手动遍历供应链非常容易,而且每个人都希望以稍微不同的方式执行此操作,因此 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)
于 2018-07-12T15:18:11.963 回答