Skip to content

Add remaining ILAMB cmip6 regression baselines; stabilise output.json and tag reference series#743

Merged
lewisjared merged 6 commits into
mainfrom
feat/regression-ilamb-cmip6-remaining
Jun 19, 2026
Merged

Add remaining ILAMB cmip6 regression baselines; stabilise output.json and tag reference series#743
lewisjared merged 6 commits into
mainfrom
feat/regression-ilamb-cmip6-remaining

Conversation

@lewisjared

@lewisjared lewisjared commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Description

Completes the cmip6 ILAMB regression-baseline migration begun in #738 (which seeded the first three cases — mrsos-wangmao, gpp-fluxnet2015, lai-avh15c1), and stabilises the ILAMB output bundle so baselines reproduce across machines.

Baselines. Adds committed baselines for the remaining nine runnable cmip6 ILAMB diagnostics: gpp-wecann, mrro-lora, csoil-hwsd2, nbp-hoffman, snc-esacci, burntfractionall-gfed, emp-gleamgpcp2.3, thetao-woa2023-surface, and so-woa2023-surface. Each consists of the committed CMEC bundle (series.json, diagnostic.json, output.json), the input catalog.yaml, and a manifest.json.

Determinism fix. The CMEC output.json plot/data blocks were written in filesystem-glob order, so a baseline regenerated locally diffed against the same one minted in CI. They are now sorted by filename, so the bundle reproduces byte-for-byte regardless of platform.

Self-identifying reference series. ILAMB reference (observational) series are now tagged with reference_source_id (e.g. reference_source_id="WangMao") via the existing schema, so a reference series is identifiable beyond source_id="Reference".

Versioning. ILAMBStandard.version is bumped 1 → 2 (the results changed shape). All committed cmip6 baselines were regenerated under the new code; the three already-minted cases (gpp-fluxnet2015, mrsos-wangmao, lai-avh15c1) carry a test_case_version 1 → 2 bump, and the coupling gate replays them against their native baselines and they reproduce within tolerance.

Only amoc-rapid is left out of the cmip6 batch: it hits a numpy.corrcoef shape mismatch (model 130 vs RAPID reference 129 timesteps) inside the ILAMB amoc analysis, unrelated to the baseline machinery. The cmip7 cases remain deferred to the in-flight CMIP7 compatibility work (#671, #686, #702, #704).

Checklist

Please confirm that this pull request has done the following:

  • Tests added — N/A; data-only baselines plus a deterministic-ordering fix, covered by the existing parametrized test_validate_test_case_regression and the ILAMB unit tests
  • Documentation added (where applicable)
  • Changelog item added to changelog/743.feature.md, 743.fix.md, 743.improvement.md

Completes the cmip6 ILAMB regression-baseline batch (RFC 0005 PR-6a),
adding committed bundles for the diagnostics beyond the initial
mrsos/gpp-fluxnet2015/lai batch:
gpp-wecann, mrro-lora, csoil-hwsd2, nbp-hoffman, snc-esacci,
burntfractionall-gfed, thetao-woa2023-surface, and so-woa2023-surface.

Generated locally via `ref test-cases run --fetch`.
Native blobs are not yet minted (native={});
the gated regression-mint workflow populates them.

amoc-rapid and emp-gleamgpcp2.3 are intentionally excluded:
their cmip6 runs fail for data/diagnostic reasons
(missing GPCP-2-3 obs reference; an amoc corrcoef shape mismatch)
unrelated to the baseline machinery.
@codecov

codecov Bot commented Jun 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Flag Coverage Δ
core 92.56% <ø> (ø)
providers 91.82% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...limate-ref-ilamb/src/climate_ref_ilamb/standard.py 85.54% <100.00%> (+0.05%) ⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@lewisjared lewisjared temporarily deployed to native-baselines June 18, 2026 20:58 — with GitHub Actions Inactive
Its earlier run failed only because the GPCP-2-3 obs4REF reference was
not present locally, not because of a diagnostic defect;
with the reference fetched the case now passes and seeds a baseline.

Updates the changelog fragment to include it and drops the
committed-bundle/native-layer note.
@lewisjared lewisjared changed the title Add ILAMB cmip6 regression baselines for the remaining 8 diagnostics Add ILAMB cmip6 regression baselines for the remaining 9 diagnostics Jun 18, 2026
github-actions Bot and others added 2 commits June 18, 2026 21:09
Sort the plot/data blocks of the ILAMB CMEC output bundle by filename so the
committed output.json reproduces byte-for-byte across machines. The *.png glob
previously leaked filesystem order into the bundle, so a baseline regenerated
locally diffed against the same one minted in CI.

Tag ILAMB reference (observational) series with reference_source_id (the obs
source already in scope, e.g. "WangMao"), so a reference series self-identifies
via the existing schema rather than only as source_id="Reference".

Bump ILAMBStandard.version 1 -> 2 so the solver creates a fresh execution group
for the changed results rather than reusing v1.

Regenerate all committed cmip6 ILAMB baselines under the new code and bump
test_case_version 1 -> 2 for the three already-minted cases (gpp-fluxnet2015,
mrsos-wangmao, lai-avh15c1). The coupling gate replays them against their native
baselines and they reproduce within tolerance.
@lewisjared lewisjared changed the title Add ILAMB cmip6 regression baselines for the remaining 9 diagnostics Add remaining ILAMB cmip6 regression baselines; stabilise output.json and tag reference series Jun 18, 2026
Re-mint all 12 runnable cmip6 ILAMB cases so the native snapshot is regenerated
under the deterministic output.json ordering and reference_source_id tagging.
The committed bundles are unchanged (the fresh runs reproduce them byte-for-byte),
so only the manifests' native blocks are updated. The coupling gate replays all
12 cases against the new blobs and they reproduce (0 drifted).
@lewisjared lewisjared merged commit cee743d into main Jun 19, 2026
23 checks passed
@lewisjared lewisjared deleted the feat/regression-ilamb-cmip6-remaining branch June 19, 2026 00:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant