A SplineCloud client based on SciPy.
Project description
splinecloud-scipy
A Python client for SplineCloud API
The client library is based on SciPy and allows to load data and curves from SplineCloud into your code. Once loaded spline curves can be easily evaluated.
Installation
pip install splinecloud-scipy
Example of loading spline curve
from splinecloud_scipy import load_spline
curve_id = 'spl_K5t56P5bormJ' # take curve ID from the 'API link' dropdown at SplineCloud
spline = load_spline(curve_id)
Evaluating spline curve for a range of x values
import numpy as np
import matplotlib.pyplot as plt
X = np.linspace(0, 20, 100)
Y = [spline.eval(x) for x in X]
plt.plot(X,Y)
plt.grid()
plt.show()
Load data fitted by spline and evaluate fit accuracy
columns, table = spline.load_data()
x_data, y_data = table.T
plt.plot(X,Y)
plt.plot(x_data, y_data, 'o', color="grey")
plt.grid()
plt.xlabel(columns[0])
plt.ylabel(columns[1])
plt.show()
RMSE = spline.fit_accuracy(table, method="RMSE")
print(RMSE)
0.011307453345329156
Example of loading data in your code
from splinecloud_scipy import load_subset
subset_id = 'sbt_nDO4XmmYqeGI' # subset id can be taken from the SplineCloud
columns, table = load_subset(subset_id)
>>> columns
['Throttle (%)',
'Load Currency (A)',
'Pull (g)',
'Power (W)',
'Efficiency (g/W)']
>>> table
array([[5.0000e-01, 6.7600e+00, 3.8500e+02, 1.0871e+02, 3.5420e+00],
[6.0000e-01, 1.0200e+01, 4.9500e+02, 1.6249e+02, 3.0460e+00],
[7.0000e-01, 1.3580e+01, 6.0600e+02, 2.1768e+02, 2.7840e+00],
[8.0000e-01, 1.7390e+01, 6.8700e+02, 2.7140e+02, 2.5510e+00],
[9.0000e-01, 2.1030e+01, 7.4700e+02, 3.2813e+02, 2.2770e+00],
[1.0000e+00, 2.5060e+01, 8.0700e+02, 3.8555e+02, 2.0930e+00]])
These examples are available as notebooks in the project's 'examples' folder.
Important
This library supports BSpline geometry but does not support weighted BSplines (NURBS). If you adjust the weights of the curve control points use another client, that supports NURBS (a link will be provided here soon).
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file splinecloud_scipy-1.2.7.tar.gz.
File metadata
- Download URL: splinecloud_scipy-1.2.7.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
992e061e96298261e6454f7138e9df85dcb3e12408c8c75b985e2b17094c4c14
|
|
| MD5 |
1f946d3d9720f034c58cfbd6c757b9ee
|
|
| BLAKE2b-256 |
293ee217236681f6e8d3faee5841f5053e7882cd78669edb3c991445eeb411a4
|
File details
Details for the file splinecloud_scipy-1.2.7-py3-none-any.whl.
File metadata
- Download URL: splinecloud_scipy-1.2.7-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32f15d3a78e028eabfe72c602bc426c3a8d01a2f1498ce8450145d3b23c2fa87
|
|
| MD5 |
4a6e8f92bca475f2736b150940bfc3c7
|
|
| BLAKE2b-256 |
f524ea09f4f88806651bc02ad7a65ce3611fe5c65d7f9ee516a41e1e4b4b0cdc
|