openAbel
Fast Abel transforms of equispaced data in Python, with all calculations done in Cython.
Introduction
The main goal of openAbel is to provide fast and efficient Abel transforms of equispaced data in Python with all actual calculations done in Cython. The most useful methods implemented in this module for that purpose use the Fast Multipole Method combined with arbitrary order end correction of the trapezoidal rule to achieve small errors and fast convergence, as well as linear computational complexity. A couple of other methods are implemented for comparisons. The Abel transform can be used from Python with numpy arrays or from Cython using pointers.
Quick start
Requirements: Python >= 3.12 on Linux or macOS. numpy and scipy are installed automatically.
pip install openabel
Wheels are provided for CPython 3.12 to 3.14 on Linux x86_64 and macOS arm64. Elsewhere pip compiles the Cython extensions from the sdist, which needs a C compiler. The development version installs from the repository:
pip install git+https://github.com/oliverhaas/openAbel
A forward transform of a Gaussian sampled on 200 points, the first sample at x = 0:
import numpy as np
import openabel
n_data = 200
step_size = 3.5 / (n_data - 1)
x = np.arange(n_data) * step_size
abel_obj = openabel.Abel(n_data, -1, 0.0, step_size)
data_out = abel_obj.execute(np.exp(-(x**2)))
The examples show the transform types and
methods in more detail, starting with example000_simple_forward.py. They need matplotlib (and
example005 PyAbel), which a checkout provides as the examples dependency group:
uv run --group examples python examples/example000_simple_forward.py
Development
uv sync # builds the extensions into .venv (editable install)
uv run pytest
uv run pre-commit install # ruff and the other hooks on commit, ty on push
After editing a .pyx or .pxd file, rebuild with uv sync --reinstall-package openabel.
Issues
If there are any issues, bugs or feature requests just let me know. As of now there are some gaps in the implementation, e.g. not all transform types are available in all methods, but since the default method vastly outperforms every other method anyway it's not really a pressing issue.
Transform methods
For the default and most important method of openAbel we adapted the Chebyshev interpolation Fast Multipole Method (FMM) as described by Tausch and calculated end corrections specifically for the Abel transform similar to Kapur. If data points outside of the integration interval can be provided these end corrections are arbitrary order stable and we provide coefficients up to 19th order, otherwise it's recommended to use at most 5th order. The FMM leads to a linear O(N) computational complexity algorithm.
In both error and computational complexity there is no better existing method for the intended purpose to my knowledge. I should really stress that there are dozens of publications and methods out there which claim to be fast and/or accurate, but don't get anywhere close to openAbel in those aspects.
For more information see the documentation, in particular the pages on the transform methods and the examples.
Copyright and license
Copyright 2016-2026 Oliver Sebastian Haas.
The code openAbel is published under the GNU GPL version 3. 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.
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.
For more information see the GNU General Public License copy provided in this repository: LICENSE.
Metadata
Release files for openabel 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| openabel-0.7.0.tar.gz | 2.6 MB | Details |
Built distributions (wheels)
Total release size: 45.4 MB
Release files / openabel-0.7.0.tar.gz
| Download URL | openabel-0.7.0.tar.gz |
|---|---|
| Size | 2.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5de00a716345b397c165ad0a19b6f69d4b06e7aaf9d23b5319a24f1bfd19cdae
|
|
BLAKE2b-256 checksum How to use checksums |
fb97762ea08f4aff5fdc92c17382686e9cad5034f6f2825a6d4eb92ece8fe341
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / openabel-0.7.0-cp314-cp314t-musllinux_1_2_x86_64.whl
| Download URL | openabel-0.7.0-cp314-cp314t-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
bd0a460c32f52b38fdcd2ae412bd9ce6b4c15dbe30b57ed42c117525e4ce19b8
|
|
BLAKE2b-256 checksum How to use checksums |
4ff210cc7b92f88afd35873f09ad8471f36689c6c07ae4d983a7cf2d3b4dd19d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / openabel-0.7.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | openabel-0.7.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
4acb730346787443796578ff8e7781c2f155982a92487b64c20f14e9872073c0
|
|
BLAKE2b-256 checksum How to use checksums |
0ab7891e89713118e703c525de5ef49658eea69a5cae11c6a44826536d068645
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / openabel-0.7.0-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | openabel-0.7.0-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
c2ed71f5eb7f8db322826660c69cd8d7d10ee7126e35f84ce03b52473cb5af19
|
|
BLAKE2b-256 checksum How to use checksums |
7bf4e2b3128998e4c1ec816b0d75716d9b1b598dc5f17154a6bb2b230b25ac7c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / openabel-0.7.0-cp314-cp314-musllinux_1_2_x86_64.whl
| Download URL | openabel-0.7.0-cp314-cp314-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.14 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
de077ffb47a051e5c171b52d5ad30c9503c7d21e30f1e9a48ea552e0e6caa664
|
|
BLAKE2b-256 checksum How to use checksums |
872bb15a54d5701e9a24a61a6f5f6e1b21bb3d3af6fa278d9e0e95319b72f217
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / openabel-0.7.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | openabel-0.7.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
cfa67c600f81f78f6993e95eb033c07c1674c6b945b2ddd604b50141a0e6a53e
|
|
BLAKE2b-256 checksum How to use checksums |
a82f8d185477a7b1b7c8148c15e1c4988d9d5481be2ae5029301c7abd8952a37
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / openabel-0.7.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | openabel-0.7.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
72eb86ec31febc462a07a943c4dd446ef257d46e3c8dd06dd5665551778fc96c
|
|
BLAKE2b-256 checksum How to use checksums |
71a49343d40b76abbd42c8d468380884522ce060cc600acdb6530640eb8d8289
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / openabel-0.7.0-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | openabel-0.7.0-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
73f0c2cdb9cb4907e1010c09de581c288b6003caf795cb944e0870f7346effdc
|
|
BLAKE2b-256 checksum How to use checksums |
376622bda3a10faea85bc345dc23d382ae144fb89b1a43bdb449b3dd915179d6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / openabel-0.7.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | openabel-0.7.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
6e18c64b5724b71125dc6082e2cb2de8c4c831ba91a5db8bbab07f94c71bd1d4
|
|
BLAKE2b-256 checksum How to use checksums |
5701846238419c1670d0c8f6d620d3458763b116d4788e0342447bc03d4e3134
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / openabel-0.7.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | openabel-0.7.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
9203d9d3a2143f797ab8ba0eafdc0aec7db7c22c419f954b5d6322eb854c026a
|
|
BLAKE2b-256 checksum How to use checksums |
40ad3acb7577d8574cc91b4cb1db38437ebfdbe6d862bd74b94cb158fc2774ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / openabel-0.7.0-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | openabel-0.7.0-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
b44a7c8b2ed7be9f8c531637bffefabc5a25578cf8b538f8de8f91d7970180c3
|
|
BLAKE2b-256 checksum How to use checksums |
992d51b20919a94f1b35fbf5be005155f5f0be0920ab475cc0fbf3a04476aa85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / openabel-0.7.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | openabel-0.7.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
faa088b0b0a4ee72f29156f0513cb0f142a8ea85444e99932a4b66b782283263
|
|
BLAKE2b-256 checksum How to use checksums |
7b60511a54740e50be74d3db89acc2b226e5ad1861bea4d7eab2a1f714b3ea9e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / openabel-0.7.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | openabel-0.7.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a601e88d01c2ef799be0ded6eda24bd7ea9599472ddee78c8193db42d05db5e0
|
|
BLAKE2b-256 checksum How to use checksums |
0f7c03da6de480d03236605802220f3480105db8c03e5889dfa2841b3388dccb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency log