Potsdam Institute for Climate Impact Research (PIK)
Interdisciplinary Center for Dynamics of Complex Systems (University of Potsdam)
Cardiovascular Physics Group (Humboldt-Universität zu Berlin)
PIK Logo
TOCSY - Toolboxes for Complex Systems
PIK/ Antique/ Blue
Home Home
ACE - Nonlinear Regression Analysis ACE
Adaptive Filtering Procedure Adaptive Filtering
CoinCalc - Event Coincidence Analysis CoinCalc
COPRA - Constructing Proxy Records From Age Models COPRA
Cross Recurrence Plot Toolbox CRP Toolbox
Commandline Recurrence Plots Commandline RPs
Analyse Coupling of Transient Dynamics Coupling Analysis
Identification of Coupling Direction Coupling Direction
Inner Composition Alignment IOTA
Dynamical Invariants by Recurrence Plots K2
Toolbox for the analysis of non-equidistantly sampled time series NEST
DSProlog DSProlog
PECUZAL PECUZAL
Permutation Entropy PETROPY
pyunicorn ‐ UNIfied COmplex Network and Recurrence aNalysis toolbox pyunicorn
Recurrence flow RECFLOW
Symbolic Dynamics from Recurrence Plots RECGRAM
Recurrence lacunarity RECLAC
Recurrence Plots for MATLAB RP
Recurrence Structure Analysis RSA
Wavelet and Coherence Analysis SOWAS
System Identification Tool System Identification
Time Series Graph and Momentary Information Transfer Estimation TiGraMITe

pyUnicorn - UNIfied COmplex Network and Recurrence aNalysis toolbox

(Python package) | important note for Windows users

logo pyunicorn

pyunicorn

pyunicorn (Uni\ fied Co\ mplex Network and R\ ecurre\ N\ ce analysis toolbox) is a fully object-oriented Python package for the advanced analysis and modeling of complex networks. Above the standard measures of complex network theory such as degree, betweenness and clustering coefficient it provides some uncommon but interesting statistics like Newman's random walk betweenness. pyunicorn features novel node-weighted (node splitting invariant) network statistics as well as measures designed for analyzing networks of interacting/interdependent networks.

Moreover, pyunicorn allows to easily construct networks from uni- and multivariate time series and event data (functional (climate) networks and recurrence networks). This involves linear and nonlinear measures of time series analysis for constructing functional networks from multivariate data (e.g. Pearson correlation, mutual information, event synchronization and event coincidence analysis). pyunicorn also features modern techniques of nonlinear analysis of single and pairs of time series such as recurrence quantification analysis (RQA), recurrence network analysis and visibility graphs.

Reference

Please acknowledge and cite the use of this software and its authors when results are used in publications or published elsewhere. You can use the following reference:

J.F. Donges, J. Heitzig, B. Beronov, M. Wiedermann, J. Runge, Q.-Y. Feng, L. Tupikina, V. Stolbova, R.V. Donner, N. Marwan, H.A. Dijkstra, and J. Kurths, Unified functional network and nonlinear time series analysis for complex systems science: The pyunicorn package, Chaos 25, 113101 (2015), doi:10.1063/1.4934554, <http://dx.doi.org/10.1063/1.4934554> Preprint: arxiv.org:1507.01571 [physics.data-an]. <http://arxiv.org/abs/1507.01571>

Funding

The development of pyunicorn has been supported by various funding sources, notably the German Federal Ministry for Education and Research <https://www.bmbf.de/en/index.html> (projects GOTHAM <http://belmont-gotham.org/> and CoSy-CC2), the Leibniz Association (projects ECONS and DominoES <https://www.pik-potsdam.de/research/projects/activities/dominoes>), the German National Academic Foundation, and the Stordalen Foundation via the Planetary Boundary Research Network (PB.net) among others.

License

pyunicorn is BSD-licensed (3 clause).

Code

Stable releases, Development version

Changelog, Contributions

Documentation

For extensive HTML documentation, jump right to the pyunicorn homepage <http://www.pik-potsdam.de/ donges/pyunicorn/>. Recent PDF versions <http://www.pik-potsdam.de/ donges/pyunicorn/docs/> are also available.

On a local development version, HTML and PDF documentation can be generated using Sphinx:

