Giới thiệu dự án
Bối cảnh và thực trạng ngành thủy văn
Khu vực Duyên hải Nam Trung Bộ, đặc biệt là lưu vực sông Vệ thuộc địa bàn tỉnh Quảng Ngãi, là một trong những điểm nóng về thiên tai lũ lụt tại Việt Nam. Với đặc thù địa hình sườn Đông dãy Trường Sơn dốc đứng, sông ngòi ngắn và dốc (độ dốc bình quân lưu vực $19.9%$, mật độ lưới sông $0.79\text{ km/km}^2$), lượng mưa tập trung theo mùa từ tháng X đến tháng XII chiếm tới $65% - 75%$ tổng lượng dòng chảy cả năm. Mưa lớn tập trung có thể vượt ngưỡng $3000\text{ mm} - 4000\text{ mm}$ ở thượng nguồn, kết hợp với địa hình chuyển tiếp đột ngột sang vùng đồng bằng hẹp ven biển khiến lũ tập trung nhanh, biên độ lũ lớn và thời gian truyền lũ rất ngắn ($3 - 5\text{ ngày}$). Lịch sử đã ghi nhận các trận đại hồng thủy cực đoan năm 1986 ($Q_{\max} = 1840\text{ m}^3\text{/s}$), 1987 ($Q_{\max} = 4290\text{ m}^3\text{/s}$, mô-đun đỉnh lũ $5.02\text{ m}^3\text{/s}\cdot\text{km}^2$), và năm 1999 gây ngập lụt nghiêm trọng, thiệt hại nặng nề về người và cơ sở hạ tầng.
Địa hình & Đặc trưng Thủy văn Lưu vực Sông Vệ (Trạm An Chỉ)
┌────────────────────────────────────────────────────────────────────────┐
│ Thượng lưu: Vùng núi Ba Tơ (100 - 1200m) ──> Dốc 19.9%, Mưa > 3000mm │
│ │ (Nước tập trung nhanh, lũ quét) │
│ ▼ │
│ Trung lưu: Vùng đồi núi thấp Nghĩa Hành (10 - 50m) │
│ │ │
│ ▼ │
│ Tuyến khống chế: Trạm Thủy văn An Chỉ (Diện tích F = 841 - 854 km²) │
│ │ │
│ ▼ │
│ Hạ lưu: Đồng bằng Tư Nghĩa - Mộ Đức ──> Cồn cát chắn, thoát lũ chậm │
│ │ │
│ ▼ │
│ Cửa biển: Cửa Lở & Đại Cổ Lũy (Chịu ảnh hưởng mạnh của thủy triều) │
└────────────────────────────────────────────────────────────────────────┘
Vấn đề nghiên cứu cụ thể
- Thiếu hụt mạng lưới quan trắc: Toàn bộ lưu vực sông Vệ có diện tích khống chế đến trạm An Chỉ là $841\text{ km}^2$, nhưng chỉ có duy nhất một trạm thủy văn quan trắc dòng chảy thực tế (An Chỉ), gây khó khăn lớn cho việc tính toán dòng chảy thời gian thực.
- Rào cản phần mềm thương mại: Việc mô phỏng thủy văn hiện nay phụ thuộc lớn vào các gói phần mềm thương mại độc quyền (như DHI MIKE 11 NAM). Các gói phần mềm này có chi phí bản quyền cao, mã nguồn đóng, gây cản trở việc tùy biến thuật toán tự động hiệu chỉnh thông số, đánh giá độ nhạy và phân tích độ bất định (uncertainty analysis).
- Nhu cầu cấp thiết về công cụ mã nguồn mở: Cần một công cụ mô hình hóa dòng chảy độc lập, xây dựng trên nền tảng ngôn ngữ lập trình hiệu năng cao (FORTRAN), đảm bảo độ chính xác tương đương các phần mềm chuẩn quốc tế nhưng linh hoạt cho nghiên cứu và triển khai thực địa.
Mục tiêu dự án
- Xây dựng và hoàn thiện cấu trúc thuật toán mô hình toán mưa - dòng chảy NAM (Nedbør-Afstrømnings-Model) bằng ngôn ngữ lập trình FORTRAN (NAM-FORTRAN).
- Thiết lập, thu thập và tiền xử lý chuỗi số liệu khí tượng - thủy văn nhiều năm (mưa ngày, mưa giờ qua đa giác Thiessen, bốc hơi Piche, lưu lượng thực đo) trên lưu vực sông Vệ tại trạm An Chỉ.
- Tiến hành hiệu chỉnh (calibration) và kiểm định (validation) độc lập hai mô hình: MIKE 11 NAM và NAM-FORTRAN trên cả thang thời gian ngày (chuỗi liên tục 1990–1993 và 1997–2000) và thang thời gian giờ (các trận lũ lịch sử 11/1999 và 10/2003).
- Đánh giá sai số, so sánh hiệu năng thuật toán và khẳng định tính đúng đắn, khả thi của mô hình tự phát triển nhằm phục vụ cảnh báo, dự báo lũ và quản lý tài nguyên nước.
Phương pháp tiếp cận và kết quả kỳ vọng
- Phương pháp: Tiếp cận mô hình khái niệm gộp (lumped conceptual model) mô phỏng liên tục chu trình thủy văn thông qua hệ thống các bể chứa tuyến tính và phi tuyến nối tiếp.
- Chỉ tiêu định lượng kỳ vọng: Hệ số hiệu quả Nash-Sutcliffe ($CR_3 \ge 0.80$ đối với dòng chảy ngày và $CR_3 \ge 0.85$ đối với dòng chảy lũ giờ), sai số tổng lượng dòng chảy ($|CR_1| \le 5%$), hệ số tương quan thể tích $k \approx 1.0$.
Phạm vi và giới hạn
- Phạm vi không gian: Lưu vực sông Vệ tính đến tuyến trạm thủy văn An Chỉ ($F = 841\text{ km}^2$), bao gồm 4 trạm đo mưa: Ba Tơ, An Chỉ, Sơn Giang, Giá Vực và trạm khí tượng Quảng Ngãi.
- Giới hạn kỹ thuật: Mô hình khái niệm gộp xem xét các tham số trung bình toàn lưu vực, chưa tích hợp chi tiết động lực học dòng tràn 2D trên bãi tràn đồng bằng.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí | Mô hình TANK (Sugawara, Nhật Bản) | Mô hình HEC-HMS (USACE, Mỹ) | Mô hình MIKE-SHE (DHI, Đan Mạch) | Mô hình MIKE 11 NAM (DHI) | Giải pháp NAM-FORTRAN (Đề tài) |
|---|---|---|---|---|---|
| Bản chất vật lý | Khái niệm gộp (bể chứa đơn/kép) | Bán phân bố / Khái niệm | Phân bố đầy đủ (2D/3D physically-based) | Khái niệm gộp (Lumped conceptual) | Khái niệm gộp (Open-source FORTRAN) |
| Yêu cầu dữ liệu | Thấp - Trung bình | Trung bình | Rất cao (thổ nhưỡng, DEM, thảm phủ) | Trung bình (mưa, bốc hơi, lưu lượng) | Trung bình (mưa, bốc hơi, lưu lượng) |
| Mã nguồn | Bán mở / Nhiều biến thể | Miễn phí (Freeware, GUI đóng) | Đóng thương mại, giá thành rất cao | Đóng thương mại (Cần License DHI) | Mã nguồn mở hoàn toàn (Fortran 90/95) |
| Khả năng mở rộng | Khó tích hợp tối ưu toàn cục | Hạn chế tùy biến thuật toán lõi | Rất khó tùy biến | Không thể can thiệp thuật toán tối ưu | Dễ dàng tích hợp SCE-UA, GA, MCMC |
| Độ phức tạp tính toán | Thấp | Trung bình | Rất cao (chạy lâu) | Thấp - xử lý nhanh | Rất thấp - tối ưu hóa tính toán số |
Yêu cầu hệ thống theo khung MoSCoW
- Must have (Bắt buộc): Mô phỏng đầy đủ 4 tầng trữ nước (Mặt $U$, Rễ cây $L$, Dòng sát mặt $Q_{IF}$, Nước ngầm $G$); tính toán chuẩn xác các chỉ số thống kê Nash-Sutcliffe ($CR_3$), sai số độ lệch ($CR_1$), sai số thể tích ($k$); hỗ trợ bước thời gian ngày ($\Delta t = 24\text{h}$) và giờ ($\Delta t = 1\text{h}$).
- Should have (Nên có): Cơ chế đọc/ghi file định dạng ASCII/Text linh hoạt tương thích cấu trúc bảng dữ liệu khí tượng chuẩn; module tự động khởi tạo giá trị ẩm ban đầu.
- Could have (Có thể có): Module ghép nối thủy lực diễn toán trong mạng lưới sông tự nhiên; thuật toán tìm kiếm thông số tối ưu tự động (Genetic Algorithm / Shuffled Complex Evolution).
- Won't have (Chưa thực hiện): Giao diện đồ họa tương tác (GUI) phức tạp; mô phỏng dòng bùn cát và chất lượng nước.
Thiết kế kiến trúc hệ thống
graph TD
P[Giáng thủy - Mưa P] --> SurfPool[Bể chứa bề mặt - Dung tích Umax]
SurfPool -->|Bốc hơi Ep| Evap[Tổn thất bốc thoát hơi]
SurfPool -->|Thấm qua tầng rễ khi U > Umax| RootPool[Bể chứa tầng rễ cây - Dung tích Lmax]
SurfPool -->|Dòng sát mặt QIF| Cascade1[Bể diễn toán mặt số 1: CK12]
SurfPool -->|Dòng tràn mặt QOF| Cascade1
RootPool -->|Thấm sâu bổ cập G| GWPool[Bể chứa nước ngầm - Dung tích G]
GWPool -->|Dòng chảy kiệt/ngầm BF| Cascade2[Bể diễn toán ngầm: CKBF]
Cascade1 --> TotalQ[Dòng chảy tổng cộng cửa ra trạm An Chỉ: Qtt = OF + IF + BF]
Cascade2 --> TotalQ
Bộ thông số kỹ thuật và phương trình động lực dòng chảy
Mô hình toán học NAM bao gồm 9 thông số cơ bản được định dạng và chuẩn hóa toán học như sau:
- Dòng chảy sát mặt ($Q_{IF}$): $$Q_{IF} = \begin{cases} (CK_{IF})^{-1} \cdot \frac{U/U_{\max} - T_{IF}}{1 - T_{IF}} \cdot U & \text{khi } U/U_{\max} > T_{IF} \ 0 & \text{khi } U/U_{\max} \le T_{IF} \end{cases}$$
- Dòng chảy tràn bề mặt ($Q_{OF}$): Xảy ra khi dung tích ẩm bề mặt vượt ngưỡng bão hòa ($U > U_{\max}$), sinh lượng nước dư $P_N = U - U_{\max}$: $$Q_{OF} = \begin{cases} CQ_{OF} \cdot \frac{L/L_{\max} - T_{OF}}{1 - T_{OF}} \cdot P_N & \text{khi } L/L_{\max} > T_{OF} \ 0 & \text{khi } L/L_{\max} \le T_{OF} \end{cases}$$
- Bổ cập nước ngầm ($G$) và biến thiên ẩm tầng rễ ($DL$): $$G = \begin{cases} (P_N - Q_{OF}) \cdot \frac{L/L_{\max} - T_G}{1 - T_G} & \text{khi } L/L_{\max} > T_G \ 0 & \text{khi } L/L_{\max} \le T_G \end{cases}$$ $$DL = P_N - Q_{OF} - G$$
- Diễn toán dòng chảy qua các bể chứa tuyến tính:
- Dòng chảy mặt ($OF$) và dòng sát mặt ($IF_f$) chuyển tải qua 2 hồ chứa tuyến tính nối tiếp với hằng số thời gian $CK_{12}$: $$OF_t = Q_{OF} \cdot (1 - e^{-\Delta t / CK_{12}}) + OF_{t-1} \cdot e^{-\Delta t / CK_{12}}$$ $$IF_{f,t} = Q_{IF} \cdot (1 - e^{-\Delta t / CK_{12}}) + IF_{f,t-1} \cdot e^{-\Delta t / CK_{12}}$$
- Dòng ngầm ($BF$) diễn toán qua bể ngầm với hằng số thời gian $CK_{BF}$: $$BF_t = G \cdot (1 - e^{-\Delta t / CK_{BF}}) + BF_{t-1} \cdot e^{-\Delta t / CK_{BF}}$$
- Tổng lưu lượng dòng chảy tính toán tại mặt cắt cửa ra ($Q_{tt}$): $$Q_{tt} = (OF_t + IF_{f,t} + BF_t) \cdot \frac{F}{3.6 \cdot \Delta t} \quad (\text{với } F = 841\text{ km}^2)$$
Implementation và kết quả
Cấu trúc mã nguồn FORTRAN và thuật toán xử lý
Dưới đây là đoạn mã nguồn cốt lõi viết bằng chuẩn FORTRAN 90/95, minh chứng việc số hóa chu trình thủy văn và hàm mục tiêu đánh giá Nash-Sutcliffe:
!======================================================================
! MODULE: HYDRO_NAM_ENGINE
! DESCRIPTION: Numerical implementation of the NAM Hydrological Model
! AUTHOR: Nguyen Thi Thu Huyen (Advisor: Assoc. Prof. Nguyen Tien Giang)
!======================================================================
MODULE NAM_ENGINE
IMPLICIT NONE
REAL, PARAMETER :: EPS = 1.0E-6
CONTAINS
SUBROUTINE RUN_NAM_TIMESTEP(P, Ep, Umax, Lmax, CQOF, CKIF, CK12, CKBF, &
TOF, TIF, TG, U, L, OF, IFf, BF, Qcalc, Area, Dt)
REAL, INTENT(IN) :: P, Ep, Umax, Lmax, CQOF, CKIF, CK12, CKBF
REAL, INTENT(IN) :: TOF, TIF, TG, Area, Dt
REAL, INTENT(INOUT) :: U, L, OF, IFf, BF
REAL, INTENT(OUT) :: Qcalc
REAL :: Pn, Qof, Qif, G, DL, Ea, TotalYield
! 1. Surface Storage Balance & Actual Evaporation
U = U + P
IF (U >= Ep) THEN
Ea = Ep
U = U - Ep
ELSE
Ea = U
U = 0.0
! Evaporation from lower root zone
L = L - (Ep - Ea) * (L / MAX(Lmax, EPS))
L = MAX(0.0, L)
END IF
! 2. Interflow Generation (QIF)
Qif = 0.0
IF ((U / MAX(Umax, EPS)) > TIF) THEN
Qif = (1.0 / MAX(CKIF, EPS)) * ((U/Umax - TIF)/(1.0 - TIF)) * U
U = MAX(0.0, U - Qif)
END IF
! 3. Overland Flow (QOF) & Infiltration
Pn = MAX(0.0, U - Umax)
U = MIN(U, Umax)
Qof = 0.0
IF (Pn > 0.0 .AND. (L / MAX(Lmax, EPS)) > TOF) THEN
Qof = CQOF * ((L/Lmax - TOF)/(1.0 - TOF)) * Pn
END IF
! 4. Groundwater Recharge (G) & Soil Moisture Increment (DL)
G = 0.0
IF ((Pn - Qof) > 0.0 .AND. (L / MAX(Lmax, EPS)) > TG) THEN
G = (Pn - Qof) * ((L/Lmax - TG)/(1.0 - TG))
END IF
DL = Pn - Qof - G
L = MIN(Lmax, L + DL)
! 5. Linear Reservoir Routing
OF = Qof * (1.0 - EXP(-Dt/MAX(CK12, EPS))) + OF * EXP(-Dt/MAX(CK12, EPS))
IFf = Qif * (1.0 - EXP(-Dt/MAX(CK12, EPS))) + IFf * EXP(-Dt/MAX(CK12, EPS))
BF = G * (1.0 - EXP(-Dt/MAX(CKBF, EPS))) + BF * EXP(-Dt/MAX(CKBF, EPS))
! Total runoff at catchment outlet (m3/s)
TotalYield = OF + IFf + BF ! (mm)
Qcalc = (TotalYield * Area) / (3.6 * Dt)
END SUBROUTINE RUN_NAM_TIMESTEP
FUNCTION CALC_NASH_SUTCLIFFE(Qobs, Qsim, N) RESULT(CR3)
INTEGER, INTENT(IN) :: N
REAL, INTENT(IN) :: Qobs(N), Qsim(N)
REAL :: CR3, Qobs_mean, Numerator, Denominator
INTEGER :: i
Qobs_mean = SUM(Qobs) / REAL(N)
Numerator = 0.0
Denominator = 0.0
DO i = 1, N
Numerator = Numerator + (Qsim(i) - Qobs(i))**2
Denominator = Denominator + (Qobs(i) - Qobs_mean)**2
END DO
CR3 = 1.0 - (Numerator / MAX(Denominator, EPS))
END FUNCTION CALC_NASH_SUTCLIFFE
END MODULE NAM_ENGINE
Bộ thông số tối ưu sau hiệu chỉnh (Trạm An Chỉ - Sông Vệ)
Bảng Thông số Hiệu chỉnh
┌──────────────────────────────────────┬─────────────┬─────────────┬─────────────┐
│ Thông số mô hình │ Ký hiệu │ MIKE 11 NAM │ NAM-FORTRAN │
├──────────────────────────────────────┼─────────────┼─────────────┼─────────────┤
│ Dung tích bể mặt (mm) │ Umax │ 14.90 │ 12.50 │
│ Dung tích tầng rễ cây (mm) │ Lmax │ 120.00 │ 110.00 │
│ Hệ số dòng chảy tràn (không thứ nguyên)│ CQOF │ 0.85 │ 0.82 │
│ Hằng số thời gian dòng sát mặt (giờ) │ CKIF │ 600.0 │ 650.0 │
│ Hằng số thời gian dòng tràn mặt (giờ)│ CK12 │ 29.0 │ 26.5 │
│ Hằng số xả nước ngầm (giờ) │ CKBF │ 1004.0 │ 1050.0 │
│ Ngưỡng dòng tràn mặt │ TOF │ 0.00 │ 0.00 │
│ Ngưỡng dòng sát mặt │ TIF │ 0.00 │ 0.00 │
│ Ngưỡng bổ cập ngầm │ TG │ 0.00 │ 0.00 │
└──────────────────────────────────────┴─────────────┴─────────────┴─────────────┘
Kết quả kiểm định và đối chuẩn hiệu năng
1. Mô phỏng dòng chảy ngày liên tục
| Giai đoạn mô phỏng | Chỉ tiêu đánh giá | MIKE 11 NAM | NAM-FORTRAN | Chênh lệch tuyệt đối ($\Delta$) | Đánh giá chất lượng |
|---|---|---|---|---|---|
| Hiệu chỉnh (1990 - 1993) | Nash-Sutcliffe ($CR_3$) | 0.862 | 0.865 | +0.003 (FORTRAN cao hơn) | Tốt ($> 0.85$) |
| Sai số độ lệch ($CR_1$) | 0.75% | -0.41% | -1.16% | Rất tốt ($ | |
| Tỷ số thể tích ($k$) | 1.008 | 0.996 | -0.012 | Chuẩn xác ($k \approx 1.0$) | |
| Kiểm định (1997 - 2000) | Nash-Sutcliffe ($CR_3$) | 0.835 | 0.841 | +0.006 (FORTRAN cao hơn) | Khá - Tốt |
| Sai số độ lệch ($CR_1$) | 0.64% | 0.56% | -0.08% | Rất tốt | |
| Tỷ số thể tích ($k$) | 1.006 | 1.005 | -0.001 | Rất tốt |
2. Mô phỏng các trận lũ lịch sử theo bước thời gian giờ
| Trận lũ kiểm nghiệm | Đại lượng thủy văn | Thực đo | MIKE 11 NAM | NAM-FORTRAN | Sai số đỉnh lũ ($\Delta Q_{\max}$) | Sai số thời gian đỉnh ($\Delta t_{peak}$) |
|---|---|---|---|---|---|---|
| Trận lũ tháng 11/1999 | Đỉnh lũ $Q_{\max}\text{ (m}^3\text{/s)}$ | 3750.0 | 3620.0 | 3680.0 | -1.86% (FORTRAN) | 0 giờ (Trùng khớp) |
| (Trận đại hồng thủy) | Tổng lượng $W\text{ (10}^6\text{ m}^3\text{)}$ | 946.1 | 925.3 | 938.7 | -0.78% (FORTRAN) | — |
| Nash-Sutcliffe ($CR_3$) | — | 0.884 | 0.891 | — | Rất tốt | |
| Trận lũ tháng 10/2003 | Đỉnh lũ $Q_{\max}\text{ (m}^3\text{/s)}$ | 2150.0 | 2040.0 | 2095.0 | -2.55% (FORTRAN) | 0 giờ |
| Nash-Sutcliffe ($CR_3$) | — | 0.865 | 0.872 | — | Tốt |
Mô phỏng Đường quá trình Lũ Giờ - Trận Lũ Lịch sử 11/1999
Lưu lượng (m3/s)
4000 ┼ ╭── Q thực đo (3750 m3/s)
│ / █ \
3500 ┼ / █▒█ \ ── Q tính toán NAM-FORTRAN (3680 m3/s)
│ / █ ▒ █ \
3000 ┼ / █ ▒ █ \
│ / █ ▒ █ \
2500 ┼ / █ ▒ █ \
│ / █ ▒ █ \
2000 ┼ / █ ▒ █ \
│ / █ ▒ █ \
1500 ┼ / █ ▒ █ \
│ / █ ▒ █ \
1000 ┼ / █ ▒ █ \
│ ╭─────────╯ █ ▒ █╰─────────╮
500 ┼──────────────╯ █ ▒ █ ╰────────
└────────────────────────────────────────────────────────────────────────
01/11 02/11 03/11 04/11 05/11 06/11
Đổi mới và đóng góp
Đổi mới công nghệ
- Làm chủ mã nguồn thuật toán lõi: Xây dựng thành công bộ nhân tính toán số thủy văn hoàn chỉnh trên nền tảng FORTRAN mà không cần bất kỳ thư viện thương mại phụ thuộc nào. Việc này giải phóng nghiên cứu khỏi sự phụ thuộc vào tệp thực thi nhị phân đóng của MIKE 11.
- Cải thiện độ chính xác tính toán đỉnh lũ: Nhờ cơ chế quản lý biến động thái ẩm liên tục và khả năng tinh chỉnh hằng số thời gian $CK_{12} = 26.5\text{h}$, NAM-FORTRAN đạt sai số đỉnh lũ trong trận đại hồng thủy 1999 chỉ $-1.86%$, tốt hơn mức $-3.47%$ của gói phần mềm thương mại.
- Nền tảng tối ưu hóa tham số mở: Cấu trúc module hóa cho phép lập trình viên nhúng trực tiếp các module thuật toán tối ưu hóa đa mục tiêu (như NSGA-II, Shuffled Complex Evolution - SCE-UA) và các công cụ ước lượng bất định (GLUE - Generalized Likelihood Uncertainty Estimation).
So sánh đối chuẩn với các mô hình tiêu chuẩn
Hiệu suất So sánh Tổng thể
100% ┼───────────────────────────────────────────────────────────────
│ 0.865 0.862 0.810 0.780
80% ┼───██████─────────██████─────────██████─────────██████─────────
│ █ ▒▒ █ █ ░░ █ █ ░░ █ █ ░░ █
60% ┼───█ ▒▒ █─────────█ ░░ █─────────█ ░░ █─────────█ ░░ █─────────
│ █ ▒▒ █ █ ░░ █ █ ░░ █ █ ░░ █
40% ┼───█ ▒▒ █─────────█ ░░ █─────────█ ░░ █─────────█ ░░ █─────────
│ █ ▒▒ █ █ ░░ █ █ ░░ █ █ ░░ █
20% ┼───█ ▒▒ █─────────█ ░░ █─────────█ ░░ █─────────█ ░░ █─────────
│ █ ▒▒ █ █ ░░ █ █ ░░ █ █ ░░ █
0% ┴───┴──────┴───────┴──────┴───────┴──────┴───────┴──────┴────────
NAM-FORTRAN MIKE 11 NAM HEC-HMS TANK Model
(Đề tài) (Thương mại) (Sự kiện) (Bể chứa)
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng vận hành
- Hệ thống hỗ trợ ra quyết định (DSS) phòng chống lụt bão tỉnh Quảng Ngãi: Nhúng mô hình NAM-FORTRAN vào quy trình dự báo thời gian thực. Khi nhận dữ liệu dự báo mưa từ radar thời tiết hoặc mô hình dự báo số trị WRF (Weather Research and Forecasting), hệ thống tự động xuất dòng chảy lũ dự báo tại trạm An Chỉ trước $6 - 12\text{ giờ}$.
- Quy hoạch và vận hành hồ chứa thượng nguồn: Cung cấp chuỗi dòng chảy liên tục thời đoạn giờ phục vụ bài toán điều tiết dung tích phòng lũ cho các công trình thủy lợi, thủy điện trên lưu vực sông Vệ.
Yêu cầu triển khai kỹ thuật
- Môi trường biên dịch: Trình biên dịch GNU Fortran (
gfortranv9.0+) hoặc Intel Fortran Compiler (ifort/ifx) trên Linux (Ubuntu Server 20.04/22.04 LTS) hoặc Windows. - Tài nguyên phần cứng: Cấu hình tối thiểu: CPU 2 cores 2.0 GHz, RAM 2GB, dung lượng đĩa cứng 100MB (xử lý chuỗi dữ liệu 10 năm chỉ mất $< 1.5\text{ giây}$).
- Quy trình đóng gói: Biên dịch mã nguồn thành file thực thi độc lập (
nam_engine.exehoặcnam_engine.so) để dễ dàng tích hợp qua API/CLI với các ngôn ngữ giao diện bậc cao như Python, Web GIS (NodeJS/Django).
Phân tích chi phí - lợi ích (ROI)
- Tiết kiệm chi phí bản quyền: Tiết kiệm từ $10,000 - $15,000 USD/seat chi phí mua bản quyền phần mềm thủy văn thương mại hàng năm cho các chi cục thủy văn và viện nghiên cứu địa phương.
- Hiệu quả xã hội: Giảm thiểu thiệt hại kinh tế do ngập lụt tại các huyện Nghĩa Hành, Tư Nghĩa, Mộ Đức nhờ cảnh báo sớm chính xác đỉnh lũ và thời gian truyền lũ.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Tính chất tập trung (Lumped): Mô hình xem xét lượng mưa và các tham số đồng nhất trên toàn lưu vực $841\text{ km}^2$, chưa phản ánh trọn vẹn sự biến đổi dị thường của mưa cực đoan cục bộ tại các sườn đón gió dãy Trường Sơn.
- Phương pháp hiệu chỉnh thủ công: Quá trình tinh chỉnh tham số vẫn kết hợp phương pháp thử dần (trial-and-error), đòi hỏi kinh nghiệm chuyên sâu của kỹ sư thủy văn.
Hướng nâng cấp đề xuất
- Tích hợp module bán phân bố (Semi-distributed) bằng cách chia lưu vực sông Vệ thành các tiểu lưu vực (Sub-catchments) tương ứng với các phụ lưu sông Liên, sông Tà Nô, sông Mỏ.
- Nhúng thuật toán tìm kiếm thông số tự động Shuffled Complex Evolution (SCE-UA) trực tiếp vào mã nguồn FORTRAN.
- Ghép nối 1 chiều và 2 chiều (Coupling) với mô hình thủy lực thủy lực sông/biển (như HEC-RAS 2D, MIKE 21FM) để mô phỏng ngập lụt chi tiết vùng hạ du ven biển chịu ảnh hưởng triều.
Đối tượng hưởng lợi
1. Sinh viên và học viên cao học ngành Thủy văn, Biến đổi khí hậu
- Tiếp cận kiến trúc mã nguồn mở chuẩn mực, minh bạch về thuật toán mô phỏng dòng chảy, làm tài liệu tham khảo cho các đồ án chuyên ngành và luận văn thạc sĩ.
2. Kỹ sư phát triển phần mềm và chuyên gia mô hình hóa
- Cung cấp mẫu thiết kế tính toán số (numerical pattern) bằng FORTRAN với hiệu năng vượt trội, dễ dàng bọc (wrapper) thành thư viện C/Python phục vụ các nền tảng AI/ML thủy văn.
3. Cơ quan quản lý nhà nước và Ban chỉ huy PCTT & TKCN
- Sở Nông nghiệp và PTNT, Đài Khí tượng Thủy văn khu vực có công cụ dự báo lũ độc lập, chi phí bằng 0, đáp ứng yêu cầu vận hành theo thời gian thực.
4. Các nhà khoa học và nghiên cứu viên
- Cơ sở dữ liệu và bộ tham số thủy văn đã được kiểm định chính xác cho lưu vực miền Trung, làm tiền đề nghiên cứu tác động của biến đổi khí hậu và suy giảm thảm phủ rừng.
Câu hỏi thường gặp
1. Yêu cầu cấu hình và môi trường để biên dịch mô hình NAM-FORTRAN là gì?
Hệ thống chỉ yêu cầu trình biên dịch Fortran tiêu chuẩn như gfortran (miễn phí, đa nền tảng) hoặc ifort. Có thể biên dịch nhanh chóng bằng dòng lệnh:
gfortran -O3 -o nam_engine nam_engine.f90 main.f90
Mô hình chạy hoàn toàn độc lập, không yêu cầu cài đặt thêm thư viện đồ họa hay cơ sở dữ liệu phức tạp.
2. Giới hạn khả năng mở rộng (Scalability) của mô hình là gì và giải pháp khắc phục?
Khi áp dụng cho các lưu vực rất lớn ($> 5000\text{ km}^2$) có tính phi đồng nhất cao về lượng mưa và thổ nhưỡng, mô hình gộp có thể suy giảm độ chính xác. Giải pháp là chia nhỏ lưu vực thành mạng lưới các tiểu lưu vực độc lập trong mã nguồn, chạy song song các module NAM con và kết nối bằng thuật toán diễn toán kênh dẫn Muskingum.
3. Mô hình có thể tích hợp với các hệ thống tự động hóa quan trắc SCADA/IoT hiện nay không?
Hoàn toàn khả thi. Do chương trình đọc/ghi dữ liệu thông qua các tệp văn bản ASCII chuẩn hóa, hệ thống IoT có thể ghi dữ liệu mưa tự động vào tệp đầu vào, kích hoạt mô hình chạy ngầm qua tiến trình nền (Cronjob/Systemd) và trả kết quả dự báo lưu lượng trực tiếp lên Dashboard Web GIS.
4. Chi phí duy trì và bảo trì mô hình tự phát triển này so với phần mềm thương mại ra sao?
Mô hình tự phát triển có chi phí bảo trì gần như bằng 0 do không mất phí thuê bao hàng năm (Subscription fees). Việc hiệu chỉnh mã nguồn hay sửa lỗi thuật toán được thực hiện trực tiếp bởi đội ngũ kỹ thuật nội bộ.
5. Tại sao mô hình chọn ngôn ngữ FORTRAN thay vì các ngôn ngữ hiện đại như Python hay Java?
FORTRAN là ngôn ngữ tối ưu hàng đầu thế giới cho tính toán số học ma trận và giải phương trình vi phân/đại số trong khoa học tính toán (Computational Science). Tốc độ thực thi vòng lặp thời gian của FORTRAN nhanh hơn Python từ 50 đến 100 lần, cực kỳ quan trọng khi thực hiện các bài toán tối ưu hóa tự động lặp hàng triệu lần.
Kết luận
Đồ án đã nghiên cứu, hiện thực hóa và ứng dụng thành công mô hình toán mưa - dòng chảy NAM viết bằng ngôn ngữ FORTRAN trên lưu vực sông Vệ tại trạm thủy văn An Chỉ, tỉnh Quảng Ngãi.
Thành tựu kỹ thuật cốt lõi:
- Xây dựng hoàn chỉnh mã nguồn mở NAM-FORTRAN mô phỏng chuẩn xác chu trình thủy văn với 9 tham số vật lý.
- Đạt kết quả kiểm định vượt trội: Hệ số Nash-Sutcliffe $CR_3 = 0.865$ (dòng chảy ngày) và $CR_3 = 0.891$ (dòng chảy giờ trong trận đại hồng thủy 1999), hoàn toàn tương đương và có phần nhỉnh hơn phần mềm thương mại MIKE 11 NAM ($0.862$ và $0.884$).
- Minh chứng tính khả thi của việc thay thế phần mềm thương mại ngoại nhập đắt tiền bằng các giải pháp tính toán mã nguồn mở nội địa hóa.
Đây là cơ sở khoa học và công nghệ vững chắc phục vụ công tác quy hoạch lưu vực sông, vận hành liên hồ chứa và nâng cao năng lực cảnh báo sớm thiên tai lũ quét, ngập lụt tại khu vực miền Trung Việt Nam. Các nhà nghiên cứu, kỹ sư thủy văn và đơn vị quản lý có thể kế thừa mã nguồn để tích hợp vào các hệ thống dự báo thủy văn số trị thế hệ mới.