Skip to main content

A Python package for fractal and complexity analysis of time series.

Project description

pyenfra

Python Package for Environmental Fractal Analysis and Chaos Estimation

Static Badge Static Badge Static Badge Static Badge Static Badge

Official repository: github: pyenfra

Description

pyenfra is a Python library for fractal analysis, modeling and chaos estimation in time-series with the emphasis on environmental datasets. Package contains a suite of fractal and chaos metrics:

  • Hurst exponent for rescaled range,
  • Detrended Fluctuation Analysis (DFA),
  • Multifractality by Generalized Hurst Slope,
  • Wavelet Transform Modulus Maxima (with varying bands and modulus methods),
  • Sample Entropy,
  • Recurrence Quantification Analysis (RQA),
  • Lyapunov exponents.

Installation

pyenfra can be installed using pip or locally by downloading package copy.

pip install:

pip install pyenfra

local:

use repositiory to obtain package copy.

Usage

Below are a couple examples of package usage.

Please refer to examples.py for extended, detailed examples and computation workflows.

import numpy as np
import matplotlib.pyplot as plt

import pyenfra

# Generate White noise sample data
ts_white = np.random.RandomState(0).randn(2000)

# Example: Compute Hurst exponent
h_value = pyenfra.functions.hurst(ts_white, num=30, min_n=10, min_segments=10)

# Example: Interpret Hurst
print(pyenfra.interpreters.interpret_hurst(ts_white, use_confidence_interval=False))

# Example: Plot Hurst climacogram for AR(1)
ax_hurst = pyenfra.plotting.plot_hurst(ts_white, num=30, min_n=10, min_segments=10,
                               figsize=(5,4), scatter_kwargs={'color':'C0'}, line_kwargs={'color':'C1'})
ax_hurst.figure.suptitle("Climacogram: AR(1) Persistent Process")
plt.show()

# Example: Compute Lyapunov Exponent
lyap_val, divergence, times = pyenfra.functions.lyapunov(ts_white, dim=3, tau=1, fs=1.0, max_iter=200, theiler=1)
print(f"Estimated Lyapunov exponent (logistic r=3.99): {lyap_val:.4f}")
print("Interpretation:", pyenfra.interpreters.interpret_lyapunov(lyap_val))

Roadmap

Future works on the package include:

  • HOST model integration.
  • On demand functions.

Contributing

Pull requests are welcome.

For major changes, please open an issue first to discuss implementation or changes.

Acknowledgment

This work was supported by NOAA grant NA19NOS4730207. Funding agency had no impact on work structure or findings.

License

This package is available under MIT license.

Project details


Download files

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

Source Distribution

pyenfra-0.4.0.tar.gz (37.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyenfra-0.4.0-py3-none-any.whl (35.0 kB view details)

Uploaded Python 3

File details

Details for the file pyenfra-0.4.0.tar.gz.

File metadata

  • Download URL: pyenfra-0.4.0.tar.gz
  • Upload date:
  • Size: 37.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.2

File hashes

Hashes for pyenfra-0.4.0.tar.gz
Algorithm Hash digest
SHA256 a6e67128a6d8a295b37dbeb3d45524c44acb4cbf3634b66c4736b0f03de16d37
MD5 ff713ab1854375396515d4a7dd61e120
BLAKE2b-256 c6e3d678ce8041b7f0ab5d6199d93c531592da04de9d88d86e57957b9da308da

See more details on using hashes here.

File details

Details for the file pyenfra-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: pyenfra-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 35.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.2

File hashes

Hashes for pyenfra-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fef0ba65e5a46d4216bfc4c9a2fc79247ad1718cd44da9c1998e57b1a381c4ff
MD5 7afd5f837bdd9b1324987cc813df3e52
BLAKE2b-256 a211842cdf05304fcf2b898195e158d3fa9aab644c5d3cd8c7e37a8bd56a6119

See more details on using hashes here.

Supported by

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