Skip to content

Commit 451325c

Browse files
committed
wip buffer_id for more rawios
1 parent a9340f1 commit 451325c

File tree

3 files changed

+29
-10
lines changed

3 files changed

+29
-10
lines changed

neo/rawio/tdtrawio.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
BaseRawIO,
3737
_signal_channel_dtype,
3838
_signal_stream_dtype,
39+
_signal_buffer_dtype,
3940
_spike_channel_dtype,
4041
_event_channel_dtype,
4142
)
@@ -208,7 +209,8 @@ def _parse_header(self):
208209

209210
stream_name = str(info["StoreName"])
210211
stream_id = f"{stream_index}"
211-
signal_streams.append((stream_name, stream_id))
212+
buffer_id = ""
213+
signal_streams.append((stream_name, stream_id, buffer_id))
212214

213215
for c in range(info["NumChan"]):
214216
global_chan_index = len(signal_channels)
@@ -308,13 +310,16 @@ def _parse_header(self):
308310
units = "uV" # see https://github.com/NeuralEnsemble/python-neo/issues/1369
309311
gain = 1.0
310312
offset = 0.0
311-
signal_channels.append((chan_name, str(chan_id), sampling_rate, dtype, units, gain, offset, stream_id))
313+
buffer_id = ""
314+
signal_channels.append((chan_name, str(chan_id), sampling_rate, dtype, units, gain, offset, stream_id, buffer_id))
312315

313316
if missing_sev_channels:
314317
warnings.warn(f"Could not identify sev files for channels {missing_sev_channels}.")
315318

316319
signal_streams = np.array(signal_streams, dtype=_signal_stream_dtype)
317320
signal_channels = np.array(signal_channels, dtype=_signal_channel_dtype)
321+
# buffer concept here, data are spread per channel and paquet
322+
signal_buffers = np.array([], dtype=_signal_buffer_dtype)
318323

319324
# unit channels EVTYPE_SNIP
320325
self.internal_unit_ids = {}
@@ -365,6 +370,7 @@ def _parse_header(self):
365370
self.header = {}
366371
self.header["nb_block"] = 1
367372
self.header["nb_segment"] = [nb_segment]
373+
self.header["signal_buffers"] = signal_buffers
368374
self.header["signal_streams"] = signal_streams
369375
self.header["signal_channels"] = signal_channels
370376
self.header["spike_channels"] = spike_channels

neo/rawio/winedrrawio.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
BaseRawIO,
1616
_signal_channel_dtype,
1717
_signal_stream_dtype,
18+
_signal_buffer_dtype,
1819
_spike_channel_dtype,
1920
_event_channel_dtype,
2021
_common_sig_characteristics,
@@ -92,7 +93,8 @@ def _parse_header(self):
9293
gain = AD / (YCF * YAG * (ADCMAX + 1))
9394
offset = -YZ * gain
9495
stream_id = "0"
95-
signal_channels.append((name, str(chan_id), self._sampling_rate, "int16", units, gain, offset, stream_id))
96+
buffer_id = "0"
97+
signal_channels.append((name, str(chan_id), self._sampling_rate, "int16", units, gain, offset, stream_id, buffer_id))
9698

9799
signal_channels = np.array(signal_channels, dtype=_signal_channel_dtype)
98100

@@ -102,9 +104,14 @@ def _parse_header(self):
102104
for i in range(unique_characteristics.size):
103105
mask = unique_characteristics[i] == characteristics
104106
signal_channels["stream_id"][mask] = str(i)
105-
signal_streams.append((f"stream {i}", str(i)))
107+
# unique buffer for all streams
108+
buffer_id = "0"
109+
signal_streams.append((f"stream {i}", str(i), buffer_id))
106110
signal_streams = np.array(signal_streams, dtype=_signal_stream_dtype)
107111

112+
# all stream are in the same unique buffer : memmap
113+
signal_buffers = np.array([("", "0")], dtype=_signal_buffer_dtype)
114+
108115
# No events
109116
event_channels = []
110117
event_channels = np.array(event_channels, dtype=_event_channel_dtype)
@@ -117,6 +124,7 @@ def _parse_header(self):
117124
self.header = {}
118125
self.header["nb_block"] = 1
119126
self.header["nb_segment"] = [1]
127+
self.header["signal_buffers"] = signal_buffers
120128
self.header["signal_streams"] = signal_streams
121129
self.header["signal_channels"] = signal_channels
122130
self.header["spike_channels"] = spike_channels

neo/rawio/winwcprawio.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
BaseRawIO,
1717
_signal_channel_dtype,
1818
_signal_stream_dtype,
19+
_signal_buffer_dtype,
1920
_spike_channel_dtype,
2021
_event_channel_dtype,
2122
_common_sig_characteristics,
@@ -35,7 +36,6 @@ class WinWcpRawIO(BaseRawIO):
3536

3637
extensions = ["wcp"]
3738
rawmode = "one-file"
38-
has_buffer_description_api = True
3939

4040
def __init__(self, filename=""):
4141
BaseRawIO.__init__(self)
@@ -49,9 +49,7 @@ def _parse_header(self):
4949

5050
# only one memmap for all segment to avoid
5151
# "error: [Errno 24] Too many open files"
52-
# self._memmap = np.memmap(self.filename, dtype="uint8", mode="r")
53-
54-
self._buffer_descriptions = {0 :{}}
52+
self._memmap = np.memmap(self.filename, dtype="uint8", mode="r")
5553

5654
with open(self.filename, "rb") as fid:
5755

@@ -120,7 +118,8 @@ def _parse_header(self):
120118
gain = VMax / ADCMAX / YG
121119
offset = 0.0
122120
stream_id = "0"
123-
signal_channels.append((name, chan_id, self._sampling_rate, "int16", units, gain, offset, stream_id))
121+
buffer_id = "0"
122+
signal_channels.append((name, chan_id, self._sampling_rate, "int16", units, gain, offset, stream_id, buffer_id))
124123

125124
signal_channels = np.array(signal_channels, dtype=_signal_channel_dtype)
126125

@@ -130,9 +129,14 @@ def _parse_header(self):
130129
for i in range(unique_characteristics.size):
131130
mask = unique_characteristics[i] == characteristics
132131
signal_channels["stream_id"][mask] = str(i)
133-
signal_streams.append((f"stream {i}", str(i)))
132+
# unique buffer for all streams
133+
buffer_id = "0"
134+
signal_streams.append((f"stream {i}", str(i), buffer_id))
134135
signal_streams = np.array(signal_streams, dtype=_signal_stream_dtype)
135136

137+
# all stream are in the same unique buffer : memmap
138+
signal_buffers = np.array([("", "0")], dtype=_signal_buffer_dtype)
139+
136140
# No events
137141
event_channels = []
138142
event_channels = np.array(event_channels, dtype=_event_channel_dtype)
@@ -145,6 +149,7 @@ def _parse_header(self):
145149
self.header = {}
146150
self.header["nb_block"] = 1
147151
self.header["nb_segment"] = [nb_segment]
152+
self.header["signal_buffers"] = signal_buffers
148153
self.header["signal_streams"] = signal_streams
149154
self.header["signal_channels"] = signal_channels
150155
self.header["spike_channels"] = spike_channels

0 commit comments

Comments
 (0)