tech_array 和 bio_array 的顺序
Order of tech_array and bio_array
上下文:我在可能在不同 projects
中生成的不同 LCA 中使用了 ParameterVectorLCA
。我已经存储了结果 params
。我想确保 params
的顺序相同。
我知道的:
- 我知道这些参数数组的元素有两个字段引用 inputs
和 outputs
- 我知道 activity_dict
和 bio_dict
可以告诉我们这些 inputs
和 outputs
指的是什么
- 我知道可以通过使用各自的 activity_dict
和 bio_dict
将 supply arrays
和 inventory_matrices
从一个项目重新排序到另一个项目
我不知道的:
- 如果我的 activity_dict
和 bio_dict
对于两个 LCA 都是一样的,我能保证我的 params
的顺序是一样的吗?
- 如果我的 activity_dict
和 bio_dict
不一样,我可以重新订购我的 params
吗?我的策略是:
- Select 我的 LCA 之一作为 "reference"
- 对于其他 LCA,将
tech_params
和 bio_params
中的 input
和 output
数字更改为参考 LCA 的数字(通过使用 activity_dict
和 bio_dict
)
- 为
tech_param
和 bio_param
中每个参数的字符串表示形式指定一个索引。
- 在我要重新排序的LCA的
tech_param
和bio_param
中找到参数的相应字符串表示的索引。
- 使用重建索引重新排序。
这样可以吗?有没有更简单的方法?
项目中的参数数组将始终按 processed (you can see the fields used when sorting). Moreover, the order that arrays are concatenated into e.g. tech_params
will be the same within a project (arrays are sorted based on their filename). Finally, the way that activity_dict
, etc. are constructed is also guaranteed to be consistent 时的相同顺序排序。但是,正如您所说,input
和 output
值可能因项目而异。
- 如果两个 LCA 的 activity_dict 和 bio_dict 相同,我能保证我的参数顺序相同吗?
是的。
- 如果我的 activity_dict 和 bio_dict 不一样,我可以重新排序我的参数吗?
更棘手。
- 对于其他 LCA,将 tech_params 和 bio_params 中的输入和输出编号更改为参考 LCA 的编号(通过使用 activity_dict 和 bio_dict )
这不起作用,因为 activity_dict
从键到矩阵列; input
中的值是 mapping
值。因此,您需要访问“映射”才能使用此策略。
到目前为止最简单的方法是重新排序 两个 参数数组,忘记 mapping
值(可能因项目而异),而是使用 activity 键(我假设它们是相同的)。然后,您可以轻松地按输入键、输出键、数量等对每个数组进行排序(请参阅 dtype_fields_order
;存在具有相同输入和输出的重复交换)并确信您得到的是相同的顺序。
这将是对实用程序库的一个很好的补充,但请务必先编写测试!
上下文:我在可能在不同 projects
中生成的不同 LCA 中使用了 ParameterVectorLCA
。我已经存储了结果 params
。我想确保 params
的顺序相同。
我知道的:
- 我知道这些参数数组的元素有两个字段引用 inputs
和 outputs
- 我知道 activity_dict
和 bio_dict
可以告诉我们这些 inputs
和 outputs
指的是什么
- 我知道可以通过使用各自的 activity_dict
和 bio_dict
supply arrays
和 inventory_matrices
从一个项目重新排序到另一个项目
我不知道的:
- 如果我的 activity_dict
和 bio_dict
对于两个 LCA 都是一样的,我能保证我的 params
的顺序是一样的吗?
- 如果我的 activity_dict
和 bio_dict
不一样,我可以重新订购我的 params
吗?我的策略是:
- Select 我的 LCA 之一作为 "reference"
- 对于其他 LCA,将
tech_params
和bio_params
中的input
和output
数字更改为参考 LCA 的数字(通过使用activity_dict
和bio_dict
) - 为
tech_param
和bio_param
中每个参数的字符串表示形式指定一个索引。 - 在我要重新排序的LCA的
tech_param
和bio_param
中找到参数的相应字符串表示的索引。 - 使用重建索引重新排序。
这样可以吗?有没有更简单的方法?
项目中的参数数组将始终按 processed (you can see the fields used when sorting). Moreover, the order that arrays are concatenated into e.g. tech_params
will be the same within a project (arrays are sorted based on their filename). Finally, the way that activity_dict
, etc. are constructed is also guaranteed to be consistent 时的相同顺序排序。但是,正如您所说,input
和 output
值可能因项目而异。
- 如果两个 LCA 的 activity_dict 和 bio_dict 相同,我能保证我的参数顺序相同吗?
是的。
- 如果我的 activity_dict 和 bio_dict 不一样,我可以重新排序我的参数吗?
更棘手。
- 对于其他 LCA,将 tech_params 和 bio_params 中的输入和输出编号更改为参考 LCA 的编号(通过使用 activity_dict 和 bio_dict )
这不起作用,因为 activity_dict
从键到矩阵列; input
中的值是 mapping
值。因此,您需要访问“映射”才能使用此策略。
到目前为止最简单的方法是重新排序 两个 参数数组,忘记 mapping
值(可能因项目而异),而是使用 activity 键(我假设它们是相同的)。然后,您可以轻松地按输入键、输出键、数量等对每个数组进行排序(请参阅 dtype_fields_order
;存在具有相同输入和输出的重复交换)并确信您得到的是相同的顺序。
这将是对实用程序库的一个很好的补充,但请务必先编写测试!