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

Uploaded CPython 3.11 macOS 12.0+ ARM64

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

Uploaded CPython 3.10 macOS 12.0+ ARM64

spam-0.6.4-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.4-cp39-cp39-macosx_12_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.9 macOS 12.0+ ARM64

spam-0.6.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.5 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

spam-0.6.4-cp38-cp38-macosx_12_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.8 macOS 12.0+ ARM64

File details

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

File metadata

File hashes

Hashes for spam-0.6.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a2ee9c4662ea95039d00bb193d22d6228f47c7fdfe8691b301a4f862ac418392
MD5 317acec0028bbc60a0c3782ade9816e3
BLAKE2b-256 12ebbc1b579e622969e4e9730c945acbf7c19aa83201d84b774e4e29322e78a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spam-0.6.4-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 533ff15491776dd6598e89f1039d338d68d5a4a95467f4138b0d299fc36584ba
MD5 d70cd03d4ef0e7d7b2226cc3476ef353
BLAKE2b-256 c4139789661ca3858ffa90f9a70cffac579ab4a6259d5e872c1a4249c48937de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spam-0.6.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5769393fa9ef65204b3736b981ac594dac882bf3d9023745bc82ab0f460c27ec
MD5 2cb6d4e8ef6fd7b5433f66cb4bd12d10
BLAKE2b-256 ba97834eee408fd3c2456e18a960be17f06e20ba1c790f39b98b85b2568e9d76

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spam-0.6.4-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 4163e26980102f0dabb450dc4a34ab08840f6d389451364633c84809f88de211
MD5 04b627b3d6fe9be53328bb2c8e04d4da
BLAKE2b-256 c4fb2056233dd6c93f98e1c281c3aeebe8a7af2f4414d929294593e0505d0e27

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spam-0.6.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 201d72467ecfe73557730e2b812f0945b48a593be6ceeeb1052221f73b006940
MD5 413d5c750b715a8365846fcb93f205ec
BLAKE2b-256 52a42edd7c0cf218b5060c13b9d950f202e609980f121d4fc372223925ca3e30

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spam-0.6.4-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 f83552658d76d34f549710be301a9054d6bcbe2c086b4f09e6186ed2af8a465c
MD5 2b0d40e62037a9720a2ff62ee2a62189
BLAKE2b-256 3d3b6d44f1858a3a6c05681bc3d550b64b982f88ce0cd916c17f6205f0edace1

See more details on using hashes here.

File details

Details for the file spam-0.6.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spam-0.6.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 23819727a981da00b38a068e70147e51540de757682d3d54b36354374ef1fa3a
MD5 0e9a45f7930d69bbc28cefaa0c31d88d
BLAKE2b-256 9eead9b00feff6ce7bf4553b514d0b84145e0dd528c44e71d301799d8ec7fb8a

See more details on using hashes here.

File details

Details for the file spam-0.6.4-cp38-cp38-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for spam-0.6.4-cp38-cp38-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 04b6d24bd60668876793b7235883f3c2f7e5a29dcc5780ca0a40186e5cf28139
MD5 e28058a4674fd4cabed8195dc431613b
BLAKE2b-256 2fa8fe86b482ca9aba06b7749e0abe7029ac6b4ea330d62a37f77aa0990c0fcd

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