from __future__ import print_function,division import numpy as np import pylab as plt import mcutils as mc import mcutils.xray as xray from mcutils.xray import id9 id9 = xray.id9 # use npz files (they can handle more stuff (list of arrays,unicode) than h5py) id9.default_extension = '.npz' #id9.default_extension = '.h5' def readCalc(): fold = "../tiox/calculated_patterns/" names = "alpha beta lam".split() fnames = "alpha500K beta290K lambda".split() calc = dict() for name,fname in zip(names,fnames): q,i=np.loadtxt(fold + "%s.xye.q"%fname,unpack=True) calc[name] = xray.storage.DataStorage( dict( q=q, i=i ) ) return xray.storage.DataStorage(calc) calc = readCalc() def azav(folder,nQ=1500,force=False,saveChi=True,mask=470): if isinstance(mask,int): files = xray.utils.getFiles(folder,"*.edf*") img = xray.azav.read(files[0]) temp = np.ones_like(img,dtype=bool) temp[:mask] = False mask = temp return id9.doFolder_azav(folder,nQ=nQ,force=force,mask=mask,saveChi=saveChi) def datared(folder,monitor=(1,5),showPlot=True,**kw): data,diffs = id9.doFolder_dataRed(folder,monitor=monitor,**kw) if showPlot: xray.utils.plotdiffs(diffs.q,diffs.data,t=diffs.scan, absSignal=diffs.dataAbsAvAll,absSignalScale=30) plt.plot(calc.lam.q,calc.lam.i/1000+0.1,label='calc') plt.title(folder + " norm %s" % str(monitor)) return data,diffs def doall(folder,force=False): azav(folder,force=force) return datared(folder) def anaAmplitue(run=6): fname = "../tiox/tiox1/run%d/diffs.npz" % run data = xray.storage.DataStorage(fname) ranges = ( (1.75,1.85), (2.2,2.4), (3.25,3.4) ) nPlot = len(ranges) fig,ax = plt.subplots(nPlot,1,sharex=True) for r,a in zip(ranges,ax): idx = (data.q>r[0]) & (data.q