Chuyên mục: » Đề tài QG.22.81 » Hệ thống chạy nghiệp vụ
Đăng ngày 24/8/2024 Cập nhật lúc 11:08:30 ngày 24/8/2024

Dự báo nghiệp vụ

Hệ thống chương trình chạy nghiệp vụ dự báo hạn cho Việt Nam

Hệ thống nghiệp vụ dự báo hạn cho Việt Nam được chạy tự động mỗi tháng một lần trên hệ thống máy tính hiệu năng cao của nhóm REMOCLIC. Trong quá trình vận hành nếu gặp lỗi chương trình sẽ thông báo đến người quản trị để có phương án xử lý kịp thời.

year=`date +%Y`

mon=`date -d "1 month ago"+%m`

ROOT=/home/tanpv/Progs/Dr_VN_Ope/DATA/PDF_Ope/

NC_DIR=${ROOT}${year}${mon}

file1=${NC_DIR}/Dr_Prob.nc

file2=${NC_DIR}/Forecast_Ope_Pr_T2_and_Anomaly.nc

if [[-e${file1}&&-e${file2}]]; then

   echo"Running for "${year}${mon}"has been done !"

   exit

fi

# Checking for enough files to run:

DIR=/home/tanpv/Data/562_VNU/0.25_VN/Operational/monthly/${year}/${mon}

MEMS="01 02 03 04 05 06 "

MODELS="clWRF RegCM "

icount=0

forModel in${MODELS}; do

   formem in${MEMS}; do

       Fname=${Model}_${mem}.nc

       if [[-e${DIR}/${Fname}]]; then

          echo"File "${DIR}/${Fname}"exists"

       else

          icount=$((icount + 1))

          echo"File "${DIR}/${Fname}"does not exist"

       fi

   done

done

if [$((icount))-ne0]; then

   echo"Not enough files to run for "${year}-${mon}

   echo"Number of missing files is "${icount}

   echo"Not enough files to run for "${year}-${mon}".Number of missing files is "${icount}| mailx -s"Operational Drought forecast"remoclic@hus.edu.vn

   exit

fi

###################################################################

# Current directory:

Here=`pwd`

# 1) Remap to 0.25 for VN domain:

#cd /home/tanpv/Data/562_VNU/0.25_VN

./remap_Ope.sh ${year}${mon}

# Move to current directory:

cd${Here}

# 2) Bias corrections:

./o1_run_BC_Ope_Current.sh ${year}${mon}

# 3) Combine data from current run to previous runs:

./o2_Combine_for_Ope_from_2024-01.sh ${year}${mon}

# 4) Calculate Drought indices:

./o3_Calc_Dr_IDXs.sh ${year}${mon}

# 5) Calculate probability of Drought occurrence

./o5_Calc_Dr_Prob.sh ${year}${mon}

# Calculate the model forecast of rainfall and temperature and their anomaly

./o4_Calc_Pr_T2_Ano.sh ${year}${mon}

# Plot Drought probability using GrADS

./o7_Plot_Dr_Prob.sh ${year}${mon}

# Plot forecast rainfall and temperature and their anomaly using GrADS

./o6_Plot_Pr_T2_fcs.sh ${year}${mon}

# Plot drought indices:

./o8_Plot_Dr_IDX.sh ${year}${mon}

# Move NC file to ${year}${mon} directory

./o9_data_organize.sh ${year}${mon}


remap_Ope.sh

Chương trình này là một script shell thực hiện việc chuyển đổi số liệu dự báo của các mô hình RegCM và clWRF từ độ phân giải 20 km trên miền tính về độ phân giải 0.25 độ cho khu vực Việt Nam.

Số liệu ban đầu: /home/tanpv/Data/562_VNU/0.25_VN/Operational/monthly///_<0?>.nc. Số liệu sau khi xử lý: /home/tanpv/Data/562_VNU/0.25_VN/For_BC_Ope///_<0?>.nc, trong đó , là năm, tháng đứng dự báo, là RegCM hoặc clWRF, <0?> là leadtine.

BC_for_Ope.f90

Chương trình này đọc số liệu dự báo từ các mô hình và tiến hành hiệu chỉnh nhiệt độ và lượng mưa dựa trên kết quả tính các hệ số của phương trình hồi quy, các trọng số của ANN cũng như trung bình khí hậu mô hình và quan trắc từ tập số liệu luyện của giai đoạn 1982-2020. Mỗi lần chạy sẽ nhận được 42 bộ số liệu tương ứng với 2 mô hình (RegCM, clWRF) x 3 phương án hiệu chỉnh (Cli, ANN, MLR) x 7 thành phần (6 lần chạy với 6 bộ số liệu CFS cộng với 1 thành phần trung bình tổ hợp).

