Skip to content

Commit 0f947a4

Browse files
authored
Merge pull request #653 from larsoner/tr
FIX: Allow tr=0 in MGH files
2 parents bb8c6fa + f1ec04c commit 0f947a4

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

nibabel/freesurfer/mghformat.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,10 +276,15 @@ def set_zooms(self, zooms):
276276
ndims = self._ndims()
277277
if len(zooms) > ndims:
278278
raise HeaderDataError('Expecting %d zoom values' % ndims)
279-
if np.any(zooms <= 0):
280-
raise HeaderDataError('zooms must be positive')
279+
if np.any(zooms[:3] <= 0):
280+
raise HeaderDataError('Spatial (first three) zooms must be '
281+
'positive; got {!r}'
282+
''.format(tuple(zooms[:3])))
281283
hdr['delta'] = zooms[:3]
282284
if len(zooms) == 4:
285+
if zooms[3] < 0:
286+
raise HeaderDataError('TR must be non-negative; got {!r}'
287+
''.format(zooms[3]))
283288
hdr['tr'] = zooms[3]
284289

285290
def get_data_shape(self):

nibabel/freesurfer/tests/test_mghformat.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,8 @@ def test_set_zooms():
159159
(1, 1, 1, 1, 5)):
160160
with assert_raises(HeaderDataError):
161161
h.set_zooms(zooms)
162+
# smoke test for tr=0
163+
h.set_zooms((1, 1, 1, 0))
162164

163165

164166
def bad_dtype_mgh():

0 commit comments

Comments
 (0)