Skip to content

Commit 634079f

Browse files
authored
Merge pull request #1415 from h-mayorquin/small_changes_to_intan
IntanRawIO: Change channel id to native-channel-name in intan
2 parents 9892c95 + 0c68b22 commit 634079f

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

neo/rawio/intanrawio.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,8 @@ def _parse_header(self):
104104
# signals
105105
signal_channels = []
106106
for c, chan_info in enumerate(self._ordered_channels):
107-
name = chan_info["native_channel_name"]
108-
chan_id = str(c) # the chan_id have no meaning in intan
107+
name = chan_info["custom_channel_name"]
108+
channel_id = chan_info["native_channel_name"]
109109
if chan_info["signal_type"] == 20:
110110
# exception for temperature
111111
sig_dtype = "int16"
@@ -115,7 +115,7 @@ def _parse_header(self):
115115
signal_channels.append(
116116
(
117117
name,
118-
chan_id,
118+
channel_id,
119119
chan_info["sampling_rate"],
120120
sig_dtype,
121121
chan_info["units"],
@@ -165,9 +165,9 @@ def _get_signal_size(self, block_index, seg_index, stream_index):
165165
stream_id = self.header["signal_streams"][stream_index]["id"]
166166
mask = self.header["signal_channels"]["stream_id"] == stream_id
167167
signal_channels = self.header["signal_channels"][mask]
168-
channel_names = signal_channels["name"]
169-
chan_name0 = channel_names[0]
170-
size = self._raw_data[chan_name0].size
168+
channel_ids = signal_channels["id"]
169+
channel_id_0 = channel_ids[0]
170+
size = self._raw_data[channel_id_0].size
171171
return size
172172

173173
def _get_signal_t_start(self, block_index, seg_index, stream_index):
@@ -185,9 +185,9 @@ def _get_analogsignal_chunk(self, block_index, seg_index, i_start, i_stop, strea
185185
signal_channels = self.header["signal_channels"][mask]
186186
if channel_indexes is None:
187187
channel_indexes = slice(None)
188-
channel_names = signal_channels["name"][channel_indexes]
188+
channel_ids = signal_channels["id"][channel_indexes]
189189

190-
shape = self._raw_data[channel_names[0]].shape
190+
shape = self._raw_data[channel_ids[0]].shape
191191

192192
# some channel (temperature) have 1D field so shape 1D
193193
# because 1 sample per block
@@ -200,13 +200,14 @@ def _get_analogsignal_chunk(self, block_index, seg_index, i_start, i_stop, strea
200200
sl0 = i_start % block_size
201201
sl1 = sl0 + (i_stop - i_start)
202202

203-
sigs_chunk = np.zeros((i_stop - i_start, len(channel_names)), dtype="uint16")
204-
for i, chan_name in enumerate(channel_names):
205-
data_chan = self._raw_data[chan_name]
203+
sigs_chunk = np.zeros((i_stop - i_start, len(channel_ids)), dtype="uint16")
204+
for channel_index, channel_id in enumerate(channel_ids):
205+
# Memmap fields are the channel_ids for unique channels
206+
data_chan = self._raw_data[channel_id]
206207
if len(shape) == 1:
207-
sigs_chunk[:, i] = data_chan[i_start:i_stop]
208+
sigs_chunk[:, channel_index] = data_chan[i_start:i_stop]
208209
else:
209-
sigs_chunk[:, i] = data_chan[block_start:block_stop].flatten()[sl0:sl1]
210+
sigs_chunk[:, channel_index] = data_chan[block_start:block_stop].flatten()[sl0:sl1]
210211

211212
return sigs_chunk
212213

0 commit comments

Comments
 (0)