一套处理表面科学相关数据的工具

surfsci的Python项目详细描述


冲浪

一套处理表面科学相关数据的工具。这个项目将 包含以下工具:

  • x射线光电子能谱(xps)

未来

  • 文档(优先级)

x射线光电子能谱

示例

一个分析casaxps中ge峰拟合的例子。

from surfsci import xps

# Shortcut for the XPS machine at Dalhousie
# xps_mach = 'Dalhousie'
# mach = xps.mach_param[xps_mach]
mach = {
	'coef' : [0.9033, -4.0724, 5.0677, 1.1066],
	'scale'     : 0.01,
	'work_func' : 4.6,
}
hv = xps.photon_energy['Al']

# Pass energy [eV], found from XPS operator
pe = 30

sfwagner_Ge = xps.sf.Ge['3d'].area

data = xps.parser.CasaXPS('Ge_example.csv')

# Labels defined by user in CasaXPS fits
pk_lbl = 'Ge 3d'
be = data.binding_energy(pk_lbl)
area = data.area(pk_lbl)

ke = xps.kinetic_energy(be, hv, mach['work_func'])

t_fn = xps.transmission(ke, pe, mach['coef'], mach['scale'])
t_fn_wagner = 1/ke # Proportional to 1/KE

sf_mach = xps.sf_machine(sfwagner_Ge, t_fn, t_fn_wagner)

pk_corr = xps.peak_correction(area, sf_mach)

# NOTE Use the surfsci.xps.XPSPeak(...) helper for convienence
# analyzed_Ge = xps.XPSPeak(pk_lbl, be, area, sfwagner_Ge, hv, pe, mach)

# NOTE Returns pandas.DataFrame with all parameters calculated.
# The user can also query parameters individually
# df = analyzed_Ge.df()

矩阵因子校正

如果在基体中使用多元素(如合金),则可以使用 surfsci.xps.matrix_factor函数。你需要非弹性平均自由程 电子散射(imfp)的体积和密度 以及在两种情况下测得的动能下矩阵的imfp。 元素例如,如果有两个校正的峰值:pk_Mn_corr,并且 pk_Ge_corr。可以使用tpp-2m方程计算imfp 非弹性平均自由程,见以下参考文献:

S.Tanuma,C.J.Powel,D.R.Penn,冲浪。干涉肛门。,第21165卷(1994年)

from surfsci import xps
# pk_Mn_corr and pk_Ge_corr calculated as in the example above

# a is the kinetic energy used to determine imfp of Ge in Bulk
imfp_matrix_a = 21.17
imfp_Ge_a = 29.84
rho_Ge_a = 5.32

# b is the kinetic energy used to determine imfp of Mn in Bulk
imfp_matrix_b = 14.17
imfp_Mn_b = 14.87
rho_Mn_b = 7.43

mat_fact = xps.matrix_factor(imfp_Ge_a, imfp_Mn_b,
							 mfp_matrix_a, mfp_matrix_b,
							 rho_Ge_a, rho_Mn_b)
relative_pk_Ge_corr = (pk_Ge_corr/pk_Mn_corr)*mat_fact

# NOTE because Mn is used as the normalizing component we can use its
# corrected peak value directly, all other elements require the matrix
# factor correction
print('Ratios of Mn and Ge in MnGe matrix')
print('Mn : {:0.4e}'.format(pk_Mn_corr))
print('Ge : {:0.4e}'.format(relative_pk_Ge_corr))

sfwagner.{db,py}:xps

附录5中的数据复制并提供给非营利组织使用 出版商John Wiley&Sons Ltd.的许可

“用俄歇和X射线光电子能谱进行实际表面分析”, 布里格斯和肖恩, 附录5,P511-514, J.Wiley and Sons于1983年出版,ISBN 0-471-26279

版权所有(c)1983,由John Wiley&Sons Ltd.提供。

原始数据集首先出现在以下资源中: 瓦格纳,戴维斯,泽勒,泰勒,雷蒙德和盖尔, 冲浪。界面分析,3.211(1981年)

任何使用这些数据必须包括上述引文在任何工作。

电子非弹性平均自由程

电子imfp可以用tanuma,powel,penn修饰的 (TPP-2M)由 以下参考:

S.Tanuma,C.J.Powel,D.R.Penn,冲浪。干涉肛门。,第21165卷(1994年)

为了方便起见,imfp-tpp-2m方程位于surfsci.scatter和 可以这样使用:

from surfsci import scatter

# Mn example
kinetic_energy = 1000 # Can be calculated from surfsci.xps.kinetic_energy

rho = 7.43         # [g/cc]
Nv = 7             # valence electrons
M = 53.938         # atomic mass
bandgap_energy = 0 # [eV]

# Return SI units [m]
imfp_Mn = scatter.imfp_TPP2M(kinetic_energy, rho, M, Nv,
							 bandgap_energy, 'SI')

这里的值可以用于surfsci.xps.matrix_factor计算 以上概述。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么程序显示空结果?   java应用程序在测试设备上调试时工作正常,但在发布版apk中没有,它没有获得post。来自firebase的类变量   java Android:从主活动按钮确定在listview中选中哪个复选框   在Spring中添加@OneToOne注释时启动ApplicationContext时发生java错误   用JAVA Android实现矩阵计算的最快方法   SpringJava语义有没有更好的编写方法?   java从hashmap中减去两个值后返回最小差值的键?   Java中的静态初始化顺序:Netty 4.0.7的例外   java如何检查用户输入是否为字符串   循环Java计数单词索引   java如何使用以下代码将视频流传输到Android异步Http服务器?   java如何在jtable的所有行中循环   java如何使用maven将unicode插入mysql   java使用安卓加速远程数据检索   java试图模拟麦克风(javax.sound.sampled)   swing SwingWorker从不归还任何东西?(爪哇)   首次在Android Studio上未加载java LibGDX文件   java如何在多个Mysql服务器上设置限制和偏移?   如何防止从java连接到mongodb时登录控制台?