Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

Index error while running the first temporal update step in MiniAn

17 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