Python port of the C library SOFT 2.0, that computes fourier transforms on the rotation group SO(3).
Project description
PySOFFT
This package allows to compute Fourier transforms on the rotation group SO(3).
It is a partial python port of soft-2.0 released by Peter Kostelec and Daniel Rockmore.
For details see their paper:
FFTs on the Rotation Group
J Fourier Anal Appl (2008) 14: 145–179
DOI 10.1007/s00041-008-9013-5
The present numba code is a more or less straight copy/adaptation of the original C implementation.
PySOFT is made available with conset of the original authors and under the same GPL3 license.
Installation
pip install pysofft
Dependencies are: numpy and numba
Usage
Creating a Transform class for a fixed bandwidth (maximal considered spherical harmonic order +1)
from pysofft.soft import Soft
bandwidth = 32
soft_obj = Soft(bandwidth)
SO(3) grid points (gives as (2 bandwidth,2 bandwidth,2 bandwidth,3) array of euler angles $\alpha,\beta,\gamma$):
soft_obj.grid
FFT Coefficient grid points labeled by $n,m,l$ corresponding to the Wigner-D matrix $D^l_{n,m}$
soft_obj.coeff_grid
Creating random coefficients and computing the FFT on SO(3)
import numpy as np
Flnm=np.random.rand(*soft_obj.coeff_grid.shape[:-1]).astype('complex')
f = soft_obj.inverse_cmplx(Flnm) # inverse Transform (Dlnm Coefficients -> SO(3))
Flnm2 = soft_obj.forward_cmplx(f) # forward Transform (SO(3) -> Dlnm Coefficients)
Known Issues
There are some bugs when spawning child processes after instanciation of the class Soft. So, as of now consider Soft to be not fork save. If you want to use Soft in a multiprocess environment initiallize Soft in each child process individually.
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
Built Distribution
File details
Details for the file pysofft-0.1.3.tar.gz
.
File metadata
- Download URL: pysofft-0.1.3.tar.gz
- Upload date:
- Size: 1.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25473d4ee6ae240c55f79af2a3a82af57229edc0a3405f5aa550fe31f79bc76b |
|
MD5 | cee2b561cf9574f164992f8d2021a22c |
|
BLAKE2b-256 | 7e92c7032687895bdeaffb898502e4ccf344677111ca073d74f5305a83ce1914 |
File details
Details for the file pysofft-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: pysofft-0.1.3-py3-none-any.whl
- Upload date:
- Size: 1.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3ce0fcb7c0283eacc0e7ce26ef88a3c594174b3ed8875a753eb494d5d778008 |
|
MD5 | 07408058ae37816e36912820c934563c |
|
BLAKE2b-256 | 9777fb4754aa4c04748649e8fdf9c682ca58f7926826d810aff3a73663cee296 |