Kết quả nhận được là các file số liệu nhiệt độ và lượng mưa mô hình trước (mod) và sau hiệu chỉnh (cli, ann, mlr) lưu dưới dạng netCDF mảng 4 chiều (lon, lat, member, lead) tại thư mục:

/home/tanpv/Progs/Dr_VN_Ope/DATA/Corrected_Ope/

Tên file có dạng BC_Ope___.nc, với là năm và tháng đứng dự báo, là pr hoặc t2, là RegCM hoặc clWRF.

Combine_for_Ope.f90

Chương trình này thực hiện việc ghép nối số liệu nhiệt độ và lượng mưa đã hiệu chỉnh của giai đoạn trước (cho đến tháng trước tháng hiện tại) và số liệu dự báo của tháng hiện tại, để tạo thành chuỗi số liệu dài năm cho mục đích tính các chỉ số hạn.

Số liệu giai đoạn trước: /home/tanpv/Progs/Dr_VN_Ope/DATA/Combined_Ope/

Số liệu tháng hiện tại: /home/tanpv/Progs/Dr_VN_Ope/DATA/Corrected_Ope/

Kết quả lưu vào thư mục: /home/tanpv/Progs/Dr_VN_Ope/DATA/Combined_Ope/ với số liệu đã cập nhật thêm số liệu dự báo tháng hiện tại. Tên file có dạng __lead_<0?>.nc với là pr hoặc t2, là RegCM hoặc clWRF, <0?> là 01 đến 06 (các leadtime).

Số liệu trong các file là nhiệt độ và lượng mưa lưu dưới dạng mảng 4 chiều (lon, lat, mem, month) của các biến mod, cli, ann và mlr tương ứng là mô hình chưa hiệu chỉnh và đã hiệu chỉnh theo cli, ann và mlr. Độ dài chuỗi thời gian quy ước từ 1/1982-12/2025 (528 tháng), nhưng độ dài chuỗi số liệu thực chỉ đến tháng đứng dự báo cộng leadtime. Ví dụ, với file chứa số liệu leadtime=1, tháng đứng dự báo là 7/2024, thì số liệu chỉ có đến bước thời gian (2023-1982+1)*12+7+1 (tháng 8/2024); nếu leadtime=2 thì (2023-1982+1)*12+7+2 (tháng 9/2024).

Lưu ý: Các file với tên file *_lead_0?.nc chỉ lưu đến tháng được dự báo (=(YOpe-Yr1)*Nmon+MOpe+ilead). Riêng các file không có “_lead_0?” chứa số liệu dự báo của tất cả các leadtime (=(YOpe-Yr1)*Nmon+MOpe+Nlead).

Calc_Dr_IDXs.f90

Chương trình này đọc số liệu nhiệt độ và lượng mưa dự báo đã hiệu chỉnh và đã ghép nối với chuỗi số liệu trước đó tạo ra từ chương trình Combine_for_Ope.f90 trên đây, sau đó tính các chỉ số hạn cho các leadtime. Kết quả được ghi vào các file có tên Dr_IDX__.nc tại thư mục /home/tanpv/Progs/Dr_VN_Ope/DATA/Dr_IDXs_Ope, với là spi hoặc spei, là quy mô thời gian hạn bằng 01 hoặc 03 hoặc 06. Nội dung file là một biến mảng 4 chiều dridx(lon,lat,case,lead), trong đó case=42, bằng 2 mô hình x 7 member x 3 trường hợp hiệu chỉnh cli, ann và mlr.

Calc_Anomaly_Pr_T2_Ope.f90

Chương trình này đọc số liệu từ file /home/tanpv/Progs/Dr_VN_Ope/DATA/Cli_Out/Monthly_Clim.nc là trung bình khí hậu quan trắc và dự báo đã tính từ số liệu giai đoạn 1982-2020 và số liệu dự báo đã hiệu chỉnh của nhiệt độ và lượng mưa từ chương trình BC_for_Ope.f90 trên đây, sau đó tính nhiệt độ và lượng mưa dự báo và dị thường của chúng. nhiệt độ và lượng mưa dự báo là trung bình tổ hợp từ 42 thành phần (2 mô hình (RegCM, clWRF) x 3 phương án hiệu chỉnh (Cli, ANN, MLR) x 7 thành phần). Dị thường là hiệu giữa dự báo so với trung bình khí hậu mô hình. Kết quả lưu tại thư mục /home/tanpv/Progs/Dr_VN_Ope/DATA/PDF_Ope/ trong đó là năm và tháng đứng dự báo. Tên file là Forecast_Ope_Pr_T2_and_Anomaly.nc. Nội dung file gồm các biến mảng 3 chiều (lon,lat,lead) pr_fcs, t2_fcs, pr_ano, t2_ano. Lưu ý: nhiệt độ và lượng mưa dự báo được tính bằng cách lấy dị thường dự báo cộng với trung bình khí hậu quan trắc.

