Skip to content

Findings — 2026-05-09

Consolidated scientific results from notebooks 10–16. Where the May 8 findings doc captured the methodology demo on real GLODAP data (notebook 09), this doc captures the recovery experiments against real ECCO-Darwin v5 output (the actual model whose calibration we differentiate against) plus the architecture upgrade test and its cross-validation.

Track 1 v1.5 closed on local single-GPU hardware. Numbers below are all from executed notebooks merged to main; reproducible by re-running.

1. Carroll-6 recovery against real Darwin v5 output works across three basins

Notebooks 10, 11, 13, 14 fit the Carroll-6 box model against ECCO-Darwin v5 surface fields in three AOIs (Mid-Atlantic, North Pacific, Equatorial Pacific) using two targets (Chl, NO₃) and one HNLC-specific target (FeT). The DINN per-cell architecture (1×1 conv, SST input, ~454 weights) is the same across all four notebooks; only data + AOI differ.

Notebook AOI Target DINN r Loss ratio Global / DINN
10 Mid-Atlantic Darwin Chl (sum of 5 PFTs) 0.724 1.81×
11 Mid-Atlantic Darwin Chl 0.724 1.81× (matches nb10 — reproducibility check)
11 North Pacific Darwin Chl 0.966 14.6×
13 Mid-Atlantic Darwin −NO₃ 0.607 1.27×
13 North Pacific Darwin −NO₃ 0.979 23.8×
14 Equatorial Pacific Darwin FeT 0.337 1.13×

Strongest single-fit result: N Pacific NO₃, r = 0.979, loss ratio 23.8×. The N Pacific is a basin-interior gyre with smooth SST gradients and clean SST → BGC coupling, so the SST-only DINN benefits maximally there.

Mid-Atl underperforms in both targets. The Gulf Stream + mesoscale eddy structure adds spatial complexity that an SST-only DINN can't capture from local SST alone.

Eq Pacific FeT is the weakest fit (r=0.337) for the SST-only baseline. Iron in the Equatorial Pacific is upwelling- and dust-driven, not SST-driven; SST is a poor predictor.

2. Structural-ceiling argument is universal

Every notebook's head-to-head section trains a global-scalar baseline (one Carroll-6 vector applied uniformly to all cells, the parametric class Carroll's Green's-functions calibration uses). In every fit, this baseline produces a constant prediction at every cell — mathematically inevitable for one parameter vector + uniform initial state evolved through a deterministic box model. Pearson r against the real Darwin field is therefore mathematically undefined (zero spatial variance on the prediction side).

The DINN per-cell class produces non-trivial r in every fit. The ratio of global-scalar loss to DINN loss quantifies how much spatial heterogeneity the per-cell class captures that the global-scalar class structurally cannot.

This is the cleanest restatement of the DarwinDiff scientific claim: per-cell parameters can express what global-scalar parameters cannot, and Carroll's published calibration is bounded by the global-scalar ceiling.

3. Cross-basin parameter consistency (the strongest claim)

Recovered Carroll-6 means across the three basins (where each AOI has a separately-trained DINN):

param Mid-Atl (Chl) N Pacific (Chl) Eq Pacific (FeT) Carroll published
alpfe 0.502 0.604 0.730 0.928
scav_rat 1.77e-6 1.34e-6 1.09e-6 6.03e-7
Smallgrow 0.900 0.946 1.89 0.661
Biggrow 1.139 1.307 0.670 0.431
diatomgraz 0.560 0.543 0.733 0.830
R_PICPOC 0.087 0.090 0.131 0.0425

Recovered values stay within ~25% of each other across Mid-Atl + N Pacific (the two Chl-target fits, which use the same basin-pair AOI shape and same target field type). The systematic offsets vs Carroll's published values are also stable across basins: alpfe is ~0.5–0.7×, scav_rat is ~2–3×, Smallgrow is ~1.4×, Biggrow is ~2.6×, R_PICPOC is ~2× in every basin.

Why this matters more than any single fit: the recovery isn't basin-idiosyncratic. Same biases, same magnitudes, in geographically distinct regions. This rules out random fitting noise as the explanation and points clearly at the box-model proxy as the source of the systematic offset.

The Eq Pacific FeT row shows different numbers because the target type is different (iron vs phyto biomass) — but alpfe is closer to Carroll's value there (0.73 vs 0.5–0.6 in Chl fits) because FeT directly constrains the iron pair while Chl doesn't.

4. alpfe converges on Carroll's 0.928 when the target constrains it (nb14)

Notebook 14's global-scalar Green's-functions class fit on Eq Pacific FeT recovers alpfe = 0.9593% off Carroll's published 0.928. By contrast, the Chl-target fits in iron-replete basins (nb10, nb11) recover alpfe ≈ 0.5–0.6, much further off, because the Chl spatial pattern in those regions doesn't depend on iron parameters and the optimisation is free to put alpfe anywhere.

Implication: the right loss target matters as much as the architecture. Iron parameters are recoverable in HNLC regions with iron-relevant data; not recoverable in iron-replete regions even with the right architecture.

scav_rat remains 1.8–3× off Carroll's 6.03e-7 in every fit, even when alpfe is close. Consistent with the literature view that surface iron observations alone underconstrain scavenging — likely needs depth-resolved iron + POC export observations to fully constrain.

5. Best target depends on basin physics (nb13 vs nb11)

