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. Documentation is available at pyEDM.
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 Mac OSX and Windows platforms are supported with prebuilt binary distributions and can be installed using the Python pip module. The module is located at pypi.org/project/pyEDM.
Installation can be executed as: 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 is required to first build the cppEDM library on their machine, and then install the Python package using pip. On OSX and Linux this requires g++, on Windows, 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 Eigen C++ Template Library is required to build cppEDM. It is assumed that the Eigen
directory is available in the compiler INCLUDE
path. If not, you can add the directory to the CFLAGS -I
option in the makefile, appropriately define the INCLUDE
environment variable, or, override the make command line with CFLAGS=
to specify the location.
OSX and Linux
- Download pyEDM:
git clone https://github.com/SugiharaLab/pyEDM
- Build cppEDM library:
cd pyEDM/cppEDM/src; make
- Build and install package:
cd ../..; python -m pip install . --user --trusted-host pypi.org
Windows
- Download pyEDM:
git clone https://github.com/SugiharaLab/pyEDM
- Build cppEDM library:
cd pyEDM\cppEDM\src; nmake /f makefile.windows
- Build and install package:
cd ..\..; python -m pip install . --user --trusted-host pypi.org
Usage
Example usage at the python prompt:
>>> import EDM
>>> EDM.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
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 Distributions
Built Distributions
Hashes for pyEDM-0.1.4-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d6c786c3689b26299339997b1d66b0ae35a5e33559be4dbe7e658d3a594923a |
|
MD5 | 20e7ecbf8e901322b8e4338bf718fe37 |
|
BLAKE2b-256 | f3930ec6b8cb3f6f2d2fe6e69634410be7b7fc1c0c0897f16d9628773fb227f8 |
Hashes for pyEDM-0.1.4-cp37-cp37m-macosx_10_13_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86855f77fa88d2e30c9db7d9048ef7774a07fb07e6e158a02bbfb332aee05612 |
|
MD5 | 5fe3dd2596160790caf361fab1f5b196 |
|
BLAKE2b-256 | aed4d8a11bd65ed5d7988311f38ee65e60dedff4a4e374556924369db1a67af3 |
Hashes for pyEDM-0.1.4-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ecc82f134a25f7e5a882b4dc8c9158d697247adc051f2b9401d6da05b177b58 |
|
MD5 | 4501944b7c95d037ffcfe254d87a0073 |
|
BLAKE2b-256 | 80f223782c266709ce0a9bcbc17fcb3c0c44161b875cd1cb8119734580f10b51 |
Hashes for pyEDM-0.1.4-cp36-cp36m-macosx_10_13_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 682252381f5b47cda145127dca071d62b89a09338b9646e63f25bc2a281771fd |
|
MD5 | 4668e6a7cd76bea3cd90489b8e0b95a5 |
|
BLAKE2b-256 | ef0ba2f5ce4b51fb8f4028b7b9bd08cd4f3c517cb6f757d1bce28af7043b196c |
Hashes for pyEDM-0.1.4-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d74d03e6f1f6fbb0954948ff558fcd9061a955416e370e4b0e6298e88aead1eb |
|
MD5 | db3befca1ae3b22a6692f4785848e415 |
|
BLAKE2b-256 | 5d0c1844be8c37f42ff838a85f94e295b43b7e5b9f4296684960c222aaba31f0 |
Hashes for pyEDM-0.1.4-cp35-cp35m-macosx_10_13_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee53431e205fadfd2be46f2bdfdc1b366115cc011a233bc17b1d78bfb53b50d8 |
|
MD5 | fc2b737eadfb85088f4529d40f43377c |
|
BLAKE2b-256 | d57493d5ed6fab7de0c7e58c1307ea90d5cf1ba1e5cc921863d813c08f3ac38d |
Hashes for pyEDM-0.1.4-cp34-cp34m-macosx_10_13_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc3683de45a93b28b821ddbf39b21e27d7f19eccba8a5ade71a45a100b6e8b0b |
|
MD5 | 61e5fa26f6a4e5a9241a139979e66be9 |
|
BLAKE2b-256 | 7488d2716a74a2285b7f9fe4598422606abf4e4d6c2c8b313c96d163ab79d302 |
Hashes for pyEDM-0.1.4-cp27-cp27m-macosx_10_13_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 064de43a292dea3ce362c21f57b7def20e2054335fa63ac05478392a9b337378 |
|
MD5 | 47c3dc1d9d16492d4e83eb7231ff3b76 |
|
BLAKE2b-256 | 22d0174f7e76abdd925c6fe5b14ee9c82c7e82abcb197c20b4a8a6fb40bef762 |