polca / premise

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

Issue extracting IAM data #75

Closed xiaoshir closed 1 year ago

xiaoshir commented 1 year ago

I just tried using premise 1.2.0 and 1.2.3, and got the following error message setting up new databases. In particular, it fails in the step of extracting IAM data:

Traceback (most recent call last): File "C:\miniconda3_py37\envs\materials\lib\site-packages\IPython\core\interactiveshell.py", line 3398, in run_code exec(code_obj, self.user_global_ns, self.user_ns) File "C:\Users\zhang_x\AppData\Local\Temp\ipykernel_3292\3795149781.py", line 1, in <cell line: 1> ndb = NewDatabase( File "C:\miniconda3_py37\envs\materials\lib\site-packages\premise\ecoinvent_modification.py", line 564, in init

build file path

File "C:\miniconda3_py37\envs\materials\lib\site-packages\premise\data_collection.py", line 193, in init File "C:\miniconda3_py37\envs\materials\lib\site-packages\premise\data_collection.py", line 1329, in get_carbon_capture_rate data_to_return.coords["variables"] = list(labels) File "C:\miniconda3_py37\envs\materials\lib\site-packages\xarray\core\dataarray.py", line 199, in getitem__ return self.data_array.sel(key) File "C:\miniconda3_py37\envs\materials\lib\site-packages\xarray\core\dataarray.py", line 1329, in sel ds = self._to_temp_dataset().sel( File "C:\miniconda3_py37\envs\materials\lib\site-packages\xarray\core\dataset.py", line 2501, in sel pos_indexers, new_indexes = remap_label_indexers( File "C:\miniconda3_py37\envs\materials\lib\site-packages\xarray\core\coordinates.py", line 421, in remap_label_indexers pos_indexers, new_indexes = indexing.remap_label_indexers( File "C:\miniconda3_py37\envs\materials\lib\site-packages\xarray\core\indexing.py", line 121, in remap_label_indexers idxr, new_idx = index.query(labels, method=method, tolerance=tolerance) File "C:\miniconda3_py37\envs\materials\lib\site-packages\xarray\core\indexes.py", line 245, in query indexer = get_indexer_nd(self.index, label, method, tolerance) File "C:\miniconda3_py37\envs\materials\lib\site-packages\xarray\core\indexes.py", line 142, in get_indexer_nd flat_indexer = index.get_indexer(flat_labels, method=method, tolerance=tolerance) File "C:\miniconda3_py37\envs\materials\lib\site-packages\pandas\core\indexes\base.py", line 3784, in get_indexer return self._get_indexer(target, method, limit, tolerance) File "C:\miniconda3_py37\envs\materials\lib\site-packages\pandas\core\indexes\base.py", line 3809, in _get_indexer indexer = self._engine.get_indexer(tgt_values) File "pandas_libs\index.pyx", line 305, in pandas._libs.index.IndexEngine.get_indexer File "pandas_libs\hashtable_class_helper.pxi", line 5247, in pandas._libs.hashtable.PyObjectHashTable.lookup TypeError: unhashable type: 'list'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\miniconda3_py37\envs\materials\lib\site-packages\IPython\core\interactiveshell.py", line 1993, in showtraceback stb = self.InteractiveTB.structured_traceback( File "C:\miniconda3_py37\envs\materials\lib\site-packages\IPython\core\ultratb.py", line 1118, in structured_traceback return FormattedTB.structured_traceback( File "C:\miniconda3_py37\envs\materials\lib\site-packages\IPython\core\ultratb.py", line 1012, in structured_traceback return VerboseTB.structured_traceback( File "C:\miniconda3_py37\envs\materials\lib\site-packages\IPython\core\ultratb.py", line 865, in structured_traceback formatted_exception = self.format_exception_as_a_whole(etype, evalue, etb, number_of_lines_of_context, File "C:\miniconda3_py37\envs\materials\lib\site-packages\IPython\core\ultratb.py", line 818, in format_exception_as_a_whole frames.append(self.format_record(r)) File "C:\miniconda3_py37\envs\materials\lib\site-packages\IPython\core\ultratb.py", line 736, in format_record result += ''.join(_format_traceback_lines(frame_info.lines, Colors, self.has_colors, lvals)) File "C:\miniconda3_py37\envs\materials\lib\site-packages\stack_data\utils.py", line 145, in cached_property_wrapper value = obj.dict[self.func.name] = self.func(obj) File "C:\miniconda3_py37\envs\materials\lib\site-packages\stack_data\core.py", line 698, in lines pieces = self.included_pieces File "C:\miniconda3_py37\envs\materials\lib\site-packages\stack_data\utils.py", line 145, in cached_property_wrapper value = obj.dict[self.func.name] = self.func(obj) File "C:\miniconda3_py37\envs\materials\lib\site-packages\stack_data\core.py", line 649, in included_pieces pos = scope_pieces.index(self.executing_piece) File "C:\miniconda3_py37\envs\materials\lib\site-packages\stack_data\utils.py", line 145, in cached_property_wrapper value = obj.dict[self.func.name] = self.func(obj) File "C:\miniconda3_py37\envs\materials\lib\site-packages\stack_data\core.py", line 628, in executing_piece return only( File "C:\miniconda3_py37\envs\materials\lib\site-packages\executing\executing.py", line 164, in only raise NotOneValueFound('Expected one value, found 0') executing.executing.NotOneValueFound: Expected one value, found 0

romainsacchi commented 1 year ago

Can you let me know if v.1.2.3 has fixed the issue?

xiaoshir commented 1 year ago

@romainsacchi Yes, it is okay now in 1.2.4

xiaoshir commented 1 year ago

I close it here