Skip to main content

Statistical Toolkit for Reliability Assessment in NDT

Project description

digiqual

Statistical Toolkit for Reliability Assessment in NDT

digiqual is a Python library designed for Non-Destructive Evaluation (NDE) engineers. It implements the Generalised $\hat{a}$-versus-a Method, allowing users to perform reliability assessments without the rigid assumptions of linearity or constant variance found in standard methods.

Documentation: Read the full documentation here

Installation

You can install digiqual directly from PyPI.

Option 1: Install via uv (Recommended)

If you are managing a project with uv, add digiqual as a dependency:

# To install the latest stable release (v0.23.0):

uv add digiqual

# To install the latest development version (main branch from github):

uv add "digiqual @ git+https://github.com/JGIBristol/digiqual.git"

If you just want to install it into a virtual environment without modifying a project file (e.g., for a quick script), use pip interface:

uv pip install digiqual

Option 2: Install via standard pip

To install the latest stable release (v0.23.0):

pip install digiqual

To install the latest development version from github:

pip install "git+https://github.com/JGIBristol/digiqual.git"

Features

1. Experimental Design

Before running expensive Finite Element (FE) simulations, digiqual helps you design your experiment efficiently.

  • Latin Hypercube Sampling (LHS): Generate space-filling experimental designs to cover your deterministic parameter space (e.g., defect size) and stochastic nuisance parameters (e.g., roughness, orientation).
  • Scale & Bound: Automatically scale samples to your specific variable bounds.

2. Data Validation & Diagnostics

Ensure your simulation outputs are statistically valid before processing.

  • Sanity Checks: Detects overlap between variables, type errors, and insufficient sample sizes.
  • Sufficiency Diagnostics: rigorous statistical tests to flag issues like "Input Coverage Gaps" or "Model Instability" before you trust the results.

3. Adaptive Refinement (Active Learning)

digiqual closes the loop between analysis and design.

  • Smart Refinement: Use refine() to identify specific weaknesses in your data. It uses bootstrap committees to find regions of high uncertainty and suggests new points exactly where the model is "confused".

  • Automated Workflows: Use the optimise() method to run a fully automated "Active Learning" loop. It generates an initial design, executes your external solver, checks diagnostics, and iteratively refines the model until statistical requirements are met.

4. Generalised Reliability Analysis

The package includes a full statistical engine for calculating Probability of Detection (PoD) curves.

  • Relaxed Assumptions: Moves beyond the rigid constraints of the classical $\hat{a}$-versus-$a$ method by handling non-linear signal responses and heteroscedastic noise.
  • Multi-Dimensional Active Marginalisation: Resolves multidimensional physics by integrating out stochastic nuisance parameters (like roughness) via Monte Carlo methods, outputting high-fidelity 2D PoD surface heatmaps alongside standard 1D curves.
  • Robust Statistics: Automatically selects the best polynomial degree and error distribution (e.g., Normal, Gumbel, Logistic) based on data fit (AIC).
  • Uncertainty Quantification: Uses bootstrap resampling to generate robust confidence bounds and $a_{90/95}$ estimates.

Development

If you want to contribute to digiqual or run the test suite locally, follow these steps.

  1. Clone and Install

This project uses uv for dependency management.

git clone https://github.com/JGIBristol/digiqual.git
cd digiqual
  1. Run Tests

The package includes a full test suite using pytest.

uv run pytest
  1. Build Documentation

To preview the documentation site locally:

uv run quarto preview

References

Malkiel, N., Croxford, A. J., & Wilcox, P. D. (2025). A generalized method for the reliability assessment of safety–critical inspection. Proceedings of the Royal Society A, 481: 20240654. https://doi.org/10.1098/rspa.2024.0654

Malkiel, N., Croxford, A. J., & Wilcox, P. D. (2026). A comprehensive investigation of flexible and multi-dimensional simulation-based PoD analysis. NDT & E International, https://doi.org/10.1016/j.ndteint.2025.103596

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

digiqual-0.23.0.tar.gz (27.7 MB view details)

Uploaded Source

Built Distribution

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

digiqual-0.23.0-py3-none-any.whl (230.1 kB view details)

Uploaded Python 3

File details

Details for the file digiqual-0.23.0.tar.gz.

File metadata

  • Download URL: digiqual-0.23.0.tar.gz
  • Upload date:
  • Size: 27.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for digiqual-0.23.0.tar.gz
Algorithm Hash digest
SHA256 8d279cf56911cc4b1a13334fc775e5a35969ebc28733720fbcdebb4e0a991e4a
MD5 ba9e9694e98c50549e92697f61ea4b6c
BLAKE2b-256 da6b6dbf7f98b06c1d196701265ed07ba287108254b2351c37f2db85232e367c

See more details on using hashes here.

File details

Details for the file digiqual-0.23.0-py3-none-any.whl.

File metadata

  • Download URL: digiqual-0.23.0-py3-none-any.whl
  • Upload date:
  • Size: 230.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for digiqual-0.23.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9744bf0727d2346478b3eb6b6177981fac40740697ea63588dea46f178f90380
MD5 ade4f7a298188867fc9862d000810024
BLAKE2b-256 740339d7d6d45e5410f6cfd28b54e6e352de14f7cd059f1279ca3b42fe9eca52

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