Skip to main content

splinebox

A Python package for fitting splines. Developed by the EPFL Center for Imaging as part of a collaboration with the Uhlmann Group at EMBL-EBI in Feb 2024.

Documentation Status License BSD-3 PyPI Python Version tests codecov DOI

Features

  • Flexible spline fitting for various applications.
  • Support for many spline types in any dimensionality.
  • High-performance implementation in Python.
  • Extensive documentation with examples

Installation

You can install splinebox via pip:

pip install splinebox

Usage

Here is a minimal example of a cubic B-spline in 2D with 3 knots.

import splinebox
import numpy as np
import matplotlib.pyplot as plt

n_knots = 4
spline = splinebox.spline_curves.Spline(M=n_knots, basis_function=splinebox.basis_functions.B3(), closed=True)
spline.knots = np.array([[1, 2], [3, 2], [4, 3], [1, 1]])

t = np.linspace(0, n_knots, 100)
vals = spline(t, derivative=0)

plt.scatter(spline.knots[:, 0], spline.knots[:, 1])
plt.plot(vals[:, 0], vals[:, 1])
plt.show()

Support

If you encounter any problems, please file an issue describing the issue and include a minimal example to reproduce the issue.

Contributing

We welcome contributions! Before you submit a pull request, please ensure that the tests are passing. You can run the tests with pytest. If you are unsure how to implement something, feel free to open an issue to discuss.

Citing splinebox

If you use splinebox in the context of scientific publication, please cite it as follows. Note that you will have to fill in the version yourself. If you are unsure what version you are running, you can find out by running

import splinebox
print(splinebox.__version__)

BibTeX:

@misc{splinebox,
  author = {Aymanns, Florian and Andò, Edward and Uhlmann, Virginie},
  title = {{S}pline{B}ox},
  url = {https://pypi.org/project/splinebox/},
  doi = {10.5281/zenodo.13358354},
  note = {{V}ersion V.V.Vb1},
  year = 2024,
}

License

This is an open source project licensed under the BSD-3-Clause License.

Metadata

Release files for splinebox 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for splinebox 1.1.0
File Size Uploaded
splinebox-1.1.0.tar.gz 1.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for splinebox 1.1.0
File Interpreter ABI Platform
splinebox-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.7 MB

Release files / splinebox-1.1.0.tar.gz

Download URL splinebox-1.1.0.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
ff6fc15c77d3336e13842ef50a18f3f9f7ed029144254248b866f9ea4eabc019
BLAKE2b-256 checksum
How to use checksums
09f33e02db8a909ef084c7711bf6fcb466f524b3213cb0027f121cec95fe2dc8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / splinebox-1.1.0-py3-none-any.whl

Download URL splinebox-1.1.0-py3-none-any.whl
Size 44.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d7b055caccfac302da2e46ee974722b2ddaed8593fab84e7e6846cd377ca6346
BLAKE2b-256 checksum
How to use checksums
8ba849b06c863e583cbc76885057fa9ed1f8c2d6439c3faf347e040916686a6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page