From 358fdbd82cfa36a6d51e8d4ba3945b3a8324799a Mon Sep 17 00:00:00 2001 From: marco cammarata Date: Thu, 12 May 2016 22:32:34 +0200 Subject: [PATCH] added readme --- README.md | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/README.md b/README.md index 7da4881..7fb58cf 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,78 @@ # dispersiveXanes +```python +# BEFORE GETTING STARTED +# 1. if at LCLS load the anaconda session +# source ~marcoc/setups/ana-marco3k-setup.sh +# 2. start ipython +# ipython3 + +# there are two files: +# 1. alignment.py (deals with images) +# 2. xanes_analyzeRun.py (deals with run and images reading) + +# the experiment name is defined in xanes_analyzeRun.py +# change to the right value before loading + +%matplotlib nbagg +import matplotlib +import matplotlib.pylab as plt +matplotlib.style.use("ggplot") +import pprint +import numpy as np +np.warnings.simplefilter('ignore') + +import xanes_analyzeRun +import alignment + +#Doing first alignment on "hole" + +# define starting parameters for analysis; passed directly to iminuit so things like +# limits, or fix_scalex=True, etc. can be used +pars = dict( scalex = 0.6, intensity = 0.1, iblur1=2,fix_iblur1 = False ) +# default parameters can be found in alignment.g_fit_default_kw +# you can have a look by uncommenting the following line: +# pprint.pprint(alignment.g_fit_default_kw) + +# define the run object +#### NOTE : for mec run swapx=True,swapy=False +r = xanes_analyzeRun.AnalyzeRun(190,initAlign=pars,swapx=True,swapy=False) + +# data are d.spec1 and d.spec2 (spec1 is the one **upbeam**) +# align one shot + +# show = True: show only output; showInit=True: show also starting parameters +r0fit=r.doShot(shot=0,calib=0,showInit=True,doFit=True) + +# save as default transformation for run (used when reloading without initAlign keywork) +r.saveTransform(); + +# do more shots without fitting (using last r.initAlign) +# the return value is a list with lots of stuff for each shot +res = r.doShots(slice(100),doFit=False) +print(list(res.keys())) + +print(list(res["parameters"].keys())) + +alignment.plotRatios(res["ratio"]) +ref = np.nanmedian(res["ratio"],axis=0) +trash = plt.xlim(400,600) +trash = plt.ylim(0,2) + + +# analyze another run using previous alignment + +rShot = xanes_analyzeRun.AnalyzeRun(192,initAlign="mecl3616_init_pars/run0190_transform.npy",swapx=True,swapy=False) + +out = rShot.doShots(slice(0,5)) +ratios = out["ratio"] +plt.figure() +for i,r in enumerate(ratios): + plt.plot(r/ref,label="Shot %d"%i) +trash = plt.ylim(0,1) +trash = plt.legend(loc=2) + +# save results in hdf file for Andy's happiness +rShot.save(overwrite=True) + +```