Exemplo n.º 1
0
  Copyright (c) 2013, rhambach. 
    This file is part of the TEMareels package and released
    under the MIT-Licence. See LICENCE file for details.
"""
import numpy as np
import matplotlib.pylab as plt

from TEMareels.ecal.energy_dispersion import get_dispersion;
from TEMareels.ecal.fit_peak_pos import get_peak_pos;

# calculate dispersion
spectra  = ["../tests/Eseries%i.tif" %i for i in range(1,4)];
refname  = "../tests/Ereference.msa";
order    = 2;
DE       = None;  # energy width of shifted scale [eV]
e2x      = get_dispersion(spectra,refname,verbosity=0,order=order,ampl_cut=0.5);

# calculate energy of ZLP for each of the series
E_ref = []; E_zl = []; E_pl = [];
for i,filename in enumerate(spectra):

  E,zl,pl=get_peak_pos(filename, refname, border=100, \
              ampl_cut=0.1, verbosity=2);     # positions [px]
  ind=~np.isnan(pl[:,0]-zl[:,0]);             # identify NaN's
  E  = E[ind]; zl = zl[ind]; pl = pl[ind]; 
  zl = e2x.inverse( zl[:,0], zl[:,0] )[0];    # energies  [eV]
  pl = e2x.inverse( pl[:,0], pl[:,0] )[0];
  s0 = np.nanargmax(zl);                      # remove offset
  E_zl.append( E[s0]+zl[s0]-zl );
  plOffset = np.mean(pl-zl) \
           if DE is None else DE;
Exemplo n.º 2
0
# FILENAMES
# - description for series (to identify series later on)
# - series of shifted energy scale
# - reference of energy scale


# test files
descr   = "test series for energy calibration";
pattern = "../tests/Eseries%d.tif";
series  = [pattern % (i) for i in range(1,2) if i not in []];
refname = "../tests/Ereference.msa";


# DISPERSION (order=0 for constant energy dispersion, i.e., linear E-axis)
params={'order':2, 'ampl_cut':0.5};
e2x=get_dispersion(series,refname,verbosity=5,**params)


# write history
history ="energy_dispersion.py, version %s (%s)\n" % \
         (Release.version, Release.version_id);
history+="Get dispersion: %s \n" % \
          (" ,".join([key+": "+str(val) for key,val in params.items()]) );
history+=e2x.info(3);

# print and save (as named dictionary)
print 'SAVE ' + e2x.info();
FILE=open('EDisp.pkl','w');
data={'e2x':e2x, 'descr':descr, 'history':history};
pickle.Pickler(FILE).dump(data);
Exemplo n.º 3
0
    This file is part of the TEMareels package and released
    under the MIT-Licence. See LICENCE file for details.
"""
import numpy as np
import matplotlib.pylab as plt

from TEMareels.ecal.energy_dispersion import get_dispersion
from TEMareels.ecal.fit_peak_pos import get_peak_pos

# calculate dispersion
spectra = ["../tests/Eseries%i.tif" % i for i in range(1, 4)]
refname = "../tests/Ereference.msa"
order = 2
DE = None
# energy width of shifted scale [eV]
e2x = get_dispersion(spectra, refname, verbosity=0, order=order, ampl_cut=0.5)

# calculate energy of ZLP for each of the series
E_ref = []
E_zl = []
E_pl = []
for i, filename in enumerate(spectra):

    E,zl,pl=get_peak_pos(filename, refname, border=100, \
                ampl_cut=0.1, verbosity=2)
    # positions [px]
    ind = ~np.isnan(pl[:, 0] - zl[:, 0])
    # identify NaN's
    E = E[ind]
    zl = zl[ind]
    pl = pl[ind]