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)
我在对来自 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)