我在对来自 brightway2 的 LCA 结果进行后处理分析时遇到了一些问题。运行 LCA 计算后,例如,如果我键入 top_activities() 我会得到一堆活动及其相关分数的列表,但是没有一个活动/分数是直接与我的功能单元相关联的(它们似乎是我的交流的一些交流......)。
如何获得我在构建功能单元时定义的交换(技术圈和生物圈)的 LCA 分数?
谢谢!
我在对来自 brightway2 的 LCA 结果进行后处理分析时遇到了一些问题。运行 LCA 计算后,例如,如果我键入 top_activities() 我会得到一堆活动及其相关分数的列表,但是没有一个活动/分数是直接与我的功能单元相关联的(它们似乎是我的交流的一些交流......)。
如何获得我在构建功能单元时定义的交换(技术圈和生物圈)的 LCA 分数?
谢谢!
我发现在 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
为您提供的可视化类型的几个示例:
手动遍历供应链非常容易,而且每个人都希望以稍微不同的方式执行此操作,因此 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)