用 brightway 改变交易所的价格(在 ecoinvent 中)?

changing the price of an exchange (in ecoinvent) with brightway?

我想向现有 activity 添加一个新的交换(副产品),我需要为其添加价格 属性,以便有可能参考产品和副产品之间的经济分配。

我查看了与

交易所的属性
exc.as_dict()

但这不是我在任何地方都能找到的领域。

是否可以使用 brightway2 更改 ecoinvent 数据库中的交易所价格? (为了影响经济分配)

据我所知,价格数据尚未从 ecospold 文件中解析出来。 Brightway 在解决多功能性(通过 ecoinvent)后使用 ecoinvent 的版本。所以:

  1. 价格还没有。
  2. 重新计算 ecoinvent 改变价格的算法也不存在。 Ocelot项目是一次尝试,但并不容易。

你可能想看看 https://github.com/brightway-lca/multifunctional

截至 33d9d67,2021 年 2 月 25 日在 0.8.1 中发布的价格已作为交换属性提供:

>>> import bw2data as bd
>>> a = bd.Database("ecoinvent 3.7.1 cutoff").random()
>>> for exc in a.technosphere():
>>>     print(exc['properties'])['price']
{
    'amount': 0.014, 
    'unit': 'EUR2005', 
    'comment': 'Calculated value based on data from United Nations Commodity Trade Statistics Database (comtrade.un.org). UN comtrade category: 252100 Limestone materials for manufacture of lime or cement. Year 2005. Using exchange rate of 1EURO = 1.209 USD. Average of price of import into 5 main markets (EU, US, JP, IN and CN).'
}

如果您希望更改持久保存,请务必在之后保存交换对象。

但是,Nabla 的回答是正确的,改变价格不会改变分配。 multifunctional 图书馆想要解决这个问题,但这并不简单。比如ecoinvent里面有很多经济分配方式。

幸运的是,分配并没有那么困难。我建议使用 wurst 中的辅助函数(例如查找和复制交易所)。实施分配是学习如何在更深层次上使用 Brightway 的第一个很好的练习。