Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Index error while running the first temporal update step in MiniAn #285

Open
AlbertFok opened this issue Dec 29, 2024 · 0 comments
Open

Comments

@AlbertFok
Copy link

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.

@AlbertFok AlbertFok changed the title Index error while running the temporal update step in MiniAn Index error while running the first temporal update step in MiniAn Dec 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant