根据现有的ecoinvent活动在Brightway2中创建一个新活动

时间:2017-03-26 19:55:44

标签: brightway

我想创建一个活动“重新构建”来自数据库(在本例中为ecoinvent)的现有数据集,该数据集充当代理。例如,在魁北克建立基于瑞士热泵的热泵,但改变了电力来源。

我的问题与this问题中@MPa提出的问题非常相似,但我无法弄清楚如何在没有更多细节的情况下做到这一点。这就是我所做的:

1)从我的ecoinvent 3.3数据库中找到我想用作代理的过程:

hp_ch=Database('ei_33consequential').search("heat-pump production air-water",
                                  filter={'location':'ch'},
                                  )[0]

2)创建活动的副本

hp_qc=hp_ch.copy()

3)更改位置

hp_qc['location']='CA-QC'

4)删除存储交换金额的原始流程

for exc in hp_qc.exchanges():
    if 'electricity, low voltage' in exc['name']:
        amnt=(exc.amount)
        exc.delete()

5)添加新流量(在这种情况下,来自魁北克的电量相同)

这里是我迷路的地方。我知道如何找到生成该流程的过程('44389eae7d62fa9d4ea9ea2b9fc2f609'),但我不知道如何将其作为交换添加到我的“hp_qc”过程中。 我想我也应该更改唯一标识符代码(UUID),否则我将在我的数据库中使用相同的UUID进行两项活动,这可能会有问题。我还应修改谱系矩阵的“地理代表性”分数,但我不确定这些分数是否实际上由Brightway 2使用。

[编辑],按照@MPa的建议我做了以下事情:

#electricity low voltage quebec
elw_qc=Database('ei_33consequential').get('44389eae7d62fa9d4ea9ea2b9fc2f609')

elect_to_hp = [exc for exc in hp_qc.technosphere() if 'electricity, low voltage' in exc['name']][0]

elect_to_hp.input = qc_elect
elec_to_hp.save()
hp_qc.save() #necessary?

我用一种常见的影响评估方法进行了测试:

fu1={hp_qc:1}
lca1=LCA(fu1,('IMPACT 2002+ (Endpoint)', 'resources', 'total'))
lca1.lci()
lca1.lcia()
lca1.score
fu2={hp_ch:1}
lca2=LCA(fu2,('IMPACT 2002+ (Endpoint)', 'resources', 'total'))
lca2.lci()
lca2.lcia()
lca2.score

两个分数都不同,虽然我得到瑞士热泵的负分,这有点奇怪,但我想可能与重新语言化无关。它有效!

1 个答案:

答案 0 :(得分:2)

那里有几个问题。我将逐一解决。

1)UUID:new_activity = old_activity.copy()new_activity创建新的UUID。在您的情况下,hp_qc.key==hp_ch.key将返回False。一切都很好。

2)添加交换:找到要链接的活动(例如qc_elec)后,您可以这样做:
hp_qc.new_exchange(input=qc_elect.key, amount = amount, type='technosphere')其中my_amount是此次兑换的实际金额。

3)但是,在你的情况下更多更简单适应交换而不是删除和替换它:

hp_qc=hp_ch.copy()
hp_qc['location']='CA-QC'
# Assign the electricity input you want to change to a variable
elect_to_hp = [exc for exc in hp_qc.technosphere() if 'electricity, low voltage' in exc['name']][0]
# Change the input of this exchange so it links to `qc_elect`  
elect_to_hp.input = qc_elect  
# Save the resulting activity
elect_to_hp.save()

交换将与之前的电力输入相同(相同数量,相同的不确定性,相同的文档)。然后,您需要以这种方式更改所需的字段(例如评论,不确定性):

elect_to_hp['comment'] = 'Recontextualisation'

4)不确定性,谱系: 你完全正确的是(1)应该调整谱系分数,(2)因此总不确定性应该改变,以及(3)Brightway不使用谱系分数来计算总不确定性。但是,您可以使用scale without pedigree(相当于基本不确定性),谱系分数和公布的额外不确定因素(为了您的方便从以下here转载)来计算新的不确定性一旦你修改了谱系分数,不确定性(如果PDF是对数正态,则为新的scale

ecoinvent_33_pedigree_matrix = {
            'reliability': 
                {
                1:0.0,
                2:0.0006,
                3:0.002,
                4:0.008,
                5:0.04
                },
            'completeness':
                {
                1: 0.0,
                2: 0.0001,
                3: 0.0006,
                4: 0.002,
                5: 0.008
                },
            'temporal correlation':
                {
                1:0.0,
                2:0.0002,
                3:0.002,
                4:0.008,
                5:0.04
                },
            'geographical correlation':
                {
                1:0.0,
                2:0.000025,
                3:0.0001,
                4:0.0006,
                5:0.002
                },
            'further technological correlation':
                {
                1:0.0,
                2:0.0006,
                3:0.008,
                4:0.04,
                5:0.12
                }
         }