PyPSPLINE is a Python interface to the Fortran spline library PSPLINE.
The routines of the compact
F77 interface are wrapped in Python classes.
Internal documentation of the underlying Fortran routines can be found in the PSPLINE Help
at F77_standard_software --> Compact_Splines .
The use of this package is demonstrated in a few scripts in the demo
folder:
demo/demo_1d_periodic_interp.py
demo/demo_pspline_1d.py
demo/demo_pspline_2d.py
demo/demo_pspline_3d.py
- Python 3 (tested with 3.10.7): http://python.org
- NumPy: http://numpy.org/
A Fortran 90 and a C compiler.
I assume the platform to be UNIX. If you manage to build PSPLINE/pypspline on Windows, let me know.
A minimal subset of PSPLINE required for 1D, 2D and 3D spline interpolation with periodic boundary conditions is included in this repository.
The setup relies on numpy.disttools
as suggested in the f2py
documentation.
This will likely shift to meson
once SciPy and NumPy have migrated as well.
For now, the build and installation process goes as follows:
pip install --user .
The f2py
signature file src/fpspline.pyf
was auto-generated using the included run_f2py.sh
script
and then hand-adjusted to line up with the assumptions made in the original.
For Arch Linux users, a PKGBUILD
is available at aur/PKGBUILD
.
This package was originally created by Alexander Pletzer
and published on SourceForce as pypspline
.
The old PyPSPLINE CVS repository was migrated to this Git repository.
One needs the cvs
and cvs2svn
packages to do this on Arch Linux.
rsync -ai a.cvs.sourceforge.net::cvsroot/pypspline/ cvs2git-pypspline
cd cvs2git-pypspline
cvs2git --blobfile=blob.dat --dumpfile=dump.dat \
--username=pletzer --default-eol=native \
--encoding=utf8 --encoding=latin1 --fallback-encoding=ascii \
.
cd ..
mkdir pypspline
cd pypspline
git init
cat ../cvs2git-pypspline/blob.dat ../cvs2git-pypspline/dump.dat | git fast-import
git remote add origin git@github.com:jonathanschilling/pypspline.git
git checkout
git push origin --mirror
mv pypspline{,_old}
mv pypspline_old/* .
rmdir pypspline_old
rm -r CVSROOT
git add .
git commit -m "one folder less"
git branch --set-upstream-to=origin/master master
git pull
git push