2017-03-26 1 views
1

プロキシとして機能するデータベース(この場合はecoinvent)から既存のデータセットを「再コンテキスト化」するアクティビティを作成したいと考えています。たとえば、ケベック州のヒートポンプは、スイスのヒートポンプに基づいて作成しますが、電気の原点は変更します。Brightway2で既存のecoinventアクティビティに基づいて新しいアクティビティを作成する

私の問題は、thisの質問で@MPaによって提起された問題と非常に似ていますが、詳細はわかりません。これは私がやったことです:

1)私は私のecoinvent 3.3データベースからプロキシとして使用したいプロセスを見つける:

hp_ch=Database('ei_33consequential').search("heat-pump production air-water", 
            filter={'location':'ch'}, 
           )[0] 

2)

hp_qc=hp_ch.copy() 

3活性のコピーを作成します)場所を変更する

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

4)交換金額を格納する元のフローを消去する

for exc in hp_qc.exchanges(): 
    if 'electricity, low voltage' in exc['name']: 
     amnt=(exc.amount) 
     exc.delete() 

5)は、ここで新しいフロー(ケベックからの電気のこの場合は、同じ量)

を追加し、私は失われています場所です。私はその流れを生成するプロセス( '44389eae7d62fa9d4ea9ea2b9fc2f609')を見つける方法を知っていますが、私はそれを私の "hp_qc"プロセスへの交換としてどのように追加するか分かりません。 ユニークな識別子コード(UUID)も変更する必要があります。そうでなければ、同じUUIDを持つデータベースで2つのアクティビティを持つことになります。これは問題の可能性があります。血統行列の「地理的代表性」スコアも変更する必要がありますが、この時点でBrightway 2がこれらのスコアを実際に使用しているかどうかはわかりません。

[EDIT]、@MPaの提案次のIは、以下でした

#electricity low voltage quebec 
elw_qc=Database('ei_33consequential').get('44389eae7d62fa9d4ea9ea2b9fc2f609') 

elect_to_hp = [exc for exc in hp_qc.technosphere() if 'electricity, low voltage' in exc['name']][0] 

elect_to_hp.input = qc_elect 
elec_to_hp.save() 
hp_qc.save() #necessary? 

およびIは、共通の影響評価方法で試験:Iが、

fu1={hp_qc:1} 
lca1=LCA(fu1,('IMPACT 2002+ (Endpoint)', 'resources', 'total')) 
lca1.lci() 
lca1.lcia() 
lca1.score 
fu2={hp_ch:1} 
lca2=LCA(fu2,('IMPACT 2002+ (Endpoint)', 'resources', 'total')) 
lca2.lci() 
lca2.lcia() 
lca2.score 

両方のスコアが異なっていますスイスのヒートポンプのマイナスのスコアを得る。これはちょっと変わったけど、可能であれば、の再調和とはまったく関係ないと思う。できます!

答えて

2

そこにいくつか質問があります。私はそれぞれ個別に対処します。

1)UUID:new_activity = old_activity.copy()は、new_activityの新しいUUIDを作成します。あなたの場合、hp_qc.key==hp_ch.keyFalseを返します。したがってすべてが上手です。

2)交換を追加:my_amountはこの交換のための実際の量です
hp_qc.new_exchange(input=qc_elect.key, amount = amount, type='technosphere'):あなたはqc_elec、たとえば(希望にリンクする活動を発見した後)、あなたはこれを行うことができます。

3)しかし、それは交換を適応させるのではなく、それを削除し、置き換えるくらいあなたのケースでは単純に次のようになります。

hp_qc=hp_ch.copy() 
hp_qc['location']='CA-QC' 
# Assign the electricity input you want to change to a variable 
elect_to_hp = [exc for exc in hp_qc.technosphere() if 'electricity, low voltage' in exc['name']][0] 
# Change the input of this exchange so it links to `qc_elect` 
elect_to_hp.input = qc_elect 
# Save the resulting activity 
elect_to_hp.save() 

交換は、元の(同じ量と同じになります、同じ不確実性、同じドキュメンテーション)を持っています。

elect_to_hp['comment'] = 'Recontextualisation' 

4)不確実性、血統: あなたは(1)血統スコアを適合させる必要があることは非常に正しい、(2)次に、この方法であなたがしたいフィールド(例えばコメント、不確実性)を変更する必要がありますしたがって、(3)全不確かさを計算するために、血統スコアがブライトウェイで使用されていないこと。しかし、新しい不確かさを計算するには、scale without pedigree(基本的な不確かさに相当)、血統のスコア、公開された追加の不確定要素(都合のよい場合はhereから再現)を使用して、あなたが家系図のスコアを修正したら、対数正規です。

ecoinvent_33_pedigree_matrix = { 
      'reliability': 
       { 
       1:0.0, 
       2:0.0006, 
       3:0.002, 
       4:0.008, 
       5:0.04 
       }, 
      'completeness': 
       { 
       1: 0.0, 
       2: 0.0001, 
       3: 0.0006, 
       4: 0.002, 
       5: 0.008 
       }, 
      'temporal correlation': 
       { 
       1:0.0, 
       2:0.0002, 
       3:0.002, 
       4:0.008, 
       5:0.04 
       }, 
      'geographical correlation': 
       { 
       1:0.0, 
       2:0.000025, 
       3:0.0001, 
       4:0.0006, 
       5:0.002 
       }, 
      'further technological correlation': 
       { 
       1:0.0, 
       2:0.0006, 
       3:0.008, 
       4:0.04, 
       5:0.12 
       } 
     } 
+0

私は見る!そのため、それを生成するプロセスと呼ばれる "技術的なフロー"を特定することができます。それはただ一つの "参照製品"を持っていると仮定します。これは、LCA専門用語では、単一の出力単位プロセスで機能します。私は今、[Chris Mutel](https://chris.mutel.org/brightway-dev-diary-1.html)がこれをより柔軟なやり方でどのように行うことができるのかを理解しています。私はドキュメンテーションで*系図なしのスケールを参照することはできませんでした。あなたが開発しているbw_utilsパッケージの一部ですか? – Nabla

+0

あなたの 'Exchange'を辞書、つまり' exchange.as_dict() 'としてチェックするならば、 '血統なしの縮尺'が表示されるはずです。 – MPa

+0

私は上記で共有したコードに問題があると思います。使用する前にちょっと待ってください。どういうわけか、元の活動の交換*も変更されます...私はこれを理解しようとしています。 – MPa

関連する問題