这个问题与我提出的关于从代理活动中创建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。我想知道我是否"污染"与不再存在的活动相关联的交换表,这可能会在将来带来问题。
答案 0 :(得分:1)
呼叫Activity.delete()
delete all exchanges您的活动是消费者,即所有来电交换。它不会删除其他活动消费你的参考产品的交易所,但据我所知,在这个例子中没有像这样的交换。
有许多方法可以清洁"数据库,虽然在这种情况下这种清洁并不是必需的。最简单的可能是学习如何使用Exchanges object,然后你可以删除任何你想要的东西。