Stellenbosch University Digital Image Correlation Library
Project description
SUN-DIC
Stellenbosch University Digital Image Correlation (DIC) Code
Important Notice
This is an early release of the Stellenbosch University DIC Code, referred to as SUN-DIC. The code includes the following features and limitations. If you encounter issues or have suggestions for improvement, please contact the author. Additional documentation will be provided in future updates.
Limitations
- Currently supports only 2D planar problems (a stereo version is under development).
- Only rectangular regions of interest (ROI) can be specified. However, subsets with an all-black background (based on a user-defined threshold) is ignored thus allowing the code to handle irregularly shaped domains.
- Limited documentation. Please see the
settings.inifile for complete documentation on on the options and thetest_sundic.ipynbfile as a working example of using the API.
Key Features
- Fully open-source, utilizing standard Python libraries wherever possible.
- Offers both a user-friendly GUI and an API for interaction.
- Implements the Zero-Mean Normalized Sum of Squared Differences (ZNSSD) correlation criterion.
- Features an advanced starting strategy using the AKAZE feature detection algorithm for initial guess generation.
- Supports both linear (affine) and quadratic shape functions.
- Includes Inverse Compositional Gauss-Newton (IC-GN) and Inverse Compositional Levenberg-Marquardt (IC-LM) solvers.
- Provides absolute and relative update strategies for handling multiple image pairs.
- Computes displacements and strains.
- Utilizes Savitzky-Golay smoothing for strain calculations. Displacements can also be smoothed using the same algorithm.
- Supports parallel computing for improved performance.
- Easy installation via PyPI.
Installation
Although installation can be performed without creating a virtual environment, it is highly recommended to use one for easier dependency management.
General Steps
- Create a virtual environment.
- Activate the virtual environment.
- Install the package from PyPI.
- Optionally, download the following files and folders for a complete working example:
test_sundic.ipynbsettings.iniplanar_imagesfolder These can be found in this repository and provide a practical starting point for using both the API or GUI.
Using pip
- Create a virtual environment (e.g.,
sundic):python3 -m venv sundic - Activate the virtual environment:
source sundic/bin/activate - Install the package:
pip install SUN-DIC
Using conda
- Create a virtual environment (e.g.,
sundic) with Python pre-installed:conda create -n sundic python=3.11 - Activate the virtual environment:
conda activate sundic - Install the package:
pip install SUN-DIC
Installing Directly from GitHub (Advanced users only)
- Create and activate a virtual environment using either
piporcondaas outlined above. - Clone the repository and install the package:
git clone https://github.com/gventer/SUN-DIC.git pip install ./SUN-DIC
Usage
Make sure the virtual environment where SUN-DIC is installed is active before proceeding.
Starting the GUI
- Type
sundicin the terminal to launch the GUI. - Download the
planar_imagesfolder from this repository for example image data. - Follow the workflow outlined on the left-hand side of the GUI. Hovering over any entry provides helpful tooltips.
Using the API
- Download the following files from this repository:
test_sundic.ipynbsettings.iniplanar_imagesfolder
- Open the
test_sundic.ipynbJupyter Notebook for a detailed working example. - The typical workflow involves:
- Modifying the
settings.inifile. - Running the DIC analysis.
- Post-processing the results.
- Modifying the
- While the example uses a Jupyter Notebook, the API can also be used in standard Python
.pyscripts.
API Documentation
Detailed API documentation is available at:
https://gventer.github.io/SUN-DIC
Acknowledgments
- SUN-DIC Analysis Code: Based on work by Ed Brisley as part of his MEng degree at Stellenbosch University. His thesis is available at the Stellenbosch University Library.
- Interpolator: Utilizes
fast_interpby David Stein, licensed under Apache 2.0. Repository: fast_interp. - Smoothing Algorithm: Implements the 2D Savitzky-Golay algorithm from the SciPy Cookbook.
- GUI Development: Developed by Elijah Stockhall.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Authors
Developed by Gerhard Venter.
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 sun_dic-0.0.8.tar.gz.
File metadata
- Download URL: sun_dic-0.0.8.tar.gz
- Upload date:
- Size: 72.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
593fb6dafb0c8bcffa637d05f96948a29e5a2a757306be919fe02a5580d8d62d
|
|
| MD5 |
89e9558530e480cc0008c69603112d8e
|
|
| BLAKE2b-256 |
856e359622a53d59463904b3b21b3a6d8c3640d6f09f4e498e755bda5d7129c3
|
Provenance
The following attestation bundles were made for sun_dic-0.0.8.tar.gz:
Publisher:
pypi.yml on gventer/SUN-DIC
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sun_dic-0.0.8.tar.gz -
Subject digest:
593fb6dafb0c8bcffa637d05f96948a29e5a2a757306be919fe02a5580d8d62d - Sigstore transparency entry: 194995377
- Sigstore integration time:
-
Permalink:
gventer/SUN-DIC@cda795f6f5ee7fc83c180d8f65e489e69ee9ae9e -
Branch / Tag:
refs/tags/0.0.8 - Owner: https://github.com/gventer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@cda795f6f5ee7fc83c180d8f65e489e69ee9ae9e -
Trigger Event:
push
-
Statement type:
File details
Details for the file sun_dic-0.0.8-py3-none-any.whl.
File metadata
- Download URL: sun_dic-0.0.8-py3-none-any.whl
- Upload date:
- Size: 75.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26503fbbbf6a150938b9c6788e24aba74e7feeb75cbce77b4015cf15009a5ab0
|
|
| MD5 |
2daf928bd8c99995f4be03c6805944ea
|
|
| BLAKE2b-256 |
888dc3f06f7d2f46a4fdf930308bfd7526abf486eea61282e950f5763a25ac08
|
Provenance
The following attestation bundles were made for sun_dic-0.0.8-py3-none-any.whl:
Publisher:
pypi.yml on gventer/SUN-DIC
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sun_dic-0.0.8-py3-none-any.whl -
Subject digest:
26503fbbbf6a150938b9c6788e24aba74e7feeb75cbce77b4015cf15009a5ab0 - Sigstore transparency entry: 194995379
- Sigstore integration time:
-
Permalink:
gventer/SUN-DIC@cda795f6f5ee7fc83c180d8f65e489e69ee9ae9e -
Branch / Tag:
refs/tags/0.0.8 - Owner: https://github.com/gventer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@cda795f6f5ee7fc83c180d8f65e489e69ee9ae9e -
Trigger Event:
push
-
Statement type: