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