Dự báo nội mùa (S2S) ngày nóng cực đoan EHD/EHDE cho Việt Nam
— Báo cáo kỹ thuật tổng hợp và so sánh 3 phương án đầu vào —

Toàn bộ chuỗi từ xử lý số liệu thô, xây dựng mô hình AI, đánh giá kiểm chứng (verification) trên tập kiểm định, đến điều kiện vận hành thời gian thực. So sánh ba nguồn dữ liệu đầu vào: EC_0.25_org (ECMWF 0.25° gốc), EC_1.5→SD (ECMWF 1.5° hạ quy mô về 0.25°), CFSv2 (NCEP CFSv2 gốc).
Người thực hiện: hệ thống AI (Claude) · Chủ trì: remoclic@hus.edu.vn · Ngày lập: 05/09/2026 · Kỳ hindcast: 2003–2022 · Miền: Việt Nam, lưới 0.25°, 541 ô đất, 7 vùng khí hậu S1–S7
Tóm tắt điều hành (1 đoạn). Ba hệ dự báo EHD/EHDE độc lập đã được xây dựng end-to-end với cùng một kiến trúc AI (mô hình gộp toàn quốc, cổng lọc 2 tầng "EXP3/Ope1b"), chỉ khác nguồn dự báo động lực đầu vào. Kết quả nhất quán trên cả ba: chỉ tuần 1 (W1) đạt các chỉ tiêu nghiệp vụ; W2–W6 chạm trần thông tin của mô hình động lực, không phải lỗi kỹ thuật, và chỉ phát hành dạng trường xác suất. Xếp hạng kỹ năng W1: EC_0.25_org ≈ EC_1.5→SD > CFSv2. Phát hiện quan trọng nhất cho vận hành: bản 1.5° của ECMWF sau khi hạ quy mô bằng BCSD tái tạo ~98% kỹ năng của bản 0.25° gốc (W1 CSI 0.553 so với 0.562) ⇒ không cần tải/lưu bộ 0.25° đắt đỏ; tải 1.5° + hạ quy mô là đủ.

Mục lục

1. Bài toán, định nghĩa và mục tiêu

Mục tiêu. Dự báo nội mùa (subseasonal-to-seasonal) khả năng xảy ra ngày nóng cực đoan (Extreme Heat Day — EHD) tại từng ô lưới 0.25° trên lãnh thổ Việt Nam, hạn tới 45 ngày, từ sản phẩm gốc của các mô hình dự báo động lực toàn cầu.

Định nghĩa

Chỉ tiêu nghiệp vụ (đã hiệu chỉnh — xem hộp bên dưới)

Chỉ sốPODFARPOFDCSIFBI
Ngưỡng mục tiêu> 0.60< 0.20 < 0.20> 0.40~ 0.75
Đính chính bộ chỉ tiêu — một phát hiện then chốt của dự án. Từ định nghĩa bảng ngẫu nhiên có đẳng thức FAR = 1 − POD/FBI. Nếu ép FBI ≈ 1 thì FAR = 1 − POD, nên muốn FAR<0.2 phải có POD>0.8 — bộ chỉ tiêu gốc {POD>0.6, FAR<0.2, FBI≈1} tự mâu thuẫn. Người dùng đã quyết: giữ POD>0.6, FAR<0.2, CSI>0.4, và nới FBI về ~0.75 (chấp nhận báo thiếu có chủ đích — phù hợp cảnh báo nắng nóng nghiệp vụ, tránh mất lòng tin do báo động sai).

2. Ba phương án và ba nguồn số liệu

