Index error while running the first temporal update step in MiniAn

22 views
Skip to first unread message

Albert hiuka fok

unread,
Dec 29, 2024, 12:17:24 AM12/29/24
to Miniscope
Hi,

My error log looks like this:

IndexError Traceback (most recent call last) File <timed exec>:1 File ~\minian\minian\cnmf.py:858, in update_temporal(A, C, b, f, Y, YrA, noise_freq, p, add_lag, jac_thres, sparse_penal, bseg, med_wd, zero_thres, max_iters, use_smooth, normalize, warm_start, post_scal, scs_fallback, concurrent_update) 856 YrA = compute_trace(Y, A, b, C, f).persist() 857 Ymask = (YrA > 0).any("frame").compute() --> 858 A, C, YrA = A.sel(unit_id=Ymask), C.sel(unit_id=Ymask), YrA.sel(unit_id=Ymask) 859 print("grouping overlaping units") 860 A_sps = (A.data.map_blocks(sparse.COO) > 0).compute().astype(np.float32) File ~\.conda\envs\minian\lib\site-packages\xarray\core\dataarray.py:1202, in DataArray.sel(self, indexers, method, tolerance, drop, **indexers_kwargs) 1121 def sel( 1122 self, 1123 indexers: Mapping[Hashable, Any] = None, (...) 1127 **indexers_kwargs: Any, 1128 ) -> "DataArray": 1129 """Return a new DataArray whose data is given by selecting index 1130 labels along the specified dimension(s). 1131 (...) 1200 1201 """ -> 1202 ds = self._to_temp_dataset().sel( 1203 indexers=indexers, 1204 drop=drop, 1205 method=method, 1206 tolerance=tolerance, 1207 **indexers_kwargs, 1208 ) 1209 return self._from_temp_dataset(ds) File ~\.conda\envs\minian\lib\site-packages\xarray\core\dataset.py:2185, in Dataset.sel(self, indexers, method, tolerance, drop, **indexers_kwargs) 2181 indexers = either_dict_or_kwargs(indexers, indexers_kwargs, "sel") 2182 pos_indexers, new_indexes = remap_label_indexers( 2183 self, indexers=indexers, method=method, tolerance=tolerance 2184 ) -> 2185 result = self.isel(indexers=pos_indexers, drop=drop) 2186 return result._overwrite_indexes(new_indexes) File ~\.conda\envs\minian\lib\site-packages\xarray\core\dataset.py:2032, in Dataset.isel(self, indexers, drop, missing_dims, **indexers_kwargs) 2030 indexers = either_dict_or_kwargs(indexers, indexers_kwargs, "isel") 2031 if any(is_fancy_indexer(idx) for idx in indexers.values()): -> 2032 return self._isel_fancy(indexers, drop=drop, missing_dims=missing_dims) 2034 # Much faster algorithm for when all indexers are ints, slices, one-dimensional 2035 # lists, or zero or one-dimensional np.ndarray's 2036 indexers = drop_dims_from_indexers(indexers, self.dims, missing_dims) File ~\.conda\envs\minian\lib\site-packages\xarray\core\dataset.py:2090, in Dataset._isel_fancy(self, indexers, drop, missing_dims) 2087 continue # drop this variable 2089 if name in self.indexes: -> 2090 new_var, new_index = isel_variable_and_index( 2091 name, var, self.indexes[name], var_indexers 2092 ) 2093 if new_index is not None: 2094 indexes[name] = new_index File ~\.conda\envs\minian\lib\site-packages\xarray\core\indexes.py:106, in isel_variable_and_index(name, variable, index, indexers) 101 if len(variable.dims) > 1: 102 raise NotImplementedError( 103 "indexing multi-dimensional variable with indexes is not supported yet" 104 ) --> 106 new_variable = variable.isel(indexers) 108 if new_variable.dims != (name,): 109 # can't preserve a index if result has new dimensions 110 return new_variable, None File ~\.conda\envs\minian\lib\site-packages\xarray\core\variable.py:1120, in Variable.isel(self, indexers, missing_dims, **indexers_kwargs) 1117 indexers = drop_dims_from_indexers(indexers, self.dims, missing_dims) 1119 key = tuple(indexers.get(dim, slice(None)) for dim in self.dims) -> 1120 return self[key] File ~\.conda\envs\minian\lib\site-packages\xarray\core\variable.py:768, in Variable.__getitem__(self, key) 755 def __getitem__(self: VariableType, key) -> VariableType: 756 """Return a new Variable object whose contents are consistent with 757 getting the provided key from the underlying data. 758 (...) 766 array `x.values` directly. 767 """ --> 768 dims, indexer, new_order = self._broadcast_indexes(key) 769 data = as_indexable(self._data)[indexer] 770 if new_order: File ~\.conda\envs\minian\lib\site-packages\xarray\core\variable.py:609, in Variable._broadcast_indexes(self, key) 606 if all(isinstance(k, BASIC_INDEXING_TYPES) for k in key): 607 return self._broadcast_indexes_basic(key) --> 609 self._validate_indexers(key) 610 # Detect it can be mapped as an outer indexer 611 # If all key is unlabeled, or 612 # key can be mapped as an OuterIndexer. 613 if all(not isinstance(k, Variable) for k in key): File ~\.conda\envs\minian\lib\site-packages\xarray\core\variable.py:652, in Variable._validate_indexers(self, key) 650 if k.dtype.kind == "b": 651 if self.shape[self.get_axis_num(dim)] != len(k): --> 652 raise IndexError( 653 "Boolean array size {:d} is used to index array " 654 "with shape {:s}.".format(len(k), str(self.shape)) 655 ) 656 if k.ndim > 1: 657 raise IndexError( 658 "{}-dimensional boolean indexing is " 659 "not supported. ".format(k.ndim) 660 ) IndexError: Boolean array size 10 is used to index array with shape (820,).



I don't know what it means or how to fix it. I greatly appreciate your help.


Best,

Albert

Reply all
Reply to author
Forward
0 new messages