麋鹿光学输出数据的绘制与分析

elkoa的Python项目详细描述


Python versionPyPi versionCode style: blackLicense: GPL v3+

说明

ELK光学分析仪(ELKOA)帮助分析光学输出数据 The Elk Code

功能

麋鹿光学分析仪…

  • 带有一个gui和一个python cli
  • 支持ELK任务121、187、320和330
  • 自动识别可用的任务/(张量)字段
  • 易于扩展

用户可以…

  • 可视化麋鹿光学系统的实部和虚部输出数据 多种方式
  • 导入其他数据文件,例如实验测量ctrl+o
  • 通过Universal Response Relations转换响应函数,例如εσctrl+c
  • 将介电张量转换为(超)普通折射率 对于任意波矢量,按ctrl+c
  • 通过对话框ctrl+t选择要单独绘制的张量元素
  • 对所有绘图使用全局张量元素设置ctrl+g
  • 批量加载参数的可视化分析 不同的参数设置ctrl+b
  • 以不同格式写出显示的数据ctrl+w

即将到来:

  • 索引椭球体的三维绘图
  • 一组不同q点的批量转换
  • 样品/几何相关(即薄膜)响应转换 功能

要求

您应该使用Linux发行版提供的软件包。打开 例如,您可以通过 运行

apt install python3-numpy python3-matplotlib python3-pyqt5 python3-pbr

或者,您可以获取每个包的最新pypi版本 通过pip自动安装(见下文)。

出于测试目的,您还需要以下软件包:* pytest*pytest qt*pytest mpl*鼻子

安装

安装elkoa的最简单方法是通过pip,直接从pypi安装。

pip install elkoa

或者,如果您想要最新的git版本,

git clone https://github.com/PandaScience/ElkOpticsAnalyzer.git
cd ElkOpticsAnalyzer
pip install .

这也将安装所有必需但不存在的python包 自动从PYPI。

如果您只想为当前用户安装elkoa,请添加标志 --user。如果您想处理所需的python包 您自己(即使用Linux发行版提供的软件) 添加--no-deps。如果要运行开发人员安装(否 复制文件,而不是直接使用git repo文件),添加-e

无论如何,在安装之后,您可以从 使用elkoaElkOpticsAnalyzer

另一种安装方法是如上文所述克隆repo,而不是 通过pip安装,放置类似于

exportPATH=$PATH:/path/to/ElkOpticsAnalyzer/elkoa/gui
exportPYTHONPATH=$PYTHONPATH:/path/to/ElkOpticsAnalyzer/

给你的.bashrc.bash_profile。然后你就可以开始 带ElkOpticsAnalyzer.py的图形用户界面。

测试

使用pytest库完成测试。确保已安装 所有附加要求。

  1. 下载并提取样本数据
    • 待办事项
  2. 运行(–mpl标志是必需的!)
pytesttest_figures.py--mpl

python cli

在包含文件的elk输出目录中

elk.in INFO.OUT EPSILON_11.OUT EPSILON_12.OUT EPSILON_13.OUT EPSILON_21.OUT
EPSILON_22.OUT EPSILON_23.OUT EPSILON_31.OUT EPSILON_32.OUT EPSILON_33.OUT

您可以在python3解释器中运行:

fromelkoa.utilsimportelk,io,convert# parse Elk input fileelk_input=elk.ElkInput()# read specific input parametereta=elk.readElkInputParameter("swidth")# read tensorial Elk optics output (ij = dummy for 11, 12, etc.)freqs,epsilon=io.readTenElk("EPSILON_TDDFT_ij.OUT")# create converter instanceq=[0,0,0]converter=convert.Converter(q,freqs,eta,opticalLimit=True)# convert dielectric tensor to optical conductivitysigma=converter.epsilonToSigma(epsilon)# write out converted tensorio.writeTensor("sigma_ij_test.dat",freqs,sigma,threeColumn=True)# write out 11-element of converted tensorio.writeScalar("sigma_11-scalar.dat",freqs,sigma[0,0,:],threeColumn=True)

其他

  • 自动将文件名转换为文本标签
    • 要使用此功能,文件名必须遵循以下模式 root+_sub+.ext,它将显示为rootsub。
    • 如果root包含不区分大小写的子字符串,如eps, epsilon、sig、sigma等,对应的希腊字母为 使用,即eps ex datεex.
  • 附加数据图
    • 数字限制为6,但作为回报,我们使用一致的 连续添加更多绘图后着色。

使用示例gui

see https://github.com/PandaScience/ElkOpticsAnalyzer/and https://github.com/PandaScience/ElkOpticsAnalyzer/

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

推荐PyPI第三方库


热门话题
带有嵌套JAR的java RCP ClassNotFoundException   java在输入框中设置默认值,crud应用程序使用spring   java如何在Heroku中使用fs创建新文件   java将JPanel放在JFrame中   java这个正则表达式会匹配“i.imgur.com/xxx”吗?   java在片段内创建RecylerView,而无需在Android中设置片段   Android上Groovy导致java错误的双精度浮点精度损失   swing Java查找JFrame属于JPanel的内容   java Spring junit自连线自定义类本身必须有构造函数吗?   java textswitcher支持前面的文本   从Android客户端到JAXRS的java Post自定义对象   java如何检索JSON数据并使用MPAndroidChart绘制折线图,以及在安卓上的改进   拒绝用户“root”@“localhost”的java c3p0访问(使用密码“是”)   使用Selenium Webdriver自动化ExtJS应用程序时java面临的问题