0

我一直在自动将我的数据与

import functools
from bw2io.strategies import link_iterable_by_fields

sp.apply_strategy(functools.partial(
    link_iterable_by_fields, 
    other=Database("ecoinvent 3.2 cutoff"),
    kind="technosphere",
    fields=["reference product", "name", "unit", "location"]
))
sp.statistics()

当我列出剩余的未链接数据集时

bw2io.importers.simapro_csv.SimaProCSVImporter

它输出例如:

Electricity, low voltage {ENTSO-E}| market group for | Alloc Rec, U kilowatt hour ('Electricity/heat',)

鉴于我在 ecoinvent 中找到了数据集:

'market group for electricity, low voltage' (kilowatt hour, ENTSO-E, None)

如何将这些数据集链接在一起?

4

1 回答 1

0

这是来自 ecoinvent 3.2 的数据集,bw2io 还没有“特殊” SimaPro 名称的迁移数据。通常,从 Simapro 名称(例如Electricity, low voltage {ENTSO-E}| market group for | Alloc Rec, U)到 ecoinvent 活动名称和参考产品的转换将由迁移处理simapro-ecoinvent-3。但这在这种情况下不起作用:

In [4]: Migration('simapro-ecoinvent-3').load()['Electricity, low voltage {ENTSO-E}| market group for | Alloc Rec, U']
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)

您可以编写自己的迁移:

migration_data = {
    'fields': ['name'],
    'data': [
        (
            # First element is input data in the order of `fields` above
            ('Electricity, low voltage {ENTSO-E}| market group for | Alloc Rec, U',),
            # Second element is new values 
            {
                'name': 'market group for electricity, low voltage',
                'reference product': 'electricity, high voltage',
                'location': 'ENTSO-E',
            }
        )
    ]
}

Migration("new-ecoinvent").write(
    migration_data, 
    description="New datasets in ecoinvent 3.2"
)

然后将此迁移应用于您未链接的数据:

sp.migrate("new-ecoinvent")

迁移仅更改用于链接的数据;您仍然必须申请link_iterable_by_fields实际链接到 ecoinvent 3.2。

于 2016-06-30T11:37:12.343 回答