pyunicorn: Unified Complex Network and Recurrence Analysis Toolbox

repository·main·Indexed 42 days ago

https://github.com/pik-copan/pyunicorn

An object-oriented Python package for advanced analysis and modeling of complex networks, time series, and functional/recurrence networks. Version 1.0.0 includes specialized subpackages for climate network construction, recurrence plots, Recurrence Quantification Analysis (RQA), visibility graph analysis, and event series synchronization.

Tokens
32.1K
Snippets
129
Records
180
Agent score
53%

What's inside pyunicorn

  1. Overview of pyunicorn subpackages

    main

    The pyunicorn library provides specialized tools for different types of network analysis and data modeling across several subpackages:

    • core: General network analysis and modeling.
    • climate: Construction and analysis of climate networks and related climate data analysis.
    • timeseries: Recurrence plots, recurrence networks, multivariate extensions, visibility graph analysis of time series, and time series surrogates for significance testing.
    • funcnet: Construction and analysis of general functional networks.
    • eventseries: Analysis of event series.
    • utils: Parallelization (including utils.mpi), interactive network navigator, and various helpers.
  2. Use the geo_network module for spatially embedded complex networks

    main
    The pyunicorn.core.geo_network module provides tools for analyzing spatially embedded complex networks, handling multivariate data, and generating time series surrogates. It is designed for research involving networks where nodes have spatial coordinates and data evolves over time or across multiple variables.
  3. Use recurrence network analysis in pyunicorn.timeseries

    main
    The pyunicorn.timeseries.recurrence_network module provides tools for analyzing time series data through recurrence plots, Recurrence Quantification Analysis (RQA) measures, and recurrence network analysis. This module is used to characterize the dynamical properties of a system by examining the patterns of recurrence in its state space.
  4. Use pyunicorn.core.geo_grid for spatial network and multivariate analysis

    main
    The pyunicorn.core.geo_grid module provides tools for working with spatially embedded complex networks, multivariate data, and time series surrogates. It is designed for analyzing data that has both spatial and temporal components or complex multivariate structures.
  5. Perform visibility graph analysis

    main

    Visibility graph analysis is an alternative approach to nonlinear time series analysis used to study fractal properties and long-term memory.

    pyunicorn provides unique time-directed measures, such as advanced and retarded degree/clustering, which can be used to design tests for the time-irreversibility (time-reversal asymmetry) of processes.

  6. Analyze general complex networks

    main

    pyunicorn supports standard complex network measures, models, and algorithms. It inherits many capabilities from the igraph package, including:

    • Centralities: degree, closeness, and betweenness centralities.
    • Network Statistics: clustering coefficient, transitivity, and specialized measures like Newman's or Arenas' random walk betweenness.
    • Community Detection: various algorithms for identifying clusters.
    • Network Models: generation of models such as Erdos-Renyi or Barabasi-Albert.
    • Data I/O: reading and saving network data in many common formats.
  7. Importing pyunicorn subpackages

    main

    The pyunicorn package is organized into six subpackages. To access the core and utils.mpi namespaces, you should perform a top-level import of pyunicorn. Most other subpackages (except utils) directly export the classes defined in their respective submodules, allowing for easier access to specific network analysis tools.

    import pyunicorn
    # core and utils.mpi are accessible via the pyunicorn namespace
  8. Perform recurrence quantification and network analysis

    main

    Recurrence analysis is used to study nonlinear systems via univariate or multivariate time series.

    • RQA/RNA: Recurrence Quantification Analysis and Recurrence Network Analysis can classify dynamical regimes and detect regime shifts, transitions, or tipping points.
    • Bivariate Methods: Investigate coupling between two dynamical systems using:
      • Joint recurrence plots/networks
      • Cross recurrence plots
      • Inter-system recurrence networks (can detect directionality of coupling).
    • Applications: Climatology, paleoclimatology, medicine, neuroscience, and economics.