如何在 brightway2 中使用 transverse_tagged_databases 函数
how to use the transverse_tagged_databases function in brightway2
我想知道如何在 brightway2 中使用 transverse_tagged_database 方法。从文档中我并不完全清楚。例如,我们可以使用产品系统模型中活动的 isic 代码汇总影响吗?
简短的回答是肯定的,在您的前台产品系统模型中汇总 ISIC 代码的影响正是您可以使用 traverse_tagged_databases
.
做的事情
traverse_tagged_databases 函数利用了以下事实:您可以向 brightway 中的活动添加任意 key:value
对,让您可以根据需要对前景模型中的活动进行分类。
例如,假设您的活动如下所示:
('example_database', 'code_for_bread'):{
'name': 'Bread',
'code': 'code_for_bread',
'categories':[],
'exchanges':[...],
'location':'GLO'
'unit':'kg',
'database':'example_database',
'isic_code':'1071'
'isic_classifier':'Manufacture of bakery products'
},
您可以告诉 traverse_tagged_databases
遍历您的数据库以查找给定的键(标签),例如 'isic_code'
或 'isic_classifier'
,并根据这些标签汇总影响。
假设您正在为奶酪三明治建模,您的模型中可能包含以下 ISIC 代码:
三明治:1079(其他食品的制造 n.e.c。)
面包:1071(烘焙产品制造)
奶酪:1050(乳制品制造)
黄油:1050(乳制品制造)
您可以使用 traverse_tagged_databases
查看乳制品(奶酪和黄油)与面包店(面包)的总体影响。
您可以按照与 LCA
函数类似的方式使用它,通过将功能单元指定为 dict
并将方法指定为 tuple
,以及额外的 tag
参数。像这样:
fu = {('example_database', 'code_for_sandwich'):1}
m = ('IPCC 2013', 'climate change', 'GWP 100a')
result, tree = traverse_tagged_databases(fu, m, 'isic_classifier')
函数returns两个对象(在上一行中指定为result
和tree
)
对于此分析,您的 result
将如下所示:
defaultdict(int,
{'Manufacture of other food products n.e.c.': 0,
'Manufacture of bakery products': 0.1875,
'Manufacture of dairy products': 0.55})
也就是说,前景模型中的乳制品具有 0.55 千克二氧化碳当量的总影响,烘焙产品具有 0.1875 千克二氧化碳当量的总影响。
通过一些 post 处理,您可以将此数据转换为饼图、堆叠条形图等。
你还会得到一个 tree
,它看起来像这样:
[{'activity': 'Sandwich' (kg, GLO, []),
'amount': 1,
'tag': 'Manufacture of other food products n.e.c.',
'impact': 0,
'biosphere': [],
'technosphere': [{'activity': 'Bread' (kg, GLO, []),
'amount': 0.75,
'tag': 'Manufacture of bakery products',
'impact': 0,
'biosphere': [{'amount': 0.1875,
'impact': 0.1875,
'tag': 'Manufacture of bakery products'}],
'technosphere': []},
{'activity': 'Butter' (kg, GLO, []),
'amount': 0.05,
'tag': 'Manufacture of dairy products',
'impact': 0,
'biosphere': [{'amount': 0.05,
'impact': 0.05,
'tag': 'Manufacture of dairy products'}],
'technosphere': []},
{'activity': 'Cheese' (kg, GLO, []),
'amount': 0.25,
'tag': 'Manufacture of dairy products',
'impact': 0,
'biosphere': [{'amount': 0.5,
'impact': 0.5,
'tag': 'Manufacture of dairy products'}],
'technosphere': []}]}]
起初看起来有点难以解析,但本质上是一组嵌套字典,从根 activity(功能单元 = Sandwich)开始,显示 techosphere
交换到其他活动,以及 biosphere
排放交换。
这里的树看起来像这样(每个产品的 amount
都在括号中)
Bread +----(0.75 kg)----------+
|
|
|
|
Cheese +----(0.20 kg)----------+------(1.00 kg)--------> Sandwich
|
|
|
|
Butter +----(0.05 kg)----------+
同样,通过一些 post 处理,您可以将此数据转换为桑基图之类的东西,或者您在 SimaPro 中获得的那种影响树图。
我想知道如何在 brightway2 中使用 transverse_tagged_database 方法。从文档中我并不完全清楚。例如,我们可以使用产品系统模型中活动的 isic 代码汇总影响吗?
简短的回答是肯定的,在您的前台产品系统模型中汇总 ISIC 代码的影响正是您可以使用 traverse_tagged_databases
.
traverse_tagged_databases 函数利用了以下事实:您可以向 brightway 中的活动添加任意 key:value
对,让您可以根据需要对前景模型中的活动进行分类。
例如,假设您的活动如下所示:
('example_database', 'code_for_bread'):{
'name': 'Bread',
'code': 'code_for_bread',
'categories':[],
'exchanges':[...],
'location':'GLO'
'unit':'kg',
'database':'example_database',
'isic_code':'1071'
'isic_classifier':'Manufacture of bakery products'
},
您可以告诉 traverse_tagged_databases
遍历您的数据库以查找给定的键(标签),例如 'isic_code'
或 'isic_classifier'
,并根据这些标签汇总影响。
假设您正在为奶酪三明治建模,您的模型中可能包含以下 ISIC 代码:
三明治:1079(其他食品的制造 n.e.c。)
面包:1071(烘焙产品制造)
奶酪:1050(乳制品制造)
黄油:1050(乳制品制造)
您可以使用 traverse_tagged_databases
查看乳制品(奶酪和黄油)与面包店(面包)的总体影响。
您可以按照与 LCA
函数类似的方式使用它,通过将功能单元指定为 dict
并将方法指定为 tuple
,以及额外的 tag
参数。像这样:
fu = {('example_database', 'code_for_sandwich'):1}
m = ('IPCC 2013', 'climate change', 'GWP 100a')
result, tree = traverse_tagged_databases(fu, m, 'isic_classifier')
函数returns两个对象(在上一行中指定为result
和tree
)
对于此分析,您的 result
将如下所示:
defaultdict(int,
{'Manufacture of other food products n.e.c.': 0,
'Manufacture of bakery products': 0.1875,
'Manufacture of dairy products': 0.55})
也就是说,前景模型中的乳制品具有 0.55 千克二氧化碳当量的总影响,烘焙产品具有 0.1875 千克二氧化碳当量的总影响。
通过一些 post 处理,您可以将此数据转换为饼图、堆叠条形图等。
你还会得到一个 tree
,它看起来像这样:
[{'activity': 'Sandwich' (kg, GLO, []),
'amount': 1,
'tag': 'Manufacture of other food products n.e.c.',
'impact': 0,
'biosphere': [],
'technosphere': [{'activity': 'Bread' (kg, GLO, []),
'amount': 0.75,
'tag': 'Manufacture of bakery products',
'impact': 0,
'biosphere': [{'amount': 0.1875,
'impact': 0.1875,
'tag': 'Manufacture of bakery products'}],
'technosphere': []},
{'activity': 'Butter' (kg, GLO, []),
'amount': 0.05,
'tag': 'Manufacture of dairy products',
'impact': 0,
'biosphere': [{'amount': 0.05,
'impact': 0.05,
'tag': 'Manufacture of dairy products'}],
'technosphere': []},
{'activity': 'Cheese' (kg, GLO, []),
'amount': 0.25,
'tag': 'Manufacture of dairy products',
'impact': 0,
'biosphere': [{'amount': 0.5,
'impact': 0.5,
'tag': 'Manufacture of dairy products'}],
'technosphere': []}]}]
起初看起来有点难以解析,但本质上是一组嵌套字典,从根 activity(功能单元 = Sandwich)开始,显示 techosphere
交换到其他活动,以及 biosphere
排放交换。
这里的树看起来像这样(每个产品的 amount
都在括号中)
Bread +----(0.75 kg)----------+
|
|
|
|
Cheese +----(0.20 kg)----------+------(1.00 kg)--------> Sandwich
|
|
|
|
Butter +----(0.05 kg)----------+
同样,通过一些 post 处理,您可以将此数据转换为桑基图之类的东西,或者您在 SimaPro 中获得的那种影响树图。