Skip to main content

Python wrapper for cppEDM using pybind11

Project description

Empirical Dynamic Modeling (EDM)


This package provides a Python/Pandas DataFrame interface to the cppEDM library for EDM analysis. Introduction and documentation are are avilable online, or in the package API docs.

Functionality includes:

  • Simplex projection (Sugihara and May 1990)
  • Sequential Locally Weighted Global Linear Maps (S-map) (Sugihara 1994)
  • Multivariate embeddings (Dixon et. al. 1999)
  • Convergent cross mapping (Sugihara et. al. 2012)
  • Multiview embedding (Ye and Sugihara 2016)

Installation

Python Package Index (PyPI)

Certain MacOS, Linux and Windows platforms are supported with prebuilt binary distributions installed from PyPI pyEDM using the Python pip module.

Command line using the Python pip module: python -m pip install pyEDM

Manual Install

Unfortunately, we do not have the resources to provide pre-built binary distributions for all computer platforms. In this case the user can build the cppEDM library on their machine, then install the Python package using pip. On OSX and Linux this requires g++. On Windows, mingw and Microsoft Visual Studio Compiler (MSVC) which can be obtained from Build Tools for Visual Studio 2019. Only the Windows SDK is needed.

Note that the LAPACK library is required to build cppEDM.

OSX and Linux

  1. Download pyEDM: git clone https://github.com/SugiharaLab/pyEDM
  2. Build cppEDM library: cd pyEDM/cppEDM/src; make
  3. Build and install package: cd ../..; python -m pip install . --user --trusted-host pypi.org

Windows

  1. We do not have resources to maintain windows build support. These suggestions may be useful.
  2. Requires mingw installation.
  3. Requires gfortran libraries.
  4. Download pyEDM: git clone https://github.com/SugiharaLab/pyEDM
  5. Build cppEDM library: cd pyEDM\cppEDM\src; make
  6. Adjust paths to find gfortran and openblas libraries (pyEDM/pyEDM/etc/windows/libopenblas.a). You may need to rename libEDM.a to EDM.lib, and openblas.a to openblas.lib.
  7. Build and install package in pyEDM\: python -m pip install . --user --trusted-host pypi.org

Usage

Example usage at the python prompt:

>>> import pyEDM
>>> pyEDM.Examples()

References

Sugihara G. and May R. 1990. Nonlinear forecasting as a way of distinguishing chaos from measurement error in time series. Nature, 344:734–741.

Sugihara G. 1994. Nonlinear forecasting for the classification of natural time series. Philosophical Transactions: Physical Sciences and Engineering, 348 (1688) : 477–495.

Dixon, P. A., M. Milicich, and G. Sugihara, 1999. Episodic fluctuations in larval supply. Science 283:1528–1530.

Sugihara G., May R., Ye H., Hsieh C., Deyle E., Fogarty M., Munch S., 2012. Detecting Causality in Complex Ecosystems. Science 338:496-500.

Ye H., and G. Sugihara, 2016. Information leverage in interconnected ecosystems: Overcoming the curse of dimensionality. Science 353:922–925.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

pyEDM-1.8.0.0-cp38-cp38-win_amd64.whl (4.7 MB view hashes)

Uploaded CPython 3.8 Windows x86-64

pyEDM-1.8.0.0-cp38-cp38-manylinux2010_x86_64.whl (5.2 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

pyEDM-1.8.0.0-cp38-cp38-manylinux2010_i686.whl (4.8 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

pyEDM-1.8.0.0-cp38-cp38-macosx_10_14_x86_64.whl (372.6 kB view hashes)

Uploaded CPython 3.8 macOS 10.14+ x86-64

pyEDM-1.8.0.0-cp37-cp37m-win_amd64.whl (4.7 MB view hashes)

Uploaded CPython 3.7m Windows x86-64

pyEDM-1.8.0.0-cp37-cp37m-manylinux2010_x86_64.whl (5.3 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

pyEDM-1.8.0.0-cp37-cp37m-manylinux2010_i686.whl (4.9 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

pyEDM-1.8.0.0-cp37-cp37m-macosx_10_14_x86_64.whl (369.6 kB view hashes)

Uploaded CPython 3.7m macOS 10.14+ x86-64

pyEDM-1.8.0.0-cp36-cp36m-win_amd64.whl (4.7 MB view hashes)

Uploaded CPython 3.6m Windows x86-64

pyEDM-1.8.0.0-cp36-cp36m-manylinux2010_x86_64.whl (5.3 MB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

pyEDM-1.8.0.0-cp36-cp36m-manylinux2010_i686.whl (4.9 MB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.12+ i686

pyEDM-1.8.0.0-cp36-cp36m-macosx_10_14_x86_64.whl (369.6 kB view hashes)

Uploaded CPython 3.6m macOS 10.14+ x86-64

pyEDM-1.8.0.0-cp35-cp35m-macosx_10_14_x86_64.whl (369.6 kB view hashes)

Uploaded CPython 3.5m macOS 10.14+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page