使用Brightway时,是否应该删除与已删除的活动相关联的交换?

时间:2017-04-18 16:02:45

标签: brightway

这个问题与我提出的关于从代理活动中创建Brightway 2活动的previous question有关。问题是:如果我决定删除我的代理活动,我应该修改交换表吗?

让我们说我决定在魁北克建立一个热泵,使用来自瑞士的热泵作为代理,但要调整电力来源。

#identify the activity supplying electricity from Quebec
for ds in Database('ei_33cutoff'):
   if ('market for electricity, low voltage' in ds['name']) &   (ds['location']=='CA-QC'):
       print(ds['name'])
       print(ds['code'])

elw_qc=Database('ei_33cutoff').get('44389eae7d62fa9d4ea9ea2b9fc2f609')

#identify the proxy activity
for ds in Database('ei_33cutoff'):
    if ('heat production, air-water' in ds['name']) & (ds['location']=='CH'):
       print(ds['name'],ds['location'],ds['code'])

hp_proxy=Database('ei_33cutoff').get('694d03f60920c0f7d964c08db1c67226')

#create a copy of the proxy
hp_qc=hp_proxy.copy()

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

#update electricity exchange
elect_to_hp = [exc for exc in hp_qc.technosphere() if 'electricity, low voltage' in exc['name']][0]
elect_to_hp['input']=elw_qc
elect_to_hp.save()

#store my new activity in the database

hp_qc.save()

但是,如果在此过程中我创建了一个代理活动,其中包含错误或其他原因,我不再需要。我应该如何清洁"这个活动包含错误的数据库?会hp_qc.delete()吗? SQLite数据库中的活动和交换are stored in different tables。我想知道我是否"污染"与不再存在的活动相关联的交换表,这可能会在将来带来问题。

1 个答案:

答案 0 :(得分:1)

呼叫Activity.delete() delete all exchanges您的活动是消费者,即所有来电交换。它不会删除其他活动消费你的参考产品的交易所,但据我所知,在这个例子中没有像这样的交换。

有许多方法可以清洁"数据库,虽然在这种情况下这种清洁并不是必需的。最简单的可能是学习如何使用Exchanges object,然后你可以删除任何你想要的东西。