Как использовать функцию transverse_tagged_databases в brightway2
Я хотел бы знать, как использовать метод transverse_tagged_database в brightway2. Из документации мне не совсем понятно. Можем ли мы использовать, например, для агрегирования воздействий по isic-коду действий в модели системы продуктов?
1 ответ
Короткий ответ: да, агрегирование воздействий по коду ISIC в вашей модели системы продуктов переднего плана - это именно то, что вы можете сделать, используя traverse_tagged_databases
,
Функция traverse_tagged_databases использует тот факт, что вы можете добавить произвольный key:value
Привязка к действиям в Brightway позволит вам классифицировать ваши действия в модели переднего плана так, как вам нравится.
Например, скажем, ваши действия выглядят так:
('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 (Производство прочих пищевых продуктов, не включенных в другие категории)
Хлеб: 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')
Функция возвращает два объекта (обозначенных 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 кг CO2-экв, а хлебобулочные изделия имеют совокупное воздействие 0,1875 кг CO2-экв.
Немного пост-обработки вы можете превратить эти данные в круговые диаграммы, гистограммы и т.д.
Вы также получите 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': []}]}]
Сначала это может показаться немного сложным для анализа, но по сути это набор вложенных словарей, начиная с корневого действия (функциональная единица = сэндвич), показывая techosphere
обмен на другие виды деятельности, и biosphere
обмен на выбросы.
Дерево здесь выглядит так (с amount
с каждого продукта в скобках)
Bread +----(0.75 kg)----------+
|
|
|
|
Cheese +----(0.20 kg)----------+------(1.00 kg)--------> Sandwich
|
|
|
|
Butter +----(0.05 kg)----------+
Опять же, с небольшой пост-обработкой, вы можете превратить эти данные в такие вещи, как диаграммы Санки или в тип диаграммы влияния, которую вы получаете в SimaPro.