Skip to main content

Simulation and analysis of multifractal fields

Project description

scaleinvariance

FIF 2D Example

Simulation and analysis tools for scale-invariant processes and multifractal fields.

Documentation

Current Features

Hurst Exponent Estimation

  • Haar fluctuation method: haar_fluctuation_hurst()
  • Structure function method: structure_function_hurst()
  • Spectral method: spectral_hurst()

All methods support multi-dimensional arrays, averaging over dimensions that are orthogonal to the specified dimension along which spectra are calculated (specified by axis. Plotting data and fit line may be returned with return_fit=True.

Simulation

pytorch is leveraged for parallel and efficient simulation.

View example simulation outputs here

  • 1D fractionally integrated flux (FIF): FIF_1D() - Multifractal cascade simulation; causal/acausal
  • 2D fractionally integrated flux (FIF): FIF_2D() - Isotropic 2D multifractals (Example shown above)
  • 1D fractional Brownian motion: acausal_fBm_1D() - 1D acausal fBm fields
  • 2D fractional Brownian motion: acausal_fBm_2D() - Isotropic 2D fBm fields

Installation

pip install scaleinvariance

Basic Usage

from scaleinvariance import acausal_fBm_1D, acausal_fBm_2D, FIF_1D, haar_fluctuation_hurst

# Generate 1D fractional Brownian motion
fBm_1d = acausal_fBm_1D(1024, H=0.7)

# Generate 2D fractional Brownian motion  
fBm_2d = acausal_fBm_2D((512, 1024), H=0.7)

# Generate multifractal FIF timeseries
fif = FIF_1D(2**16, alpha=1.8, C1=0.1, H=0.3)

# Estimate Hurst exponent
H_est, H_err = haar_fluctuation_hurst(fBm_1d)
print(f"Estimated H = {H_est:.3f} ± {H_err:.3f}")

Testing

# Test 1D fBm generation and Hurst estimation
python tests/test_acausal_fBm_hurst_estimation.py 0.7

# Test 2D fBm with isotropy validation
python tests/test_2d_fbm.py 0.7

FIF validation scripts, which test scaling over multiple ranges of scale, live in tests/automated/ (see test_1D_FIF_hurst.py and test_2D_FIF_hurst.py). They are designed to be run as standalone Python programs, not via pytest, and they generate many large FIF realizations to reach statistical convergence. These scripts are also known to produce some failures, especially near grid scales, because finite-size effects are not fully mitigated by the LS2010 corrections.

Examples

See the examples/ directory for comprehensive demonstrations:

  • fif_comparison_demo.py: Compare Hurst estimation methods on multifractal FIF simulations with different intermittency parameters
  • multi_dataset_haar_analysis.py: Real-world data analysis using Haar fluctuation method

Run examples:

python examples/fif_comparison_demo.py

Data source for LGMR: https://www.ncei.noaa.gov/access/paleo-search/study/33112

Requirements

  • Python ≥ 3.8
  • NumPy, SciPy, PyTorch, Matplotlib

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

scaleinvariance-0.5.0.tar.gz (18.3 kB view details)

Uploaded Source

Built Distribution

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

scaleinvariance-0.5.0-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

File details

Details for the file scaleinvariance-0.5.0.tar.gz.

File metadata

  • Download URL: scaleinvariance-0.5.0.tar.gz
  • Upload date:
  • Size: 18.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.13

File hashes

Hashes for scaleinvariance-0.5.0.tar.gz
Algorithm Hash digest
SHA256 365dfa5edeb8174932c61353f62111d93ecf0f660c18caf34b9541139f02b398
MD5 936a7d5a75fd66a403c6049a0511434f
BLAKE2b-256 062df1deddf7e154f58e6ce2e78e07fa6ee08fc5903409048dac9be51a287836

See more details on using hashes here.

File details

Details for the file scaleinvariance-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for scaleinvariance-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 de317942de3a4579bd1a787dd710bbbb8fec79ebf512f2e65d5b5aa0b3c2c6dd
MD5 d4117eb701c111654d4d9aa8b1b57ac6
BLAKE2b-256 545c993f3ffb2cac545cec2d44f1e23cdb68f3287d8c13844818dec6f6d42b92

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