@@ -412,7 +412,7 @@ def _parse_header(self):
412412 for k , (data , ev_ids ) in self .nev_data .items ():
413413 segment_mask = ev_ids == data_bl
414414 if data [segment_mask ].size > 0 :
415- t = data [segment_mask ][- 1 ]['timestamp' ] / self .__nev_basic_header [
415+ t = ( data [segment_mask ][- 1 ]['timestamp' ]+ 1 ) / self .__nev_basic_header [
416416 'timestamp_resolution' ]
417417 max_nev_time = max (max_nev_time , t )
418418 if max_nev_time > t_stop :
@@ -450,7 +450,7 @@ def _parse_header(self):
450450 # Calculate t_start and t_stop for each segment in seconds
451451 resolution = self .__nev_basic_header ['timestamp_resolution' ]
452452 self ._seg_t_starts = [v / float (resolution ) for k , v in sorted (min_nev_times .items ())]
453- self ._seg_t_stops = [v / float (resolution ) for k , v in sorted (max_nev_times .items ())]
453+ self ._seg_t_stops = [( v + 1 ) / float (resolution ) for k , v in sorted (max_nev_times .items ())]
454454 self ._nb_segment = len (self ._seg_t_starts )
455455 self ._sigs_t_starts = [None ] * self ._nb_segment
456456
@@ -645,8 +645,13 @@ def _get_spike_raw_waveforms(self, block_index, seg_index, unit_index, t_start,
645645
646646 wf_dtype = self .__nev_params ('waveform_dtypes' )[channel_id ]
647647 wf_size = self .__nev_params ('waveform_size' )[channel_id ]
648+ wf_byte_size = np .dtype (wf_dtype ).itemsize * wf_size
648649
649- waveforms = unit_spikes ['waveform' ].flatten ().view (wf_dtype )
650+ dt1 = [
651+ ('extra' , 'S{}' .format (unit_spikes ['waveform' ].dtype .itemsize - wf_byte_size )),
652+ ('ch_waveform' , 'S{}' .format (wf_byte_size ))]
653+
654+ waveforms = unit_spikes ['waveform' ].view (dt1 )['ch_waveform' ].flatten ().view (wf_dtype )
650655 waveforms = waveforms .reshape (int (unit_spikes .size ), 1 , int (wf_size ))
651656
652657 timestamp = unit_spikes ['timestamp' ]
0 commit comments