Phương án 1Phương án 2Phương án 3
Ký hiệu EC_0.25_org EC_1.5→SD CFSv2_org
Thư mục../HW ./HW_EC_10../HW_CFS_raw
Nguồn động lựcECMWF S2S reforecast ECMWF S2S reforecastNCEP CFSv2 reforecast
Độ phân giải gốc0.25°1.5° (thô ~1:20 so với đích) ~1° (0.5–1°)
Hạ quy mô về 0.25°Không cần (lưới đích) BCSD (bias-corrected spatial disaggregation) BCSD (D1)
Kỳ hindcast2003–2022 (20 năm)2003–2022 (20 năm) ~2001–2013 (13 năm, giao flux∩pgb)
Kích thước mẫu2080 init (104/năm×20) 2080 init3086 init
Năm kiểm định2006, 2011, 2016, 2021 (416 init) 2006, 2011, 2016, 2021 (416 init) 2001, 2006, 2009 (726 init)
Sản phẩm bản tin 29/8 ehd_forecast_ope1b.html ehd_forecast_ope1b_sd.html ehd_cfs_forecast_ope.html
Cùng lưới đích, cùng target, cùng kiến trúc AI. Cả ba dùng chung: lưới quan trắc VnGAD 0.25° (541 ô đất, mask Mask_VN_S2S_EC_0.25.nc, 7 vùng Vietnam7.shp); cùng số liệu quan trắc Tx (Tx_EC_0.25_2002-2023.nc); cùng định nghĩa EHD/EHDE; cùng kiến trúc mô hình gộp toàn quốc 2 tầng (mục 5). Chỉ khác nguồn dự báo động lực ⇒ là một thí nghiệm có kiểm soát để tách riêng ảnh hưởng của chất lượng & độ phân giải nguồn.

3. Xử lý số liệu: từ dữ liệu thô đến "cube" huấn luyện

3.1 Tải dữ liệu

EC_1.5→SD (dự án hiện tại)
  • Tải qua API ECDS (ecds.ecmwf.int), Origin=ECMWF, model version 2023, control forecast, 00Z, hindcast 2003–2022, hạn tới 1104h, lưới gốc 1.5/1.5.
  • Hai miền: A (VN) 100–114°E, 6–25°N (toàn bộ biến bề mặt + mực đẳng áp); B (rộng) 80–150°E, 15°S–45°N (trường quy mô lớn cho EOF/PC).
  • Bộ biến: ~40 biến (mặt + đẳng áp 1000/925/850/700/500/300/200 hPa), 3 dạng: instantaneous / accumulated / daily-averaged.
  • Chỉ tải được GRIB ⇒ convert sang NetCDF bằng grib_to_netcdf. 624 file GRIB + vòng lặp convert idempotent, 0 lỗi.
CFSv2 (../HW_CFS_raw)
  • Đọc trực tiếp kho GRIB CFSv2 gốc trên HPC: Flux (6h, 16 biến bề mặt) và Pgb (mực áp suất, 40 biến, 2 lần/ngày).
  • Tập mẫu 3086 init = giao (flux ∩ pgb), 13 năm, đủ 12 tháng.
  • Bẫy đã xử lý: kho GRIB có file hỏng/cắt cụt ⇒ đọc record theo danh tính (valid time, biến, mực) chứ không theo vị trí; NAS chỉ mount ở login node ⇒ trích pgb 2001, 2005–2011 ở login node.

EC_0.25_org dùng lại bộ ECMWF S2S 0.25° đã tải sẵn của dự án ../HW (không phải nội suy của 1.5° — bộ 0.25° mang thêm 5.3% phương sai ở quy mô <1.5°, RMS ~0.99 K).

3.2 Căn thời gian và gộp về cube

4. Đặc trưng & hai quy tắc bất di bất dịch

Chuẩn hoá vật lý (ec_z)

Mỗi biến được chuyển thành dị thường chuẩn hoá so với khí hậu học của chính mô hình theo (biến, hạn, ngày-trong-năm, ô lưới). Chính chuẩn hoá này cho phép gộp 541 ô + mọi mùa vào một mô hình duy nhất mà không để chu kỳ mùa trở thành tín hiệu trội. Khí hậu học (mean/std) chỉ khớp trên năm huấn luyện để tránh rò rỉ.

Bộ đặc trưng tốt nhất — F3 (81 cột/tuần)

Đã thử và bị bác: thêm chỉ số toàn cục biến đổi chậm (NINO3.4, MJO/OMI) không cải thiện; riêng NINO3.4 gây hại cho mô hình cây vì đóng vai "nhãn năm" (R²năm=0.46). Quy tắc: trước khi thêm biến biến đổi chậm, tính R² theo năm — R²năm > ~0.3 là nguy hiểm.
Hai quy tắc dữ liệu KHÔNG BAO GIỜ vi phạm:
  1. Chỉ dùng control forecast — nạp nhầm ensemble mean thì z-score co về 0 và hệ thiếu một cách hệ thống mà không báo lỗi.
  2. Quan trắc chỉ làm target, không bao giờ làm feature — kể cả quan trắc tại thời điểm init.

