Stealth Warming in the
California Current System

Most climate resilience assessments of Eastern Boundary Upwelling Systems rely on satellite sea-surface temperature, but Ekman upwelling continuously pulls cold deep water to the surface, masking subsurface warmth from space. This project conducts a vertical audit of the California Current using the Argo float array: separating the water column into three thermodynamically distinct layers and applying 3D Gaussian Process Regression (Kriging) to construct continuous, probabilistic ocean heat content fields with explicit uncertainty. The goal is to detect "stealth warming": source water heating transported by the California Undercurrent that has not yet surfaced.

1999–2025 Float Record 3 Depth Layers 0.5°×0.5° Grid California CCS 2015 Baseline
BASELINE RESULTS 2015 single-year pilot; multi-year extension in progress

Argo Profiles to Kriged Heat Fields

Sparse float observations transformed into continuous probabilistic heat maps across three depth layers.

Argo ERDDAP
Float profiles fetched in 5-year chunks from the GDAC ERDDAP endpoint
Layer Filter
Skin (0–100 m) · Source (150–400 m) · Background (500–1000 m)
3D GPR
Matérn-½ × Matérn-½ kernel over lat / lon / time, rolling 10-day windows
Kriged Heat Map
Continuous OHC field with posterior mean and uncertainty per 0.5° cell
Anisotropy Analysis
Lat_Scale / Lon_Scale ratio per window, vertical current fingerprint

What is the upwelling mask?

Ekman upwelling continuously draws cold, dense water from depth to the surface along the California coast. Satellite SST sees this cold plume and registers a "cool" signal, masking significant warming in the source waters below, before they upwell.

Why 3 layers?

Each layer has a distinct physical driver. The Skin (0–100 m) responds to atmospheric forcing. The Source layer (150–400 m) is where the California Undercurrent transports equatorial heat poleward. The Background (500–1000 m) provides the deep baseline for trend isolation.

What is Kriging?

Gaussian Process Regression treats ocean heat content as a random field with a covariance structure defined by a kernel. Fitting the kernel to sparse Argo observations yields a full continuous heat map plus honest uncertainty estimates: probabilistic inference, not just interpolation.

Argo Float Coverage: California Current System

Sparse by design; void ratio quantified before modeling to mask unreliable kriged estimates.

Argo float trajectories across the California Current System, 2015

Argo float trajectories across the California Current System bounding box (lat 30–50°N, lon 215–245°E), 2015.

Sparse by necessity Argo floats are globally distributed; the CCS domain captures tens of active floats per 10-day window, clustered near coastal fronts and the open Pacific. Coverage is uneven but sufficient for GPR given the kernel's uncertainty-aware interpolation.
Void ratio The fraction of 0.5°×0.5° cells with no float observations in a rolling window; cells above the void threshold are masked from kriged output to prevent extrapolation artifacts.
Domain bounds Bounding box defined empirically from the long-term float census (1999–2025): cells with float presence in ≥20 of 26 years anchor the domain, keeping the analysis within the observationally constrained region.
Depth-aware filtering Each profile contributes to a layer only if it reaches the layer's minimum depth. A float descending to 300 m counts toward Skin and Source but not Background.

Baseline Results: California Current System, 2015

Skin layer (0–100 m) kriged OHC map with leave-one-out cross-validation; key model quality metrics across all layers.

GPR-interpolated OHC field for the 0–100m skin layer, California CCS 2015

GPR-interpolated ocean heat content, Skin layer (0–100 m), California Current System, 2015.

Cross-Validation
<5%
RMSRE target, leave-one-out holdout error
Uncertainty Calibration
≈1.0
Std Z-Score, posterior spread vs. true residuals
Source Layer Signal
>1.0
Anisotropy ratio, meridional dominance (CUC fingerprint)
Leave-one-out CV error map showing model skill vs. held-out Argo observations

Leave-one-out cross-validation RMSRE overlay, model skill vs. held-out Argo observations.

