@@ -473,6 +473,7 @@ def _parse_header(self):
473473 segment_mask = ev_ids == data_bl
474474 if data [segment_mask ].size > 0 :
475475 t = data [segment_mask ][- 1 ]["timestamp" ] / self .__nev_basic_header ["timestamp_resolution" ]
476+
476477 max_nev_time = max (max_nev_time , t )
477478 if max_nev_time > t_stop :
478479 t_stop = max_nev_time
@@ -680,7 +681,8 @@ def _get_timestamp_slice(self, timestamp, seg_index, t_start, t_stop):
680681 if t_start is None :
681682 t_start = self ._seg_t_starts [seg_index ]
682683 if t_stop is None :
683- t_stop = self ._seg_t_stops [seg_index ]
684+ t_stop = self ._seg_t_stops [seg_index ] + 1 / float (
685+ self .__nev_basic_header ['timestamp_resolution' ])
684686
685687 if t_start is None :
686688 ind_start = None
@@ -713,10 +715,16 @@ def _get_spike_raw_waveforms(self, block_index, seg_index, unit_index, t_start,
713715 )
714716 unit_spikes = all_spikes [mask ]
715717
716- wf_dtype = self .__nev_params ("waveform_dtypes" )[channel_id ]
717- wf_size = self .__nev_params ("waveform_size" )[channel_id ]
718+ wf_dtype = self .__nev_params ('waveform_dtypes' )[channel_id ]
719+ wf_size = self .__nev_params ('waveform_size' )[channel_id ]
720+ wf_byte_size = np .dtype (wf_dtype ).itemsize * wf_size
721+
722+ dt1 = [
723+ ('extra' , 'S{}' .format (unit_spikes ['waveform' ].dtype .itemsize - wf_byte_size )),
724+ ('ch_waveform' , 'S{}' .format (wf_byte_size ))]
725+
726+ waveforms = unit_spikes ['waveform' ].view (dt1 )['ch_waveform' ].flatten ().view (wf_dtype )
718727
719- waveforms = unit_spikes ["waveform" ].flatten ().view (wf_dtype )
720728 waveforms = waveforms .reshape (int (unit_spikes .size ), 1 , int (wf_size ))
721729
722730 timestamp = unit_spikes ["timestamp" ]
0 commit comments