5. Kiến trúc mô hình AI & danh sách cấu hình

Kiến trúc Ope1b (hiện thực của EXP3): mô hình gộp toàn quốc (một bộ cho cả 541 ô) + ngưỡng riêng từng ô lưới, gồm 2 tầng cổng. Riêng cho từng cửa sổ tuần W1–W6.

Đặc trưng F3 (81 cột, gộp tuần)
   │
   ├─ TẦNG 1 — CỔNG "có/không sự kiện" (regression Sev + bỏ phiếu)
   │     8 họ hồi quy Sev × 9 mức phân vị (ZQ) = 72 thành viên
   │     mỗi thành viên "bật" nếu Sev dự báo ≥ ngưỡng ô  →  đếm M/72
   │     p_gate = M/N ;  p_gate < p1(ô)  ⇒  KẾT LUẬN nEHDE, DỪNG
   │        (p1 chốt riêng từng ô sao cho rò rỉ ngoài mẫu ≤ 5% số sự kiện)
   │
   └─ TẦNG 2 — PHÂN LOẠI yEHDE (chỉ các mẫu qua cổng)
         6 họ phân loại  →  trung bình xác suất
         so với ngưỡng riêng ô = phân vị (1 − r·base_rate(ô))
         r theo cửa sổ:  W1 = 0.84 ;  W2–W6 = 1.00
Sơ đồ hệ Ope1b (chung cho cả 3 phương án). Đánh giá OOF 4-fold theo NĂM (chia theo init, không theo dòng).

5.1 Tầng 1 — 8 họ hồi quy độ nghiêm trọng Sev (zoo_s1)

Tên họLoạiCấu hình chính
Ridgetuyến tính L2StandardScaler + Ridge(alpha=10)
ElasticNettuyến tính L1+L2alpha=0.01, l1_ratio=0.5, max_iter=2000
BayesRidgetuyến tính BayesStandardScaler + BayesianRidge (chính quy hoá tự động)
Hubertuyến tính bền nhiễuHuberRegressor (giảm ảnh hưởng ngoại lai)
PLS8hồi quy thành phầnPartial Least Squares, 8 thành phần
LGBM_gbdtcây tăng cườngLightGBM gbdt, n_estimators≈300, num_leaves=15, lr=0.05
LGBM_dartcây tăng cường DARTLightGBM boosting=dart (bỏ ngẫu nhiên cây)
HistGBhistogram GBHistGradientBoostingRegressor (sklearn)
Mỗi họ nhân với NQ=9 phân vị (ZQ = Φ⁻¹ của mức phân vị) ⇒ 72 "phiếu bầu". Đây là cơ chế lượng hoá bất định để tính p_gate = M/N.

5.2 Tầng 2 — 6 họ phân loại yEHDE (zoo_s2)

Tên họLoạiCấu hình chính
LogReg_L2hồi quy logisticStandardScaler + LogisticRegression phạt L2
LogReg_ENlogistic ElasticNetsolver=saga, phạt L1+L2
LGBM_clfcây phân loạiLightGBM, n_estimators=250, num_leaves=15
LGBM_clf_slowcây học chậm lá nôngn_estimators=400, num_leaves=7, lr thấp
HistGB_clfhistogram GBHistGradientBoostingClassifier
ANN_16mạng nơ-ron1 lớp ẩn 16 nút, ReLU (torch, offset=0)
Đã khảo sát và loại bỏ trong quá trình tuyển: một "vườn thú" (zoo) lớn hơn nhiều — LGBM_rf, ExtraTrees, RandomForest, MLP(64,32), các ANN 4/8/32-16 nút, offset-LGBM (gbdt/deep/slow), PLS các bậc khác… Các họ trong bảng 5.1/5.2 là bộ đã chốt cho vận hành sau khi cân bằng kỹ năng OOF và chi phí tính. Feature importance (standardized tree gain, không dùng dữ liệu năm test) được xuất cho mọi mô hình cây.

5.3 Hạ tầng tính toán

6. Hạ quy mô & hiệu chỉnh Tx (downscaling / bias correction)

