новые действия от прокси с Wurst - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь создать новую активность в Brightway на основе прокси из другого региона. Я прыгал, что Вурст делал тяжелую работу и соединял наборы данных с соответствующими рынками.

В этом примере я пытаюсь создать рынок для природного газа низкого давления в Квебеке, используя в качестве прокси швейцарский набор данных. В Квебеке существует рынок природного газа высокого давления . Существует также промежуточный процесс (снижение давления), связывающий деятельность рынка с низким и высоким давлением. Вот что я сделал:

 #db_name is the name of my consequential version of ecoinvent 3.4
 data= w.extract_brightway2_databases([db_name])

 CH_location = [w.equals('location','CH')]
 pressure_red=[w.equals('name','natural gas pressure reduction from high to low pressure')]

 ch_pressure_red_filter=CH_location+pressure_red
 ch_pred=w.get_one(data,*ch_pressure_red_filter)

 ch_market_lp_ng_filter=CH_location+[w.equals('name','market for natural gas, low pressure')]
 ch_mlp_ng=w.get_one(data,*ch_market_lp_ng_filter)

 #create a copy of the datasets and change location
 qc_mlp_ng=ch_mlp_ng.copy()
 qc_mlp_ng['location']='CA-QC'
 qc_pred=ch_pred.copy()
 qc_pred['location']='CA-QC'
 new_data=[qc_mlp_ng,qc_pred]

 w.write_brightway2_database(data+[qc_mlp_ng,qc_pred],'expanded_ecoinvent')

Возникает ошибка NonuniqueCode , которую я предполагаю, потому что, когда я создал копию, у меня есть несколько наборов данных с одним и тем же кодом. Как это сделать, чтобы избежать этой ошибки? Будет ли эта процедура воссоединять все виды деятельности, потребляющие природный газ низкого давления в Квебеке, с моим новым рынком для СПГ низкого давления?

1 Ответ

0 голосов
/ 29 августа 2018

Вы создаете несколько копий набора данных, сохраняя один и тот же уникальный идентификатор в метаданных вашего набора данных.

Чтобы избежать этого, вы можете использовать встроенную функцию copy_dataset() из пакета Python Wurst. Это копирует набор данных и генерирует уникальные коды UUID для каждой из ваших копий.

from wurst.transformations.utils import copy_dataset

qc_mlp_ng= copy_dataset(ch_mlp_ng)

qc_pred=copy_dataset(ch_pred)

...