def _compute_ratemap(self, min_duration=None):
if min_duration is None:
min_duration = self._min_duration
ext = self.trans_func(self._extern, at=self._bst.bin_centers)
ext_bin_idx = np.digitize(ext, self.bins, True)
# make sure that all the events fit between extmin and extmax:
# TODO: this might rather be a warning, but it's a pretty serious warning...
if ext_bin_idx.max() > self.n_bins:
raise ValueError("ext values greater than 'ext_max'")
if ext_bin_idx.min() == 0:
raise ValueError("ext values less than 'ext_min'")
ratemap = np.zeros((self.n_units, self.n_bins))
for tt, bidx in enumerate(ext_bin_idx):
ratemap[:,bidx-1] += self._bst.data[:,tt]
# apply minimum observation duration
for uu in range(self.n_units):
ratemap[uu][self.occupancy*self._bst.ds < min_duration] = 0
return ratemap / self._bst.ds
评论列表
文章目录