Open-source scientific Python package

Quantify nonlinear instability

pyGDIS implements the Generalized Dynamical Instability Score, a descriptor-based framework that integrates dynamical, geometric, informational, and temporal evidence into a bounded instability score.

Python 3.9+ • MIT License • Version 1.0.0

$ python -m pip install pygdis

from gdis import GDIS

model = GDIS()

result = model.fit_transform(
    trajectories,
    parameters,
)

print(result.to_dataframe())

A unified representation of nonlinear instability

Conventional nonlinear-dynamics measures often quantify one manifestation of instability. GDIS combines complementary physical descriptors while preserving the distinct roles of sustained instability and localized transition dynamics.

0–1

Bounded score

Maps the generalized instability potential to a common dimensionless interval satisfying 0 ≤ GDIS < 1.

Transition aware

Captures localized dynamical reorganization near critical operating regions through a separate transition functional.

Data driven

Analyze parameter-ordered trajectories from CSV files, including systems whose governing equations are unknown.

Five complementary dynamical descriptors

J Local dynamical sensitivity
S Trajectory stretching
A Attractor expansion
H Nonlinear complexity
T Temporal persistence

A transparent hierarchical construction

01 Descriptors J, S, A, H, and T
02 Normalization Robust scaling and saturation
03 Core measure Weighted geometric aggregation
04 Sustained instability Modulation and Hill saturation
05 Transition functional Localized descriptor variation
06 Instability potential Persistent and localized dynamics
07 GDIS Final bounded instability score
Φ = −ln(1 − Isustained) + λtItransition

Generalized instability potential

GDIS = 1 − e−Φ

Final bounded score, 0 ≤ GDIS < 1

Install pyGDIS in one command

pyGDIS is officially available from the Python Package Index.

python -m pip install pygdis

Analyze observed trajectories without governing equations

Provide a parameter column, a time column, and one or more state variables. pyGDIS groups the observations into parameter-ordered trajectories and computes the complete instability profile.

Expected CSV structure

parameter time x1 x2
0.10 0.00 ... ...
0.10 0.01 ... ...
0.15 0.00 ... ...

Run the analysis

python csv_data_example.py \
  --input my_data.csv \
  --parameter-column parameter \
  --time-column time \
  --state-columns x1 x2

Explore pyGDIS

Install the package, reproduce the benchmark analyses, or apply GDIS to your own nonlinear dynamical data.