Skip to content

Commit dce4ffd

Browse files
committed
wip
1 parent 0ae6e76 commit dce4ffd

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

neo/rawio/spikeglxrawio.py

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,11 +229,32 @@ def _parse_header(self):
229229
spike_channels = np.array(spike_channels, dtype=_spike_channel_dtype)
230230

231231
# deal with nb_segment and t_start/t_stop per segment
232-
self._t_starts = {seg_index: 0.0 for seg_index in range(nb_segment)}
232+
233+
self._t_starts = {stream_name: {} for stream_name in stream_names}
233234
self._t_stops = {seg_index: 0.0 for seg_index in range(nb_segment)}
235+
self._t_since_recording_time = {stream_name: {} for stream_name in stream_names}
236+
self._session_start_time = {stream_name: {} for stream_name in stream_names}
237+
self._gate_trigger = {stream_name: {} for stream_name in stream_names}
234238
for seg_index in range(nb_segment):
235239
for stream_name in stream_names:
236240
info = self.signals_info_dict[seg_index, stream_name]
241+
242+
frame_start = float(info["meta"]["firstSample"])
243+
sampling_frequency = info["sampling_rate"]
244+
t_start = frame_start / sampling_frequency
245+
246+
initial_date_time = info["meta"]["fileCreateTime"]
247+
from datetime import datetime
248+
initial_date_time_parsed = datetime.strptime(initial_date_time, "%Y-%m-%dT%H:%M:%S")
249+
initial_timestamp = initial_date_time_parsed.timestamp()
250+
shifted_timestamps = t_start + initial_timestamp
251+
252+
self._t_starts[stream_name][seg_index] = t_start
253+
self._t_since_recording_time[stream_name][seg_index] = (initial_timestamp, shifted_timestamps)
254+
gate_num = info["gate_num"]
255+
trigger_num = info["trigger_num"]
256+
self._gate_trigger[stream_name][seg_index] = f"{gate_num=}, {trigger_num} "
257+
self._session_start_time[stream_name][seg_index] = initial_date_time_parsed
237258
t_stop = info["sample_length"] / info["sampling_rate"]
238259
self._t_stops[seg_index] = max(self._t_stops[seg_index], t_stop)
239260

@@ -282,7 +303,8 @@ def _segment_t_stop(self, block_index, seg_index):
282303
return self._t_stops[seg_index]
283304

284305
def _get_signal_t_start(self, block_index, seg_index, stream_index):
285-
return 0.0
306+
stream_name = self.header["signal_streams"][stream_index]["name"]
307+
return self._t_starts[stream_name][seg_index]
286308

287309
def _event_count(self, event_channel_idx, block_index=None, seg_index=None):
288310
timestamps, _, _ = self._get_event_timestamps(block_index, seg_index, event_channel_idx, None, None)

0 commit comments

Comments
 (0)