2017-04-18 9 views
0

この質問は、previous questionに関連しています。Brightway 2でプロキシアクティビティからアクティビティを作成する方法を挙げました。質問は、私が代理活動を消去することを決定した場合、私は交換のテーブルを変更する必要がありますか?Brightwayを使用している場合は、削除したアクティビティにリンクしているエクスチェンジを削除する必要がありますか?

ケベック州のヒートポンプを、スイスのヒートポンプをプロキシとして使用していましたが、電気の起源に合わせて作成することにしました。

#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()で十分ですか?アクティビティと交換are stored in different tablesをSQLiteデータベースに保存します。私は、もはや存在しなくなり、将来問題を引き起こす可能性のある活動にリンクされている取引所と交換テーブルを「汚染」しているのか疑問に思っています。

答えて

1

Activity.delete()に電話をかけます。delete all exchangesあなたのアクティビティはコンシューマ、つまりすべての着信交換です。他のアクティビティコンシューマがリファレンス製品を交換する場所は削除されませんが、この例のような交換はないと言えます。

データベースを「クリーン」する方法はいくつかありますが、この場合は、このようなクリーニングは実際には必要ありません。最も簡単なのはおそらくExchanges objectの使い方を学ぶことです。それからあなたが好きなものを削除することができます。

関連する問題