Riemannian Regime Monitor

Detecting climate regime transitions using geodesic distance on the SPD covariance manifold GL+(d)/SO(d). 12 NOAA indices tracked over 68 years.

Paper Submitted — Journal of Climate (JCLI-S-26-00229)

Riemannian fingerprinting detects anthropogenic, volcanic, and solar forcings at p<0.01. Euclidean methods fail (p=0.098–0.486).

Why Riemannian Geometry?

The Problem

Climate regimes (ENSO, PDO, AMO) are defined by shifts in the correlation structure between indices — not just changes in individual values. Standard methods (thresholding Niño3.4, PCA) miss structural shifts and can’t distinguish event types.

Covariance matrices live on a curved manifold, not in flat Euclidean space. Euclidean distance between covariances is distorted and scale-dependent.

The Geometric Approach

The space of d×d covariance matrices is the symmetric space GL+(d)/SO(d), equipped with the affine-invariant (DeWitt) metric. The geodesic distance:

d(A, B) = ||log(A−1/2 B A−1/2)||F

is affine-invariant: a 2× variance increase is equally detectable at any base level. By tracking this distance across rolling 6-year covariance windows of 12 climate indices, we detect regime transitions with geometric sensitivity.

68-Year Validation (1956–2023)

Tested against all major ENSO events, volcanic eruptions, and decadal oscillation shifts.

Regime Detection

Interactive visualization of geodesic distances, manifold embedding, correlation dynamics, and V+/V decomposition.

Geodesic Distance Timeline

Manifold Embedding (PGA)

Correlation Structure

V+ / V Decomposition

Detected Transitions

DateDistanceσTypeEvent

12 Climate Indices

Monthly anomaly data from NOAA, spanning tropical, oceanic, atmospheric, and global teleconnections.

Core ENSO (5)

Niño 3.4, SOI, Niño 1+2, Niño 3, Niño 4

Track tropical Pacific SST anomalies across four overlapping regions plus the Southern Oscillation pressure dipole.

Oceanic (3)

PDO, AMO, DMI (Indian Ocean Dipole)

Decadal oscillations in the Pacific, Atlantic, and Indian Oceans. PDO and AMO modulate ENSO teleconnections.

Atmospheric (4)

NAO, PNA, AO (Arctic Oscillation), QBO

Pressure patterns governing mid-latitude weather, Arctic-tropical coupling, and stratospheric quasi-biennial oscillation.

Global (1)

Global Mean Temperature Anomaly

Integrates volcanic forcing, greenhouse trend, and internal variability. Available in the 13D configuration.

3D Climate Globe

Watch SST anomaly patterns evolve on a rotating globe with teleconnection arcs. Before/after comparison of regime transitions.

How It Works

Rolling Window

72-month sliding window over 12 monthly climate indices

SPD Covariance

12×12 shrunk covariance matrix (Ledoit-Wolf, λ=0.1)

Geodesic Distance

Affine-invariant distance on GL+(12)/SO(12)

Adaptive Threshold

Rolling μ + 2σ with 120-month lookback

Event Matching

Cross-reference with ENSO, volcanic, PDO, AMO catalogs

V+/V Fingerprint

Volume vs shape decomposition classifies event type

omni_toolkit Usage

Open source. pip install, detect regimes, build dashboards.

Python
from omni_toolkit.applications.climate_analysis import (
    ClimateRegimeDetector, ClimateDataLoader, VDecomposition
)
from omni_toolkit.applications.streaming_spd import ClimateMonitor

# Load data (CSV, NOAA API, or synthetic)
data = ClimateDataLoader.generate_synthetic(T=816, d=12)

# Detect regime transitions on SPD(12)
detector = ClimateRegimeDetector(window=72, threshold=2.0)
results = detector.detect(data)
detector.validate(results)

# V+/V- fingerprinting
vd = VDecomposition(results)
fingerprints = vd.fingerprint_analysis()

# Real-time streaming monitor
monitor = ClimateMonitor(window=72, threshold=2.0)
monitor.warm_up(data)
status = monitor.ingest_month(new_values, 2024, 3)
if status.is_alert:
    print(f"Regime transition: {status.sigma_above:.1f}σ")