Python interface to harminv
Project description
This is a python interface to harminv, a library for performing harmonic inversion on a signal.
Requirements:
BLAS & LAPACK
libharminv-dev
numpy
Installation:
Make sure that you have the requirements above, then
pip install pharminv
See below for help with installing harminv.
Usage:
harminv.invert contains the basic functionality of the harminv tool. This function should remain stable but the API elsewhere is subject to change.
import numpy as np
import harminv
time = np.linspace(0, 1, 1000)
signal = np.cos(2 * np.pi * time * 10) + np.cos(2 * np.pi * time * 20)
inversion = harminv.invert(signal, fmin=1, fmax=100, dt=0.001)
inversion.freq # mode frequencies
inversion.decay # decay rates
inversion.Q # Q factor
inversion.amplitudes # absolute amplitudes
inversion.phase # phase shift
License:
harminv was written by Steven G. Johnson and is licensed under the GNU GPLv2+, copyright 2005 by the Massachusetts Institute of Technology.
This python interface to harminv is licensed under the standard BSD 3-clause license.
Installing libharminv
On Debian / Ubuntu this is available with
sudo apt-get install libharminv-dev
Otherwise you’ll need to build it yourself. Download the sources from here.
You need to install libharminv somewhere that python can find it at runtime. This should happen by default (installs to /usr/local), but you may need to change this to /usr:
PREFIX=/usr
Now install with the following:
./configure --with-pic --enable-shared --prefix=$PREFIX
make
make install
User installation
If you don’t have admin rights on your system you’ll need to install to a directory that you have access to. Here I’ll assume that is $HOME/.local.
Here is how I do it (using Anaconda python with the mkl libraries on CentOS 5):
./configure --with-pic --enable-shared --prefix=$HOME/.local --with-blas=$HOME/.local/lib/libopenblas.so
make
make install
Note that I’ve linked to openblas. I installed this separately. If you have BLAS/LAPACK installed on your system elsewhere you might not need to do this. There might be a way to link against Anaconda mkl libraries but I don’t know what it is.
Now you need to set LD_LIBRARY_PATH to include your directory. I have this in my bashrc:
export LD_LIBRARY_PATH=$HOME/.local
Finally, when you install pharminv, you need to tell pip where to look for your installation of libharminv:
CFLAGS="-I$HOME/.local/include -L$HOME/.local/lib" pip install pharminv
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file pharminv-0.4.tar.gz
.
File metadata
- Download URL: pharminv-0.4.tar.gz
- Upload date:
- Size: 55.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0230beb9152fa433f42ededcf2adda2381ce15bd5909e74d24b762bbdc859e42 |
|
MD5 | b1e7e68d40cd46a3e300caa3bc2c8f58 |
|
BLAKE2b-256 | d02002f3fab488642dbdc95e15d17b617311c103177ef6b2fe2b3f8f633b8c99 |