Unofficial parser for NETZSCH STA (Simultaneous Thermal Analysis) NGB instrument binary files. Not affiliated with, endorsed by, or approved by NETZSCH-Gerätebau GmbH.
Project description
pyNGB - NETZSCH STA File Parser
A high-performance Python library for parsing NETZSCH STA (Simultaneous Thermal Analysis) NGB files with comprehensive metadata extraction and analysis tools.
⚠️ Disclaimer: This package is not affiliated with NETZSCH-Gerätebau GmbH. NETZSCH is a trademark of NETZSCH-Gerätebau GmbH.
Features
- Fast Binary Parsing: Optimized parsing with NumPy and PyArrow (0.1-1 sec/file)
- Complete Metadata: Extract instrument settings, sample info, and experimental conditions
- Baseline Correction: Automatic baseline subtraction with validation
- DTG Analysis: Derivative thermogravimetry calculation with smoothing options
- Batch Processing: Parallel processing of multiple files
- Data Export: Convert to Parquet, CSV, and JSON formats
- CLI Support: Command-line interface for automation
Installation
pip install pyngb
Quick Example
from pyngb import read_ngb
import polars as pl
import json
# Load NGB file with embedded metadata
table = read_ngb("experiment.ngb-ss3")
df = pl.from_arrow(table)
# Access data
print(f"Loaded {df.height} data points")
print(f"Temperature range: {df['sample_temperature'].min():.1f} to {df['sample_temperature'].max():.1f} °C")
# Access metadata
metadata = json.loads(table.schema.metadata[b'file_metadata'])
print(f"Sample: {metadata.get('sample_name', 'Unknown')}")
# Baseline correction
corrected = read_ngb("sample.ngb-ss3", baseline_file="baseline.ngb-bs3")
# DTG analysis
from pyngb.api.analysis import add_dtg
table_with_dtg = add_dtg(table, method="savgol", smooth="medium")
Command Line Usage
# Convert single file
python -m pyngb sample.ngb-ss3
# Batch processing with baseline correction
python -m pyngb *.ngb-ss3 -b baseline.ngb-bs3 -f parquet -o ./processed/
# Get help
python -m pyngb --help
Documentation
- Getting Started - Installation and first steps
- User Guide - Core functionality and examples
- API Reference - Complete function documentation
- Troubleshooting - Common issues and solutions
- Contributing - Development guidelines
License
MIT License. See LICENSE for details.
Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Made with ❤️ for the scientific community
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyngb-0.1.2.tar.gz.
File metadata
- Download URL: pyngb-0.1.2.tar.gz
- Upload date:
- Size: 1.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
163e8f1e19aee2d4b42e728ca65ba0314765bf647a9cf9d11ab97c8f9faba75d
|
|
| MD5 |
c94a9aa0af5a1bf8e8a88ef3e507beb7
|
|
| BLAKE2b-256 |
7aef2ec271c159885fdb2f16b5707216d04e98e5828c8e340d6e5e67b3379583
|
File details
Details for the file pyngb-0.1.2-py3-none-any.whl.
File metadata
- Download URL: pyngb-0.1.2-py3-none-any.whl
- Upload date:
- Size: 84.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0eedbad29a49574ddc335baed53c938db2a13dc2eab7dd6a15c115c86d730fe0
|
|
| MD5 |
cea83090aede52ee27b75866c7e7b45e
|
|
| BLAKE2b-256 |
c3b0d6799093ff727054f72215cacd33172655c36aa3c19f8ab50f9923c7c52c
|