The SO3 code provides functionality to perform fast and exact Wigner transforms based on the sampling theorem on the rotation group derived in McEwen et al. (2015).
This documentation describes installation details and documents the source code. Reference, author and license information is also given. The code itself is hosted on GitHub.
The SO3 package in based on a core C implementation. Python and Matlab interfaces to the C implementation are provided.
SO3 requires the FFTW and the SSHT package. Obviously suitable C compilers will be required to build the implementation. Both C and Matlab mex compilers will be required to build the Matlab interface to the C implementation. The python interface requires numpy and, in addition, the demos require matplotlib.
The python package, so3, is available on pypi and can be installed with:
pip install so3
The python package is backed by scikit-build and CMake. It will install a local version of FFTW and will compile its own version of the C package.
The C package can be installed with CMake and conan.
Both can be installed using pip:
pip install conan cmake
Then SO3 can be compiled with:
git clone https://github.com/astro-informatics/so3.git mkdir so3/build && cd so3/build cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -Dconan_deps=True .. make make install
The above will also download FFTW and SSHT, if necessary.
The Matlab interface requires the C version to be installed.
It can be built using make by configuring appropriate compilers and dependencies, and then running:
Source code documentation
SO3 code is self documented. Source code documentation for each language is available here:
- Python source documentation (usage for the python package is given in the package docstring)
- C source documentation
- Matlab source documentation (usage for the matlab package is available through matlab help documentation)
If you use SO3 for work that results in publication, please reference https://github.com/astro-informatics/so3/ and cite our related academic paper:
J. D. McEwen, M. Büttner, B. Leistedt, H. V. Peiris, Y. Wiaux, A novel sampling theorem on the rotation group, IEEE Sig. Proc. Let., 22(12):2425-2429, 2015 (ArXiv | DOI)
SO3 package to perform Wigner transforms
Copyright (C) 2014- Martin Büttner, Jason McEwen, Boris Leistedt and contributors
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details (LICENSE.md).
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
SO3 was initially developed by Martin Büttner, Jason McEwen, and Boris Leistedt but significant contributors have since been made by a number of others.