Skip to main content

Software for the Practical Analysis of Materials

Project description

https://img.shields.io/badge/license-GPLv3-blue.svg https://gitlab.com/spam-project/spam/badges/master/pipeline.svg https://gitlab.com/spam-project/spam/badges/master/coverage.svg https://badge.fury.io/py/spam.svg https://joss.theoj.org/papers/10.21105/joss.02286/status.svg https://static.pepy.tech/badge/spam/month https://img.shields.io/static/v1?label=Chat&color=green&logo=matrix&style=social&message=join

Spam is a piece of Python software built upon NumPy and SciPy for the analysis and manipulation of 3D and 2D data sets in material science, be they from x-ray tomography, random fields or any other source.

A number of common functions are provided that are either lacking or slow in Numpy and Scipy, which are expected to be used by users within new python scripts. These functions are in the tools/ directory, and include tools to work with random fields, morphological operations, digital image correlation, and labelled images. Some of spam’s functions transparently call C/C++ functions for speed.

Some user-callable scipts are also provided – they are more complex pieces of code that combine a number of functions and which have a command-line interface. For the moment the scripts are 3 different image correlation techniques.

Please have a look at our online documentation for:

If you find bugs, need help, or want to talk to the developers, we use a element.io/matrix.org chat room for organisation, please join it here and come and talk to us – it is easy, there is a chat client that can run in your web broswer. All you need to do is choose a user name!

Changelog

Version

Date

Notes

Version 0.7.0.1

2024-02-16

Remove R dependency for generating random fields in favor of gstools

Version 0.6.5.2

2024-01-24

Update returnStatus for the registration and local DIC differentiating image texture and transformation operator issues

Version 0.6.5.1

2023-12-04

Drop python 3.8 and update doc links

Version 0.6.5

2023-11-23

Revamp documentation

Version 0.6.4

2023-08-28

new returnPhiMaskCentre option in spam.DIC.register()

Version 0.6.3.2

2023-07-19

Fix inputs to spam-ereg, impose same-sized images in spam-reg

Version 0.6.3.1

2023-07-07

Revert inputs to spam-ereg, update links on pypi

Version 0.6.3

2023-07-06

Fixes masking in register(), move to pyproject.toml, and 2D imShowProgress and applyPhiPython

Version 0.6.2.1

2023-03-21

Imports in graphical tools fixed

Version 0.6.2

2023-03-17

Fixes to registration, pep8 and black the whole code, dev on global and projection

Version 0.6.1.3

2022-10-25

Fix for histogramTools, a number of library calls updated for deprecation warnings

Version 0.6.1.2

2022-09-22

Parallelised tetLabel, safety in spam-pixelSearch, -skp in spam-ldic

Version 0.6.1.1

2022-01-20

Registration subtraction option for spam-passPhiField (-regs)

Version 0.6.1

2021-10-29

New package spam.orientations and segmentations functions

Version 0.6.0.3

2021-07-08

Fixed -applyF check. Now registration guess is correctly applied to a set of points

Version 0.6.0.2

2021-06-23

Fixed spam-mmr-graphical and PyQt5 dependencies. New spam.plotting.plotSphericalHistogram renders a 3D orientation distribution!

Version 0.6.0.1

2021-05-20

Small fixes to spam-filterPhifield and spam-regularStrain

Version 0.6.0

2021-05-04

Massive rewrite of image correlation scripts, introduction of spam-pixelSearchPropagate, spam-filterPhiField, spam-passPhiField. The spam-pixelSearch is now separate from spam-ldic and spam-ddic, and works both in grid and labelled mode. Please check out new script documentation for a flowchart of how these should be used in series. Loads of scripts and quite a few functions are now multiprocess, and MPI parallelisation is completely dropped along with mpi4py. pygmsh dependency is also now dropped

Version 0.5.3.4

2021-03-19

Last version to support python 3.5. Update gradient option in spam-ldic, new function to generate pixelated spheroids: spam.kalisphera.makeBlurryNoisySpheroid()

Version 0.5.3.3

2020-11-27

spam-reg script, spam-ereg-discrete writing fix, spam-ldic update gradient option, implementation of Geers in 2D

Version 0.5.3.2

2020-10-27

spam-ereg-discrete mask option reinstated, many fixes for spam-ldic and registerMultiscale() for 2D images

Version 0.5.3.1

2020-10-23

spam-ereg-discrete make safer with slicePadded and moveGrains now renamed to moveLabels and proposed as function with erodeLabels

Version 0.5.3

2020-10-07

Improvements in edge cases in spam-ldic and spam-ddic, thanks to a helper function called spam.helpers.slicePadded(). New debug mode for spam-ddic as well as a graphical tool to manually align labels called spam-ereg-discrete

Version 0.5.2.1

2020-07-20

This is the version in the JOSS paper. Making python 3.8 package for PyPI, along with classifiers. Python 2.7 dropped

Version 0.5.2

2020-06-03

Big improvements in spam-mmr and spam-mmr-graphical, all TSVs im1->im2 and gradients always computed in im2

Version 0.5.1.5

2020-05-28

Don’t recompute Jacobian in register if not needed. Safety in pixel search

Version 0.5.1.4

2020-05-16

Fix spam-deformImageFromField, C++14

Version 0.5.1.3

2020-04-20

Fix spam-mmr and improvements to pixel search in spam-ddic

Version 0.5.1.2

2020-04-20

Fix and test for large initial guesses in register(), spam-mmr-graphical revived

Version 0.5.1.1

2020-04-08

Fix for running spam-ldic for pixel search

Version 0.5.1

2020-04-07

Fix for running spam-ddic with mpi, implementation of S. Brisard’s Directional Erosion

Version 0.5.0

2020-03-27

