ntsa.tools
The primitives — one module per job; every function is re-exported at the package
top level, so from ntsa.tools import delay_embed always works. The higher-level
analyses built on these live one level up: ntsa.classification
and ntsa.bifurcation.
At a glance
| Module | What it does |
|---|---|
runners |
Fresh model instances (respawn) and long integrations past the transient (run_long). |
embedding |
Delay embeddings and lag/dimension selection (AMI, FNN). |
maps |
Return maps, Poincaré sections, peak-based transient/period detection. |
geometry |
Attractor geometry from pairwise distances: recurrence matrices, classical MDS, correlation dimension. |
statistics |
Power spectral density, autocorrelation, summary moments. |
lyapunov |
Lyapunov exponents: Benettin QR spectrum, leading exponent, Kaplan–Yorke, data-only Rosenstein. |
Data-driven vs model-based
| Needs | Functions |
|---|---|
| Data only (raw arrays) | Everything in embedding, maps, geometry, and statistics, plus rosenstein_lyapunov — they take a scalar series x or a trajectory Y, so they work on measurements with no equations. This is what ntsa.data.DataSeries builds on, and ntsa.classification is data-driven too. |
| Model equations | respawn and run_long (runners) and the rest of lyapunov — they instantiate and integrate a model implementing the protocol. So does ntsa.bifurcation (plot_bifurcation excepted, which just plots sweep output). |
classify_regime accepts optional lam1/exponents evidence, which can come from
the model-based lyapunov estimators or the data-only Rosenstein one.