Data Library¶
Overview¶
ORC includes a library of built-in dynamical systems for benchmarking and experimentation. All systems are integrated using Diffrax ODE/PDE solvers and return JAX arrays ready for use with ORC models.
Each generator returns a tuple (U, t) where U has shape (time_steps, state_dim) and t has shape (time_steps,).
Available Systems¶
Low-Dimensional Chaotic Systems¶
orc.data.lorenz63 — The classic 3D Lorenz attractor. A standard benchmark for chaotic time series forecasting.
orc.data.rossler — The 3D Rössler attractor, exhibiting a simpler single-scroll chaotic behavior.
orc.data.colpitts — The Colpitts oscillator, a chaotic electronic circuit model.
orc.data.sakaraya — The Sakaraya system, a 3D autonomous chaotic flow.
orc.data.double_pendulum — The double pendulum, a classic example of mechanical chaos.
Hyperchaotic Systems¶
orc.data.hyper_lorenz63 — A 4D hyperchaotic extension of the Lorenz system with two positive Lyapunov exponents.
orc.data.hyper_xu — The 4D Xu hyperchaotic system.
High-Dimensional Systems¶
orc.data.lorenz96 — The Lorenz-96 model, a configurable high-dimensional system commonly used in weather prediction research.
Spatiotemporal Systems (PDEs)¶
orc.data.KS_1D — The 1D Kuramoto-Sivashinsky equation, a PDE exhibiting spatiotemporal chaos. Useful for testing parallel reservoir architectures.
Usage with ORC Models¶
All data generators produce output in the standard format expected by ORC training functions:
import orc
# Generate data
U, t = orc.data.lorenz63(tN=100, dt=0.01)
# Train-test split
split_idx = int(0.8 * U.shape[0])
U_train, U_test = U[:split_idx], U[split_idx:]
# Use directly with ORC models
esn = orc.forecaster.ESNForecaster(data_dim=U.shape[1], res_dim=500, seed=42)
esn, R = orc.forecaster.train_ESNForecaster(esn, U_train)
For more detailed examples, see the Data Library notebook.