使用 Brightway 时,我是否应该删除链接到我已删除的 activity 的交易所?

When using Brightway, should I delete exchanges linked to an activity that I have erased?

此问题与 我提出的有关从代理 activity 使用 Brightway 2 创建活动的问题。问题是:如果我决定删除我的代理 activity,我是否应该修改交换的 table?

假设我决定在魁北克制造一个热泵,使用来自瑞士的热泵作为代理,但采用电力来源。

#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()

但是,如果在此过程中我创建的代理 activity 包含错误或出于其他原因我不再想要。我应该如何"clean"从这个活动的数据库中包含错误? hp_qc.delete() 就足够了吗? SQLite 数据库中的活动和交流 。我想知道我是否 "polluting" 交换 table 与链接到不再存在的活动的交换,这可能会在未来带来问题。

调用 Activity.delete()delete all exchanges 其中您的 activity 是消费者,即所有传入的交换。它不会删除其他活动使用您的参考产品的交换,但据我所知,您在本例中没有任何类似的交换。

有多种方法可以 "clean" 数据库,尽管在这种情况下这种清理并不是真正必要的。最简单的可能就是学习如何使用Exchanges object,然后你可以删除任何你想要的。