Чтобы понять, что происходит, полезно понять разницу между «промежуточными» данными (хранящимися как структурированные текстовые файлы) и «обработанными» данными (хранимыми в виде массивных структурированных массивов). Эти концепции описаны как here, так и here.
Однако, чтобы ответить на ваш вопрос прямо: что каждая строка и столбец стоять в различных матриц и массивов (например, lca.inventory
матрица, lca.supply_array
, lca.characterized_inventory
) содержатся в множестве словарей, которые связаны с LCA
объекта. К ним относятся:
activity_dict
: Столбцы в матрице техносферы
product_dict
: Строки в матрице техносферы
biosphere_dict
: Строки в биосферной матрице
Например, lca.product_dict
урожайности, в случай LCA, который я только что сделал:
{('ei32_CU_U', '671c1ae85db847083176b9492f000a9d'): 8397,
('ei32_CU_U', '53398faeaf96420408204e309262b8c5'): 536,
('ei32_CU_U', 'fb8599da19dabad6929af8c3a3c3bad6'): 7774,
('ei32_CU_U', '28b3475e12e4ed0ec511cbef4dc97412'): 3051, ...}
с key
в словаре, являющемся фактическим продуктом в моей базе данных инвентаря, а value
- это строка в demand_array
или supply_array
.
Более полезным может быть обратная сторона этих словарей. Предположим, вы хотите знать, какое значение, например. ваш supply_array
относится, вы можете создать обратный словарь с помощью dict comprehension:
inv_product_dict = {v: k for k, v in lca.product_dict.items()}
, а затем просто использовать его непосредственно для получения информации, которую вы после этого. Допустим, вы хотите знать, что находится в 10-й строке supply_array
, вы можете просто сделать inv_product_dict[10]
, что в моем случае дает ('ei32_CU_U', '4110733917e1fcdc7c55af3b3f068c72')
Те же типы логики применяется с биосферой (или элементарные) потоки, найденные в lca.biosphere_dict
(на языке LCA, строки в матрице B) и виды деятельности, найденные в lca.activity_dict
(столбцы матрицы A или B).
Обратите внимание, что с помощью lca.reverse_dict()
вы можете сгенерировать обратное действие activity_dict/product_dict/biosphere_dict. Синтаксис тогда:
rev_act_dict, rev_product_dict, rev_bio_dict = lca.reverse_dict()
Спасибо. Это очень помогло.Я больше углубляюсь в Python, поскольку я начинаю с Brightway2, и многие соглашения и концепции еще не интуитивно понятны. – Jim
На всякий случай такие вещи, как '('ei32_CU_U', '28b3475e12e4ed0ec511cbef4dc97412')' являются таинственными, вы можете использовать функцию 'get_activity', например:' get_activity (('ecoinvent 3.2 cutoff', '3c76fc6ab34c7842c6be5fd74cfd1c18')) '>>> «рынок метил-3-метоксипропионата» (килограмм, GLO, нет) ' –