用于分析Gamry Explain Data(DTA)文件内容的包。

gamry-parser的Python项目详细描述


游戏分析器

PyPIPyPI - Python VersionPyPI - License

用于解析gamry解释数据(dta)文件内容的python包。这个包的目的是将平面文件解释数据转换成pandas数据框架,以便进行分析和可视化

开始

依赖性

  • 熊猫

安装

从PyPi打包
$ pip install gamry-parser

本地安装
  1. 查看最新代码:
$ git clone git@github.com:bcliang/gamry-parser.git
  1. 使用setuptools安装包
$ python setup.py install

使用量

提供的使用示例以两种方式加载cv dta文件,并演示cyclicvoltametry子类(get_v_rangeget_scan_rate

中自定义函数的实用性。
$ python usage.py

GamryParser示例

以下代码片段加载DTA文件并打印到屏幕上:(1)实验类型,(2)曲线,(3)以Pandas数据帧形式的随机曲线。

importgamry_parserasparserimportrandomfile='/enter/the/file/path.dta'gp=parser.GamryParser()gp.load(filename=file)print("experiment type: {}".format(gp.get_experiment_type()))print("loaded curves: {}".format(gp.get_curve_count()))curve_index=random.randint(1,gp.get_curve_count())print("showing curve #{}".format(curve_index))print(gp.get_curve_data(curve_index))

计时安培示例

ChronoAmperometry类是GamryParser的一个子类。执行方法get_curve_data()将返回包含三列的数据帧:(1)T,(2)Vf,和(3)Im

在这个例子中,文件应该是一个简单的计时安培实验(单步,无预处理);文件中只包含一条数据曲线。此外,请注意使用to_timestamp属性,该属性允许用户请求get_curve_data返回包含DateTime对象的T列的数据帧(与默认值相反:float seconds since start)

importgamry_parserasparserimportrandomfile='/enter/the/file/path.dta'ca=parser.ChronoAmperometry(to_timestamp=True)ca.load(filename=file)print(ca.get_curve_data())

演示

ipython笔记本演示脚本包含在demo文件夹中。

  • notebook_gamry_parser.ipynb:从Chronoa实验输出加载数据的简单示例。解析器可以用gamry_parser.ChronoAmperometry()
  • 实例化,而不是gamry_parser.GamryParser()
  • notebook_cyclicvoltammetry.ipynb:从cv(循环伏安法)实验输出加载数据的示例。使用gamry_parser.CyclicVoltammetry()子类

附加示例

对于使用gamry_parser.CyclicVoltammetry()gamry_parser.Impedance()解析器子类,应该遵循类似的过程查看usage.pytests/中的一些其他用法示例。

开发

项目树

  .
  ├── gamry_parser              # source files
  │   ├── ...          
  │   ├── chronoa.py            # ChronoAmperometry() experiment parser
  │   ├── cv.py                 # CyclicVoltammetry() experiment parser
  │   ├── eispot.py             # Impedance() experiment parser
  │   └── gamryparser.py        # GamryParser: generic DTA file parser
  ├── tests                     # unit tests and test data
  |   └── ...
  ├── setup.py                  # setuptools configuration
  └── ...                

路线图

文件!加载数据很简单,希望本自述文件中提供的示例为使用/扩展任何子类提供足够的上下文。

在未来,添加对等效电路建模之类的支持将是一件好事,尽管目前有其他项目专门关注于构建模型和拟合eis数据(例如kbknudsen/PyEISECSHackWeek/impedance.py)。

测试

扩展unittest.TestCase的测试可以在/tests/中找到。

$ python setup.py test
$ coverage run --source=gamry_parser/ setup.py test
$ coverage report -m

最新输出:

$ coverage report -m
Name                          Stmts   Miss  Cover   Missing
-----------------------------------------------------------
gamry_parser\__init__.py          50100%
gamry_parser\chronoa.py          160100%
gamry_parser\cv.py               160100%
gamry_parser\eispot.py            60100%
gamry_parser\gamryparser.py      96199%   63
gamry_parser\version.py           10100%
-----------------------------------------------------------
TOTAL                           140199%

准则

  • PEP8通过pylintflake8
  • GitHub flow用于提议更改(即创建功能分支并针对主分支提交PR)
  • 测试:每个文件保持80%的行覆盖率

版本控制

SemVer用于版本控制。

  1. 匹配的主要版本号可以保证协同工作。
  2. 对公共API的任何更改(破坏性更改)都将增加主版本

出版

使用setuptools构建,tween发布到pypi。

$ rm -rf dist
$ python setup.py build
$ python setup.py sdist bdist_wheel
$ twine upload dist/*

许可证

这个项目是在麻省理工学院的许可下授权的-请参阅LICENSE文件了解详细信息

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

推荐PyPI第三方库


热门话题
java LineNumberReader。如果查询行为不正确,则返回readLine()   java包含了一个使用AndroidX的工具栏,这让我的应用程序崩溃了   JVM设置通过“java jar”运行应用程序的最佳实践   java如何获取ImageButton宽度   java Oracle SQLLDR实用程序无响应   列出Java获取对象的arrayList中最常见的元素   java使用带有FlowLayout的getContentpane对布局应用更改,但不起作用为什么?   在java中,我可以在画布上绘制画布吗?   编译游戏代码时发生java异常错误   从firestore获取java Webview失败   java将TableLayout中单元格的内容向右对齐   java无法在发布模式下启动活动(使用proguard安卓optimize配置)   java允许在线程期间进行GUI更新。睡觉   java如何对以变量为列表的列表进行排序   API URL上的java Google云端点异常