def getElementsInstance(dataDir=None, bindingEnergies=None, xcomFile=None): if dataDir is None: dataDir = DataDir.FISX_DATA_DIR try: from PyMca5.PyMcaDataDir import PYMCA_DATA_DIR as pymcaDataDir from PyMca5 import getUserDataFile except: print("Using fisx shell constants and ratios") pymcaDataDir = None if bindingEnergies is None: if pymcaDataDir is None: bindingEnergies = os.path.join(dataDir, "BindingEnergies.dat") else: bindingEnergies = getUserDataFile(\ os.path.join(pymcaDataDir, "BindingEnergies.dat")) if xcomFile is None: if pymcaDataDir is None: xcomFile = os.path.join(dataDir, "XCOM_CrossSections.dat") else: xcomFile = getUserDataFile(\ os.path.join(pymcaDataDir, "XCOM_CrossSections.dat")) if DEBUG: t0 = time.time() instance = FisxElements(dataDir, bindingEnergies, xcomFile) if DEBUG: print("Shell constants") # the files should be taken from PyMca to make sure the same data are used for key in ["K", "L", "M"]: fname = instance.getShellConstantsFile(key) if sys.version > '3.0': # we have to make sure we have got a string if hasattr(fname, "decode"): fname = fname.decode("latin-1") if DEBUG: print("Before %s" % fname) if pymcaDataDir is not None: fname = getUserDataFile(\ os.path.join(pymcaDataDir, key + "ShellConstants.dat")) else: fname = os.path.join(os.path.dirname(fname), key + "ShellConstants.dat") instance.setShellConstantsFile(key, fname) if DEBUG: print("After %s" % instance.getShellConstantsFile(key)) if DEBUG: print("Radiative transitions") for key in ["K", "L", "M"]: fname = instance.getShellRadiativeTransitionsFile(key) if sys.version > '3.0': # we have to make sure we have got a string ... if hasattr(fname, "decode"): fname = fname.decode("latin-1") if DEBUG: print("Before %s" % fname) if pymcaDataDir is not None: fname = getUserDataFile(\ os.path.join(pymcaDataDir, key + "ShellRates.dat")) else: fname = os.path.join(os.path.dirname(fname), key + "ShellRates.dat") instance.setShellRadiativeTransitionsFile(key, fname) if DEBUG: print("After %s " % instance.getShellRadiativeTransitionsFile(key)) if DEBUG: print("Reading Elapsed = ", time.time() - t0) return instance
filename = "BindingEnergies.dat" dirname = PyMcaDataDir.PYMCA_DATA_DIR inputfile = os.path.join(dirname, filename) if not os.path.exists(inputfile): dirname = os.path.dirname(dirname) inputfile = os.path.join(dirname, filename) if not os.path.exists(inputfile): if dirname.lower().endswith(".zip"): dirname = os.path.dirname(dirname) inputfile = os.path.join(dirname, filename) if not os.path.exists(inputfile): print("Cannot find inputfile ", inputfile) raise IOError("Cannot find BindingEnergies.dat file") sf = specfile.Specfile(getUserDataFile(os.path.join(dirname, filename))) ElementShells = sf[0].alllabels() ElementBinding = numpy.transpose(sf[0].data()).tolist() sf = None Elements = ['H', 'He', 'Li', 'Be', 'B', 'C', 'N', 'O', 'F', 'Ne', 'Na', 'Mg', 'Al', 'Si', 'P', 'S', 'Cl', 'Ar', 'K', 'Ca', 'Sc', 'Ti', 'V', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn', 'Ga', 'Ge', 'As', 'Se', 'Br', 'Kr', 'Rb', 'Sr', 'Y', 'Zr', 'Nb', 'Mo', 'Tc', 'Ru', 'Rh', 'Pd', 'Ag', 'Cd', 'In', 'Sn', 'Sb', 'Te', 'I', 'Xe', 'Cs', 'Ba', 'La', 'Ce', 'Pr', 'Nd', 'Pm', 'Sm', 'Eu', 'Gd', 'Tb', 'Dy', 'Ho', 'Er', 'Tm', 'Yb', 'Lu', 'Hf', 'Ta', 'W', 'Re', 'Os', 'Ir', 'Pt', 'Au', 'Hg', 'Tl', 'Pb',
from PyMca5 import PyMcaDataDir, getUserDataFile dirname = PyMcaDataDir.PYMCA_DATA_DIR inputfile = os.path.join(dirname, "KShellRates.dat") if not os.path.exists(inputfile): dirname = os.path.dirname(dirname) inputfile = os.path.join(dirname, "KShellRates.dat") if not os.path.exists(inputfile): if dirname.lower().endswith(".zip"): dirname = os.path.dirname(dirname) inputfile = os.path.join(dirname, "KShellRates.dat") if not os.path.exists(inputfile): print("Cannot find inputfile ",inputfile) raise IOError("Cannot find KShellRates.dat file") sf=specfile.Specfile(getUserDataFile(os.path.join(dirname, "KShellRates.dat"))) ElementKShellTransitions = sf[0].alllabels() ElementKShellRates = numpy.transpose(sf[0].data()).tolist() ElementKAlphaTransitions = [] ElementKBetaTransitions = [] for transition in ElementKShellTransitions: if transition[0] == 'K': if transition[1] == 'L': ElementKAlphaTransitions.append(transition) else: ElementKBetaTransitions.append(transition) elif transition[0] == 'Z': ElementKAlphaTransitions.append(transition) ElementKBetaTransitions.append(transition) else:
dirname = PyMcaDataDir.PYMCA_DATA_DIR inputfile = os.path.join(dirname, "KShellRates.dat") if not os.path.exists(inputfile): dirname = os.path.dirname(dirname) inputfile = os.path.join(dirname, "KShellRates.dat") if not os.path.exists(inputfile): if dirname.lower().endswith(".zip"): dirname = os.path.dirname(dirname) inputfile = os.path.join(dirname, "KShellRates.dat") if not os.path.exists(inputfile): print("Cannot find inputfile ", inputfile) raise IOError("Cannot find KShellRates.dat file") sf = specfile.Specfile( getUserDataFile(os.path.join(dirname, "KShellRates.dat"))) ElementKShellTransitions = sf[0].alllabels() ElementKShellRates = numpy.transpose(sf[0].data()).tolist() ElementKAlphaTransitions = [] ElementKBetaTransitions = [] for transition in ElementKShellTransitions: if transition[0] == 'K': if transition[1] == 'L': ElementKAlphaTransitions.append(transition) else: ElementKBetaTransitions.append(transition) elif transition[0] == 'Z': ElementKAlphaTransitions.append(transition) ElementKBetaTransitions.append(transition) else:
import numpy from PyMca5.PyMcaIO import specfile from PyMca5 import PyMcaDataDir, getUserDataFile dirname = PyMcaDataDir.PYMCA_DATA_DIR inputfile = os.path.join(dirname, "LShellRates.dat") if not os.path.exists(inputfile): dirname = os.path.dirname(dirname) inputfile = os.path.join(dirname, "LShellRates.dat") if dirname.lower().endswith(".zip"): dirname = os.path.dirname(dirname) inputfile = os.path.join(dirname, "LShellRates.dat") if not os.path.exists(inputfile): print("Cannot find inputfile ",inputfile) raise IOError("Cannot find LShellRates.dat file") sf=specfile.Specfile(getUserDataFile(os.path.join(dirname, "LShellRates.dat"))) ElementL1ShellTransitions = sf[0].alllabels() ElementL2ShellTransitions = sf[1].alllabels() ElementL3ShellTransitions = sf[2].alllabels() ElementL1ShellRates = numpy.transpose(sf[0].data()).tolist() ElementL2ShellRates = numpy.transpose(sf[1].data()).tolist() ElementL3ShellRates = numpy.transpose(sf[2].data()).tolist() sf=specfile.Specfile(getUserDataFile(os.path.join(dirname, "LShellConstants.dat"))) ElementL1ShellConstants = sf[0].alllabels() ElementL2ShellConstants = sf[1].alllabels() ElementL3ShellConstants = sf[2].alllabels() ElementL1ShellValues = numpy.transpose(sf[0].data()).tolist() ElementL2ShellValues = numpy.transpose(sf[1].data()).tolist() ElementL3ShellValues = numpy.transpose(sf[2].data()).tolist() sf=None
filename = "BindingEnergies.dat" dirname = PyMcaDataDir.PYMCA_DATA_DIR inputfile = os.path.join(dirname, filename) if not os.path.exists(inputfile): dirname = os.path.dirname(dirname) inputfile = os.path.join(dirname, filename) if not os.path.exists(inputfile): if dirname.lower().endswith(".zip"): dirname = os.path.dirname(dirname) inputfile = os.path.join(dirname, filename) if not os.path.exists(inputfile): print("Cannot find inputfile ", inputfile) raise IOError("Cannot find BindingEnergies.dat file") sf = specfile.Specfile(getUserDataFile(os.path.join(dirname, filename))) ElementShells = sf[0].alllabels() ElementBinding = numpy.transpose(sf[0].data()).tolist() sf = None Elements = [ 'H', 'He', 'Li', 'Be', 'B', 'C', 'N', 'O', 'F', 'Ne', 'Na', 'Mg', 'Al', 'Si', 'P', 'S', 'Cl', 'Ar', 'K', 'Ca', 'Sc', 'Ti', 'V', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn', 'Ga', 'Ge', 'As', 'Se', 'Br', 'Kr', 'Rb', 'Sr', 'Y', 'Zr', 'Nb', 'Mo', 'Tc', 'Ru', 'Rh', 'Pd', 'Ag', 'Cd', 'In', 'Sn', 'Sb', 'Te', 'I', 'Xe', 'Cs', 'Ba', 'La', 'Ce', 'Pr', 'Nd', 'Pm', 'Sm', 'Eu', 'Gd', 'Tb', 'Dy', 'Ho', 'Er', 'Tm', 'Yb', 'Lu', 'Hf', 'Ta', 'W', 'Re', 'Os', 'Ir', 'Pt', 'Au', 'Hg', 'Tl', 'Pb', 'Bi', 'Po', 'At', 'Rn', 'Fr', 'Ra', 'Ac', 'Th', 'Pa', 'U', 'Np', 'Pu', 'Am', 'Cm', 'Bk', 'Cf', 'Es', 'Fm', 'Md', 'No', 'Lr', 'Rf', 'Db', 'Sg', 'Bh', 'Hs', 'Mt' ]