这个问题与我之前提出的关于通过代理活动使用 Brightway 2 创建活动的问题有关。问题是:如果我决定删除我的代理活动,我应该修改交换表吗?
假设我决定在魁北克创建一个热泵,使用瑞士的热泵作为代理,但适应电力的来源。
#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 数据库的不同表中。我想知道我是否用与不再存在的活动相关的交易所“污染”了交换表,这可能会在未来带来问题。