From 124d86bd8120b222021eef47fa485dcffe9fd395 Mon Sep 17 00:00:00 2001 From: XiaohaoYang Date: Fri, 24 Oct 2014 01:28:54 -0400 Subject: [PATCH 1/5] avoid importing fabio in reading --- diffpy/srxplanar/loadimage.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/diffpy/srxplanar/loadimage.py b/diffpy/srxplanar/loadimage.py index 7a4f814..228be04 100644 --- a/diffpy/srxplanar/loadimage.py +++ b/diffpy/srxplanar/loadimage.py @@ -19,17 +19,20 @@ import fnmatch import sys from diffpy.srxplanar.srxplanarconfig import _configPropertyR - -try: - import fabio - def openImage(im): - rv = fabio.openimage.openimage(im) - return rv.data -except: - import tifffile - def openImage(im): +import tifffile +import subprocess + +def openImage(im): + try: + code = 'import numpy; import fabio; numpy.save("temp.npy", fabio.openimage.openimage("%s").data)' % im + cmd = [sys.executable, '-c', "'" + code + "'"] + p = subprocess.Popen(cmd) + p.wait() + rv = np.load('temp.npy') + os.remove('temp.npy') + except: rv = tifffile.imread(im) - return rv + return rv class LoadImage(object): ''' From 8a29a04f56b930b6b117880d8d57d2c6e8dbb488 Mon Sep 17 00:00:00 2001 From: XiaohaoYang Date: Fri, 24 Oct 2014 02:06:07 -0400 Subject: [PATCH 2/5] terminate subprocess after loading image --- diffpy/srxplanar/loadimage.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/diffpy/srxplanar/loadimage.py b/diffpy/srxplanar/loadimage.py index 228be04..5ef2c9d 100644 --- a/diffpy/srxplanar/loadimage.py +++ b/diffpy/srxplanar/loadimage.py @@ -29,7 +29,14 @@ def openImage(im): p = subprocess.Popen(cmd) p.wait() rv = np.load('temp.npy') - os.remove('temp.npy') + try: + os.remove('temp.npy') + except: + pass + try: + p.terminate() + except: + pass except: rv = tifffile.imread(im) return rv From c05c109071101c9ba87e7cb3a023e77d2c497298 Mon Sep 17 00:00:00 2001 From: XiaohaoYang Date: Sat, 25 Oct 2014 16:59:17 -0400 Subject: [PATCH 3/5] add .txt format support --- diffpy/srxplanar/loadimage.py | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/diffpy/srxplanar/loadimage.py b/diffpy/srxplanar/loadimage.py index 5ef2c9d..9000d85 100644 --- a/diffpy/srxplanar/loadimage.py +++ b/diffpy/srxplanar/loadimage.py @@ -21,24 +21,28 @@ from diffpy.srxplanar.srxplanarconfig import _configPropertyR import tifffile import subprocess +import numpy as np def openImage(im): - try: - code = 'import numpy; import fabio; numpy.save("temp.npy", fabio.openimage.openimage("%s").data)' % im - cmd = [sys.executable, '-c', "'" + code + "'"] - p = subprocess.Popen(cmd) - p.wait() - rv = np.load('temp.npy') - try: - os.remove('temp.npy') - except: - pass - try: - p.terminate() + if im.endswith('.txt'): + rv = np.loadtxt(im) + else: + try: + code = 'import numpy; import fabio; numpy.save("temp.npy", fabio.openimage.openimage("%s").data)' % im + cmd = [sys.executable, '-c', "'" + code + "'"] + p = subprocess.Popen(cmd) + p.wait() + rv = np.load('temp.npy') + try: + os.remove('temp.npy') + except: + pass + try: + p.terminate() + except: + pass except: - pass - except: - rv = tifffile.imread(im) + rv = tifffile.imread(im) return rv class LoadImage(object): From 1671767c3f19eb92d5d5fd1a6efe609d3299927a Mon Sep 17 00:00:00 2001 From: XiaohaoYang Date: Fri, 7 Nov 2014 20:29:29 -0500 Subject: [PATCH 4/5] add dm3 support --- diffpy/srxplanar/loadimage.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/diffpy/srxplanar/loadimage.py b/diffpy/srxplanar/loadimage.py index 9000d85..a830ed0 100644 --- a/diffpy/srxplanar/loadimage.py +++ b/diffpy/srxplanar/loadimage.py @@ -24,10 +24,17 @@ import numpy as np def openImage(im): - if im.endswith('.txt'): - rv = np.loadtxt(im) - else: - try: + ext = os.path.splitext(im)[1].lower() + try: + if ext == '.txt': + rv = np.loadtxt(im) + elif ext == '.dm3': + import DM3lib + dm3 = DM3lib.DM3(im) + rv = dm3.imagedata + elif ext in ['.tiff', '.tif']: + rv = tifffile.imread(im) + else: code = 'import numpy; import fabio; numpy.save("temp.npy", fabio.openimage.openimage("%s").data)' % im cmd = [sys.executable, '-c', "'" + code + "'"] p = subprocess.Popen(cmd) @@ -41,8 +48,8 @@ def openImage(im): p.terminate() except: pass - except: - rv = tifffile.imread(im) + except: + rv = None return rv class LoadImage(object): From 02cf4b672a8cea05f3161b396f0e4c7beb5e874b Mon Sep 17 00:00:00 2001 From: XiaohaoYang Date: Wed, 19 Nov 2014 01:18:19 -0500 Subject: [PATCH 5/5] bug fix: loading tiff data with 3 dimensions --- diffpy/srxplanar/loadimage.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/diffpy/srxplanar/loadimage.py b/diffpy/srxplanar/loadimage.py index a830ed0..e401b41 100644 --- a/diffpy/srxplanar/loadimage.py +++ b/diffpy/srxplanar/loadimage.py @@ -34,6 +34,9 @@ def openImage(im): rv = dm3.imagedata elif ext in ['.tiff', '.tif']: rv = tifffile.imread(im) + if len(rv.shape) == 3: + ind = rv.shape.index(min(rv.shape)) + rv = rv.mean(axis=ind) else: code = 'import numpy; import fabio; numpy.save("temp.npy", fabio.openimage.openimage("%s").data)' % im cmd = [sys.executable, '-c', "'" + code + "'"]