Деагрегация экоинвент-процессов в Brightway2
Допустим, я хочу использовать процесс ecoinvent для автомобиля, и что модель процесса включает в себя воздействия для производства автомобиля, технического обслуживания, обслуживания дорог, топлива и т. Д. И давайте предположим, что я хочу моделировать автомобиль без топлива, потому что я хочу смоделировать использование другого топлива. Могу ли я сказать Brightway, чтобы рассчитать воздействие на автомобиль за вычетом топлива?
1 ответ
Есть как минимум два способа получить желаемый результат. Допустим, ваши наборы данных инвентаризации выглядят так:
[
{
'code': 'car',
'database': 'example',
'exchanges': [{
'input': ('database', 'fuel'),
'amount': 1
}]
}, {
'code': 'fuel',
'database': 'example',
}
]
Затем вы можете построить новый набор данных и вычесть топливо:
{
'code': 'car w/out fuel',
'database': 'example',
'exchanges': [{
'input': ('example', 'car'),
'amount': 1
}, {
'input': ('example', 'fuel'),
'amount': -1
}
}]
}
А затем используйте этот набор данных в качестве функциональной единицы. В качестве альтернативы, вы можете вычесть расход топлива непосредственно в вашем функциональном блоке, передаваемый в LCA
учебный класс:
LCA({('example', 'car'): 1, ('example', 'fuel'): -1)})
Вы также можете сохранить эту модифицированную функциональную единицу в настройке расчета.
Отвечая на комментарий о простоте манипулирования наборами данных, на самом деле не существует простого способа. Очень сложно определить общие правила для работы с наборами данных инвентаризации, поскольку исходные данные сильно различаются в зависимости от отрасли. Чтобы ответить на конкретный комментарий, вы можете сделать что-то вроде:
from brightway2 import *
db = Database("ecoinvent 3.2 cutoff")
car = db.search('transport, passenger car, large size, diesel')[0]
new_car = car.copy()
for exc in new_car.exchanges():
if 'diesel, low-sulfur' in exc.input['name']:
exc.delete()
Но это потребует, чтобы вы проверили условия поиска вручную, чтобы убедиться, что вы получаете желаемое поведение. В идеальном мире у нас был бы предметно-ориентированный язык для простых манипуляций с наборами данных, но я пока не знаю, как это будет выглядеть.