想在 python 环境下调用 pyeemd, 进行 ceemd 分解。

调研发现 pyeemd 仅是 libeemd 项目的 python 封装, 而且是采用动态链接库的形式调用的。而该项目依赖 GSL 科学计算库,且 libeemd 目前只适配了 linux 环境,故选择使用 WSL 进行安装。

主要流程

  1. 安装 GSL
  2. 编译安装 libeemd
  3. 安装 pyeemd

一. 安装 GSL

  1. 源码下载: wget http://mirrors.ustc.edu.cn/gnu/gsl/gsl-2.5.tar.gz
  2. 解压: tar -zxvf gsl-2.5.tar.gz && cd gsl-2.5
  3. 安装: ./configure && make && make install

该步骤也可参考使用 sudo apt-get install libgsl-dev 直接安装

二. 编译安装 libeemd

  1. 源码下载: wget https://bitbucket.org/luukko/libeemd/get/release-1.5.0.zip
  2. 解压: unzip release-1.5.0.zip && cd release-1.5.0
  3. 安装: make && make install

安装完成后, 会生成 libeemd.so 文件,将其保存。

另外,本人已在 WSL ubuntu20.04 环境中编译好了 libeemd.so 动态链接库,有此文件可直接进行步骤3,环境相似的同学可以尝试一下。点击下载

三. 安装 pyeemd

  1. 源码下载: wget https://bitbucket.org/luukko/pyeemd/get/master.zip
  2. 解压: unzip master.zip && cd luukko-pyeemd-bfc6a5873741
  3. 安装: python3 ./setup.py install
  4. libeemd.so 文件拷贝至 site-package目录下: sudo cp pyeemd/libeemd.so /usr/local/lib/python3.8/dist-packages/pyeemd-1.4-py3.8.egg/pyeemd (具体路径与你的系统设置及python版本有关), 保证与 pyeemd.py 文件在同一级目录下, 否则将提示: RuntimeError: Cannot find libeemd C library. Tried directory '/usr/local/lib/python3.8/dist-packages/pyeemd-1.4-py3.8.egg/pyeemd' and ctypes.util.find_library

参考