From 94b6e749e50ec9392bb99c25ebd3b099d6dc8340 Mon Sep 17 00:00:00 2001 From: Paul McCarthy <pauldmccarthy@gmail.com> Date: Fri, 8 Feb 2019 14:26:12 +0000 Subject: [PATCH] BF: Avoid mem-mapping dicom/niftis, as the tempdir will be deleted. --- fsl/data/dicom.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/fsl/data/dicom.py b/fsl/data/dicom.py index 1457c54ee..f7c9a97c7 100644 --- a/fsl/data/dicom.py +++ b/fsl/data/dicom.py @@ -203,9 +203,13 @@ def loadSeries(series): sp.call(cmd.split(), stdout=devnull, stderr=devnull) files = glob.glob(op.join(td, '{}*.nii'.format(snum))) - images = [nib.load(f) for f in files] - - # Force-load images into memory - [i.get_data() for i in images] + images = [nib.load(f, mmap=False) for f in files] + + # copy images so nibabel no longer + # refs to the files (as they will + # be deleted), and use get_data() + # to force-load the image data. + images = [nib.Nifti1Image(i.get_data(), None, i.header) + for i in images] return [DicomImage(i, series, dcmdir, name=desc) for i in images] -- GitLab