Skip to main content

PyThermoNDT

PyThermoNDT is a Python package for manipulating thermographic data in Non-Destructive Testing (NDT) applications. It provides various methods to load, transform, visualize, and write thermographic data, making it easier and more efficient to work with thermal imaging in NDT contexts.

Features

  • Multi-source Data Loading: Read thermographic data seamlessly from local files and S3 storage
  • Hierarchical Data Structure: Store and access thermographic data, metadata, and ground truth in a common format
  • Remote Data Caching: Optionally cache data from remote sources for improved performance
  • Composable Transforms: Build custom processing pipelines with reusable transform components
  • PyTorch Integration: Datasets compatible with PyTorch DataLoader for training deep learning models

Quick Example

from torch.utils.data import DataLoader

from pythermondt import LocalReader, S3Reader
from pythermondt import transforms as T
from pythermondt.dataset import ThermoDataset, container_collate

# Load data from different sources
local_reader = LocalReader("./examples/example_data/**/*.hdf5", recursive=True)
s3_reader = S3Reader("ffg-bp", "example2_writing_data", download_files=True)

# Create optimized transform pipeline (deterministic transforms first for better caching)
transform = T.Compose([
    T.ApplyLUT(),                  # Convert raw data to temperatures
    T.RemoveFlash(),               # Remove flash frames
    T.NonUniformSampling(64),      # Resample data to 64 frames
    T.CropFrames(96, 96),          # Center crop the frames to 96x96
    T.MinMaxNormalize()            # Normalize data
])

# 1.) Access individual files using readers
container = local_reader[0]
processed = transform(container)

# 2.) Analyse processed data
processed.show_frame(frame_number=10)
processed.analyse_interactive()

# 3.) Combine sources in a dataset for training workflows
dataset = ThermoDataset([local_reader, s3_reader], transform=transform)

# 4.) Build cache for faster training (splits pipeline at first random transform)
dataset.build_cache("immediate")

# 5.) Use with PyTorch DataLoader for model training to be used in your training loop
collate_fn = container_collate('/Data/Tdata', '/GroundTruth/DefectMask')
dataloader = DataLoader(dataset, batch_size=4, shuffle=True, collate_fn=collate_fn)

for epoch in range(50):
    print(f"Epoch {epoch + 1}")
    for thermal_data, ground_truth in dataloader:
        print(f"Thermal data shape: {thermal_data.shape}")    # [4, 96, 96, 64]
        print(f"Ground truth shape: {ground_truth.shape}")    # [4, 96, 96]

From here?

PyThermoNDT is yours to use! You can start by exploring the examples directory for more detailed usage scenarios. The package is designed to be flexible and extensible, so feel free to modify and adapt it to your specific needs.

Installation

Install the latest stable release from PyPI:

pip install pythermondt

From GitHub

Install the latest development version from the main branch:

pip install git+https://github.com/voidsy-gmbh/pyThermoNDT.git

From Source

Clone the repository and install locally:

git clone https://github.com/voidsy-gmbh/pyThermoNDT.git
cd pyThermoNDT
pip install .

Documentation

For detailed usage examples, check out the Jupyter Notebooks in the examples directory.

Contributing

Contributions are welcome! Please see the Contributing Guidelines for details on setting up a development environment, coding standards, and the pull request process.

Funding

This project was partially funded by

  • the Austrian Research Promotion Agency (FFG) under grant numbers 920062 and 901177 as part of the project 'Thermal tomography'
  • the Austrian Research Promotion Agency (FFG) under grant numbers 921380 as part of the project 'FLARE'

Metadata

Release files for pythermondt 0.3.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pythermondt 0.3.8
File Size Uploaded
pythermondt-0.3.8.tar.gz 81.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pythermondt 0.3.8
File Interpreter ABI Platform
pythermondt-0.3.8-py3-none-any.whl Python 3 none any Details

Total release size: 182.7 kB

Release files / pythermondt-0.3.8.tar.gz

Download URL pythermondt-0.3.8.tar.gz
Size 81.3 kB
Tags Source
SHA-256 checksum
How to use checksums
44d2081a041e21115777b8157880b9e2e643d978e562932cd9f3ecde25c2260e
BLAKE2b-256 checksum
How to use checksums
458ebea335d3fa87a9a4040e4f9c543c25e13f4e71283c9c25fe1acb7888eb40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.

Transparency log

Release files / pythermondt-0.3.8-py3-none-any.whl

Download URL pythermondt-0.3.8-py3-none-any.whl
Size 101.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9accc3dee21b00f8210a8cea44258efbe571e0d7c11f7b48b388d11e1407bc7a
BLAKE2b-256 checksum
How to use checksums
86dc78f647df06c059cc3a005abed044a44275c148c6f68106611c719caf8998
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.8 This release

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page