【发布时间】:2017-04-03 00:18:08
【问题描述】:
我想从充当代理的数据库(在本例中为 ecoinvent)创建一个“重新上下文化”现有数据集的活动。例如,在瑞士的热泵基础上在魁北克制造热泵,但改变了电力的来源。
我的问题与@MPa 在this 问题中提出的问题非常相似,但如果没有更多细节,我不知道该怎么做。这就是我所做的:
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
两个分数是不同的,虽然我在瑞士热泵上得到了一个负分,这有点奇怪,但我猜这可能和完全无关重新情境化。有效!
【问题讨论】:
标签: brightway