Với hai nguồn thô (EC 1.5°, CFSv2) phải hạ quy mô Tx về lưới 0.25°. BCSD được chọn làm phương án nền (baseline) sau khi vượt nội suy song tuyến và quantile-mapping.

EC 1.5° → 0.25° — RMSE (°C) trên 541 điểm đất, theo tuần

Phương ánW1W2W3W4W5W6ALL
B0 — nội suy song tuyến2.363.203.523.613.673.663.29
QM — quantile mappinggiảm ~0.22 °C toàn cục (mạnh nhất W1: −0.44)3.07
B2 — BCSD (đã chọn)1.792.893.253.353.443.402.99
Thứ tự BCSD > QM > bilinear giữ nguyên cả về RMSE lẫn điểm sự kiện. BCSD là mốc mọi phương án AI phải vượt. ME của B0 ~ −0.07 °C (gần như không lệch hệ thống).

CFSv2 → 0.25° — thang hạ quy mô (W1)

ThangMô tảMAERMSECORRCSI(W1)
D0nội suy thô2.052.650.7530.427
D1 — BCSDbias-corrected spatial disagg.0.971.320.9320.515
D2ML có điều kiện1.111.470.9130.398
D1 (BCSD) tốt nhất; D2 (ML) không vượt được BCSD ⇒ giống kết luận ở EC. Với riêng Tx, không lớp mô hình nào mua thêm kỹ năng đáng kể so với BCSD.
Ba bẫy BCSD đã sửa (dùng chung): (1) trung bình quan trắc về ô thô phải chỉ trên điểm đất; (2) dị thường lấy so với khí hậu quan trắc thô, không phải khí hậu dự báo chưa hiệu chỉnh (lỗi này từng cho RMSE 9.89 °C — tệ hơn cả nội suy); (3) NaN×0=NaN trong nội suy — một ô thô rỗng đầu độc toàn trường ⇒ phải fill_coarse_nan() trước.

7. Đánh giá EHD/EHDE trên toàn tập kiểm định

Đánh giá theo từng ô lưới, gộp toàn quốc trên năm kiểm định (không dùng trong huấn luyện). Với EC: 416 init × 541 ô = 225 056 quyết định/tuần. Với CFS: 726 init.

7.1 EC_0.25_org (../HW ope1b) — 416 init

TuầnPODPOFDFARFBICSISEDIAUC
W10.6520.1020.1980.8140.5620.7240.871
W20.5800.2050.4551.0650.3910.5210.766
W30.4800.2050.5050.9710.3220.3990.702
W40.4750.2280.5331.0180.3080.3580.695
W50.4740.2380.5461.0420.3020.3410.677
W60.4540.2380.5551.0190.2900.3150.662

W1 đạt trọn bộ chỉ tiêu (POD 0.652>0.6, FAR 0.198<0.2, POFD 0.102<0.2, CSI 0.562>0.4). W2–W6 không có ngưỡng nào cho FAR<0.2.

7.2 EC_1.5→SD (dự án hiện tại) — 416 init, cùng code chấm điểm

TuầnPODPOFDFARFBICSISEDIAUC
W10.6430.1020.2010.8040.5530.7150.868
W20.5740.2030.4561.0560.3870.5150.764
W30.5010.2140.5061.0140.3310.4120.704
W40.4950.2370.5321.0590.3170.3710.693
W50.4720.2400.5491.0460.3000.3360.677
W60.4500.2410.5601.0220.2860.3050.658

Trùng khít EC_0.25_org mọi tuần (|ΔCSI| ≤ 0.010 từ W1 đến W6). W1 đạt 4.5/5 chỉ tiêu — chỉ FAR 0.201 sát ngưỡng 0.2. Đây là bằng chứng cốt lõi: 1.5° + BCSD tái tạo ~98% kỹ năng của 0.25° gốc.

7.3 CFSv2 (../HW_CFS_raw) — 726 init

