Skip to content

Commit 03e8b78

Browse files
committed
ENH: decimate CIFTI signal
1 parent 76cc13a commit 03e8b78

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed

niworkflows/viz/plots.py

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -177,9 +177,10 @@ def plot_carpet(func, atlaslabels=None, detrend=True, nskip=0, size=(950, 800),
177177
lidx = 3
178178
index_final = bm.index_offset + bm.index_count
179179
seg[bm.index_offset:index_final] = lidx
180-
181180
assert len(seg[seg < 1]) == 0, "Unassigned labels"
182181

182+
# Decimate data
183+
data, seg = _decimate_data(data, seg, size)
183184
# preserve as much continuity as possible
184185
order = seg.argsort(kind='stable')
185186

@@ -207,14 +208,8 @@ def plot_carpet(func, atlaslabels=None, detrend=True, nskip=0, size=(950, 800),
207208
# Apply lookup table
208209
seg = lut[oseg.astype(int)]
209210

210-
p_dec = 1 + data.shape[0] // size[0]
211-
if p_dec:
212-
data = data[::p_dec, :]
213-
seg = seg[::p_dec]
214-
t_dec = 1 + data.shape[1] // size[1]
215-
if t_dec:
216-
data = data[:, ::t_dec]
217-
211+
# Decimate data
212+
data, seg = _decimate_data(data, seg, size)
218213
# Order following segmentation labels
219214
order = np.argsort(seg)[::-1]
220215
# Set colormap
@@ -840,3 +835,26 @@ def _get_tr(img):
840835
except AttributeError:
841836
return img.header.get_zooms()[-1]
842837
raise RuntimeError("Could not extract TR - unknown data structure type")
838+
839+
840+
def _decimate_data(data, seg, size):
841+
"""Decimate timeseries data
842+
843+
Parameters
844+
----------
845+
data : ndarray
846+
2 element array of timepoints and samples
847+
seg : ndarray
848+
1 element array of samples
849+
size : tuple
850+
2 element for P/T decimation
851+
852+
"""
853+
p_dec = 1 + data.shape[0] // size[0]
854+
if p_dec:
855+
data = data[::p_dec, :]
856+
seg = seg[::p_dec]
857+
t_dec = 1 + data.shape[1] // size[1]
858+
if t_dec:
859+
data = data[:, ::t_dec]
860+
return data, seg

0 commit comments

Comments
 (0)