x射线光谱kramers-kronig变换的计算机

kkcalc的Python项目详细描述


===
kkcalc
=




ATTS【瓦茨2014】\kkcalc具有以下特点:

-使用公布的散射因子轻松扩展测量光谱。
-kramers-kronig变换的高效peicewise多项式(直接积分)算法。
-相对论修正的自动计算。
-python源代码i易于阅读,因此您可以自己评估其正确性。
-在各种平台上免费提供。
-易于使用的图形界面。

有关支持,请联系benjamin.watts@gmail.com

此程序的主要重点是提供**正确的**结果。如有任何问题,请告知我。
在发布使用此计算的工作时,请考虑引用文章[watts2014]。

==



手动安装
zip文件包含:

kk gui.py
data.py
test\kk.py
packrawdata.py
asf.json
license.txt
readme.rst
asf/
elements.dat
h.nff
he.nff

u.nff


我还需要安装以下依赖项:

-python-python-_ python:http://www.python.org/
。_纽比:http://numpy.scipy.org/
…_科学版:http://scipy.org/
…_ wxpython:http://wxpython.org/




基本用法
==


1。运行python kk_gui.py启动程序
2。通过选择:文件>;加载,从文件加载nexafs数据。数据转换为原子散射因子,并在成功加载时绘制。
3.检查选择框是否知道原始数据的类型,以便正确地将其转换为散射因子。
4。在"材料"部分输入分子式。
5。点击"计算"按钮。在完成kramers-kronig变换计算后,绘制出新的实际散射因子(仅需一秒钟,取决于数据点的数量和计算能力)。
6.通过选择:file>;save保存数据。

有关更高级的用法和脚本,请查看kk.py模块中提供的函数。

details
==




"近边数据"部分将ectrum输入kramers-kronig变换。"file:"标签只显示当前加载的数据文件。要加载一组新的近边缘吸收数据,请选择:*文件>;加载*。数据文件必须在列中,第一列以电子伏特表示光子能量,最后一列以吸收光谱数据表示。

这些控件中的有效项包括能量值和字符串"start"或"end",程序将其理解为对应于分别为加载数据集中的最高能量点。

gui的"近边缘数据"部分底部还有两个复选框。"添加背景"复选框用于替换可能从用户提供的数据中减去的背景(通过外推预边缘区域)。此函数尚未重新实现以使用kkcalc当前使用的内部数据格式,并且复选框已禁用。"修复扭曲"选项(如果程序未能加载scipy模块,则禁用其checkbos)将使数据倾斜以适应散射因子数据的斜率。这对于使用具有未校准能量依赖性的探测器记录的数据非常有用。探测器的能量依赖性被假设为近似线性(在较短的能量范围内应该保持相当好的稳定性),散射系数可能不是一个很好的参考来拟合数据,因此绝对不鼓励使用此选项(理解和预测总是更好的在将数据加载到kkcalc之前,请务必使数据正常化。



"材料"部分
----


在本部分中,我们定义了正在研究其光学特性的材料。第一个文本框是关于材料密度的——这里的值只需要在散射因子和β(折射率的吸收部分)之间转换数据。除非您正在处理加载或保存为beta版的数据,否则此值将无效。第二个文本框用于输入材料的元素组成。这将被绘制并用于计算适当的散射因子,以扩展用户提供的近边虚光谱,以及计算kramers-kronig变换的相对论修正。



"计算"部分一种分段多项式算法,执行数据点之间区域的直接积分。【watts2014】u用户提供的数据和30000 eV以下的散射因子【henke1993】u是线性插值的,而高能散射因子数据是用劳伦特多项式【biggs1988】描述的(散射因子数据是按照henke等人的描述组装的)。[亨克1993].利用虚谱的这种分段多项式表达式,kramers-kronig变换积分的符号形式是精确已知的,并且可以完全符号化地(尽管是分段的)。然后,这种形式很容易(尽管很乏味)以一种分段的方式在任何地方进行集成,除了奇点,这是通过一次跨两个间隔进行集成来避免的(引用奇点的术语被取消)。该方法的唯一假设是虚谱的分段多项式描述是连续的(这是物理学所要求的),其余步骤都是精确到机器精度的。这个算法是非常有效的,因为它不需要等距的步骤,这将对应于光谱全能量范围内的大量样本。


克计算不正确。有关原子类型和数量的信息取自"材料"框和方程式:math:`z-(\frac{z}{82.5})^{2.37}`(如Henke等人所述)。[Henke1993](uu)分别应用于每个原子,然后对各个校正进行求和。





[Watts2014]Benjamin Watts
"用分段Laurent多项式方法计算X射线光谱的Kramers-Kronig变换"
*opt.快递**22**,(2014)23628-23639。` doi:10.1364/oe.22.023628<;https://doi.org/10.1364/oe.22.023628>;`

…【Henke1993】B.L.Henke、E.M.Gullikson和J.C.Davis
"X射线相互作用:光吸收、散射、透射和透射发射和反射在e=50-30000 eV,z=1-92"
*原子数据和核数据表***54**(2)(1993)181-342.

[Biggs1988]F.Biggs和R.Lighthill
"X射线截面III的分析近似值"
*Sandia报告*Sand87-0070 UC-34(1988)。






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

推荐PyPI第三方库


热门话题
java迷宫解算器在死胡同中陷入循环   java JPA在一个查询中检索2个列表   java正则表达式匹配文档中两个字符串之间的所有字符   java更改JTable标题高度   安卓忽略调试库中的java代码   java使用ScheduledExecutorService延迟Spring WebClient调用不会等待响应   如何使用Java将包含JSON对象的字符串转换为实际的JSON   sqlite数据库连接:java。Lang.ClassNotFoundException:org。sqlite。JDBC   在MySQL中存储表情符号的java获取错误字符串值错误   当发送包含超过一定大小字节数据的对象时,安卓 Java StreamCorruptedException   Java游戏旋转图像和轴   java IntelliJ Idea:无法解析实体类的列   Android中带有editText的java AlertDialog   map only和mapreduce应用程序之间的java差异   如何在Kotlin编写的接口中使用默认方法的Java8特性   java CPU时间百分比算法问题   java如何在WEBINF文件夹中使用带有JAR的taglibs JSTL/core   有没有办法在Java中找到JPanel和/或JFrame的长度和宽度?