polca / premise

Coupling Integrated Assessment Models output with Life Cycle Assessment.
BSD 3-Clause "New" or "Revised" License
100 stars 45 forks source link

Premise brightway2 import ecoinvent #162

Closed ncbperera closed 2 months ago

ncbperera commented 2 months ago

Brightway packages

import bw2io import bw2data

Brightway type hints

from bw2io import SingleOutputEcospold2Importer

import/export

import os import bw2io as bi

str_ecoinvent_version: str = '3.9.1'

path_dir_datasets_ecoinvent: str = 'D:\DD'

path_dir_datasets_ecoinvent: str = os.path.expanduser('~') + '/data/dataraw/ecoinvent' + str_ecoinvent_version + '_cutoff_ecoSpold02/datasets'

bw2data.projects.set_current(3.7)

print(path_dir_datasets_ecoinvent)

bw2data.projects bw2data.projects.current

bw2data.projects.set_current("ecoinvent-3.10-cutoff")

bw2io.import_ecoinvent_release("3.10", "cutoff")

safe_delete_brightway_project(str_ecoinvent_version)

bw2data.projects.set_current(str_ecoinvent_version)

bw2io.bw2setup()

importer: SingleOutputEcospold2Importer = bw2io.SingleOutputEcospold2Importer( dirpath = path_dir_datasets_ecoinvent, db_name = str_ecoinvent_version )

importer.apply_strategies()


getting this error as below


ValueError Traceback (most recent call last) Cell In[23], line 31 27 bw2data.projects.set_current(str_ecoinvent_version) 28 #bw2io.bw2setup() ---> 31 importer: SingleOutputEcospold2Importer = bw2io.SingleOutputEcospold2Importer( 32 dirpath = path_dir_datasets_ecoinvent, 33 db_name = str_ecoinvent_version 34 )

File ~\AppData\Local\anaconda3\envs\MyTestEnv\Lib\site-packages\bw2io\importers\ecospold2.py:68, in SingleOutputEcospold2Importer.init(self, dirpath, db_name, extractor, use_mp, signal, reparametrize_lognormals) 65 self.dirpath = dirpath 67 if not Path(dirpath).is_dir(): ---> 68 raise ValueError(f"dirpath value was not a directory: {dirpath}") 70 self.db_name = db_name 71 self.signal = signal

ValueError: dirpath value was not a directory: C:\Users\charithap/data/data_raw/ecoinvent_3.9.1_cutoff_ecoSpold02/datasets

romainsacchi commented 2 months ago

Hi @ncbperera , it seems the folder directory you're giving SingleOutputEcospold2Importer isn't valid (e.g., you're using a mix of back and forward-slashes, among others). Try giving it a valid one and it should work.

ncbperera commented 2 months ago

@romainsacchi ,

Even i hardcode the path as below it gives the same error

path_dir_datasets_ecoinvent: str = ' C:/Users/charithap/data/data_raw/ecoinvent_3.9.1_cutoff_ecoSpold02/datasets'


ValueError Traceback (most recent call last) Cell In[24], line 32 28 bw2data.projects.set_current(str_ecoinvent_version) 29 #bw2io.bw2setup() ---> 32 importer: SingleOutputEcospold2Importer = bw2io.SingleOutputEcospold2Importer( 33 dirpath = path_dir_datasets_ecoinvent, 34 db_name = str_ecoinvent_version 35 )

File ~\AppData\Local\anaconda3\envs\MyTestEnv\Lib\site-packages\bw2io\importers\ecospold2.py:68, in SingleOutputEcospold2Importer.init(self, dirpath, db_name, extractor, use_mp, signal, reparametrize_lognormals) 65 self.dirpath = dirpath 67 if not Path(dirpath).is_dir(): ---> 68 raise ValueError(f"dirpath value was not a directory: {dirpath}") 70 self.db_name = db_name 71 self.signal = signal

ValueError: dirpath value was not a directory: C:/Users/charithap/data/data_raw/ecoinvent_3.9.1_cutoff_ecoSpold02/datasets