Config-Driven Pipeline with Reproducibility Guarantees

Every run is schema-validated, content-addressed, and registered. YAML config to signed manifest in one command.

Config-Driven Runs

Pydantic v2 schema with strict validation (extra="forbid"), a schema_version field, and cross-field validators that prevent parameter aliasing. YAML configs live in configs/<region>/ No script editing needed to run a new configuration.

Immutable Manifests

SHA-256 hash of the canonical config is the run identity. Every manifest captures the git commit SHA, conda environment, hostname, and wall-clock duration at the moment of execution. Written once, never mutated.

Run Registry + Collision Guard

JSONL ledger of all completed runs, queryable by region or kind. The collision detector blocks re-running an identical config before compute is spent; --force-overwrite required to override.

# validate before committing compute
aebus validate configs/california/california_20150101_20151231_res0_5x0_5_t30_0_d150_400_3dmatern_w45.yaml

# run the full GPR pipeline
aebus analyze configs/california/california_20150101_20151231_res0_5x0_5_t30_0_d150_400_3dmatern_w45.yaml

# list all completed Source-layer runs
aebus list --region california --kind analysis

# inspect provenance for any run
aebus show california_20150101_20151231_res0_5x0_5_t30_0_d150_400_3dmatern_w45
54 tests Pydantic v2 schema SHA-256 content addressing JSONL run registry

Vertical Anisotropy Fingerprint: Upwelling Current Signature

The spatial correlation structure of ocean heat content changes with depth in a way that tracks the California Undercurrent.

The GPR kernel's fitted spatial lengthscales reveal a striking vertical contrast. In the Skin layer (0–100 m), the anisotropy ratio (Lat_Scale / Lon_Scale) remains below 1.0 throughout 2015, reflecting zonal structure driven by atmospheric forcing along the coast. In the Source layer (150–400 m), the ratio exceeds 1.0 across January–April and June–August, indicating meridional correlation dominance: heat is organized along the current axis, not across it.

This meridional structure matches the expected flow axis of the California Undercurrent, the poleward subsurface flow that transports warm, saline equatorial water beneath the southward-flowing surface current. The decoupling between Skin (zonal) and Source (meridional) anisotropy is the expected fingerprint of stealth warming transported below the upwelling layer.

Anisotropy Ratio Defined

Lat_Scale / Lon_Scale from the fitted GPR kernel. A ratio <1.0 means the ocean is more correlated east–west (zonal, atmospheric forcing). A ratio >1.0 means north–south correlation dominates (meridional, current-driven). The vertical contrast across layers isolates the current signal from atmospheric forcing.

Anisotropy ratio time series for the Source layer (150–400 m), California CCS 2015

Fitted GPR anisotropy ratio (Lat_Scale / Lon_Scale) per 10-day window, Source layer (150–400 m), California Current System, 2015. Ratio >1.0 indicates meridional correlation dominance consistent with California Undercurrent transport.

Matérn Kernel to Gibbs Kernel

The baseline uses a fixed-lengthscale Matérn kernel. The next step is a spatially adaptive kernel that reduces predictive variance near the shelf break.

v1: Current Baseline results

Matérn-½ × Matérn-½ kernel with a fixed spatial lengthscale across the entire domain
Single lengthscale cannot adapt to sharp spatial structure near the continental shelf break
Predictive variance elevated in low-observation shelf regions
2015 pilot only; Source layer RMSRE 3.05%, multi-year extension pending

v2: In Progress Gibbs kernel

Gibbs kernel replaces the fixed Matérn spatial component: lengthscale l(d) is a learnable sigmoid function of distance to the nearest coastline
Short correlation lengths near the shelf; longer lengths offshore, adapts to the float density gradient across the shelf break
Learnable parameters: shelf inflection point d₀ and sigmoid steepness k, optimized via L-BFGS-B
Goal: lower predictive variance near the shelf break and improve RMSRE in the Source and Background layers