TuầnPODFARCSIAUC
W10.5230.2740.4370.777
W20.3100.5100.2340.627
W30.2750.5550.2050.568
W40.2520.5670.1890.544
W50.2500.5830.1850.539
W60.2590.5870.1900.515
Chấm theo từng ô lưới. Ở cấp vùng (EXP1, phủ tối ưu) W1 khá hơn: POD 0.653 / POFD 0.185 / FAR 0.133 / FBI 0.753 / CSI 0.593. CFS kém EC ở mọi hạn, mọi chỉ số; khoảng cách AUC W1 = 0.777 vs 0.871.
Trần thông tin — tính được bằng số. Để đạt POD>0.6 kèm FAR<0.2 ở base rate ~0.30 cần AUC ≈ 0.89. AUC thực có ở W2–W6 chỉ 0.52–0.77 (cả EC lẫn CFS). Đây là giới hạn lượng thông tin trong dự báo động lực, không phải của lớp mô hình hay của việc dò ngưỡng. Mọi nỗ lực đổi mô hình/quét ngưỡng đều tác động vào cùng một trục — và trục đó đã cạn ở W2–W6.

8. So sánh trực tiếp 3 phương án

8.1 Kỹ năng EHDE tuần 1 (W1) — hạn có ý nghĩa nghiệp vụ

Phương ánPODPOFDFARFBICSIAUCĐạt chỉ tiêu
EC_0.25_org0.6520.1020.1980.8140.5620.8715/5
EC_1.5→SD0.6430.1020.2010.8040.5530.8684.5/5
CFSv20.523—0.274—0.4370.7772/5
CFS cấp ô lưới; CFS cấp vùng đạt tốt hơn (CSI 0.593). Con số CFS trên tập 3 năm khác EC (4 năm), nên so sánh mang tính định hướng, không phải kiểm định thống kê tuyệt đối.
CSI theo tuần (cấp ô lưới, toàn quốc)

 0.56 EC25 ●
 0.55 EC15  ●
 0.44 CFS      ●
      W1        W2        W3        W4        W5        W6
EC25 .562 ───── .391 ─── .322 ─── .308 ─── .302 ─── .290
EC15 .553 ───── .387 ─── .331 ─── .317 ─── .300 ─── .286
CFS  .437 ───── .234 ─── .205 ─── .189 ─── .185 ─── .190

Xếp hạng bền vững mọi tuần:  EC_0.25 ≈ EC_1.5→SD  >  CFSv2
Hai đường EC gần như chồng khít; CFS thấp hơn một bậc rõ rệt.

8.2 Ba nhận định so sánh

9. Điều kiện vận hành thời gian thực (real-time)

Cả ba đã chạy thử bản tin nghiệp vụ cho init 29/08/2026 00Z (cùng cấu trúc URL), tái sử dụng đúng mô hình đã huấn luyện trên hindcast.

9.1 Chuỗi vận hành (ví dụ EC_1.5→SD — src/sd/)

download_ec15_rt.py        # tải control forecast 1.5° init mới nhất (login node, internet)
  → grib_to_netcdf          # convert GRIB → NetCDF
  → build_ec_all_sd_rt.py   # EC_all lưới 0.25° đầy đủ: 39 biến nội suy + mn2t6
                            #   + mx2t6 = BCSD "đóng băng" (hệ số học từ hindcast)
  → operational_forecast    # nạp model_W1..W6.joblib, chạy cổng 2 tầng, sinh xác suất + nhị phân
  → make_forecast_html      # bản đồ W1–W6 + trường xác suất
Builder đã validate trên hindcast 2003-08-03: mọi biến nội suy corr=1.00000; mx2t6 BCSD corr 0.99952. Pipeline idempotent.

9.2 Điều kiện & ràng buộc vận hành (chung)

Hạng mụcYêu cầu
Bước cần internetChỉ khâu tải dữ liệu — chạy ở login node; phần còn lại offline.
Tính nặngNộp qua SLURM (workq, 11 node × 20 core). Huấn luyện đã đóng gói sẵn model_W*.joblib ⇒ real-time chỉ inference, nhẹ.
Đầu vàoChỉ control forecast, 00Z, hạn tới ≥45 ngày.
Hiệu chỉnhHệ số BCSD + khí hậu học đóng băng từ hindcast (không khớp lại theo thời gian thực).
Tự động hoáWatcher setsid sống qua logout; theo dõi qua log. (CFS có run_overnight.sh idempotent + STATUS_AUTO.md tự cập nhật 5′/lần.)
Phát hànhW1: bản đồ nhị phân + xác suất. W2–W6: chỉ trường xác suất.

9.3 Kết quả bản tin 29/08/2026 (W1)

