定量分析能力差的数据包!

DiffCapAnalyzer的Python项目详细描述


DiffCapAnalyzerBuild StatusPython status

电池循环数据可视化与分析软件包

该软件包旨在通过识别和参数化差异容量图中的峰值来定量分析原始循环数据。差分容量图(dQ/dV)对于揭示电池性能特征非常有效,因为这些图中出现的峰值对应于各种电化学事件。然而,由于在cycing实验中收集了大量的数据,许多研究人员报告了循环的子集和纯定性的结论。该软件包通过清理电池循环数据集并获得数据中每个充电/放电周期的峰值位置、宽度、振幅和其他描述符,增加了量化此类分析的能力。为此,该工具为数据集中的每个充电和放电周期开发了个性化的拟合模型,包括每个峰值位置的高斯基线和伪voigt分布。在

此外,还有一个基于破折号的可视化应用程序,可以用作用户界面。用户可以上传原始循环数据,通过MACCOR或Arbin循环器收集。然后,应用程序将处理这些数据并向数据库中添加一些文件:原始数据、清理后的数据和每个周期的峰值描述符。该应用程序还允许用户滚动浏览周期,更好地了解不同容量曲线。此外,还有一个部分来评估高斯基线的拟合,并定制峰值查找过程。用户还可以使用应用程序中的“下载CSV”文件按钮下载峰值描述符。在

此外,还进行了一些机器学习,以便在两种不同的阴极化学试剂LiCoO2和LiFePO4之间进行分类。这些化学反应的数据集是从加州大学的网站(https://web.calce.umd.edu/batteries/data.htm)获得的。一旦这些数据被清理和标记,一个20-80测试列分割和使用支持向量分类器,最终测试集的准确率为77%。在

软件依赖性

  • Python3
  • 对于python包,请参见要求.txt在

如何安装

要运行应用程序并充分利用DiffCapAnalyzer和相应的示例,只需从顶部目录克隆此repo an即可运行:

pip install -Ur requirements.txt

这将安装DiffCapAnalyzer所需的所有软件包。在

要在应用程序之外使用DiffCapAnalyzer,还可以pip安装:

^{pr2}$

这将安装DiffCapAnalyzer模块,以便在示例笔记本中使用,或用于在Dash应用程序之外使用核心模块。在

仪表板应用程序

要运行应用程序,请在终端中运行以下操作:

python app.py

它应该返回

 * Running on http://someurl/ (Press CTRL+C to quit)

在浏览器中键入或复制该URL以在本地启动应用程序。在

项目组织

|   app.py
|   LICENSE
|   README.md
|   requirements.txt
|   runTests
|   setup.py
|   __init__.py
|
+---data
|   +---ARBIN
|   |   |   README.md
|   |   |
|   |   +---CS2_33
|   |   |
|   |   \---K2_016
|   |
|   +---databases
|   |       dQdV.db
|   |       init_database.db
|   |
|   +---MACCOR
|   |       example_data.csv
|   |
|   \---ML_data
|           c_descriptors.xlsx
|           descriptors_without_heights.xlsx
|           final_descriptors.xlsx
|           k_descriptors.xlsx
|           svc_model.sav
|           svc_results.png
|
+---diffcapanalyzer
|       app_helper_functions.py
|       chachifuncs.py
|       databasefuncs.py
|       databasewrappers.py
|       descriptors.py
|       __init__.py
|
+---docs
|   |   Poster.pdf
|   |
|   +---images
|   |       diagram.png
|   |
|   \---paper
|       |   paper.md
|       |
|       \---images
|               cleaning_dqdv.png
|               fitting_dqdv.png
|
+---examples
|   |   ProcessData_PlotDescriptors_Examples.ipynb
|   |
|   \---ML
|           SVC_Model.ipynb
|
\---tests
    |   test_app_helper_functions.py
    |   test_chachifuncs.py
    |   test_databasefuncs.py
    |   test_databasewrappers.py
    |   test_descriptors.py
    |   __init__.py
    |
    \---test_data
            test_data.csv
            test_data_mac.csv

数据要求

目前,该包只能处理CSV文件,并且依赖于每种类型文件的特定列标题(Arbin vs.Maccor)。请参考data目录中的示例文件。每种数据类型的列标题必须包含以下内容,并且其显示方式必须与以下内容完全相同:

  • 阿宾:
    • 周期指数
    • 数据点
    • 电压(V)
    • 电流(A)
    • 放电容量(Ah)
    • 充电容量(Ah)
    • 台阶索引
  • MACCOR公司:
    • 回收
    • 循环C步骤
    • 测试时间
    • 步进时间
    • 帽子。[啊]
    • 电压[V]
    • 医学博士
    • 电流[A]

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

推荐PyPI第三方库


热门话题
java如何将HashMap<String,Object>从一个活动传递到另一个活动   java如何手动加密socket连接的流量?   java正则表达式生成一个不正确的结果   Java方法引用具有泛型参数的方法   java app setBackground()错误:不兼容的类型:int无法转换为Drawable   java是启动Spring引导而不是SpringApplication的其他方法。跑   无法打开java类路径资源[org/quartz/impl/jdbcjobstore/tables_h2.sql],因为它不存在   spring使用Java,如何确定来自tomcat Web服务器的出站服务调用?   java获取多个同名的XML元素JAXB   java使用Ant从同一代码库构建Swing和Android应用程序   JComponent的java重绘方法不起作用   java目标不可访问,标识符“beanName”解析为null   smtp是否有支持esmtp管道的java api?   java如何在Spring中自动连接业务对象   java在Hibernate中没有其他保存实体的方法吗?   针对两个客户机的SpringJavaWeb应用程序项目开发   使用split的java标记化输入