Big rename of scripts, functions, variables, parameters, with some backwards compatibility in TSV file reading. Some examples:

  • spam.correlate.lucasKanade -> spam.correlate.register

  • spam.helpers.readTSV -> spam.helpers.readCorrelationTSV

New framework for the calculation of strains, where the computation of F is separated from its decomposition. Output fields from correlation with prefixes “SubPix” and “SubPixel” become prefixless In TSV outputs from correlation the components like “F12” are now called “Fzy”

Version 0.4.3

2020-01-16

Various fixes to graphical clients (able to save TSV from spam-mmr-graphical and do a last, precise run with spam-mmr). Improvement to triangulation (now with CGAL alpha shapes) and discrete strain calculator (tested results)

Version 0.4.2

2019-09-25

spam-mmr-graphical now working, improvements in spam-mmr.

Version 0.4.1

2019-09-13

spam-mmr-graphical now working (c-python type error). Various bugfixes in clients. spam-ITKwatershed now accepts markers

Version 0.4.0

2019-07-18

c++ now bound with pybind11. New graphical script spam-mmr-graphical for multi-modal registration. New graphical script spam-ereg for eye (manual) registration. Python3 upgrade recommended for all users

Version 0.3.3.1

2019-05-27

Binning 2^31 fix, remove lines for immediate prints that are not py3 compatible First version with CGAL triangulation

Version 0.3.2.1

2019-05-14

Update pip documentation and changelog

Version 0.3.2

2019-04-30

Fix segfault with images larger than 2^31 voxels, and output both subtracted and original fields in spam-ldic

Version 0.3.1

2019-04-08

Fix a number of forgotten spam.DIC.transformationOperator functions

Version 0.3.0

2019-03-28

Consistent naming in DIC: Phi is 4x4 homogeneous deformation function and F is its internal 3x3 displacement gradient

Version 0.2.2.2

2019-03-21

First version on pip with complete dependencies. This version of spam runs fully in a venv with pip install spam

Version 0.2.2.1

2019-03-20

Pull in requirements.txt into setup.py automatically. This aligns the build from git with the build from pip.

Version 0.2.2

2019-02-21

Approximate python3 compatibility

Version 0.2.1

2019-02-18

Add PyPI documentation to pip in RST

Version 0.2.0

2019-02-18

Add PyPI documentation to README.rst to appear on pip. Note that the build status and coverage badges won’t appear until access to gitlab is opened

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

spam-0.7.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.5 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

spam-0.7.0.1-cp311-cp311-macosx_12_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.11 macOS 12.0+ ARM64

spam-0.7.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

spam-0.7.0.1-cp310-cp310-macosx_12_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.10 macOS 12.0+ ARM64

spam-0.7.0.1-cp310-cp310-macosx_11_0_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.10 macOS 11.0+ x86-64

spam-0.7.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

spam-0.7.0.1-cp39-cp39-macosx_12_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.9 macOS 12.0+ ARM64

File details

Details for the file spam-0.7.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spam-0.7.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 52552f4bde0c7de643343ba81d03994d006dbde4788896538bf55e9ff65570a9
MD5 a99c4d8860fde30b820103eed867a461
BLAKE2b-256 ca93c2d0b5d1d4ddd720f234a664fc54d751c242b0212fef68a8c34ed8e348ee

See more details on using hashes here.

File details

Details for the file spam-0.7.0.1-cp311-cp311-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for spam-0.7.0.1-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 13274f2e4a5bad59e059b2edc08bfbada7c5e66a96eb980b29d5d0f439a7d4e0
MD5 155d7b9d6df5818dafddc7e81ef443f0
BLAKE2b-256 d6de1484b279c8c6243d01cb3167a6cd52d8a60032684c2970c0b7a9058b5db6

See more details on using hashes here.

File details

Details for the file spam-0.7.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spam-0.7.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cb1e2902e5fe7dedada309f514b5c3d71ae9c431674c7ee39470d1ebedc09e4e
MD5 bc5ff01bfe341a5e4a1ed3d18465c178
BLAKE2b-256 be83ae82ad372284ded603e31ae8d8745c6454516b79e380610c56318832e775

See more details on using hashes here.

File details

Details for the file spam-0.7.0.1-cp310-cp310-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for spam-0.7.0.1-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 d737f912d6fac3e176a07d3b44041623b2965712f317587cbba1d095eb54d194
MD5 5534ce85fd597b292c6e9f81c442a20f
BLAKE2b-256 1d31e97649d75d393886e795d518056be50aca41c7f14fa72faf2cce6c9ab279

See more details on using hashes here.

File details

Details for the file spam-0.7.0.1-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for spam-0.7.0.1-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 8a511cf9e851b402e6fa157b1542489c94e6d1fc6d628493e47c8cbefc3d7ad5
MD5 94678d1ea9f0c84cde3a0bb9716c26cc
BLAKE2b-256 fb0195ef0a43fd0e055345c2e0811b17064efcbc161562fae493c1c6b2de2a8a

See more details on using hashes here.

File details

Details for the file spam-0.7.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spam-0.7.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 30eb95c062607b3aa3b76451b79c75c846c09257d5a8cfe9c5b1a4e56554e58e
MD5 25b5e0863fc30d9c05ea1f408a32bcbe
BLAKE2b-256 cfe8734f42fff1c028e614f8f0b6da10b338c061fa041963d437485e6edfcc1c

See more details on using hashes here.

File details

Details for the file spam-0.7.0.1-cp39-cp39-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for spam-0.7.0.1-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 efad905e87c1a915b23783c029f8f21c7aadcad7296d51b80a60b4115f79a256
MD5 6211a74a462eeffd573dbb18c37cb2f6
BLAKE2b-256 b107ebff22beb5ca8e7e59c4c77b3df48726c11ae646e40d61012c4b7f79c258

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page