S2S-FM-VN — Phase 0 Audit & Gate Report

Foundation model for S2S extreme-heat forecasting over Vietnam · session 2026-09-23 · scope: audit → target prototype, STOP before bulk download / training

Status. Observation data, the fixed P90 / EHD-threshold climatology and the full target & event code are built and verified (11/11 unit tests pass; mean daily EHD frequency 0.10 as expected). The only blocker to the next phase is ECMWF access: the configured api.ecmwf.int token is expired and S2S has migrated to ECDS (2026-05-27). Nothing ran beyond Phase 0.
586
valid land cells (VnGAD 0.25°, time-stable)
0.101
mean daily EHD frequency, 2003–2022
11/11
target/event unit tests pass
0 GPU
Slurm workq: 11×20 CPU, GRES=null
1.5°
ECMWF S2S archive-native grid (ocean 1.0°)

1 · What was verified

AreaResultEvidence
ComputeSlurm workq, 11×20 CPU, no GPU; PyTorch absentconfig/training.yaml
Python / GRIB3.9.5; numpy/xarray/netCDF4/cdsapi/ecmwf-api-client present; cfgrib missing (eccodes/cdo CLI available)node inspection
Gridded TxVnGAD tasmax °C, 61×31 @0.25°, 1961–2023, 586 valid cells, fill −999, 15 Feb-29 daysmetadata/phase0_data_audit.json
Region maskR1–R7 (codes 1–7) on the VnGAD grid; counts 51/105/37/88/63/96/101metadata/phase0_data_audit.json
Fixed P90365×61×31, cyclic ±15 d, 2003–2022; 17.0–38.4 °C; 6.5% day-cells capped at 35 °Cdata/processed/P90_2003_2022.nc
EHD thresholdmin(P90, 35 °C)data/processed/EHD_THRESHOLD_2003_2022.nc
Targetsmean daily EHD freq 0.1013 (per region 0.093–0.108)outputs/metrics/target_event_frequency.csv
Target codeP90 leap/wrap, EHD/exceedance, weekly aggregates, episode detection, cross-week onset/active/days split, censoring — 11/11 teststests/test_targets.py
ECMWF structureclass s2 / dataset s2s / origin ecmf / stream enfh / type cf; 1.5° native; GRIB2; 34–65 d; 2015–2026metadata/ecmwf_reforecast_inventory.csv
ECMWF probenode reached API; "Access token expired"metadata/ecmwf_minimal_retrieval_status.json

2 · Decision items needing you

#DecisionRecommendation
D1blockerECMWF credential expiredRefresh ECMWF/ECDS token in ~/.ecmwfapirc / ECDS config (never in chat/repo)
D2blockerS2S migrated to ECDS (2026-05-27)Confirm access path (ECDS client / cdsapi vs legacy MARS), then run the ready minimal retrieval
D3confirmTwo 0.25° grids presentConfirm VnGAD (61×31) target + mask7reg_VnGAD regions; Mask_VN_S2S_EC (65×41) out of scope
D4confirmNo GPU on the clusterProvision a GPU resource or approve a CPU-sized prototype before Phase 3
D5confirmStation Tx absentProvide station Tx file + station→grid provenance (independence caveat)
D6confirmcfgrib missingInstall cfgrib/eccodes-python or standardise on cdo/eccodes-CLI + grib_to_netcdf
D7minor45 valid cells unclassified by regionReport separately vs assign nearest region

3 · Uncertain (to resolve from live metadata / minimal retrieval)

4 · Gate

STOPPING before bulk download / training, as required. D1 and D2 are prerequisites for Phase 1 (minimal ECMWF retrieval). Awaiting your decisions above.

Generated from docs/PHASE0_AUDIT.md, metadata/phase0_data_audit.json, outputs/metrics/target_event_frequency.csv and metadata/ecmwf_minimal_retrieval_status.json. Locked definitions untouched · no original files modified, moved or deleted · leakage rule recorded in README.md and config/verification.yaml.