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

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


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.6.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.6-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

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

Hashes for mistrasdta_hdf5-0.1.6.tar.gz
Algorithm Hash digest
SHA256 65be522ce1af785f280eaf90707ab90d69784b368c54edd22b50221d841b0600
MD5 dc0ac097e78768f4ac0787e14d6093b8
BLAKE2b-256 882a1b554a1eaa2fa58e579033a819cd16408db9aca455ebf27540454717a8ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mistrasdta_hdf5-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 6f955cb1a849a4113ee45a285bf00148d0a644ee5f287baf7e95d67479a9695b
MD5 1545710d1e02866d728898d1dd9add05
BLAKE2b-256 7b65b73760ac7654390dbcf8f2f67c20ef854d6fdb945062a24f0874068ac409

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