用于分析Gamry Explain Data(DTA)文件内容的包。
gamry-parser的Python项目详细描述
游戏分析器
用于解析gamry解释数据(dta)文件内容的python包。这个包的目的是将平面文件解释数据转换成pandas数据框架,以便进行分析和可视化
开始
依赖性
- 熊猫
安装
从PyPi打包
$ pip install gamry-parser
本地安装
- 查看最新代码:
$ git clone git@github.com:bcliang/gamry-parser.git
- 使用setuptools安装包
$ python setup.py install
使用量
- 查看最新代码:
$ git clone git@github.com:bcliang/gamry-parser.git
- 使用setuptools安装包
$ python setup.py install
使用量
提供的使用示例以两种方式加载cv dta文件,并演示cyclicvoltametry子类(get_v_range
,get_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()
实例化,而不是notebook_cyclicvoltammetry.ipynb
:从cv(循环伏安法)实验输出加载数据的示例。使用gamry_parser.CyclicVoltammetry()
子类
gamry_parser.GamryParser()
附加示例
对于使用gamry_parser.CyclicVoltammetry()
和gamry_parser.Impedance()
解析器子类,应该遵循类似的过程查看usage.py
和tests/
中的一些其他用法示例。
开发
项目树
.
├── 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/PyEIS,ECSHackWeek/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通过
pylint
或flake8
- GitHub flow用于提议更改(即创建功能分支并针对主分支提交PR)
- 测试:每个文件保持80%的行覆盖率
版本控制
SemVer用于版本控制。
- 匹配的主要版本号可以保证协同工作。
- 对公共API的任何更改(破坏性更改)都将增加主版本
出版
使用setuptools构建,tween发布到pypi。
$ rm -rf dist $ python setup.py build $ python setup.py sdist bdist_wheel $ twine upload dist/*
许可证
这个项目是在麻省理工学院的许可下授权的-请参阅LICENSE文件了解详细信息