Skip to main content

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

At present, this fork is intended for direct use from source.

Clone the repository:

git clone https://github.com/<your-username>/MistrasDTA-hdf5.git
cd MistrasDTA-hdf5

Install dependencies as needed:

pip install numpy h5py

Usage

  • Streaming parse of a DTA file
from MistrasDTA 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 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


Download files

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

Source Distribution

mistrasdta_hdf5-0.1.0.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

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

mistrasdta_hdf5-0.1.0-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file mistrasdta_hdf5-0.1.0.tar.gz.

File metadata

  • Download URL: mistrasdta_hdf5-0.1.0.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

Hashes for mistrasdta_hdf5-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c9872108cd679c9b95f884b9ce79433521d308c0c33047f8cc118b7f3965b6fe
MD5 e96582dfc941414fac129bf0c512eacc
BLAKE2b-256 bd8a402269f117c92dbf11b7f9b91b2547c2170138247ccc1bcb8acb439e0827

See more details on using hashes here.

File details

Details for the file mistrasdta_hdf5-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mistrasdta_hdf5-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2fa635dce26b50541ce4a04cc30946804e0a10034587bd369f9cb167b66b3c36
MD5 77684f48cbeb9815e31e0c90605aa586
BLAKE2b-256 31ef9020dfc3bbc3a63a69b12806887b41c0c736a17ff6d5d6a11d8c2552f5e3

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