$> pip install --user .[docs]
$> cd docs; make clean html latexpdf

Dependencies

pyunicorn is implemented in Python 3 and Cython 3. The software is written and tested on Linux and macOS, but it is also in active use on Windows. pyunicorn relies on the following open source or freely available packages, which need to be installed on your machine. For exact dependency information, see setup.cfg.

Required at runtime: - Numpy - Scipy - python-igraph - h5netcdf or netcdf4-python (for Data and NetCDFDictionary)

Optional (used only in certain classes and methods): - PyNGL (for NetCDFDictionary) - Matplotlib - Matplotlib Basemap Toolkit (for drawing maps) - Cartopy (for some plotting features) - mpi4py (for parallelizing costly computations) - Sphinx (for generating documentation)

To install these dependencies, please follow the instructions for your system's package manager or consult the libraries' homepages. An easy way to go may be a Python distribution like Anaconda that already includes many libraries.

Installation

Before installing pyunicorn itself, we recommend to make sure that the required dependencies are installed using your preferred installation method for Python libraries. Afterwards, the package can be installed in the standard way from the Python Package Index (PyPI).

Linux, macOS

With the pip package manager:

$> pip install pyunicorn
    

On Fedora OS, use:

$> dnf install python3-pyunicorn

Windows

First follow the instructions for installing the latest version of the Microsoft C++ Build Tools in order to be able to compile the Cython modules, and then:

$> pip install pyunicorn

Development version

To use a newer version of pyunicorn than the latest official release on PyPI, download the source code from the Github repository and, instead of the above, execute:

$> pip install -e .

Test suite

Before committing changes or opening a pull request (PR) to the code base, please make sure that all tests pass. The test suite is managed by tox <http://tox.readthedocs.io/> and configured to use system-wide packages when available. Install the test dependencies as follows:

$> pip install .[testing]

The test suite can be run from anywhere in the project tree by issuing:

$> tox

To display the defined test environments and target them individually:

$> tox -l
$> tox -e style,lint,test,docs

To test individual files:

$> flake8 src/pyunicorn/core/network.py     # style check
$> pylint src/pyunicorn/core/network.py     # static code analysis
$> pytest tests/test_core/TestNetwork.py    # unit tests

Mailing list

Not implemented yet.


References

  • J. F. Donges, J. Heitzig, B. Beronov, M. Wiedermann, J. Runge, Q.-Y. Feng, L. Tupikina, V. Stolbova, R.V. Donner, N. Marwan, H. A. Dijkstra, J. Kurths: Unified functional network and nonlinear time series analysis for complex systems science: The pyunicorn package, Chaos, 25, 113101, 2015, doi:10.1063/1.4934554

Software

available at GitHub


Note for Windows users

The current pyunicorn version is not running on MS Windows. However, there is a workaround by installing a special C++ compiler (MinGW GCC) that is correctly paired with Python using Anaconda (thanks to Nikita Frolov for this workaround!):

  1. Install the C++ compiler following the instructions at https://pystan.readthedocs.io/en/latest/windows.html, Section "Installing C++ Compiler".
  2. Next, download the modified installer (wheel) file: pyunicorn-0.6.1-cp37-cp37m-win_amd64.whl.
  3. Install pyunicorn by pip install pyunicorn-0.6.1-cp37-cp37m-win_amd64.whl

Authors

  • Jonathan Donges
  • Jobst Heitzig
  • Jakob Runge
  • Alexander Radebach
  • Aljoscha Rheinwalt
  • Marc Wiedermann
  • Hannes Kutza
  • Hanna Schultz
  • Alraune Zech
  • Jan Feldhoff
  • Boyan Beronov
  • Paul Schultz
  • Stefan Schinkel

© 2004-2023 SOME RIGHTS RESERVED
University of Potsdam, Interdisciplinary Center for Dynamics of Complex Systems, Germany
Potsdam Institute for Climate Impact Research, Complexity Science, Germany

This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Germany License.
Imprint, Data policy, Disclaimer, Accessibility statement

Please respect the copyrights! The content is protected by the Creative Commons License. If you use the provided programmes, text or figures, you have to refer to the given publications and this web site (tocsy.pik-potsdam.de) as well.

@MEMBER OF PROJECT HONEY POT
Spam Harvester Protection Network
provided by Unspam