Skip to main content

A thermogravimetric analysis helper tool by Hikari.

Project description

ThermoHi

A lightweight Python toolkit for thermal kinetics data analysis and visualization.

PyPI Version License: MIT [Python]


📖 Introduction

ThermoHi(thermohipy) is a small, research-oriented Python package for thermal kinetic analysis
and data visualization, designed for TG/DTG analysis in pyrolysis. It supports apparent activation energy calculation using model-free methods such as FWO, KAS, Starink, Friedman, and Vyazovkin method with clean APIs and ready-to-plot results. (You can also export the data and use your own software to create the plots.)

An example file (example.py) is included to illustrate the usage of ThermoHi's main functionalities. Supports temperature input in Celsius (°C), Fahrenheit (°F), and Kelvin (K).All values are internally converted to Kelvin.

🔍 Notes

There is no limit on the number of heating runs or conversion values; the examples include data with 3 heating rates and 5 conversion values. Data can be exported for plotting. Note: Vyazovkin method may generate a very large amount of data.

ThermoHi performs Arrhenius-type parameter extraction for non-isothermal data under linear heating conditions. The method is applicable to various thermo-analytical datasets provided that a well-defined characteristic temperature can be identified,(e.g., DSC, DMA). For non-chemical transitions (e.g., glass transition or relaxation processes), the extracted value should be interpreted as an apparent activation energy. Users are responsible for evaluating the physical validity of the underlying model.


Why ThermoHi?

ThermoHi aims to automate repetitive thermal analysis tasks (e.g., activation energy estimation), allowing researchers to spend less time clicking buttons — and more time thinking, drinking coffee ☕, saving the world, or simply focusing on what truly matters.

If ThermoHi contributes to your research, please consider citing the associated publication(s).

🔗 The paper's link is pending update.


Workflow

The core workflow of ThermoHi is:

data_object(DataList) → KineticAnalysis(alpha, data_object) → Result → plotting(export results)

where:

DataList(<class 'list'>

  • A list containing:
    • Temperature, T (list)
    • Heating rate, β (list)
    • dα/dT (list)

data_object(<class 'list'>)

  • a list used for calculating multiple sets of data,

    e.g., [DataList_1, DataList_2, ..., Datalist_n]

Note: len(alpha) = len(DataList)

alpha(<class 'list'>)

  • a list of conversion values(α, 0 < α < 1), e.g., [0.2, 0.4, 0.6, 0.8]

KineticAnalysis(alpha, Datalist)

  • calculating activation energy, 5 mentioned model free methods were provided,

    e.g., thermohipy.KineticAnalysis(alpha, Datalist).fwo_ea(return_data = False)

FittingPlot(alpha, Datalist, KineticAnalysis)

  • optional, generate fitting plots withmatplotlib for reference,

    e.g., thermohipy.FittingPlot(alpha, data_object, analysis).kasplot()

Result (<class 'dict'>)

  • A dictionary containing:
    • α : conversion value
    • Eα : activation energy
    • k, b : slope and intercept of fitting curve
    • R² : coefficient of determination

Saving examples

If save_excel=True, the analytical results will be saved as an .xlsx file in the current working directory. The absolute file path will be printed in the terminal.

terminal

The structure kinetic results of FWO, KAS, Starink and Friedman method is almost the same:

kinetic results

and the plotting data(scatter points)

scatter points

The fitting curves of Vyazovkin method:

Vyazovkin fitting curves

Plotting examples

FWO method

FWO method

KAS method KAS method

Starink method

Starink method

Friedman method

Friedman method

Vyazovkin method

Vyazovkin method

🔬 Planned Features

Future versions of ThermoHi will include:

  • Support for importing experimental data directly from .csv or .xlsx files (via pandas)
  • Unified plotting style for publication-ready figures (Matplotlib themes)
  • Exporting results for analysis as .xlsx
  • Directly read TG/DTG experimental data and automatically extract corresponding (T, β, dα/dT) values based on user-selected α

🚀 Quick Start

Note: the data is solely for demonstration.

import thermohipy as th
alpha = [0.2, 0.4, 0.6]
beta = [1, 5, 10, 20]
t1, t2, t3 = [150, 175, 200, 210], [165, 180, 210, 220], [400, 420, 440, 445]
dadT1 = [0.004, 0.005, 0.006, 0.007]
dadT2 = [0.005, 0.006, 0.007, 0.008]
dadT3 = [0.006, 0.007, 0.008, 0.009]
data = [
    th.DataList(t1, beta, dadT1),
    th.DataList(t2, beta, dadT2, unit='c'),
    th.DataList(t3, beta, dadT3, unit='f')
]

analysis = th.KineticAnalysis(alpha, data)
result1 = analysis.fwo_ea()
print(result1)

pic1 = th.FittingPlot(alpha, data_object, analysis).kasplot()

result2 = th.ExportData(alpha, data_object, analysis).export_fwo(save_excel=True)
print(result2)
result3 = th.ExportData(alpha, data_object, analysis).export_vyazovkin(save_excel=False)
print(result3)

📄 License

Distributed under the MIT License.
See LICENSE for details.

Author

Hikari Quicklime, Ph.D. Forestry Industry Researcher & Independent Developer
gitHub: QuicklimeHikari

⚙️ Installation

pip install thermohipy

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

thermohipy-0.3.2.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

thermohipy-0.3.2-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file thermohipy-0.3.2.tar.gz.

File metadata

  • Download URL: thermohipy-0.3.2.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for thermohipy-0.3.2.tar.gz
Algorithm Hash digest
SHA256 e72c26d19783901387a7a45cfabeded20ee41dab68c13c6f6ebb263c8edb8bd0
MD5 0d0757f6c49c8d863d0e0ca6fd88dd78
BLAKE2b-256 78b66610535cfc8052c9af6ab400ac393446970ab528a792226bd2d6812af33d

See more details on using hashes here.

File details

Details for the file thermohipy-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: thermohipy-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for thermohipy-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a63f776b2b3411f714bcd8ef4ded48b0502f082833266fa6ef9fdab4a2362624
MD5 ed584f592f5ec32a7210f50b0aa0d208
BLAKE2b-256 e6d621e07d0053665e3cabc3dacdbac342cbd6d07c7521988dc8e1a4e89af8f0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page