Drought_prob.f90

Chương trình này đọc số liệu các chỉ số hạn dự báo tính từ chương trình Calc_Dr_IDXs.f90 trên đây và tính xác suất xuất hiện hạn cho từng cấp hạn. Xác suất xuất hiện hạn được ước lượng bằng tỷ số (%) giữa số thành phần dự báo có hạn trên tổng số 42 thành phần (2 mô hình x 3 phương án hiệu chỉnh x 7 member). Ngoài ra, còn tính chỉ số hạn tổ hợp (hiện tại dùng trung vị tổ hợp thay cho trung bình tổ hợp) từ 42 thành phần này. Kết quả lưu tại thư mục /home/tanpv/Progs/Dr_VN_Ope/DATA/PDF_Ope/ trong đó là năm và tháng đứng dự báo. Tên file là Dr_Prob.nc. Nội dung file gồm các biến mảng 4 chiều (lon, lat, timescale, lead): mild, mord, seve (xác suất các cấp hạn) và dr_ens (chỉ số hạn tổ hợp).

 

Các chương trình xử lý sau mô hình cung cấp thông tin cho dự báo thời gian thực

1) Chương trình hiệu chỉnh nhiệt độ và lượng mưa bằng 3 phương pháp Cli, ANN và MLR cho giai đoạn 1982-2021 (member 1, training) và 2011-2021 (các member 1-6, testing)

2) Chương trình ghép nối số liệu của hai giai đoạn 1982-2011 và 2011-2021 thành bộ số liệu liên tục

3) Chương trình Calc_Clim_mean_T2_Pr.f90

4) Chương trình tính các chỉ số hạn cho toàn giai đoạn 1982-2020

 

BC_ANN_1982-2020_Feb_2024.f90

Chương trình này đọc số liệu đã remap về khu vực Việt Nam và tiến hành hiệu chỉnh nhiệt độ và lượng mưa mô hình giai đoạn 1982-2021 bằng 3 phương pháp Cli, ANN và MLR. Các biến mô hình được sử dụng để hiệu chỉnh bằng ANN và MLR gồm pr, t2m, olr, q2, rh2, w700, u200-u850 của cùng ô lưới, và olr, q2 và w700 của 4 ô lưới xung quanh ô hiện tại. Tổng cộng có 22 biến làm nhân tố dự báo.

Số liệu ban đầu được lưu tại /home/tanpv/Progs/562_VNU/Data/For_BC/ và chỉ lấy file tương ứng với member 1 với tên file là *_01_BL_Test_VN.nc. Kết quả ghi ra bao gồm:

1) Các trọng số của ANN lưu tại /home/tanpv/Data/562_VNU/0.25_VN/2024/ANN_Save/

2) Các hệ số MLR và trung bình khí hậu các biến lưu tại /work/projects/G09/562_VNU/0.25_VN/2024/Cli_Out/

3) Kết quả sau hiệu chỉnh lưu tại /home/tanpv/Data/562_VNU/0.25_VN/2024/Corrected/BC_Training_*.nc. Nội dung file là mảng 4 chiều (lon, lat, member, month) của các biến t2, pr cho các mô hình và các leadtime, trong đó member = 5 là 5 trường hợp (obs, ann, model, cli, mlr), month = 480 = 40 năm (1982-2021) x 12 tháng.

BC_ANN_2011-2020_test_Feb_2024.f90

Chương trình này thực hiện việc hiệu chỉnh nhiệt độ và lượng mưa mô hình cho giai đoạn 2011-2021 bằng 3 phương pháp Cli, ANN và MLR trên cơ sở kết quả nhận được của các trọng số ANN, các hệ số hồi quy và các tham số trung bình khí hậu khác từ chương trình BC_ANN_1982-2020_Feb_2024.f90 trên đây. Số liệu đầu vào gồm:

