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.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.6.5.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.6.5.1-cp311-cp311-macosx_12_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.11 macOS 12.0+ ARM64

spam-0.6.5.1-cp311-cp311-macosx_11_0_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.11 macOS 11.0+ x86-64

spam-0.6.5.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.6.5.1-cp310-cp310-macosx_12_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.10 macOS 12.0+ ARM64

spam-0.6.5.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.6.5.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.6.5.1-cp39-cp39-macosx_12_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.9 macOS 12.0+ ARM64

spam-0.6.5.1-cp39-cp39-macosx_11_0_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.9 macOS 11.0+ x86-64

File details

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

File metadata

File hashes

Hashes for spam-0.6.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 800ef63f9ce21b25f877801102ae38fdb4a4e1d0b7afcb35759e6907a27f83f0
MD5 6c195ea764b81059e9e1efbf99533d31
BLAKE2b-256 1e46a5d7cd993aa44a6a00f72819b6e4db5dda6115d837c18053a5dd2d87f142

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spam-0.6.5.1-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 a420cd446431d0bbe69d2f34f61d01d37e78251a66a75ec0354dee9cc9c7376c
MD5 a8fa542c8dbf5772473aa821c2ac83d4
BLAKE2b-256 b89ce25ab123aa6882a1c0c253911d6283f934d19d68f221cf8af7e707a4a93e

See more details on using hashes here.

File details

Details for the file spam-0.6.5.1-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for spam-0.6.5.1-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 7a6581b92e389a8db7ec84b1d86376832c79e6e28ef5b3e73d2bcd3ac1b64902
MD5 24dbc07ecadf7c6574544f114515fb89
BLAKE2b-256 caa87c9b3fb579b24db5eb411cfeff1ee0db6f9deb778a1731d34b068e922228

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spam-0.6.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9c99b2d870d555b3e52d586d798f0b40b86605d172c40c52014122b69ce62074
MD5 bb69b486974efb7e1ccb1819f36a8f18
BLAKE2b-256 3ab168c393c7ed6205cff000dec613095eeba73223fc64b08417bbeb6c6976ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spam-0.6.5.1-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 2a11cbc59b71ac04a539fe1ac71cf68466dd34a732b1ad86f9bf1f78f3ddd62d
MD5 54de7ec6cb4b7b4626790157ba2a272d
BLAKE2b-256 4986cc33b86b211cdb0ffb489d37fd0ec2529d0f6632f0c9ca06327478a75474

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spam-0.6.5.1-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 590ab9c960686e366050b5cdc757b7ba6ee9165424a96c5ec9a4d38a43c3b5b2
MD5 0a0c96d0588a235f0d0bb042de8e06dd
BLAKE2b-256 f84f0be4f03265c340307341e5de3258615489024cf7d4acdd4a4f42a9a74b6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spam-0.6.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c89cf0bbde98cbdbbbd9f48000adfc2a09a241dcc4ee6f1479b005d2e6ca994a
MD5 a8ce244f0b78aea7bafb0935d80447c4
BLAKE2b-256 fd0f7df22e1dd2ed83d02588cd294ad6107c77d447f0144e88f1b93302facc88

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spam-0.6.5.1-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 3e164008749ce504c0830d1a53444026de28ce92172ef6ff40bff3b955ae7bbc
MD5 81dcca13f48cfc1c9e614990a42abef2
BLAKE2b-256 82cd08be5779d8e6694323da9be282973b626247dcee98db1bb09ba0ea7966e4

See more details on using hashes here.

File details

Details for the file spam-0.6.5.1-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for spam-0.6.5.1-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 536ff4638e8710ef1599441376d3c524fe5dc990e55fd12a8ff5cd37b1b60a40
MD5 95efba35acb23e638aa7c8c8feb83789
BLAKE2b-256 43bbfe06b199146bd0c1abadcd09d36fc66de278b40198488e82fc487ffc9682

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