75%Readiness
61%Quality score
0Lỗi nghiêm trọng
14Cảnh báo
94Node
99Link
Readiness theo nhóm
Guide curve cho hồ
100%
27/27 hồ đủ
Thiếu 0; một phần 0
Energy target hồ thủy điện
100%
27/27 hồ đủ
Thiếu 0; một phần 0
Demand tháng node tưới/cấp nước
100%
4/4 node đủ
Thiếu 0; một phần 0
Qmin tháng LOWFLOW
100%
4/4 node đủ
Thiếu 0; một phần 0
Routing cho link
0%
0/99 link đủ
Thiếu 99; một phần 0
Danh sách lỗi/cảnh báo
| Loại | Nhóm | Vấn đề | Đối tượng | Chi tiết | Khuyến nghị |
|---|---|---|---|---|---|
| warning | link_routing | Nhóm dữ liệu chưa có đối tượng nào đủ điều kiện | Routing cho link | 0/99 đủ; thiếu 99 | Mở trang import tương ứng và nạp CSV mẫu. |
| warning | guide_curve | Thứ tự mực nước guide curve có khả năng bị đảo | node_id=12, month=11 | flood_guide_z=589 nhỏ hơn guide_z_m=589.5 | Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency. |
| warning | guide_curve | Thứ tự mực nước guide curve có khả năng bị đảo | node_id=82, month=1 | conservation_min_z=0 nhỏ hơn hard_min_z=17 | Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency. |
| warning | guide_curve | Thứ tự mực nước guide curve có khả năng bị đảo | node_id=82, month=2 | conservation_min_z=0 nhỏ hơn hard_min_z=17 | Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency. |
| warning | guide_curve | Thứ tự mực nước guide curve có khả năng bị đảo | node_id=82, month=3 | conservation_min_z=0 nhỏ hơn hard_min_z=17 | Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency. |
| warning | guide_curve | Thứ tự mực nước guide curve có khả năng bị đảo | node_id=82, month=4 | conservation_min_z=0 nhỏ hơn hard_min_z=17 | Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency. |
| warning | guide_curve | Thứ tự mực nước guide curve có khả năng bị đảo | node_id=82, month=5 | conservation_min_z=0 nhỏ hơn hard_min_z=17 | Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency. |
| warning | guide_curve | Thứ tự mực nước guide curve có khả năng bị đảo | node_id=82, month=6 | conservation_min_z=0 nhỏ hơn hard_min_z=17 | Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency. |
| warning | guide_curve | Thứ tự mực nước guide curve có khả năng bị đảo | node_id=82, month=7 | conservation_min_z=0 nhỏ hơn hard_min_z=17 | Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency. |
| warning | guide_curve | Thứ tự mực nước guide curve có khả năng bị đảo | node_id=82, month=8 | conservation_min_z=0 nhỏ hơn hard_min_z=17 | Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency. |
| warning | guide_curve | Thứ tự mực nước guide curve có khả năng bị đảo | node_id=82, month=9 | conservation_min_z=0 nhỏ hơn hard_min_z=17 | Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency. |
| warning | guide_curve | Thứ tự mực nước guide curve có khả năng bị đảo | node_id=82, month=10 | conservation_min_z=0 nhỏ hơn hard_min_z=17 | Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency. |
| warning | guide_curve | Thứ tự mực nước guide curve có khả năng bị đảo | node_id=82, month=11 | conservation_min_z=0 nhỏ hơn hard_min_z=17 | Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency. |
| warning | guide_curve | Thứ tự mực nước guide curve có khả năng bị đảo | node_id=82, month=12 | conservation_min_z=0 nhỏ hơn hard_min_z=17 | Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency. |
Thiếu dữ liệu tháng
guide_curve
Không có dòng thiếu trong nhóm này.
energy_target
Không có dòng thiếu trong nhóm này.
demand_monthly
Không có dòng thiếu trong nhóm này.
lowflow_qmin
Không có dòng thiếu trong nhóm này.
Link chưa ready routing
| Link | Từ → đến | Method | K/X | Travel/Loss | Lý do |
|---|---|---|---|---|---|
| 301 | 1 → 2 | none | / | / | Chưa chọn routing_method. |
| 302 | 2 → 3 | none | / | / | Chưa chọn routing_method. |
| 303 | 3 → 4 | none | / | / | Chưa chọn routing_method. |
| 304 | 3 → 5 | none | / | / | Chưa chọn routing_method. |
| 305 | 5 → 6 | none | / | / | Chưa chọn routing_method. |
| 306 | 6 → 7 | none | / | / | Chưa chọn routing_method. |
| 307 | 7 → 8 | none | / | / | Chưa chọn routing_method. |
| 308 | 7 → 9 | none | / | / | Chưa chọn routing_method. |
| 309 | 9 → 10 | none | / | / | Chưa chọn routing_method. |
| 310 | 10 → 11 | none | / | / | Chưa chọn routing_method. |
| 311 | 11 → 12 | none | / | / | Chưa chọn routing_method. |
| 312 | 12 → 13 | none | / | / | Chưa chọn routing_method. |
| 313 | 13 → 14 | none | / | / | Chưa chọn routing_method. |
| 314 | 14 → 19 | none | / | / | Chưa chọn routing_method. |
| 315 | 15 → 16 | none | / | / | Chưa chọn routing_method. |
| 316 | 16 → 17 | none | / | / | Chưa chọn routing_method. |
| 317 | 17 → 18 | none | / | / | Chưa chọn routing_method. |
| 318 | 18 → 19 | none | / | / | Chưa chọn routing_method. |
| 319 | 19 → 20 | none | / | / | Chưa chọn routing_method. |
| 320 | 20 → 21 | none | / | / | Chưa chọn routing_method. |
| 321 | 21 → 22 | none | / | / | Chưa chọn routing_method. |
| 322 | 22 → 23 | none | / | / | Chưa chọn routing_method. |
| 323 | 23 → 24 | none | / | / | Chưa chọn routing_method. |
| 324 | 24 → 25 | none | / | / | Chưa chọn routing_method. |
| 325 | 25 → 26 | none | / | / | Chưa chọn routing_method. |
| 326 | 26 → 27 | none | / | / | Chưa chọn routing_method. |
| 327 | 27 → 28 | none | / | / | Chưa chọn routing_method. |
| 328 | 28 → 29 | none | / | / | Chưa chọn routing_method. |
| 329 | 29 → 30 | none | / | / | Chưa chọn routing_method. |
| 330 | 30 → 31 | none | / | / | Chưa chọn routing_method. |
| 331 | 31 → 32 | none | / | / | Chưa chọn routing_method. |
| 332 | 32 → 33 | none | / | / | Chưa chọn routing_method. |
| 333 | 33 → 34 | none | / | / | Chưa chọn routing_method. |
| 334 | 34 → 35 | none | / | / | Chưa chọn routing_method. |
| 335 | 35 → 63 | none | / | / | Chưa chọn routing_method. |
| 336 | 36 → 37 | none | / | / | Chưa chọn routing_method. |
| 337 | 37 → 38 | none | / | / | Chưa chọn routing_method. |
| 338 | 38 → 39 | none | / | / | Chưa chọn routing_method. |
| 339 | 38 → 43 | none | / | / | Chưa chọn routing_method. |
| 340 | 39 → 41 | none | / | / | Chưa chọn routing_method. |
| 341 | 40 → 41 | none | / | / | Chưa chọn routing_method. |
| 342 | 41 → 42 | none | / | / | Chưa chọn routing_method. |
| 343 | 42 → 43 | none | / | / | Chưa chọn routing_method. |
| 344 | 43 → 44 | none | / | / | Chưa chọn routing_method. |
| 345 | 44 → 45 | none | / | / | Chưa chọn routing_method. |
| 346 | 45 → 46 | none | / | / | Chưa chọn routing_method. |
| 347 | 46 → 47 | none | / | / | Chưa chọn routing_method. |
| 348 | 46 → 48 | none | / | / | Chưa chọn routing_method. |
| 349 | 48 → 49 | none | / | / | Chưa chọn routing_method. |
| 350 | 49 → 50 | none | / | / | Chưa chọn routing_method. |
| 351 | 50 → 51 | none | / | / | Chưa chọn routing_method. |
| 352 | 50 → 53 | none | / | / | Chưa chọn routing_method. |
| 353 | 51 → 52 | none | / | / | Chưa chọn routing_method. |
| 354 | 52 → 53 | none | / | / | Chưa chọn routing_method. |
| 355 | 53 → 54 | none | / | / | Chưa chọn routing_method. |
| 356 | 54 → 55 | none | / | / | Chưa chọn routing_method. |
| 357 | 55 → 56 | none | / | / | Chưa chọn routing_method. |
| 358 | 56 → 57 | none | / | / | Chưa chọn routing_method. |
| 359 | 56 → 58 | none | / | / | Chưa chọn routing_method. |
| 360 | 58 → 59 | none | / | / | Chưa chọn routing_method. |
| 361 | 58 → 61 | none | / | / | Chưa chọn routing_method. |
| 362 | 59 → 60 | none | / | / | Chưa chọn routing_method. |
| 363 | 60 → 61 | none | / | / | Chưa chọn routing_method. |
| 364 | 61 → 62 | none | / | / | Chưa chọn routing_method. |
| 365 | 62 → 63 | none | / | / | Chưa chọn routing_method. |
| 366 | 63 → 64 | none | / | / | Chưa chọn routing_method. |
| 367 | 64 → 65 | none | / | / | Chưa chọn routing_method. |
| 368 | 65 → 91 | none | / | / | Chưa chọn routing_method. |
| 369 | 66 → 67 | none | / | / | Chưa chọn routing_method. |
| 370 | 67 → 68 | none | / | / | Chưa chọn routing_method. |
| 371 | 68 → 69 | none | / | / | Chưa chọn routing_method. |
| 372 | 69 → 70 | none | / | / | Chưa chọn routing_method. |
| 373 | 70 → 71 | none | / | / | Chưa chọn routing_method. |
| 374 | 71 → 72 | none | / | / | Chưa chọn routing_method. |
| 375 | 72 → 73 | none | / | / | Chưa chọn routing_method. |
| 376 | 73 → 74 | none | / | / | Chưa chọn routing_method. |
| 377 | 74 → 75 | none | / | / | Chưa chọn routing_method. |
| 378 | 74 → 77 | none | / | / | Chưa chọn routing_method. |
| 379 | 75 → 76 | none | / | / | Chưa chọn routing_method. |
| 380 | 76 → 77 | none | / | / | Chưa chọn routing_method. |
| 381 | 77 → 78 | none | / | / | Chưa chọn routing_method. |
| 382 | 78 → 79 | none | / | / | Chưa chọn routing_method. |
| 383 | 78 → 88 | none | / | / | Chưa chọn routing_method. |
| 384 | 79 → 81 | none | / | / | Chưa chọn routing_method. |
| 385 | 80 → 81 | none | / | / | Chưa chọn routing_method. |
| 386 | 81 → 82 | none | / | / | Chưa chọn routing_method. |
| 387 | 82 → 83 | none | / | / | Chưa chọn routing_method. |
| 388 | 83 → 86 | none | / | / | Chưa chọn routing_method. |
| 389 | 83 → 84 | none | / | / | Chưa chọn routing_method. |
| 390 | 84 → 85 | none | / | / | Chưa chọn routing_method. |
| 391 | 85 → 86 | none | / | / | Chưa chọn routing_method. |
| 392 | 86 → 87 | none | / | / | Chưa chọn routing_method. |
| 393 | 87 → 93 | none | / | / | Chưa chọn routing_method. |
| 394 | 88 → 89 | none | / | / | Chưa chọn routing_method. |
| 395 | 89 → 90 | none | / | / | Chưa chọn routing_method. |
| 396 | 90 → 91 | none | / | / | Chưa chọn routing_method. |
| 397 | 91 → 92 | none | / | / | Chưa chọn routing_method. |
| 398 | 92 → 93 | none | / | / | Chưa chọn routing_method. |
| 399 | 93 → 94 | none | / | / | Chưa chọn routing_method. |
Action plan
| Ưu tiên | Nhóm | Readiness | Thiếu/một phần | Trang xử lý | Khuyến nghị |
|---|---|---|---|---|---|
| 1 | Routing cho link | 0% | 99 / 0 | phase5_import_link_routing.php | Bổ sung dữ liệu còn thiếu, import đủ 12 tháng hoặc hoàn thiện thông số link rồi tải lại readiness. |
{
"ok": true,
"version": "5.17.12",
"scenario_id": 1,
"generated_at": "2026-07-29 12:00:02",
"summary": {
"readiness_percent": 75,
"quality_score": 61,
"issue_errors": 0,
"issue_warnings": 14,
"issue_info": 0,
"total_issues": 14,
"node_count": 94,
"link_count": 99,
"reservoir_nodes": 27,
"demand_nodes": 4,
"lowflow_nodes": 4
},
"readiness": {
"ok": true,
"version": "5.17.6",
"scenario_id": 1,
"generated_at": "2026-07-29 12:00:02",
"summary": {
"node_count": 94,
"link_count": 99,
"type_counts": {
"CONFLUENCE": 11,
"DIVERSION": 10,
"END": 11,
"IRRIGATION": 4,
"LOWFLOW": 4,
"RESERVOIR": 27,
"START": 27
},
"reservoir_nodes": 27,
"hydropower_candidate_nodes": 27,
"demand_nodes": 4,
"lowflow_nodes": 4,
"overall_readiness_percent": 75,
"weight_used": 100,
"hydropower_assumption": ""
},
"categories": [
{
"key": "guide_curve",
"label": "Guide curve cho hồ",
"required": 27,
"full": 27,
"partial": 0,
"missing": 0,
"percent": 100,
"weight": 25,
"unit": "hồ",
"note": "Cần đủ 12 tháng/hồ trong webbassim_reservoir_guide_curves."
},
{
"key": "energy_target",
"label": "Energy target hồ thủy điện",
"required": 27,
"full": 27,
"partial": 0,
"missing": 0,
"percent": 100,
"weight": 15,
"unit": "hồ",
"note": "Cần đủ 12 tháng/hồ thủy điện trong webbassim_hydropower_monthly_targets."
},
{
"key": "demand_monthly",
"label": "Demand tháng node tưới/cấp nước",
"required": 4,
"full": 4,
"partial": 0,
"missing": 0,
"percent": 100,
"weight": 20,
"unit": "node",
"note": "Đọc từ nhóm demand_monthly trong webbassim_node_params."
},
{
"key": "lowflow_qmin",
"label": "Qmin tháng LOWFLOW",
"required": 4,
"full": 4,
"partial": 0,
"missing": 0,
"percent": 100,
"weight": 15,
"unit": "node",
"note": "Đọc từ nhóm lowflow_monthly trong webbassim_node_params."
},
{
"key": "link_routing",
"label": "Routing cho link",
"required": 99,
"full": 0,
"partial": 0,
"missing": 99,
"percent": 0,
"weight": 25,
"unit": "link",
"note": "Link ready nếu static, lag_loss có travel_time, hoặc Muskingum có K/X hợp lệ."
}
],
"routing": {
"none": 99,
"static": 0,
"lag_loss": 0,
"muskingum": 0,
"partial": 0,
"other": 0,
"ready": 0,
"not_ready": 99
},
"link_geometry": {
"exists": true,
"rows": 0,
"with_length": 0,
"with_effective": 0,
"with_factor": 0
},
"table_status": {
"webbassim_node_params": true,
"webbassim_reservoir_guide_curves": true,
"webbassim_hydropower_monthly_targets": true,
"webbassim_link_geometries": true,
"webbassim_links": true,
"webbassim_nodes": true
},
"details": {
"missing_guide_curve": [],
"missing_energy_target": [],
"missing_demand_monthly": [],
"missing_lowflow_qmin": [],
"links_not_ready": [
{
"link_id": 301,
"from_order": 1,
"to_order": 2,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 302,
"from_order": 2,
"to_order": 3,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 303,
"from_order": 3,
"to_order": 4,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 304,
"from_order": 3,
"to_order": 5,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 305,
"from_order": 5,
"to_order": 6,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 306,
"from_order": 6,
"to_order": 7,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 307,
"from_order": 7,
"to_order": 8,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 308,
"from_order": 7,
"to_order": 9,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 309,
"from_order": 9,
"to_order": 10,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 310,
"from_order": 10,
"to_order": 11,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 311,
"from_order": 11,
"to_order": 12,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 312,
"from_order": 12,
"to_order": 13,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 313,
"from_order": 13,
"to_order": 14,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 314,
"from_order": 14,
"to_order": 19,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 315,
"from_order": 15,
"to_order": 16,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 316,
"from_order": 16,
"to_order": 17,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 317,
"from_order": 17,
"to_order": 18,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 318,
"from_order": 18,
"to_order": 19,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 319,
"from_order": 19,
"to_order": 20,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 320,
"from_order": 20,
"to_order": 21,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 321,
"from_order": 21,
"to_order": 22,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 322,
"from_order": 22,
"to_order": 23,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 323,
"from_order": 23,
"to_order": 24,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 324,
"from_order": 24,
"to_order": 25,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 325,
"from_order": 25,
"to_order": 26,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 326,
"from_order": 26,
"to_order": 27,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 327,
"from_order": 27,
"to_order": 28,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 328,
"from_order": 28,
"to_order": 29,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 329,
"from_order": 29,
"to_order": 30,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 330,
"from_order": 30,
"to_order": 31,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 331,
"from_order": 31,
"to_order": 32,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 332,
"from_order": 32,
"to_order": 33,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 333,
"from_order": 33,
"to_order": 34,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 334,
"from_order": 34,
"to_order": 35,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 335,
"from_order": 35,
"to_order": 63,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 336,
"from_order": 36,
"to_order": 37,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 337,
"from_order": 37,
"to_order": 38,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 338,
"from_order": 38,
"to_order": 39,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 339,
"from_order": 38,
"to_order": 43,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 340,
"from_order": 39,
"to_order": 41,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 341,
"from_order": 40,
"to_order": 41,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 342,
"from_order": 41,
"to_order": 42,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 343,
"from_order": 42,
"to_order": 43,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 344,
"from_order": 43,
"to_order": 44,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 345,
"from_order": 44,
"to_order": 45,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 346,
"from_order": 45,
"to_order": 46,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 347,
"from_order": 46,
"to_order": 47,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 348,
"from_order": 46,
"to_order": 48,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 349,
"from_order": 48,
"to_order": 49,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 350,
"from_order": 49,
"to_order": 50,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 351,
"from_order": 50,
"to_order": 51,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 352,
"from_order": 50,
"to_order": 53,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 353,
"from_order": 51,
"to_order": 52,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 354,
"from_order": 52,
"to_order": 53,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 355,
"from_order": 53,
"to_order": 54,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 356,
"from_order": 54,
"to_order": 55,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 357,
"from_order": 55,
"to_order": 56,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 358,
"from_order": 56,
"to_order": 57,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 359,
"from_order": 56,
"to_order": 58,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 360,
"from_order": 58,
"to_order": 59,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 361,
"from_order": 58,
"to_order": 61,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 362,
"from_order": 59,
"to_order": 60,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 363,
"from_order": 60,
"to_order": 61,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 364,
"from_order": 61,
"to_order": 62,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 365,
"from_order": 62,
"to_order": 63,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 366,
"from_order": 63,
"to_order": 64,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 367,
"from_order": 64,
"to_order": 65,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 368,
"from_order": 65,
"to_order": 91,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 369,
"from_order": 66,
"to_order": 67,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 370,
"from_order": 67,
"to_order": 68,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 371,
"from_order": 68,
"to_order": 69,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 372,
"from_order": 69,
"to_order": 70,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 373,
"from_order": 70,
"to_order": 71,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 374,
"from_order": 71,
"to_order": 72,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 375,
"from_order": 72,
"to_order": 73,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 376,
"from_order": 73,
"to_order": 74,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 377,
"from_order": 74,
"to_order": 75,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 378,
"from_order": 74,
"to_order": 77,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 379,
"from_order": 75,
"to_order": 76,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 380,
"from_order": 76,
"to_order": 77,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 381,
"from_order": 77,
"to_order": 78,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 382,
"from_order": 78,
"to_order": 79,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 383,
"from_order": 78,
"to_order": 88,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 384,
"from_order": 79,
"to_order": 81,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 385,
"from_order": 80,
"to_order": 81,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 386,
"from_order": 81,
"to_order": 82,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 387,
"from_order": 82,
"to_order": 83,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 388,
"from_order": 83,
"to_order": 86,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 389,
"from_order": 83,
"to_order": 84,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 390,
"from_order": 84,
"to_order": 85,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 391,
"from_order": 85,
"to_order": 86,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 392,
"from_order": 86,
"to_order": 87,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 393,
"from_order": 87,
"to_order": 93,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 394,
"from_order": 88,
"to_order": 89,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 395,
"from_order": 89,
"to_order": 90,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 396,
"from_order": 90,
"to_order": 91,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 397,
"from_order": 91,
"to_order": 92,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 398,
"from_order": 92,
"to_order": 93,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 399,
"from_order": 93,
"to_order": 94,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
}
]
},
"imports": [
{
"key": "guide_curve",
"version": "v5.17.2",
"label": "Batch import guide curve",
"template": "templates/webbassim_batch_guide_curve_template.csv",
"planned_page": "phase5_import_guide_curve.php"
},
{
"key": "energy_target",
"version": "v5.17.3",
"label": "Batch import energy target",
"template": "templates/webbassim_batch_hydropower_energy_template.csv",
"planned_page": "phase5_import_energy_target.php"
},
{
"key": "demand_monthly",
"version": "v5.17.4",
"label": "Batch import demand tháng",
"template": "templates/webbassim_batch_demand_monthly_template.csv",
"planned_page": "phase5_import_demand_monthly.php"
},
{
"key": "lowflow_qmin",
"version": "v5.17.5",
"label": "Batch import Qmin LOWFLOW",
"template": "templates/webbassim_batch_lowflow_qmin_template.csv",
"planned_page": "phase5_import_lowflow_qmin.php"
},
{
"key": "link_routing",
"version": "v5.17.6",
"label": "Batch import routing link",
"template": "templates/webbassim_batch_link_routing_template.csv",
"planned_page": "phase5_import_link_routing.php"
}
],
"note": "v5.17.6 đã bật đủ 5 nhóm batch import: guide curve, energy target, demand tháng, Qmin LOWFLOW và routing link."
},
"data_tables": {
"guide_curve": {
"rows": 324,
"nodes": 27
},
"safety_levels": {
"rows": 27,
"nodes": 27
},
"energy_target": {
"rows": 324,
"nodes": 27
},
"node_params": {
"rows": 1690,
"demand_monthly": 288,
"lowflow_monthly": 96,
"other": 1306
},
"links": {
"rows": 99,
"static": 0,
"lag_loss": 0,
"muskingum": 0,
"none": 99,
"partial": 0,
"invalid": 0
},
"webbassim_nodes": {
"rows": 94
},
"webbassim_link_geometries": {
"rows": 0
}
},
"issues": [
{
"severity": "warning",
"group": "link_routing",
"title": "Nhóm dữ liệu chưa có đối tượng nào đủ điều kiện",
"detail": "0/99 đủ; thiếu 99",
"object": "Routing cho link",
"action": "Mở trang import tương ứng và nạp CSV mẫu."
},
{
"severity": "warning",
"group": "guide_curve",
"title": "Thứ tự mực nước guide curve có khả năng bị đảo",
"detail": "flood_guide_z=589 nhỏ hơn guide_z_m=589.5",
"object": "node_id=12, month=11",
"action": "Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency."
},
{
"severity": "warning",
"group": "guide_curve",
"title": "Thứ tự mực nước guide curve có khả năng bị đảo",
"detail": "conservation_min_z=0 nhỏ hơn hard_min_z=17",
"object": "node_id=82, month=1",
"action": "Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency."
},
{
"severity": "warning",
"group": "guide_curve",
"title": "Thứ tự mực nước guide curve có khả năng bị đảo",
"detail": "conservation_min_z=0 nhỏ hơn hard_min_z=17",
"object": "node_id=82, month=2",
"action": "Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency."
},
{
"severity": "warning",
"group": "guide_curve",
"title": "Thứ tự mực nước guide curve có khả năng bị đảo",
"detail": "conservation_min_z=0 nhỏ hơn hard_min_z=17",
"object": "node_id=82, month=3",
"action": "Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency."
},
{
"severity": "warning",
"group": "guide_curve",
"title": "Thứ tự mực nước guide curve có khả năng bị đảo",
"detail": "conservation_min_z=0 nhỏ hơn hard_min_z=17",
"object": "node_id=82, month=4",
"action": "Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency."
},
{
"severity": "warning",
"group": "guide_curve",
"title": "Thứ tự mực nước guide curve có khả năng bị đảo",
"detail": "conservation_min_z=0 nhỏ hơn hard_min_z=17",
"object": "node_id=82, month=5",
"action": "Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency."
},
{
"severity": "warning",
"group": "guide_curve",
"title": "Thứ tự mực nước guide curve có khả năng bị đảo",
"detail": "conservation_min_z=0 nhỏ hơn hard_min_z=17",
"object": "node_id=82, month=6",
"action": "Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency."
},
{
"severity": "warning",
"group": "guide_curve",
"title": "Thứ tự mực nước guide curve có khả năng bị đảo",
"detail": "conservation_min_z=0 nhỏ hơn hard_min_z=17",
"object": "node_id=82, month=7",
"action": "Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency."
},
{
"severity": "warning",
"group": "guide_curve",
"title": "Thứ tự mực nước guide curve có khả năng bị đảo",
"detail": "conservation_min_z=0 nhỏ hơn hard_min_z=17",
"object": "node_id=82, month=8",
"action": "Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency."
},
{
"severity": "warning",
"group": "guide_curve",
"title": "Thứ tự mực nước guide curve có khả năng bị đảo",
"detail": "conservation_min_z=0 nhỏ hơn hard_min_z=17",
"object": "node_id=82, month=9",
"action": "Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency."
},
{
"severity": "warning",
"group": "guide_curve",
"title": "Thứ tự mực nước guide curve có khả năng bị đảo",
"detail": "conservation_min_z=0 nhỏ hơn hard_min_z=17",
"object": "node_id=82, month=10",
"action": "Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency."
},
{
"severity": "warning",
"group": "guide_curve",
"title": "Thứ tự mực nước guide curve có khả năng bị đảo",
"detail": "conservation_min_z=0 nhỏ hơn hard_min_z=17",
"object": "node_id=82, month=11",
"action": "Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency."
},
{
"severity": "warning",
"group": "guide_curve",
"title": "Thứ tự mực nước guide curve có khả năng bị đảo",
"detail": "conservation_min_z=0 nhỏ hơn hard_min_z=17",
"object": "node_id=82, month=12",
"action": "Kiểm tra thứ tự: hard_min ≤ conservation_min ≤ guide ≤ flood_guide ≤ z_max ≤ emergency."
}
],
"missing_monthly": {
"guide_curve": [],
"energy_target": [],
"demand_monthly": [],
"lowflow_qmin": []
},
"link_not_ready": [
{
"link_id": 301,
"from_order": 1,
"to_order": 2,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 302,
"from_order": 2,
"to_order": 3,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 303,
"from_order": 3,
"to_order": 4,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 304,
"from_order": 3,
"to_order": 5,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 305,
"from_order": 5,
"to_order": 6,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 306,
"from_order": 6,
"to_order": 7,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 307,
"from_order": 7,
"to_order": 8,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 308,
"from_order": 7,
"to_order": 9,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 309,
"from_order": 9,
"to_order": 10,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 310,
"from_order": 10,
"to_order": 11,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 311,
"from_order": 11,
"to_order": 12,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 312,
"from_order": 12,
"to_order": 13,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 313,
"from_order": 13,
"to_order": 14,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 314,
"from_order": 14,
"to_order": 19,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 315,
"from_order": 15,
"to_order": 16,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 316,
"from_order": 16,
"to_order": 17,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 317,
"from_order": 17,
"to_order": 18,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 318,
"from_order": 18,
"to_order": 19,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 319,
"from_order": 19,
"to_order": 20,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 320,
"from_order": 20,
"to_order": 21,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 321,
"from_order": 21,
"to_order": 22,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 322,
"from_order": 22,
"to_order": 23,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 323,
"from_order": 23,
"to_order": 24,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 324,
"from_order": 24,
"to_order": 25,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 325,
"from_order": 25,
"to_order": 26,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 326,
"from_order": 26,
"to_order": 27,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 327,
"from_order": 27,
"to_order": 28,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 328,
"from_order": 28,
"to_order": 29,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 329,
"from_order": 29,
"to_order": 30,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 330,
"from_order": 30,
"to_order": 31,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 331,
"from_order": 31,
"to_order": 32,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 332,
"from_order": 32,
"to_order": 33,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 333,
"from_order": 33,
"to_order": 34,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 334,
"from_order": 34,
"to_order": 35,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 335,
"from_order": 35,
"to_order": 63,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 336,
"from_order": 36,
"to_order": 37,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 337,
"from_order": 37,
"to_order": 38,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 338,
"from_order": 38,
"to_order": 39,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 339,
"from_order": 38,
"to_order": 43,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 340,
"from_order": 39,
"to_order": 41,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 341,
"from_order": 40,
"to_order": 41,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 342,
"from_order": 41,
"to_order": 42,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 343,
"from_order": 42,
"to_order": 43,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 344,
"from_order": 43,
"to_order": 44,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 345,
"from_order": 44,
"to_order": 45,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 346,
"from_order": 45,
"to_order": 46,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 347,
"from_order": 46,
"to_order": 47,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 348,
"from_order": 46,
"to_order": 48,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 349,
"from_order": 48,
"to_order": 49,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 350,
"from_order": 49,
"to_order": 50,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 351,
"from_order": 50,
"to_order": 51,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 352,
"from_order": 50,
"to_order": 53,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 353,
"from_order": 51,
"to_order": 52,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 354,
"from_order": 52,
"to_order": 53,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 355,
"from_order": 53,
"to_order": 54,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 356,
"from_order": 54,
"to_order": 55,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 357,
"from_order": 55,
"to_order": 56,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 358,
"from_order": 56,
"to_order": 57,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 359,
"from_order": 56,
"to_order": 58,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 360,
"from_order": 58,
"to_order": 59,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 361,
"from_order": 58,
"to_order": 61,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 362,
"from_order": 59,
"to_order": 60,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 363,
"from_order": 60,
"to_order": 61,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 364,
"from_order": 61,
"to_order": 62,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 365,
"from_order": 62,
"to_order": 63,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 366,
"from_order": 63,
"to_order": 64,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 367,
"from_order": 64,
"to_order": 65,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 368,
"from_order": 65,
"to_order": 91,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 369,
"from_order": 66,
"to_order": 67,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 370,
"from_order": 67,
"to_order": 68,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 371,
"from_order": 68,
"to_order": 69,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 372,
"from_order": 69,
"to_order": 70,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 373,
"from_order": 70,
"to_order": 71,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 374,
"from_order": 71,
"to_order": 72,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 375,
"from_order": 72,
"to_order": 73,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 376,
"from_order": 73,
"to_order": 74,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 377,
"from_order": 74,
"to_order": 75,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 378,
"from_order": 74,
"to_order": 77,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 379,
"from_order": 75,
"to_order": 76,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 380,
"from_order": 76,
"to_order": 77,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 381,
"from_order": 77,
"to_order": 78,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 382,
"from_order": 78,
"to_order": 79,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 383,
"from_order": 78,
"to_order": 88,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 384,
"from_order": 79,
"to_order": 81,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 385,
"from_order": 80,
"to_order": 81,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 386,
"from_order": 81,
"to_order": 82,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 387,
"from_order": 82,
"to_order": 83,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 388,
"from_order": 83,
"to_order": 86,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 389,
"from_order": 83,
"to_order": 84,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 390,
"from_order": 84,
"to_order": 85,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 391,
"from_order": 85,
"to_order": 86,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 392,
"from_order": 86,
"to_order": 87,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 393,
"from_order": 87,
"to_order": 93,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 394,
"from_order": 88,
"to_order": 89,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 395,
"from_order": 89,
"to_order": 90,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 396,
"from_order": 90,
"to_order": 91,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 397,
"from_order": 91,
"to_order": 92,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 398,
"from_order": 92,
"to_order": 93,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
},
{
"link_id": 399,
"from_order": 93,
"to_order": 94,
"routing_method": "none",
"muskingum_k": null,
"muskingum_x": null,
"travel_time": null,
"loss_rate": null,
"reason": "Chưa chọn routing_method."
}
],
"action_plan": [
{
"priority": 1,
"key": "link_routing",
"label": "Routing cho link",
"percent": 0,
"missing": 99,
"partial": 0,
"suggested_page": "phase5_import_link_routing.php",
"action": "Bổ sung dữ liệu còn thiếu, import đủ 12 tháng hoặc hoàn thiện thông số link rồi tải lại readiness."
}
],
"note": "v5.17.12 là báo cáo đọc-only để kiểm tra readiness, lỗi dữ liệu, dữ liệu thiếu và thứ tự ưu tiên import tiếp theo. Không ghi database."
}