AOI Chl r (nb11) NO₃ r (nb13)
Mid-Atl 0.724 0.607
N Pacific 0.966 0.979

In Mid-Atl, Chl beats NO₃. Likely because Mid-Atl NO₃ is dominated by Gulf Stream / eddy structure that doesn't correlate with SST, while Chl is more directly SST-coupled there.

In N Pacific, NO₃ beats Chl. Smooth SST gradients in the gyre interior make NO₃ the cleaner SST-coupled target.

No universal "best target" exists — the recovery is jointly dependent on AOI physics and target choice. Multi-tracer joint loss (a future direction) would let the optimiser weight targets adaptively per region.

6. Network capacity is not the recovery ceiling — box-model proxy bias is (nb15)

Notebook 15 ran a direct A/B test on Eq Pacific FeT:

DINN baseline (SST only, 406 params) DINNDeep (4-channel, 9,382 params)
r 0.337 1.000
Loss plateau 0.886 0.0003
Loss reduction ~3000×

DINNDeep adds: multi-channel input (SST + MLD + wind + lat), 4 residual blocks, 32 hidden dim, GELU, per-cell LayerNorm. Same per-cell 1×1 conv backbone as DINN. ~21× more weights.

But:

param DINN baseline DINNDeep Carroll DINNDeep better?
alpfe 0.730 0.694 0.928 similar
scav_rat 1.09e-6 1.88e-6 6.03e-7 WORSE
Smallgrow 1.89 1.55 0.66 slightly closer
Biggrow 0.67 1.33 0.43 WORSE
diatomgraz 0.73 0.62 0.83 slightly worse
R_PICPOC 0.131 0.106 0.0425 similar

Recovered Carroll-6 values do NOT get closer to Carroll's published optima. Some get further. With 9.4K weights and 1071 cells × 6 outputs = 6.4K unknowns, DINNDeep approaches parameter parity and finds a degenerate per-cell parameter set that produces Darwin's FeT field perfectly — but that set isn't Carroll's calibrated set.

The recovery ceiling is the 5-tracer carroll6 box model's simplification of full Darwin 3 (5 PFTs + 2 zoo + DOM + carbonate chemistry). More network capacity buys fit quality, not calibration recovery. This reorders the project priority queue: box-model extension is now the highest-value next step, not further architecture work.

7. DINNDeep's r=1.000 is interpolation, not extrapolation (nb16)

Notebook 16 cross-validation on the nb15 setup:

Split Train r Held-out r
Random 80/20 1.000 0.995
Block W2/3 → E1/3 1.000 0.301

Verdict: INTERPOLATION ONLY. DINNDeep is not memorizing in the trivial sense (random hold-out passes) but it IS overfitting in the spatial-extrapolation sense — it learns a function smooth across the training set without extrapolating to unseen spatial blocks.

Methodological note: the original nb16 had a small data leakage (target z-score statistics computed over all ocean cells, then reused in training). Codex review (P2) caught it; fix recomputes target stats from train cells only per split. The leak-fixed numbers (above) shift slightly from the leaky version (0.997 / 0.280) but the verdict is unchanged.

Implication for cross-basin claims: DINNDeep cannot be assumed to generalise across spatial blocks (e.g., trained on Mid-Atl, applied to N Pacific) without separate per-AOI validation. For broad cross-basin reproducibility arguments (finding 3 above), the SST-only DINN baseline is the more honest tool because it has less interpolation slack to mask extrapolation failure.

8. ECCO-Darwin v05 is publicly accessible; v04 = v05 calibration

Verified directly against MITgcm-contrib/ecco_darwin/v04/llc270_JAMES_paper/code_darwin/ and v05/llc270/input/: Carroll 2022 (v05, Darwin 3) inherits Carroll 2020's six calibrated values bit-for-bit (alpfe=0.92831, scav_rat=6.025e-7, Smallgrow=0.66098, Biggrow=0.43148, diatomgraz=0.83003, R_PICPOC=0.04245).

This means "match Carroll 2020" and "match Carroll 2022" are the same calibration problem. We can use the publicly-accessible v05 Darwin output (NASA NAS portal) as the recovery target without giving up any calibration accuracy.

What this does NOT prove

  • Track 1 is not a finished story. Recovered Carroll-6 values are within 0.5–3× of Carroll's published — order-of-magnitude correct, not bit-for-bit. Closing that gap needs the box-model extension (finding 6).
  • Iron-pair scav_rat identifiability is fundamentally weak with surface-only observations. Eq Pacific FeT pinned alpfe close to Carroll's value but scav_rat stays 2× off. Likely requires depth-resolved iron + POC export observations.
  • Multi-tracer joint loss has not been tested. Each fit so far targets one variable. Combining (NO₃ + Chl + DIC + FeT) simultaneously could reduce parameter degeneracy DINNDeep exposed — future work.
  • Time-resolved fits are not done. All notebooks fit climatology (mean over 23 years of monthly data). Time-resolved fitting opens Track 2 emulator territory.

What this means for the next phase

Track 1 v1.5 is closed on local single-GPU hardware. Next phase deliverables (box-model carbonate extension, multi-tracer joint loss at LLC270 native resolution, time-resolved fitting, and Track 2 neural emulator) all need cluster compute. The next-phase compute proposal — consolidated results plus cluster allocation request — is the next external action. See STATUS.md "next" section and docs/research_log.md §F6 for the framing.