Phương ánSố ô báo EHDE W1Số vùng EHDEGhi chú
EC_0.25_org437 / 541—Phủ rộng W4–W6 (đặc tính init cuối tháng 8)
EC_1.5→SD429 / 541—Đồng thuận với org 91.9% ở W1; 98–100% ở W3–W6
CFSv2286 / 541 (52.9%)5 / 7S1 72.5%, S2/S3 100%…
SD ≈ org cho init 29/8 ở cả 6 tuần và ở 21 bảng contingency từng điểm (3 điểm × 7 vùng), khẳng định lại kết luận mục 7.2 trong điều kiện vận hành thực.

10. Kết luận & khuyến nghị nghiệp vụ

  1. Chọn ECMWF làm nguồn vận hành — kỹ năng cao hơn CFSv2 rõ rệt ở mọi hạn (W1 CSI 0.55–0.56 vs 0.44; AUC 0.87 vs 0.78).
  2. Không cần bộ 0.25° gốc. Tải bản 1.5° (nhẹ, rẻ) rồi hạ quy mô BCSD tái tạo ~98% kỹ năng của 0.25° (W1 CSI 0.553 vs 0.562). Đây là khuyến nghị tiết kiệm hạ tầng quan trọng nhất của dự án.
  3. Vận hành phát báo nhị phân cho W1; W2–W6 phát trường xác suất — do trần thông tin (cần AUC≈0.89, thực có 0.52–0.77) chứ không phải mô hình yếu.
  4. Bộ chỉ tiêu đã hiệu chỉnh: POD>0.6, FAR<0.2, POFD<0.2, CSI>0.4, FBI~0.75 (bộ gốc FBI≈1 tự mâu thuẫn về mặt đại số).

Hướng còn mở (chưa đụng hoặc chưa cạn)

11. Phụ lục

11.1 Định nghĩa chỉ số (từ bảng ngẫu nhiên a,b,c,d)

Chỉ sốCông thứcÝ nghĩa
PODa/(a+c)xác suất phát hiện (hit rate)
POFDb/(b+d)xác suất báo động sai trên nền không sự kiện
FARb/(a+b) = 1 − POD/FBItỉ lệ báo động sai trên tổng số lần báo
FBI(a+b)/(a+c)tần suất báo / tần suất thực (≈1 là cân bằng)
CSIa/(a+b+c)chỉ số thành công tới hạn (threat score)
SEDIhàm của POD, POFDchỉ số phân biệt cực trị đối xứng

MAE/RMSE/ME/CORR đánh giá theo giá trị (°C) cho khâu Tx; POD/POFD/FAR/FBI/CSI/SEDI/EDI đánh giá theo khả năng phát hiện sự kiện EHD/EHDE.

11.2 Các bẫy kỹ thuật đã vấp (tránh lặp)

11.3 Sản phẩm bản tin (đã publish)

Phương ánURL
EC_0.25_org…/HW/ehd_forecast_ope1b.html
EC_1.5→SD…/HW_EC_10/ehd_forecast_ope1b_sd.html
EC_1.5→SD vs org (21 bảng contingency)…/HW_EC_10/ehd_forecast_sd_vs_org.html
CFSv2…/HW_CFS_raw/ehd_cfs_forecast_ope.html

11.4 Ký hiệu bộ số liệu (thống nhất)

Ký hiệuÝ nghĩa
EC_0.25_orgEC 0.25° tải trực tiếp (dùng ở ../HW = phương án 1)
EC_1.5_orgEC 1.5° tải trực tiếp (nguồn của phương án 2)
EC_0.25_SDEC_1.5_org hạ quy mô BCSD về 0.25° (= "EC_1.5→SD" trong báo cáo)
EC_0.25_SD_AIEC_0.25_SD sau hiệu chỉnh AI (hướng mở, chưa dùng vận hành)
CFSv2_orgCFSv2 gốc (../HW_CFS_raw = phương án 3)

Báo cáo tự sinh từ nhật ký kỹ thuật của ba dự án (developing.txt, STATUS.md, RESUME.md) và các file kết quả JSON đã kiểm định. Mọi con số trích trực tiếp từ output đánh giá; khác biệt tập năm kiểm định giữa EC (4 năm) và CFS (3 năm) đã được ghi chú. Ngày 05/09/2026.