2017-04-25 17 views
0

背景:我已經在不同的LCA中使用了ParameterVectorLCA,這些LCA可能已在不同的projects中生成。我已經存儲了結果params。我想確保params的順序相同。tech_array和bio_array的順序

我所知道的:
- 我知道,這些參數數組的元素有指inputsoutputs
兩個領域 - 我知道activity_dictbio_dict能告訴我們這些inputsoutputs參考到
- 我知道這是可以通過使用相應activity_dictbio_dict

重新排序supply arraysinventory_matrices從一個項目到另一個我不知道的是:
- 如果我的activity_dictbio_dict對於兩個LCA都是相同的,我保證我的params的順序是一樣的嗎?
- 如果我的activity_dictbio_dict不一樣,我可以重新排列我的params?我的策略是:

  • 選擇我的生命週期評估「引用」
  • 對於其他的LCA之一,更改tech_paramsbio_params那些參考LCA的inputoutput號碼(通過使用activity_dictbio_dict
  • tech_parambio_param中的每個參數的字符串表示賦予一個索引。
  • 查找我想重新排序的LCA的tech_parambio_param中相應的參數字符串表示形式的索引。
  • 使用reindexing重新排序。

這樣做嗎?有一種更簡單的方法嗎?

回答

0

當項目中的參數數組總是按processed(您可以看到fields used when sorting)以相同順序排序。而且,陣列連接成例如tech_params將在一個項目中相同(數組基於their filename排序)。最後,activity_dict等構建的方式也保證爲be consistent。正如你所說,然而,inputoutput值可以完全不同項目之間的項目。

  • 如果我activity_dict和bio_dict是相同的兩個生命週期評價,我保證,我的則params的順序是一樣的嗎?

是的。

  • 如果我的activity_dict和bio_dict不一樣,我可以重新排列我的參數嗎?

Trickier。

  • 對於其他的LCA,更改tech_params和bio_params那些參考LCA的輸入和輸出數目(通過使用activity_dict和bio_dict)

此不起作用,因爲activity_dict去從按鍵到矩陣列; input中的值爲mapping值。所以你需要訪問`mapping來使用這個策略。

迄今爲止最簡單的。將重新排序 PARAM陣列,忘記了mapping值(其可從項目變化到項目),而是使用活動鍵(我假定是相同的)。然後,您可以通過輸入鍵,輸出鍵,金額等輕鬆地對每個數組進行排序(請參閱dtype_fields_order;有相同的輸入和輸出有重複的交換),並密切注意您獲得相同的順序。

這將是一個很好的補充公用事業庫,但一定要先寫測試!