crie uma nova atividade no Brightway2 com base em uma atividade de ecoinvent existente

Gostaria de criar uma atividade "recontextualizando" um conjunto de dados existente de um banco de dados (neste caso ecoinvent) que serve como proxy. Por exemplo, crie bombas de calor no Quebec com base nas bombas de calor na Suíça, mas alterando a origem da eletricidade.

Meu problema é bastante semelhante ao levantado por @MPa emesta pergunta, mas não consigo descobrir como fazê-lo sem mais detalhes. Isto é o que eu fiz:

1) encontre o processo que quero usar como proxy no meu banco de dados ecoinvent 3.3:

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

2) crie uma cópia da atividade

hp_qc=hp_ch.copy()

3) mudar a localização

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

4) apague o fluxo original armazenando a quantidade da troca

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

5) adicione o novo fluxo (neste caso, a mesma quantidade de eletricidade de Quebec)

aqui é onde eu estou perdido. Eu sei como encontrar o processo que gera esse fluxo ('44389eae7d62fa9d4ea9ea2b9fc2f609'), mas não sei como adicioná-lo como uma troca ao meu processo "hp_qc".Acho que também devo alterar o código de identificação exclusivo (UUID) ou, caso contrário, terei duas atividades no meu banco de dados com o mesmo UUID, o que pode ser problemático. Também devo modificar a pontuação de "representatividade geográfica" da matriz de linhagem, mas não tenho certeza de que essas pontuações sejam realmente usadas pelo Brightway 2 neste momento.

[EDIT], seguindo a sugestão do @MPa, fiz o seguinte:

#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?

e testei com um método comum de avaliação de impacto:

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

Ambas as pontuações são diferentes, embora eu receba uma pontuação negativa para a bomba de calor suíça, o que é um pouco estranho, mas acho possível e totalmente sem relação com orecontextualização. Funciona!

questionAnswers(1)

yourAnswerToTheQuestion