Streaming parser and HDF5 exporter for Mistras DTA acoustic emission data
Project description
MistrasDTA-hdf5
Python tools for streaming ingestion of Mistras DTA acoustic emission data with incremental HDF5 export, designed for use in modern Python applications and data pipelines.
This project is a fork of MistrasDTA by Daniel A. Cogswell. It preserves the original binary parsing logic while introducing a generator-based streaming API and native HDF5 output.
Background
Mistras DTA files contain binary-encoded acoustic emission (AE) hit summaries, waveforms, and hardware metadata. The file structure is described in Appendix II of the Mistras User Manual.
The original MistrasDTA package focuses on reading entire files into memory
and returning NumPy record arrays.
MistrasDTA-hdf5 is optimized instead for:
- large DTA files
- incremental / streaming processing
- integration into Python applications and services
- persistent, schema-stable HDF5 storage
Key differences from upstream MistrasDTA
Compared to the original project, this fork provides:
- Streaming parser (
read_bin_stream) using Python generators - Incremental processing of hits, waveforms, and metadata
- Waveforms as scaled NumPy arrays (not raw byte blobs)
- Native HDF5 export with chunked, append-only datasets
- Clear separation of:
- hit data
- waveform data
- waveform metadata
- hardware and test metadata
The original read_bin() API is intentionally not preserved to avoid
implicit full-file loading and memory coupling.
Installation
Install from PyPI:
pip install mistrasdta-hdf5[hdf5]
where [hdf5] is an optional dependency (required only for output to h5 files).
Usage
- Streaming parse of a DTA file
from mistrasdta_hdf5 import read_bin_stream
for tag, obj in read_bin_stream("cluster.DTA"):
if tag == "rec":
# acoustic emission hit
print(obj["RTOT"], obj["ENER"])
elif tag == "wfm":
# waveform
print(obj["CID"], obj["WAVEFORM"].shape)
elif tag == "meta":
# metadata (hardware, test start time, ...)
print(obj)
- Stream directly to HDF5
from mistrasdta_hdf5 import stream_to_h5
stream_to_h5(
dta_path="cluster.DTA",
h5_path="cluster.h5",
skip_wfm=False,
chunk=10000,
)
The resulting HDF5 file contains:
/hits/RTOT
/hits/CID
/hits/<parametric fields>
/waveforms
/waveforms_meta/CID
/waveforms_meta/SRATE
/waveforms_meta/TDLY
/file attributes:
test_start_time
hardware configuration
License and attribution
This project is released under the MIT License.
Original work:
Copyright © 2019–2024 Daniel A. Cogswell
Modifications and extensions:
Copyright © 2026 Robert Farla
See LICENSE for full details.
Disclaimer
This project is not affiliated with, endorsed by, or supported by Mistras. It is an independent, community-driven tool provided “as is”.
Project details
Release history Release notifications | RSS feed
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 mistrasdta_hdf5-0.1.6.tar.gz.
File metadata
- Download URL: mistrasdta_hdf5-0.1.6.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65be522ce1af785f280eaf90707ab90d69784b368c54edd22b50221d841b0600
|
|
| MD5 |
dc0ac097e78768f4ac0787e14d6093b8
|
|
| BLAKE2b-256 |
882a1b554a1eaa2fa58e579033a819cd16408db9aca455ebf27540454717a8ca
|
File details
Details for the file mistrasdta_hdf5-0.1.6-py3-none-any.whl.
File metadata
- Download URL: mistrasdta_hdf5-0.1.6-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f955cb1a849a4113ee45a285bf00148d0a644ee5f287baf7e95d67479a9695b
|
|
| MD5 |
1545710d1e02866d728898d1dd9add05
|
|
| BLAKE2b-256 |
7b65b73760ac7654390dbcf8f2f67c20ef854d6fdb945062a24f0874068ac409
|