1) /home/tanpv/Progs/562_VNU/Data/For_BC/*_0?_VN.nc (các thành phần dự báo)

2) Các trọng số của ANN lưu tại /home/tanpv/Data/562_VNU/0.25_VN/2024/ANN_Save/

3) Các hệ số MLR và trung bình khí hậu các biến lưu tại /work/projects/G09/562_VNU/0.25_VN/2024/Cli_Out/

Kết quả tính được lưu vào thư mục /home/tanpv/Data/562_VNU/0.25_VN/2024/Corrected/ (như chương trình trên). Tên file có dạng BC_testing_*.nc. Nội dung file là các biến mảng 4 chiều (lon, lat, member, month) chứa số liệu của obs, ann, model, cli, mlr, trong đó member = 7 là 7 thành phần (6 thành phần + 1 thành phần tổ hợp), month = 132 = 11 năm (2011-2021) x 12 tháng.

Combine_all_BC_1982-2020.f90

Chương trình này đọc số liệu nhiệt độ và lượng mưa chưa hiệu chỉnh và đã hiệu chỉnh bằng 3 phương pháp Cli, ANN và MLR từ thư mục /home/tanpv/Data/562_VNU/0.25_VN/2024/Corrected/ được tạo bởi 2 chương trình trên đây cho các giai đoạn 1982-2011 và 2011-2021 và ghép nối lại thành các chuỗi số liệu liên tục 1982-2021. Kết quả được lưu tại /home/tanpv/Data/562_VNU/0.25_VN/2024/Combined/. Tên file có dạng __lead_<0?>.nc, trong đó là pr hoặc t2, là RegCM hoặc clWRF, <0?> là 01-06 (leadtime). Nội dung file là các biến mảng 4 chiều (lon, lat, mem, month) của obs, ann, model, cli, mlr, với mem = 1-7 members, month = 480 = 40 năm (1982-2021) x 12 tháng. Ngoài ra, chương trình còn tính giá trị trung bình vùng cho các vùng khí hậu. Kết quả lưu vào các file _all_reg_.nc với nội dung là các biến mảng 4 chiều (reg, mem, lead, month) của obs, ann, model, cli, mlr.

Calc_Clim_mean_T2_Pr.f90

Chương trình này đọc số liệu nhiệt độ và lượng mưa đã hiệu chỉnh bằng 3 phương pháp Cli, ANN và MLR từ thư mục /home/tanpv/Data/562_VNU/0.25_VN/2024/Combined_Ope/ và tính trung bình khí hậu từ tổ hợp trung bình của 42 thành phần (2 mô hình x 3 phương án hiệu chính x 7 member) cho từng tháng. Kết quả lưu vào file trong thư mục /home/tanpv/Progs/562_VNU/PDF_Ope/Monthly_Clim.nc, sau đó được copy hoặc chuyển vào thư mục /work/projects/G09/562_VNU/0.25_VN/2024/Cli_Out/. Nội dung file chứa các biến mảng 3 chiều (lon, lat, month) của các biến quan trắc pr_o, t2_o và mảng 4 chiều (lon, lat, lead, month) của các biến mô hình pr_m, t2_m, trong đó lead = 6, month = 12.

Calc_All_Dr_IDXs_1983-2020.f90

Chương trình này đọc số liệu nhiệt độ và lượng mưa của mô hình trước và sau hiệu chỉnh (mod, cli, ann, mlr) cũng như số liệu quan trắc (obs) giai đoạn 1982-2021 từ thư mục /home/tanpv/Data/562_VNU/0.25_VN/2024/Combined/ và tính các chỉ số hạn (spi, spei) quan trắc và mô hình cho tất cả các member. Sau đó tính trung bình tổ hợp, trung vị tổ hợp và hồi quy tuyến tính cho member=1 từ 8 thành phần = 2 mô hình x 4 trường hợp (mod, cli, ann, mlr). Kết quả lưu tại /home/tanpv/Data/562_VNU/0.25_VN/Dr_IDXs_Ope/ nhưng chỉ cho member=1. Tên file có dạng Dr_IDX_1983-2020__.nc, trong đó là spi hoặc spei, timescale=01 hoặc 03 hoặc 06. Nội dung file là các mảng 4 chiều (lon, lat, lead, time) của các biến _ với là RegCM hoặc clWRF, là mod, cli ann, mlr và các biến ens (trung bình tổ hợp), emed (trung vị tổ hợp), mlr (hồi quy) và obs (quan trắc). Độ dài chuỗi time=456=(2020-1983+1)*12.

(GS. TS. Phan Văn Tân)