def main(): from PyMca.PyMcaIO import EDFStack from PyMca.PyMcaIO import EdfFile import sys inputfile = "D:\DATA\COTTE\ch09\ch09__mca_0005_0000_0000.edf" if len(sys.argv) > 1: inputfile = sys.argv[1] print(inputfile) elif os.path.exists(inputfile): print("Using a default test case") else: print("Usage:") print("python PCAModule.py indexed_edf_stack") sys.exit(0) stack = EDFStack.EDFStack(inputfile) r0, c0, n0 = stack.data.shape ncomponents = 5 outfile = os.path.basename(inputfile) + "ICA.edf" e0 = time.time() images, eigenvalues, eigenvectors = mdpICA(stack.data, ncomponents, binning=1, svd=True, dtype='float64') #images, eigenvalues, eigenvectors = lanczosPCA2(stack.data, # ncomponents, # binning=1) if os.path.exists(outfile): os.remove(outfile) f = EdfFile.EdfFile(outfile) for i in range(ncomponents): f.WriteImage({}, images[i, :]) stack.data.shape = r0, c0, n0 print("PCA Elapsed = %f" % (time.time() - e0)) print("eigenvectors PCA2 = ", eigenvectors[0, 200:230]) stack = None stack = EDFStack.EDFStack(inputfile) e0 = time.time() images2, eigenvalues, eigenvectors = mdpPCA(stack.data, ncomponents, binning=1) stack.data.shape = r0, c0, n0 print("MDP Elapsed = %f" % (time.time() - e0)) print("eigenvectors MDP = ", eigenvectors[0, 200:230]) if os.path.exists(outfile): os.remove(outfile) f = EdfFile.EdfFile(outfile) for i in range(ncomponents): f.WriteImage({}, images[i, :]) for i in range(ncomponents): f.WriteImage({}, images2[i, :]) f = None
from PyMca.PyMcaIO import EDFStack from PyMca.PyMcaIO import EdfFile import os import sys import time inputfile = r"D:\DATA\COTTE\ch09\ch09__mca_0005_0000_0000.edf" if len(sys.argv) > 1: inputfile = sys.argv[1] print(inputfile) elif os.path.exists(inputfile): print("Using a default test case") else: print("Usage:") print("python NNMAModule.py indexed_edf_stack") sys.exit(0) stack = EDFStack.EDFStack(inputfile) r0, c0, n0 = stack.data.shape ncomponents = 10 outfile = os.path.basename(inputfile) + "ICA.edf" e0 = time.time() images, eigenvalues, eigenvectors = nnma(stack.data, ncomponents, binning=1) print("elapsed = %f" % (time.time() - e0)) if os.path.exists(outfile): os.remove(outfile) f = EdfFile.EdfFile(outfile) for i in range(ncomponents): f.WriteImage({}, images[i, :]) sys.exit(0)