CAS-Canglong SST · 12-month global model, release 2026-10-25
Frozen weights, calibration states and inference code of the 2026-10-25 release (Round 5) of the CAS-Canglong 1° monthly sea-surface temperature (SST) model. From the last 120 months of eight ERA5 fields it predicts the next 12 calendar months of global SST as a mean, a Gaussian spread and calibrated quintile probabilities.
Live forecast Space · 2016–2022 hindcast dataset · code · paper, Advanced Science 2026 · canglong.earth · 中文简介
Read before use. The released calibration was fitted with targets through 2026-09, and its settings were selected on year-blocked diagnostics of the same years. Every historical score of these exact weights, including the published 2016–2022 hindcast, is in-sample. The held-out evidence below comes from a copy of the same method refitted with targets up to 2022. The model damps strong ENSO events quickly; see Limitations.
Contents
| Path | What it is |
|---|---|
frozen_model_20261025_v1/ |
the read-only model package, byte-identical to the frozen release (59 files, 517 MB): seasonal checkpoint, mean/Gaussian/PBC calibration states, all source files it imports, protocols, FROZEN_MANIFEST.json and SHA256SUMS |
forecasts/ |
the latest forecast from ERA5 through 2026-09: October 2026 – September 2027 |
evaluation/round6_temporal_holdout_20261026/ |
held-out test on 2023-01 – 2026-09 targets: protocol, isolation audits, metrics.csv, per-case scores, figures, logs and source |
Model
- Inputs — the last 120 complete months of eight ERA5 monthly fields on the 181 × 360 1° grid, in this order:
sst, msl, slhf, u10, v10, z500, z850, ssr(original ERA5 units and accumulations), with dates, latitude, longitude and the land mask. - Core (frozen seasonal model) — four heads built on a 1° CAS-Canglong network: the original network/EOF blend, a slow-background branch, a joint ocean–atmosphere branch and a seasonal-state branch whose response depends on the calendar month, mixed 50 % / 28.125 % / 9.375 % / 12.5 %. The heads were trained on targets up to 2009-08 and validated up to 2016-04.
- Round 5 calibration — a per-cell, per-lead ridge regression (α = 0.05, 19 coefficients) on the four head forecasts, the observed SST anomaly of the last 1, 3 and 12 months before issue, annual and semi-annual harmonics, a linear time term and a few seasonal interactions, blended 10 % with 90 % of the seasonal model. A CRPS-fitted Gaussian scale gives the spread. Quintile probabilities use a probability-based correction adapted from Guan et al., Nature 2026 (monthly ridge/periodic conditioning, not a reproduction of the paper's daily algorithm). No external model, FuXi or NWP output is used as a feature.
- Outputs — leads 1–12 on the 40,701 ocean cells the model was trained on (others are NaN), physical-centroid coordinates of the nominal 1° grid. Leads 13–16 are not supported.
| Output variable | Meaning |
|---|---|
sst, ssta |
mean SST and its anomaly vs the 1959-01 – 2009-08 monthly climatology, K |
gaussian_sigma |
marginal Gaussian standard deviation per cell, K |
gaussian_sst_quantile |
5, 10, 25, 50, 75, 90, 95 % SST quantiles, K |
pbc_sst_threshold |
quintile boundaries of the 1959–2009 climate for each calendar month, K |
pbc_quintile_cdf, pbc_quintile_probability |
calibrated probability below each boundary and of each of the five categories |
The Gaussian and the quintile products are calibrated separately and need not agree. Both are marginal per cell, not a coherent spatio-temporal ensemble.
Quick start
Tested with Python 3.11.11, numpy 1.26.4, scipy 1.15.2, torch 2.6.0, xarray 2025.4.0, netCDF4 1.7.2, h5netcdf 1.6.1,
h5py 3.13.0, pandas 2.2.3, matplotlib 3.10.0, threadpoolctl 3.5.0 (frozen_model_20261025_v1/requirements.txt).
from huggingface_hub import snapshot_download
pkg = snapshot_download("LonghaoWang/CAS-Canglong-SST", allow_patterns=["frozen_model_20261025_v1/*"])
cd <pkg>/frozen_model_20261025_v1
python -B run_frozen.py --verify-only # checks every file against FROZEN_MANIFEST.json
python -B smoke_test.py # CPU parity test, no CUDA
# CPU replay of the October 2026 forecast from the shipped head forecasts (no ERA5 needed)
python -B run_frozen.py --prepared-input examples/input_only_202610.npz --output /abs/path/forecast_202610.nc
# full inference from raw ERA5 monthly input on one BF16-capable NVIDIA GPU
python -B run_frozen.py --gpu-uuid GPU-xxxxxxxx --input /abs/path/monthly_input.npz --as-of-month 2026-10 --output /abs/path/forecast.nc
The package is read-only and refuses to overwrite outputs. --as-of-month is the month after the last input month.
In the raw NPZ, ocean_mask keeps its historical meaning (True = land). The prepared input holds only the four head
forecasts p[1,12,4,40701] (SSTA, K), the causal context context[1,3,40701] (last, last-3 and last-12-month mean
observed SSTA) and valid_dates[1,12]; it contains no target values. See the package README
for the full contract.
Verified. A fresh download of tag release-20261025 passes --verify-only (59 files), and the CPU replay of
examples/input_only_202610.npz reproduces forecasts/sst_forecast_202610_202709_physical_grid.nc to 6.1 × 10⁻⁵ K for
SST and quantiles, 3.5 × 10⁻⁵ K for SSTA, 4 × 10⁻⁷ K for σ and 1.1 × 10⁻⁴ for the quintile probabilities, with an
identical NaN pattern and identical thresholds. That is the documented float32 difference between the prepared-input
path and the raw-input GPU path that produced the forecast; against the original prepared-input API the CPU path is
exact (CPU_SMOKE_TEST.json). The raw GPU forward was not re-run while freezing this package. On other hardware or
library versions results are not guaranteed to be bitwise identical.
Latest forecast
forecasts/sst_forecast_202610_202709_physical_grid.nc (SHA-256 c3000d34…7cda87) is issued for 2026-10
from ERA5 through 2026-09. Niño 3.4 (5°S–5°N, 170°W–120°W, model ocean cells):
| Sep 2026 obs. | Oct | Nov | Dec | Jan 2027 | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1959–2009 base (model) | +3.13 | +1.95 | +1.77 | +1.70 | +1.34 | +1.07 | +0.75 | +0.44 | +0.13 | −0.09 | −0.30 | −0.49 | −0.58 |
| 1991–2020 base | +2.99 | +1.81 | +1.62 | +1.59 | +1.25 | +0.98 | +0.53 | +0.21 | +0.00 | −0.24 | −0.40 | −0.53 | −0.72 |
The 1991–2020 values subtract the difference between the two ERA5 climatologies over the Niño 3.4 box (0.04–0.23 K depending on the month). The October IRI plume (published 2026-10-19) has a dynamical-model mean of +3.64 °C for OND. The Space shows the maps and the plume comparison.
Evaluation
Held-out test, 2023–2026 (Round 6)
A copy of the Round 5 method was refitted with targets up to 2022-12 only (candidates fitted to 2020-12, selected
on 2021–2022: α = 0.05, residual weight 0.75; then refitted to 2022-12), its coefficients were frozen, all 45 test
forecasts were written, and only then were the 2023-01 – 2026-09 targets opened. Inference used SST observed before each
issue month as causal input. Full protocol, isolation audits and every score are in
evaluation/round6_temporal_holdout_20261026 (in Chinese).
Mean over leads 1–12 of the area-weighted spatial anomaly correlation (ACC) and RMSE, global ocean, climatology 1959–2009:
| Model | 12 common issues 2023-07 – 2024-06 (ACC / RMSE K) | 25 common issues 2023-07 – 2025-07 | 34 fixed targets 2023-12 – 2026-09 |
|---|---|---|---|
| Round 5 method, refit to 2022 | 0.735 / 0.667 | 0.733 / 0.634 | 0.721 / 0.671 |
| frozen seasonal model (no calibration) | 0.700 / 0.755 | 0.678 / 0.721 | 0.668 / 0.753 |
| original head | 0.695 / 0.819 | 0.663 / 0.784 | 0.654 / 0.818 |
| CanSIPS-IC4 (raw archive) | 0.216 / 1.235 | – | – |
| COLA-RSMAS-CCSM4 (raw archive) | 0.229 / 1.514 | 0.206 / 1.513 | – |
| COLA-RSMAS-CESM1 (raw archive) | 0.331 / 1.528 | 0.320 / 1.529 | – |
By region against the uncalibrated seasonal model (12 common issues), ACC improves in the Arctic (0.850 vs 0.753), the North Pacific (0.746 vs 0.585) and the South Atlantic (0.633 vs 0.454) at all 12 leads, while it is lower in the tropical Indo-Pacific (0.781 vs 0.805), the South Pacific (0.711 vs 0.755), the South Indian Ocean (0.628 vs 0.641) and Niño 3.4 (0.604 vs 0.686, lower at every lead in all three comparisons).
What this does and does not show:
- It is a retrospective out-of-time check of the method, not of the released weights, which saw these targets.
- The architecture, features and method design were shaped by earlier looks at the post-2022 period; this cannot be undone, so it is not a pristine blind test.
- The dynamical systems are raw ensemble-mean archives with no drift or bias correction (only three have complete post-2022 issues); the comparison is not a ranking of the centres' best calibrated products.
- Samples are short and serially correlated; no significance test was made. ORCA-DL, FuXi-S2S and UniCM could not be added (no matching post-2022 monthly fields).
In-sample scores of the released weights
On the 195 historical issues used for calibration (2,262 issue–lead pairs, 40,701 cells, eight-region mean), the released model has a temporal correlation (TCC) of 0.450 and RMSE 0.689 K when fitted on all years (seasonal model: 0.367 / 0.719 K). In the year-blocked diagnostic that was also used for selection, the figures are 0.373 / 0.699 K. The Gaussian/CRPS and quintile (RPS 0.168 → 0.136) improvements are likewise in-sample. These numbers describe fit, not future skill. The hindcast dataset replays these weights on every target month of 2016–2022 at leads 1–12 under the same caveat.
Limitations
- ENSO amplitude. The model pulls large Niño 3.4 anomalies back toward climatology. For the 2026 El Niño it drops from +3.13 K observed (September, model base) to +1.95 K at lead 1. All four frozen heads already give +1.5 to +1.8 K, so this is not introduced by the calibration. In the held-out test Niño 3.4 is the region where the method falls below its own uncalibrated model.
- Calibration scope. Fitted to 2026-09 and selected on the same years (see above). New, untouched years are the meaningful next test.
- Probabilities are marginal per cell; they cannot be aggregated into regional or index uncertainties, and their nominal coverage has no independent-year verification yet.
- Inputs. ERA5 monthly means arrive with a delay; operational data latency was not modelled.
- Domain. Only the 40,701 trained ocean cells are predicted; sea-ice regions and some coasts are NaN.
- The previous operational CAS-Canglong run (Public-Swin, 16 months, 0.25° refiner) still drives canglong.earth; its weights are not part of this repository.
License and data
Code and weights: MIT (see LICENSE). Trained on and initialised from ERA5 (© ECMWF, Copernicus Climate Change Service;
contains modified Copernicus information). The quintile calibration follows ideas of Guan et al. (2026). Research
product, not an official forecast or warning.
Citation
@article{wang2026canglong,
title = {Improved Skills for Predicting Sub-Seasonal to Seasonal Global Sea Surface Temperature},
author = {Wang, Longhao and Zhang, Xuanze and Leung, L. Ruby and Chiew, Francis H. S. and
AghaKouchak, Amir and Ying, Kairan and Zhang, Yongqiang},
journal = {Advanced Science},
year = {2026},
pages = {e78271},
doi = {10.1002/advs.78271}
}
中文简介
本仓库发布 CAS-Canglong 1° 月尺度海温模型 2026-10-25 版(第五轮冻结版) 的权重、校正状态与推理代码。模型读取最近
120 个月的 8 个 ERA5 月平均场(sst, msl, slhf, u10, v10, z500, z850, ssr),输出未来 12 个自然月的全球海温均值、
Gaussian 标准差/分位数与校准后的五分位概率;不提供 13–16 个月时效。
- 结构:基于 1° CAS-Canglong 网络的四个冻结分支(原网络/EOF 混合、慢背景、海气联合、季节状态),按 50%/28.125%/9.375%/12.5% 组成季节模型;第五轮再以逐格点逐时效岭回归(α=0.05)做局地校正,按 10% 校正 + 90% 季节模型混合, 并配合 CRPS 尺度与五分位概率校准。
- 使用:
python -B run_frozen.py --verify-only校验全部文件;--prepared-input examples/input_only_202610.npz可在 CPU 上 复现 2026-10 起报结果;原始 ERA5 输入需一块支持 BF16 的 NVIDIA GPU。 - 评估口径:发布权重的校正使用了截至 2026-09 的目标,并在同一批年份的分年诊断上选参,因此其全部历史分数(含 2016–2022 回报数据集)均为样本内结果。 独立证据来自同一方法仅用 2022 年前目标重拟合的副本在 2023-01–2026-09 目标上的时间外检验:全球空间 ACC 0.735、RMSE 0.667 K (未校正季节模型 0.700 / 0.755 K),但 Niño 3.4 在三组比较的全部时效上 ACC 均低于未校正季节模型。
- ENSO 提示:模型会较快把强 ENSO 异常拉回气候态。2026 年 9 月观测 Niño 3.4 为 +3.13 K(模型基准),1 个月时效预报仅 +1.95 K;四个冻结分支本身即为 +1.5 至 +1.8 K,并非校正引入。解读 ENSO 展望时请结合 IRI 等多模式结果。
- canglong.earth 目前仍展示上一版业务运行(Public-Swin,16 个月);其权重不在本仓库。
代码与权重采用 MIT 许可;ERA5 版权归 ECMWF/哥白尼气候变化服务所有。本产品为科研预报,不是官方预报或预警。