Xây dựng công thức tính lượng mưa từ số liệu ra đa Đốp-Le cho khu vực trung Trung Bộ

Với sự hỗ trợ đặc lực của công nghệ máy tính kết quả việc tìm, đánh giá kiểm nghiệm các cặp hệ số A và b trở nên hiện thực hơn. Công thức thực nghiệm với cặp hệsố thu được có độchính xác tốt hơn công thức kinh điển của Marshall – Palmer (tính trên vùng Trung Trung Bộcủa Việt Nam). Đây là một kết quả ban đầu của một quá trình thực hiện nhiều giai đoạn từtriển khai hệthống đo mưa tự động, thu thập số liệu mưa và truyền sốliệu trực tuyến đến trích xuất các giá trị từ số liệu phản hồi vô tuyến rađa, tính toán, đánh giá. Từ đó có thểlà cơ sở đểchúng ta có thể tiến hành những bước tiếp theo với mong muốn ứng dụng vào thực tếmột cách trực tuyến để tăng độchính xác của việc tính toán lượng mưa. Tuy nhiên đây mới chỉ là kết quả bước đầu, để cần tăng thêm độchính xác, chúng ta cần tăng cườngđầu tưtừthiết bị, đến nghiên cứu chi tiết hơn, cụthểhơn cho từnggia đoạn mưa hoặc xem xét cơ chếgây mưa từ đócó thểtiệm cận và tạo ra một bức tranh về mưa chân thực hơn cho các nhà dự báo khí tượng thuỷ văn hoặc cho đầu vào của các mô hình sốtrị.

pdf92 trang | Chia sẻ: lylyngoc | Lượt xem: 2246 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Xây dựng công thức tính lượng mưa từ số liệu ra đa Đốp-Le cho khu vực trung Trung Bộ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
o mưa này sẽ truyền tự động trong năm 2009. Số liệu rađa thời tiết Tam Kỳ năm 2006 và năm 2007 không đầy đủ do rađa hỏng và giãn đoạn trong thời gian khá dài, tuy có số liệu nhưng không chính xác. Cuối năm 2007 rađa này đã được sửa chữa và hoạt động ổn định hơn chính vì vậy do đó tôi đã lựa chọn bộ số liệu đồng bộ rađa và đo mưa tự động từ tháng 1 năm 2008 đến tháng 10 năm 2008.(Xem phần phụ lục PL1). 4.1.2 Xử lí số liệu và đồng bộ số liệu theo thời gian. Để thực hiện phương pháp so sánh, đánh giá giữa giá trị cường độ mưa rađa với giá trị cường độ mưa tại mặt đất cần đưa về cùng điều kiện không gian và thời gian của các yếu tố đầu vào. Từ tập số liệu thu thập được ta cần xử lí ban đầu để lựa chọn làm các cặp tính toán đồng nhất là: Cường độ mưa mặt đất (I) và giá trị Phản hồi vô tuyến rađa (dBZ) ta thực hiện như sau: Giá trị cường độ mưa mặt đất (I): là giá trị lượng mưa đo được trong 10 phút của mặt đất phải >0 ta đổi về cường độ mưa (mm/h). Do đầu vào là các loại datalogger khác nhau, nên khi tiến hành cần thực hiện đăng ký format cho phần mềm tính toán nhận dạng. Để thực hiện điều đó cần mô tả vị trí các giá trị thời gian và giá trị đo được từ sensor đo mưa, bởi một số datalogger ghi giá trị đếm số lần chao lật được và số datalogger còn lại ghi giá trị thực của lượng mưa. Bước tiếp theo tuỳ thuộc dạng sensor sẽ có những bước tính toán cơ bản đảm bảo chuyển toàn bộ số liệu cường độ mưa của các trạm về cùng một dạng thống nhất 50 Hình 4.1 Đồ thị biểu diễn lượng mưa ghi được theo thời gian của datalogger Hobo tại trạm Hội Khách Hình 4.2 Đồ thị biểu diễn lượng mưa ghi được theo thời gian của datalogger Hobo tại trạm Thành Mỹ Hình 4.3 Đồ thị biểu diễn lượng mưa ghi được theo thời gian của datalogger RF3 tại trạm Lý Sơn. 51 Giá trị độ PHVT (tính ra dBZ): được lấy từ sản phẩm CAPPI tại độ cao 3 km trung bình trong một miền tròn bán kính 1km có tâm trùng với toạ độ của trạm đo mưa tự động (Hình 4.4). Với giá trị độ cao 3 km chúng ta có thể tránh được ảnh hưởng của địa hình nếu lấy thấp hơn 3 km và nếu lấy cao hơn 3 km cánh sóng sẽ “quệt” vào dải sáng (mức tan băng H-H00c) sẽ làm cho độ PHVT thu được trở nên bất thường. Hình 4.4 Vị trí lấy giá trị PHVT tương ứng với toạ độ trạm đo mưa mặt đất Một trình quét bình thường của rađa Thời tiết Tam kỳ tạo ra tập số liệu quét khối ( VolumeScan). VolumeScan này thường là tập hợp 10 góc nâng quét tròn PPI (Hình 4.5) . Hình 4.5 Sản phẩm Volumescan rađa Thời tiết Tam Kỳ-thường là tập hợp các góc nâng quét tròn PPI khác nhau. 52 Từ tập số liệu quét khối VolumeScan có thể tạo ra các sản phẩm thứ cấp khác nhau, trong đó có sản phẩm CAPPI 3km và có thể có CAPPI với độ cao khác nhau như 0.5 km, 1km, 1.5 km, 2 km, 2.5 km .v.v... Hình 4.6 Hình a là các quét tròng PPI, hình b Sản phẩm mặt cắt CAPPI 3km . Hình 4.7 Sản phẩm mặt cắt CAPPI 3km tại Trạm Rađa thời tiết TamKỳ lúc 03:30 ngày 13 tháng 8 năm 2008. Ở đây với mục tiêu là tính toán công thức liên hệ giữa độ PHVT của rađa và cường độ mưa của hệ thống đo mưa tự động trong thời điểm có mưa, 53 nên loại bỏ những số liệu không đồng bộ như: chỉ tồn tại 1 giá trị độc lập rađa hoặc cường độ mưa mặt đất. Thông thường thời gian có mưa là nhỏ hơn rất nhiều so với không mưa, (một phần do thỉnh thoảng một số máy trong hệ thống máy móc ngưng hoạt động hoặc hoạt động chưa ổn định). Sau khi xử lí đã thu được 2.048 cặp giá trị dBZ-I trùng nhau về mặt thời gian (±3 phút) và không gian từ 27.415 giá trị phản hồi vô tuyến dBZ và 19.191 giá trị cường độ đo mưa mặt đất I. (Xem phần phụ lục PL3) Sau đây là đồ thị biến trình của độ PHVT (dBZ) và cường độ mưa của một số trạm sau khi đã đồng bộ về thời gian (Hình 4.8-.4.11) Hình 4.8.Trạm Hội Khách Hình 4.9.Trạm Hiên I mm/h mm/h DBZ DBZ mm/hmm/h số thứ tự cặp DBZ số thứ tự cặp 54 Hình 4.10.Trạm Tiên Phước. . Sau đây là đồ thị của quan hệ giữa độ PHVT-Z’ (dBZ) với I (mm/h)tại một số trạm.(Hình 4.12-4.14) Hình 4.12 . Z’-Imđ Tại trạm Trà My. Hình 4.13. Z’-Imđ Tại trạm Hội Khách I mm/h mm/h DBZ DBZ I mm/h mm/h DBZ DBZ Hình 4.11.Trạm Trà My số thứ tự cặp số thứ tự cặp 55 Hình 4.14a. Z’-Imđ Tại trạm Thành Mỹ. Hình 4.14b. Z’-Imđ Tại trạm Hiên. Hình 4.14c. Z’-Imđ Tại trạm Quảng Ngãi Hình 4.14d. Z’-Imđ Tại trạm Thượng Nhật. Hình 4.14e. Z’-Imđ Tại trạm Hiệp Đức. 56 Với những đánh giá ban đầu cho thấy từ tấp số liệu khảo sát, tuy những biến đổi theo thời gian trên đồ thị của giá trị Z’ và lượng mưa đo được không tương quan với nhau một cách chặt chẽ( có những điểm cự trị của lượng mưa tương ứng với điểm cực trị của Z’, nhưng cũng có những điểm cực trị của Z’ không tương ứng. Điều đó có thể là sự trễ pha theo thời gian và nằm trong nó ẩn chứa nhiều sai số. Nhưng ta vẫn cảm nhận được sự tồn tại mối quan hệ của Z’ với cường độ mưa. Các hình từ 4.11-4.17 cho thấy mối quan hệ này có dạng logarit, cụ thể là các hình dạng Z’=b1 lgI+ a1 Đặt: lgI=x; Z’=Y Ta có: Y=a1+b1X 4.1.3 Tính toán và đánh giá công thức Với sự phát triển vượt bậc của khoa học máy tính, việc tính toán với chuỗi số liệu lớn đó là điều đơn giản, để tìm một cặp hệ số thực nghiệm A,b tham gia vào công thức thực nghiệm một cách phi tuyến, ta có thể dùng phương pháp bình phương tối thiểu sau khi đã tuyến tính hoá (còn gọi là san bằng) công thức. Chúng tôi đã thử tính theo phương pháp hồi qui tuyến tính. Kết quả thu được một công thức như sau: Y=a1+b1X Để dễ so sánh với công thức Marshall Palmer, ta chuyển sang dạng Z=A.Ib trong đó Z’=10 logZ hay Z=10(Z’/10) trong đơn vị mm6/m3. Kết quả tìm được: Y = 0.2097 + 0.0239 X A= 10(a1/10)=1.04946260728285 b= 0.0024 Tuy nhiên sai số lớn sẽ xảy ra khi quay trở lại kiểm nghiệm với ngay chuỗi số liệu phụ thuộc, vì công thức cuối là phi tuyến trong khi ta đã dùng phương pháp hồi qui tuyến tính. Do đó để tìm cặp hệ số thực nghiệm A,b 57 chúng tôi xây dựng một phần mềm tính sai số trung bình bình phương của công thực nghiệm phi tuyến dạng Z=A.Ib , với các giá trị A và b lần lượt biến đổi trong các khoảng giá trị khác nhau và dừng lại khi sai số này đủ nhỏ (nhỏ hơn một giá tới nào đó), cách làm như sau: Ban đầu lấy A, b lớn(tương ứng MSE lớn), A cố định và cho b biến đổi ta liên tục tính sai số MSE(i), sẽ thấy lúc đầu nó giảm sau lại tăng. Cho sai số này tăng tới khi bằng một phần sai số ban đầu hoặc tăng bằng giá trị biên độ thì dừng lại biến đổi b, Sau đó lại giữ b cố định và cho biến đổi A và cũng thấy sai số ban đầu giảm sau đó lại tăng nhưng cũng chỉ cho tăng đến giá trị bằng một phần sai số bắt đầu cho b biến động thì dừng b lại và cho A biến đổi, cứ như vậy cho đến khi sai số dao động không đáng kể thì dừng lại Giá trị ban đầu của A là n chạy từ 2000 của b là 5, cuối cùng giá trị sai số MSE không đổi hay biến đổi không đáng kể (MSEi-MSEi+1)<0.001 thì dừng lại, chúng tôi thu được một số cặp giá trị (A,b) cho sai số của công thức xấp xỉ như sau. Để chọn ra 1 cặp thích hợp nhất, chúng tôi sử dụng thêm các sai số MAE và ME Từ kết quả của chương trình thông qua các chỉ số: sai số trung bình bình phương (MSE), sai số tuyệt đối trung bình (MAE), sai số trung bình (ME), chúng tôi lựa chọn hệ số A=45 và b=3.0, với ME=-0.034 và MAE=1.356 mm/h, MSE =4.584(mm/h)2 có giá trị nhỏ nhất trong dãy MSE. Tuy và MAE=1.369 không phải là nhỏ nhất nhưng cũng khá là tiệm cận giá trị này (MSEmin= 4.584(mm/h)2 , MAEmin=1.195(mm/h) và MEmin = - 0.034(mm/h) ). Công thức (2.6) viết lại là: Z=45.I3.0 (4.1) 58 Cặp hệ số A và b trong (4.1) có sai số nhỏ nhất thu được đó chính là mục tiêu của luận văn. Đồng thời các cặp hệ số A và b của các tác giả khác cũng sẽ được đánh giá với chuỗi số liệu này. 4.1.3 Giới thiệu phần mềm tính toán và kiểm nghiệm Chúng tôi đã tự viết được một phần mềm tính toán và kiểm nghiệm công thức thực nghiệm, phần mềm được viết trong 3 tháng, sử dụng khoảng 1.576 dòng mã lệnh lập trình trên ngôn ngữ lập trình visual Basic 6.0- Microsoft, với giao diện đẹp (Hình 4.15 và hình 4.16), cách lập trình theo hướng đối tượng, mã lệnh đơn giản. Bao gồm các tính năng sau: Nạp số liệu mưa tự động: chức năng nạp số liệu mưa mặt đất từ các tệp số liệu thu được ở các dạng datalogger khác nhau (theo phần thông kê 1.3), toàn bộ các tệp số liệu để trong một thư mục tuỳ chọn, sẽ được lần lượt nhận dạng theo một định dạng (format) đăng ký trước. Khi tiến hành nạp sẽ tự động nhận dạng và đưa số liệu về một dạng thống nhất phục vụ các bước sau. Nạp số liệu ra đa: tệp số liệu để trong một thư mục tuỳ chọn với định dạng dạng text trích xuất từ một phần mềm trung gian của Đài Khí Tượng Cao Không Phần tính toán: sau khi số liệu rađa và mưa tự động được kết hợp với nhau thành các cặp (Ir -Imđ). Từ đó sẽ được thực hiện theo các yêu cầu khác nhau như: đánh giá, tìm hệ số, lặp.(Xem sơ đồ thuật toán hình 4.17) 59 Hình 4.15 Giao diện phần mềm. Hình 4.16.Giao diện chương trình khi tiến hành chạy 60 MSEmin Ak,Bp MSEmin(i)=MSEmin(i-1) OR MSEmin(i)-MSEmin(i-1) <α MSEmin,MAE min =>A,B SỐ LIỆU CƯỜNG ĐỘ MƯA MẶT ĐẤT VÀ GIÁ TRỊ PHẢN HỒI VÔ TUYẾN RAĐA HOÀ HỢP THEO THỜI GIAN VÀ KHÔNG GIAN THÀNH CẶP I-dBZ FALSE STEPB STEPB/10 VÒNG LẶP An,Bm Imđ-Irđ > MSEmin Y b1X+a1 STEP TRUE FALSE STEPA STEPA-1 Hình 4.17. Sơ đồ thuật toán: 61  So sánh với công thức của Marshall – Palmer 6.1200IZ  Trên tập số liệu phụ thuộc đánh giá công thức của Marshall – Palmer và các cặp số trong phụ lục 4 chúng tôi thu được MSEMarshall – Palmer =4,975(mm/h)2 , MAEMarshall – Palmer=1,242(mm/h) và MEMarshall – Palmer = - 0,521(mm/h). Ta thấy chỉ số MSEMarshall – Palmer lớn hơn 0,517mm/h tuy chỉ số tương ứng của chung tôi tại (4.1) là MAE nhỏ hơn 0,114 mm/h nhưng chỉ số ME lại lệch nhiều hơn -0,487mm/h. Dựa trên cả 3 chỉ số thì cặp hệ số đã lựa chọn có độ chính xác tốt hơn so với cặp hệ số a và b của Marshall – Palmer (tính trên vùng Trung Trung Bộ của Việt Nam). Kiểm nghiệm đối với chuỗi số liệu độc lập của 10 trạm truyền về tự động ở tháng 11 và 12 tháng năm 2008. Bao gồm : 3.260 giá trị Z’ và 12.552 giá trị cường độ mưa tại mặt đất. Sau khi xử lý thu được 320 cặp Z’-Imđ (xem đồ thị và bảng sau) . Hình 4.18. Các chỉ số qua kiểm nghiệm thực tế chuỗi số liệu độc lập Với Z=45.I3.0 62 Ta được giá trị MSE và ME bé nhất với chuỗi số liệu độc lập là (1.247 (mm/h)2 và 0.027 mm/h). Tuy hệ số MAE của chúng tôi lớn hơn so với công thức Marshall – Palmer nhưng sai số ME của chúng tôi lại nhỏ hơn Bảng 4.1. Sai số của một số công thức trên tập số liệu độc lập TT A b MSE (mm/h)2 MAE (mm/h) ME (mm/h) Tên công thức 1 45 3 1.247 0.742 0.227 Tác giả 2 200 1.6 1.329 0.622 -0.346 Marshall và Palmer (1948) 3 140 1.5 1.372 0.649 -0.162 Joss và cộng sự (1970) Cho mưa phùn 4 250 1.5 1.394 0.648 -0.447 Joss và cộng sự (1970) Cho mưa diện rộng 5 500 1.5 1.615 0.723 -0.67 Joss và cộng sự (1970) Cho mưa diện dông 6 2000 2.0 1.89 0.826 -0.821 Gunn và Marshall(1958) 4.2 KẾT LUẬN Với sự hỗ trợ đặc lực của công nghệ máy tính kết quả việc tìm, đánh giá kiểm nghiệm các cặp hệ số A và b trở nên hiện thực hơn. Công thức thực nghiệm với cặp hệ số thu được có độ chính xác tốt hơn công thức kinh điển của Marshall – Palmer (tính trên vùng Trung Trung Bộ của Việt Nam). Đây là một kết quả ban đầu của một quá trình thực hiện nhiều giai đoạn từ triển khai hệ thống đo mưa tự động, thu thập số liệu mưa và truyền số liệu trực tuyến đến trích xuất các giá trị từ số liệu phản hồi vô tuyến rađa, tính toán, đánh giá. Từ đó có thể là cơ sở để chúng ta có thể tiến hành những bước tiếp theo với mong muốn ứng dụng vào thực tế một cách trực tuyến để tăng độ chính xác của việc tính toán lượng mưa. Tuy nhiên đây mới chỉ là kết quả bước đầu, để cần tăng thêm độ chính xác, chúng ta cần tăng cường đầu tư từ thiết bị, đến nghiên cứu chi tiết hơn, cụ thể hơn cho từng gia đoạn mưa hoặc xem xét cơ chế gây mưa từ đó có thể tiệm cận và tạo ra một bức tranh về mưa chân thực hơn cho các nhà dự báo khí tượng thuỷ văn hoặc cho đầu vào của các mô hình số trị. 63 TÀI LIỆU THAM KHẢO Tiếng Việt 1. Nguyễn Hướng Điền, Tạ Văn Đa (2007), Khí tượng Rađa, giáo trình giảng dạy của trường ĐHKHTN, ĐHQGHN 2. Tạ Văn Đĩnh, (1991), Phương pháp tính,NXB Giáo dục. 3. Dương Bích Ngọc (2008), xây dựng công thức thực nghiệm về mối quan hệ giữa độ phản hồi rađa và cường độ mưa(khoá luận tốt nghiệp). 4. Phan Văn Tân,(1999) Phương pháp thống kê trong khí hậu, giáo trình giảng dạy của trường ĐHKHTN, ĐHQGHN 5. Phan Văn Tân,(2007) Tài liệu Tin học ứng dụng trong khí tượng. 6. Phạm Ngọc Toàn, Phan Tất Đắc (1992), Khí hậu Việt Nam, Nhà xuất bản khoa học kỹ thuật Hà Nội. 7. Tài liệu tập huấn khí tượng rađa. (2002). Đài Khí Tượng Cao Không. 8. Google Earth,NASA. Hình ảnh và ứng dụng đồ hoạ Tiếng Anh 9. F.Amiryazdani, M.Khalili, F.Golkar, M.Kalantarzadeh (2004) .Weather radar calibration in central iran applying ground based rain gauges data. National Cloud Seeding Research Centre, IRAN. 10. Curtis Neal James (2004). Radar Observations of Orographic Precipitation. University of Washington. 11.Márcia Cristina da Silva Moraes (2003). Z-R relationships for a weather radar in the eastern coast of northeastern brazil .Fundação para Estudos Avançados do Trópico Semi-Árido - Brazil. 12. Frédéric Fabry.(1994). Observations and uses of high resolution radar data from precipitation.The Faculty of Graduate Studies and Research of McGill University. 13.Md Rashedul Islam (2005). Improved quantitative estimation of rainfall by radar. Manitoba University. 64 14.Jennifer Lyn Hadley (2003). Near real-time runoff estimation using spatially distributed radar rainfall data. Master of science. Texas A&M University 15.Ki-Ho Chang, Kyung-Yeub Nam, Kum-Lan Kim.(2008). Real-time Quantitative Precipitation Estimation using Radar Reflectivity over the Korean Peninsula. 16.Deon Terblanche.WEATHER RADAR BASICS.2005.University of São Paulo.Brazin. 17.Probert and Jones. m407_ 707/Monteverdi/Radar/RadarEquation.html 65 PHỤ LỤC PL1. Dạng đầu vào số liệu rađa Ngày Giờ LoạiSản phẩm Bkính Độcao Trạm Kinh Vĩ độ Giá trịPHVT 2008-01-24 0:02 CAPPI - 240 3 CAULAU 108.27 15.86 16.12 2008-01-24 0:02 CAPPI - 240 3 HIEPDUC 108.11 15.58 16.12 2008-01-24 0:02 CAPPI - 240 3 NONGSON 108.03 15.7 23.88 2008-01-24 0:02 CAPPI - 240 3 HOIKHACH 107.91 15.82 22.82 2008-01-24 0:02 CAPPI - 240 3 THANHMY 107.83 15.77 20.35 2008-01-24 0:02 CAPPI - 240 3 KHAMDUC 107.83 15.46 18.24 2008-01-24 0:02 CAPPI - 240 3 QUANGNGAI 108.8 15.12 16.47 2008-01-24 0:02 CAPPI - 240 3 DUNGQUAT 108.81 15.41 17.88 2008-01-24 0:02 CAPPI - 240 3 LYSON 109.14 15.39 20.71 2008-01-24 0:02 CAPPI - 240 3 AINGHIA 108.11 15.88 16.82 2008-01-24 0:10 CAPPI - 240 3 HIEPDUC 108.11 15.58 22.82 2008-01-24 0:10 CAPPI - 240 3 NONGSON 108.03 15.7 19.65 2008-01-24 0:10 CAPPI - 240 3 HOIKHACH 107.91 15.82 17.53 2008-01-24 0:10 CAPPI - 240 3 THANHMY 107.83 15.77 20 2008-01-24 0:10 CAPPI - 240 3 DUCPHO 108.94 14.85 20 2008-01-24 0:10 CAPPI - 240 3 ANCHI 108.81 14.99 20 2008-01-24 0:10 CAPPI - 240 3 QUANGNGAI 108.8 15.12 22.47 2008-01-24 0:10 CAPPI - 240 3 DUNGQUAT 108.81 15.41 15.41 2008-01-24 0:10 CAPPI - 240 3 TIENPHUOC 108.31 15.49 10.12 2008-01-24 0:10 CAPPI - 240 3 LYSON 109.14 15.39 22.47 2008-01-24 0:28 CAPPI - 240 3 HIEPDUC 108.11 15.58 15.41 2008-01-24 0:28 CAPPI - 240 3 NONGSON 108.03 15.7 22.12 2008-01-24 0:28 CAPPI - 240 3 THANHMY 107.83 15.77 18.24 2008-01-24 0:28 CAPPI - 240 3 CAMLE 108.21 16.01 16.12 2008-01-24 0:28 CAPPI - 240 3 KHAMDUC 107.83 15.46 23.18 2008-01-24 0:28 CAPPI - 240 3 DUCPHO 108.94 14.85 23.88 2008-01-24 0:28 CAPPI - 240 3 DUNGQUAT 108.81 15.41 21.41 2008-01-24 0:28 CAPPI - 240 3 PHUNINH 108.51 15.4 11.88 2008-01-24 0:28 CAPPI - 240 3 LYSON 109.14 15.39 20.71 2008-01-24 2:06 CAPPI - 240 3 HIEN 107.64 15.93 21.41 2008-01-24 2:06 CAPPI - 240 3 CAMLE 108.21 16.01 18.94 2008-01-24 2:06 CAPPI - 240 3 DUNGQUAT 108.81 15.41 15.76 2008-01-24 2:06 CAPPI - 240 3 PHUNINH 108.51 15.4 9.76 2008-01-24 2:30 CAPPI - 240 3 HIEPDUC 108.11 15.58 19.65 2008-01-24 2:30 CAPPI - 240 3 DUCPHO 108.94 14.85 20 2008-01-24 2:30 CAPPI - 240 3 DUNGQUAT 108.81 15.41 16.12 2008-01-24 2:30 CAPPI - 240 3 PHUNINH 108.51 15.4 14.71 2008-01-24 2:30 CAPPI - 240 3 CULAOCHAM 108.5 15.96 18.59 ……………….. 66 PL2. Dạng đầu vào của đo mưa tự động mặt đất. Ngày Giờ Giá trị mưa Trạm 2008/10/02 17:37 2.5 AINGHIA 2008/10/04 17:31 1.5 AINGHIA 2008/10/04 17:41 0.5 AINGHIA 2008/10/04 19:41 0.5 AINGHIA 2008/10/05 20:42 0.5 AINGHIA …. 2008/10/01 14:10 0.5 ALUOI 2008/10/01 14:20 0.5 ALUOI 2008/10/01 14:30 0.5 ALUOI 2008/10/01 15:00 0.5 ALUOI 2008/10/01 15:50 2.5 ALUOI …. 2008/09/12 23:40 0.5 ANCHI 2008/09/13 00:00 0.5 ANCHI 2008/09/13 00:40 0.5 ANCHI 2008/09/13 01:10 0.5 ANCHI 2008/09/13 01:30 0.5 ANCHI … 2008/09/08 05:10 0.5 BATO 2008/09/08 05:20 1.5 BATO 2008/09/08 05:30 1.5 BATO 2008/09/08 05:40 5.0 BATO 2008/09/08 05:50 4.5 BATO 2008/09/08 06:00 2.0 BATO 2008/09/08 07:30 0.5 BATO 2008/09/08 12:40 0.5 BATO 2008/09/14 17:30 0.5 BATO …. 2008/03/04 14:40 1.5 CAMLE 2008/03/05 00:50 0.5 CAMLE 2008/03/05 03:30 0.5 CAMLE 2008/03/05 03:50 1 CAMLE 2008/03/05 04:20 0.5 CAMLE 2008/03/05 04:30 1 CAMLE …. 2008/08/18 19:00 2.5 CAULAU 2008/08/18 19:10 1.5 CAULAU 2008/08/18 19:20 2 CAULAU 2008/08/18 19:30 3.5 CAULAU 2008/08/18 19:40 6.5 CAULAU 2008/08/18 19:50 1 CAULAU 2008/09/14 17:00 0.5 DUCPHO 2008/09/14 17:30 0.5 DUCPHO 2008/10/19 13:23 1 HIEN 67 2008/10/19 13:33 0.5 HIEN 2008/10/19 17:03 0.5 HIEN 2008/10/19 17:43 0.5 HIEN 2008/10/19 17:53 0.5 HIEN … 2008/10/02 11:42 0.5 HIEPDUC 2008/10/02 11:52 0.5 HIEPDUC 2008/10/02 12:02 1 HIEPDUC 2008/10/02 13:12 0.5 HIEPDUC 2008/10/02 13:22 1 HIEPDUC 2008/10/02 13:32 0.5 HIEPDUC 2008/10/02 13:42 0.5 HIEPDUC .. 2008/03/08 06:10 0.5 HOABAC 2008/03/08 06:20 0.5 HOABAC 2008/03/08 07:00 0.5 HOABAC 2008/03/09 08:20 0.5 HOABAC 2008/03/09 09:40 0.5 HOABAC ….. 2007/12/06 10:10 0.5 HOIKHACH 2007/12/06 10:30 0.5 HOIKHACH 2007/12/06 10:50 0.5 HOIKHACH 2007/12/06 11:00 1.5 HOIKHACH 2007/12/06 11:10 1 HOIKHACH 2007/12/06 15:30 0.5 HOIKHACH …. 2008/01/03 00:30 0.5 KHAMDUC 2008/01/03 11:50 0.5 KHAMDUC 2008/01/03 13:40 0.5 KHAMDUC … 2008/01/02 10:00 0.5 LYSON 2008/01/03 00:50 0.5 LYSON 2008/01/03 01:00 0.5 LYSON 2008/01/03 01:20 0.5 LYSON 2008/01/03 01:50 0.5 LYSON 2008/01/03 02:00 1.0 LYSON … 2008/01/01 05:40 0.5 MINHLONG 2008/01/01 06:50 0.5 MINHLONG 2008/01/01 07:00 0.5 MINHLONG 2008/01/01 07:10 0.5 MINHLONG … 2008/01/01 13:40 0.5 PHUOC 2008/01/01 16:30 0.5 PHUOC 2008/01/01 17:30 0.5 PHUOC 2008/01/01 18:00 0.5 PHUOC 68 … 2008/09/29 21:41 0.5 QUANGNGAI 2008/09/30 16:51 0.5 QUANGNGAI 2008/10/01 02:01 1 QUANGNGAI 2008/10/01 11:41 0.5 QUANGNGAI … 2008/06/29 21:00 0.5 SONGIANG 2008/06/29 21:10 1.0 SONGIANG 2008/06/29 21:20 0.5 SONGIANG … 2008/03/01 18:50 5.5 SONHA 2008/03/05 17:30 0.5 SONHA 2008/03/07 05:30 0.5 SONHA 2008/03/07 06:00 0.5 SONHA … 2008/02/27 11:30 0.5 TALUONG 2008/03/05 09:30 0.5 TALUONG 2008/03/05 11:00 0.5 TALUONG … 2008/10/04 18:00 0.5 TAMKY 2008/10/06 20:09 0.5 TAMKY 2008/10/06 20:19 11 TAMKY … 2008/02/24 10:50 1 THANHMY 2008/03/14 15:30 0.5 THANHMY 2008/03/29 17:20 0.5 THANHMY 2008/03/30 17:10 2 THANHMY 2008/03/30 17:20 8.5 THANHMY … 2008/10/01 05:22 0.5 THUONGNHAT 2008/10/01 13:52 2.5 THUONGNHAT 2008/10/01 14:02 2 THUONGNHAT 2008/10/01 14:22 0.5 THUONGNHAT 2008/10/01 16:02 0.5 THUONGNHAT … 2008/03/03 16:40 0.5 TIENPHUOC 2008/03/05 03:50 0.5 TIENPHUOC 2008/03/05 04:10 0.5 TIENPHUOC … 2008/10/16 19:14 7.5 TRAMY 2008/10/16 19:32 1 TRAMY 2008/10/16 19:52 0.5 TRAMY 2008/10/16 20:02 0.5 TRAMY 2008/10/16 20:22 0.5 TRAMY 2008/06/30 15:10 2.5 TRAMY …. 69 PL3.Mã nguồn phần mềm. Private Sub a0a1_Click() Dim F1 F1 = TMG + "DATA4cap1.TXT" Call chayABnho(F1) End Sub Private Sub about_Click() about11.Show End Sub Sub CHAYRD() Dim RD, SF, TG, K1, docao, BK ',DL(10,) Static N1, N2, I, I1 F1 = TMG + "radarainf.INI" F2 = TMG + "DATA1.TXT" List1.Clear K1 = 0 Open F2 For Output As #2 If FSO.FileExists(F1) = True Then RD = DOCTHONGSO(F1, 1) If FSO.FolderExists(RD) = True Then File1.Path = RD SF = File1.ListCount Frame2.Caption = SF If SF > 0 Then ProgressBar1(1).Max = SF + 1 For I = 0 To SF tf = File1.List(I) ProgressBar1(1).Value = I + 1 ProgressBar1(1).Visible = True If Trim(tf) "" Then tf = CHECKGACHCHEO(File1.Path) & File1.List(I) N2 = LINEFILE(tf) ProgressBar1(0).Max = N2 Open tf For Input As #1 I1 = 0 List1.Visible = False Do Until EOF(1) Line Input #1, B I1 = I1 + 1 ' List1.AddItem B If forma1(B) > 1 Then If forma1(B) = 2 Then TG = Mid(B, 61, 17) SP = Mid(B, 18, 8) docao = LAYSO(Right(B, 12)) BK = Mid(B, 41, 8) 70 Else TG = Mid(B, 60, 16) SP = Mid(B, 18, 8) docao = LAYSO(Right(B, 12)) BK = Mid(B, 39, 8) End If K1 = K1 + 1 End If If forma1(B) = 1 And LAYGTMUA(B) = True Then ' Print #2, THEMCACH(TG, 8) & " " & THEMCACH(SP, 10) & THEMCACH(Trim(BK), 8) & THEMCACH(docao, 5), B End If ProgressBar1(0).Value = I1 ProgressBar1(0).Visible = True ProgressBar1(1).Visible = True DoEvents Loop Close (1) End If Label5.Caption = I & "/" & SF DoEvents Next I List1.Visible = True End If End If End If Close (2) Label4.Caption = K1 End Sub Function forma1(ST) 'As Boolean Select Case Trim(Mid(ST, 18, 7)) Case "10" forma1 = 1 Case "CAPPI" forma1 = 2 Case "PPI -" forma1 = 3 Case Else forma1 = 0 End Select End Function Function LAYGTMUA(ST) As Boolean If Val(Trim(Mid(ST, 38, 10))) > 0 Then LAYGTMUA = True Else LAYGTMUA = False End If 71 End Function Sub chayMD() Dim RD, SF, TG, K1, docao, BK ',DL(10,) Static N1, N2, I, I1, F2 F1 = TMG + "radarainf.INI" F2 = TMG + "DATA2.TXT" List1.Clear K1 = 0 Open F2 For Output As #2 Close (2) If FSO.FileExists(F1) = True Then RD = DOCTHONGSO(F1, 2) If FSO.FolderExists(RD) = True Then File1.Path = RD SF = File1.ListCount Frame2.Caption = SF If SF > 0 Then ProgressBar1(1).Max = SF + 1 For I = 0 To SF tf = File1.List(I) ProgressBar1(1).Value = I + 1 ProgressBar1(1).Visible = True If Trim(tf) "" Then tf = CHECKGACHCHEO(File1.Path) & File1.List(I) N2 = LINEFILE(tf) ProgressBar1(0).Max = N2 If Right(File1.List(I), 3) = "prn" Then Call docfilemd1(tf, F2) Else Call docfilemd(tf, F2) End If End If Label5.Caption = I & "/" & SF DoEvents Next I List1.Visible = True End If End If End If Label4.Caption = K1 End Sub Private Sub avab_Click() Dim F1 F1 = TMG + "DATA4cap1.TXT" Call chayAB(F1) End Sub Sub chayAB(F1) 72 Dim B, Tram(2, 100), DL(10, 100000) As Currency, I1, I2, SoTram, FKQ, Tu, Mau1, Mau2, hs(10, 100000), K1 As Currency, K2 As Currency, K3 As Currency, Tong(10) Dim ar As Currency, br, AMAX, BMAX, Amin, BMIN, TQ(10, 800000), Stepp Dim AAA, BBB, HESO(10, 800000) FKQ = TMG + "2008KQ.txt" Screen.MousePointer = 11 For I1 = 1 To 200000 HESO(5, I1) = 0 HESO(6, I1) = 0 HESO(7, I1) = 0 HESO(8, I1) = 0 HESO(9, I1) = 0 For I2 = 1 To 5 TQ(I2, I1) = 0 Next Next I1 '------------------- I1 = 0 List1.Clear AMAX = 2000 Amin = 1 BMAX = 5 BMIN = 1 Stepp = 0.1 If FSO.FileExists(F1) = True Then Open F1 For Input As #1 K1 = 0 Do Until EOF(1) Line Input #1, B ' If I1 = 0 Then I1 = I1 + 1 '-------------------- DL(1, I1) = Val(Trim(LAYND(B, 7))) 'lay phvt Xi Rradar(K2, K3, DL(1, I1)) DL(2, I1) = Val(Trim(LAYND(B, 8))) 'lay mua ' DL(3, I1) = DL(3, I1) + DL(1, I1) * DL(1, I1) 'lay phvt Xi*Xi ' DL(4, I1) = DL(4, I1) + DL(2, I1) * DL(2, I1) 'lay mua Yi*Yi ' DL(5, I1) = DL(5, I1) + DL(2, I1) * DL(1, I1) 'lay mua Xi*Yi '---------------- phan tinh he so hoi qui. ' K1 = 1 ' End If Loop Close (1) I2 = I1 '---------------------------------- ProgressBar1(0).Max = AMAX For K2 = Amin To AMAX Step 1 ProgressBar1(0).Value = K2 73 Label5.Caption = K2 ProgressBar1(0).Visible = True DoEvents For K3 = BMIN To BMAX Step Stepp K1 = K1 + 1 For I1 = 1 To I2 DL(3, I1) = Rradar(K2, K3, DL(1, I1)) DL(4, I1) = (DL(3, I1) - DL(2, I1)) TQ(1, K1) = TQ(1, K1) + DL(3, I1) TQ(2, K1) = TQ(2, K1) + DL(2, I1) HESO(5, K1) = HESO(5, K1) + DL(4, I1) ' * DL(4, I1) ' sai so trung binh HESO(6, K1) = HESO(6, K1) + Abs(DL(4, I1)) HESO(7, K1) = HESO(7, K1) + Abs(DL(4, I1)) * Abs(DL(4, I1)) 'sai so trung binh binh phuong Next I1 ' x va y trung binh ' List1.AddItem TQ(2, K1) TQ(1, K1) = TQ(1, K1) / I2 TQ(2, K1) = TQ(2, K1) / I2 ' x va y trung binh For I1 = 1 To I2 TQ(3, K1) = TQ(3, K1) + (DL(3, I1) - TQ(1, K1)) * (DL(2, I1) - TQ(2, K1)) ' TQ(4, K1) = TQ(4, K1) TQ(5, K1) = TQ(5, K1) + (DL(3, I1) - TQ(1, K1)) * (DL(3, I1) - TQ(1, K1)) ' List1.AddItem (DL(2, I1) - TQ(2, K1)) * (DL(2, I1) - TQ(2, K1)) TQ(4, K1) = TQ(4, K1) + (DL(2, I1) - TQ(2, K1)) * (DL(2, I1) - TQ(2, K1)) Next I1 HESO(9, K1) = TQ(3, K1) / (TQ(5, K1) * TQ(4, K1)) ^ (0.5) HESO(3, K1) = K2 HESO(4, K1) = K3 Next K3 Next K2 '----------------------------------- End If For K2 = 1 To K1 HESO(5, K2) = HESO(5, K2) / I2 HESO(6, K2) = HESO(6, K2) / I2 HESO(7, K2) = HESO(7, K2) / I2 HESO(8, K2) = (HESO(7, K2)) ^ (0.5) Next ' phan tinh sai so GoTo 5000 If K1 > 0 Then Label4.Caption = K1 ProgressBar1(0).Max = K1 For I1 = 1 To K1 ProgressBar1(0).Value = I1 74 Label5.Caption = I1 ProgressBar1(0).Visible = True DoEvents For I2 = 1 To K1 If HESO(5, I1) > HESO(5, I2) Then TTAM = HESO(5, I1) HESO(5, I1) = HESO(5, I2) HESO(5, I2) = TTAM TTAM = HESO(4, I1) HESO(4, I1) = HESO(4, I2) HESO(4, I2) = TTAM TTAM = HESO(3, I1) HESO(3, I1) = HESO(3, I2) HESO(3, I2) = TTAM End If Next I2 Next I1 5000 'ProgressBar1(0).Max = K1 Open FKQ For Output As #2 Print #2, " A ", " b", "Sai So " For I1 = 1 To K1 ' ' ProgressBar1(0).Value = I1 Label5.Caption = I1 ' ProgressBar1(0).Visible = True DoEvents Print #2, HESO(3, I1), HESO(4, I1), Format(HESO(5, I1), "######0.000"), Format(HESO(6, I1), "######0.000"), Format(HESO(7, I1), "######0.000") ', Format(HESO(8, I1), "######0.000"), Format(HESO(9, I1), "######0.000") Next I1 Close (2) End If '---------------------- Screen.MousePointer = 0 End Sub Function Rradar(ar As Currency, br, dbz As Currency) 'Rradar = (Abs(Ln(zr) - Ln(Ar)) / Br) ^ 2.718282 'R=[(lnZ-lnA)/b]e ' 'Rradar = ((Ln(zr))) ' - Ln(200)) / 1.6) ^ 2.718282 'R=[(lnZ-lnA)/b]e ' Dim Zr Zr = 10 ^ (dbz / 10) Rradar = (Zr / ar) ^ (1 / br) '10 ^ ((Log10(Zr) - Log10(ar)) / br) 'è R=10((logZ-logA)/b)) '(zr / Ar) ^ (1 / Br) * 6 End Function Function Zradar(ar, br, Rr) Zradar = ar * (Rr) ^ br End Function Function Rradar1(ar As Currency, br, Zr As Currency) 'Rradar = (Abs(Ln(zr) - Ln(Ar)) / Br) ^ 2.718282 'R=[(lnZ-lnA)/b]e ' 75 'Rradar = ((Ln(zr))) ' - Ln(200)) / 1.6) ^ 2.718282 'R=[(lnZ-lnA)/b]e ' Rradar1 = 2.718282 ^ (Log(Zr / ar) / br) 'è R=10((logZ-logA)/b)) '(zr / Ar) ^ (1 / Br) * 6 R=e[ln(Z/A)]b End Function Private Sub capp_Click() Dim F1 F1 = TMG + "DATA4cap.TXT" Call chaysp(F1) End Sub Sub chaysp(F1) Dim B, Tram(2, 100), DL(10, 100), I1, I2, SoTram, FKQ, Tu, Mau1, Mau2, hs(10, 100000), K1, K2, Tong(10) Dim AAA, BBB FKQ = TMG + "ketqua.txt" Screen.MousePointer = 11 For I1 = 1 To 10 Tong(I1) = 0 For I2 = 1 To 100 DL(I1, I2) = 0 Next Next I1 = 0 If FSO.FileExists(F1) = True Then Open F1 For Input As #1 Do Until EOF(1) Line Input #1, B If I1 = 0 Then I1 = I1 + 1 Tram(1, I1) = LAYND(B, 3) Tram(2, I1) = I1 '-------------------- DL(1, I1) = DL(1, I1) + Val(Trim(LAYND(B, 7))) 'lay phvt Xi DL(2, I1) = DL(2, I1) + Val(Trim(LAYND(B, 8))) 'lay mua Yi DL(3, I1) = DL(3, I1) + DL(1, I1) * DL(1, I1) 'lay phvt Xi*Xi DL(4, I1) = DL(4, I1) + DL(2, I1) * DL(2, I1) 'lay mua Yi*Yi DL(5, I1) = DL(5, I1) + DL(2, I1) * DL(1, I1) 'lay mua Xi*Yi '---------------- phan tinh he so hoi qui K1 = 1 hs(1, K1) = Val(Trim(LAYND(B, 7))) hs(2, K1) = Val(Trim(LAYND(B, 8))) DL(0, I1) = DL(0, I1) + 1 aa = 10 + DL(0, I1) Open TMG + "data\" & Tram(1, I1) & ".txt" For Append As #aa Print #10 + DL(0, I1), Val(Trim(LAYND(B, 7))), Val(Trim(LAYND(B, 8))), DL(1, I1) * DL(1, I1), DL(2, I1) * DL(2, I1), DL(2, I1) * DL(1, I1) Close (aa) '-------------------- 76 Else For I2 = 1 To I1 If UCase(Trim(Tram(1, I2))) = UCase(Trim(LAYND(B, 3))) Then '-------------------- DL(0, I2) = DL(0, I2) + 1 DL(1, I2) = DL(1, I2) + Val(Trim(LAYND(B, 7))) 'lay phvt Xi DL(2, I2) = DL(2, I2) + Val(Trim(LAYND(B, 8))) 'lay mua Yi DL(3, I2) = DL(3, I2) + DL(1, I2) * DL(1, I2) 'lay phvt Xi*Xi DL(4, I2) = DL(4, I2) + DL(2, I2) * DL(2, I2) 'lay mua Yi*Yi DL(5, I2) = DL(5, I2) + DL(2, I2) * DL(1, I2) 'lay mua Xi*Yi K1 = K1 + 1 hs(1, K1) = Val(Trim(LAYND(B, 7))) hs(2, K1) = Val(Trim(LAYND(B, 8))) '---------------- phan tinh he so hoi qui ' dl(7,i2)= aa = 10 + DL(0, I2) Open TMG + "data\" & Tram(1, I2) & ".txt" For Append As #aa Print #aa, Val(Trim(LAYND(B, 7))), Val(Trim(LAYND(B, 8))), DL(1, I2) * DL(1, I2), DL(2, I2) * DL(2, I2), DL(2, I2) * DL(1, I2) Close (aa) '-------------------- GoTo 500 End If Next I2 I1 = I1 + 1 Tram(1, I1) = LAYND(B, 3) Tram(2, I1) = I1 '-------------------- DL(1, I1) = DL(1, I1) + Val(Trim(LAYND(B, 7))) 'lay phvt Xi DL(2, I1) = DL(2, I1) + Val(Trim(LAYND(B, 8))) 'lay mua Yi DL(3, I1) = DL(3, I1) + DL(1, I1) * DL(1, I1) 'lay phvt Xi*Xi DL(4, I1) = DL(4, I1) + DL(2, I1) * DL(2, I1) 'lay mua Yi*Yi DL(5, I1) = DL(5, I1) + DL(2, I1) * DL(1, I1) 'lay mua Xi*Yi DL(0, I1) = DL(0, I1) + 1 aa = 10 + DL(0, I1) K1 = K1 + 1 hs(1, K1) = Val(Trim(LAYND(B, 7))) hs(2, K1) = Val(Trim(LAYND(B, 8))) Open TMG + "data\" & Tram(1, I1) & ".txt" For Append As #aa Print #10 + DL(0, I1), Val(Trim(LAYND(B, 7))), Val(Trim(LAYND(B, 8))), DL(1, I1) * DL(1, I1), DL(2, I1) * DL(2, I1), DL(2, I1) * DL(1, I1) Close (aa) '-------------------- End If ' List1.AddItem DL(1, I1) & "--------" & DL(2, I1) 500 Loop Close (1) 77 Close '---------------------------- SoTram = I1 Open FKQ For Output As #5 For I1 = 1 To SoTram ' Tu = (DL(0, I1) * DL(5, I1) - DL(1, I1) * DL(2, I1)) Mau1 = (DL(0, I1) * DL(3, I1) - DL(1, I1) * DL(1, I1)) ^ 0.5 Mau2 = (DL(0, I1) * DL(4, I1) - DL(2, I1) * DL(2, I1)) ^ 0.5 DL(7, I1) = Tu / (DL(0, I1) * DL(3, I1) - DL(1, I1) * DL(1, I1)) ' DL(8, I1) = (DL(2, I1) / DL(0, I1)) - DL(7, I1) * (DL(1, I1) / DL(0, I1)) 'b 'Print #5, Mau1, Mau2 If Mau1 * Mau2 0 Then DL(6, I1) = Tu / (Mau1 * Mau2) Else DL(6, I1) = 0 End If Print #5, Tram(2, I1), Tram(1, I1), DL(0, I1), Format(DL(1, I1), "###########0.0"), Format(DL(2, I1), "###########0.0"), Format(DL(3, I1), "###########0.0"), Format(DL(4, I1), "###########0.0"), Format(DL(5, I1), "###########0.0"), Format(DL(6, I1), "#0.0000000000"), Format(DL(7, I1), "#####0.0000"), Format(DL(8, I1), "#####0.0000") Next I1 '---------------------- If K1 > 0 Then For K2 = 1 To K1 Tong(1) = Tong(1) + hs(1, K2) ' tong x Tong(2) = Tong(1) + hs(2, K2) ' tong y Next K2 Tong(3) = Tong(1) / K1 ' lay trung binh x Tong(4) = Tong(2) / K1 ' lay trung binh y For K2 = 1 To K1 Tong(5) = hs(1, K2) - Tong(1) ' trung gian x Tong(6) = hs(2, K2) - Tong(1) ' trung gian y Tong(7) = Tong(7) + Tong(5) * Tong(6) ' trung gin luon dung Tong(8) = Tong(8) + Tong(5) * Tong(5) ' trung gian x * x Next K2 ' AAA = Tong(4) - (Tong(7) / Tong(8)) * Tong(3) BBB = (Tong(7) / Tong(8)) Print #5, " Y = " & Format(AAA, "####0.0000") & " + " & Format(BBB, "####0.0000") & " X " End If Close (5) End If Screen.MousePointer = 0 End Sub Sub chayABnho(F1) Dim B, Tram(2, 100), DL(10, 100000) As Currency, I1, I2, SoTram, FKQ, Tong(10) 78 Dim AAA, BBB, Xtb, Ytb, Lxy, Lxx, a1, a0 FKQ = TMG + "kqAB.txt" Screen.MousePointer = 11 For I1 = 1 To 10 Tong(I1) = 0 For I2 = 1 To 100 DL(I1, I2) = 0 Next Next I1 = 0 If FSO.FileExists(F1) = True Then Open FKQ For Output As #5 Print #5, "dBZ", "lgI", "Z", "I" Open F1 For Input As #1 Do Until EOF(1) Line Input #1, B 'If I1 = 0 Then '-------------------- If (Val(Trim(LAYND(B, 8))) * 6) > 30 Or Val(Trim(LAYND(B, 7))) < 15 Then GoTo 500 I1 = I1 + 1 DL(1, I1) = Val(Trim(LAYND(B, 7))) 'lay phvt Xi DL(2, I1) = Log10(Val(Trim(LAYND(B, 8))) * 6) 'lay mua Yi Print #5, DL(1, I1), DL(2, I1), Format(10 ^ (DL(1, I1) / 10), "###########0.0"), (Val(Trim(LAYND(B, 8))) * 6) Tong(1) = Tong(1) + DL(1, I1) 'tong phvt Xi*Xi Tong(2) = Tong(2) + DL(2, I1) 'tong mua Yi*Yi '-------------------- 'End If ' List1.AddItem DL(1, I1) & "--------" & DL(2, I1) 500 Loop Close (1) '---------------------------- SoTram = I1 ' For I1 = 1 To SoTram 'X & Y & y-ytb & x-xtb & (x-xtb)(y-ytb) & (x-xtb)(x-xtb)& ' a0=ytb-a1 * Xtb 'a1=lxy/lxx 'tinh trung binh Xtb = Tong(1) / I1 Ytb = Tong(2) / I1 For I1 = 1 To SoTram Tong(3) = Tong(3) + (DL(1, I1) - Xtb) * (DL(2, I1) - Ytb) Tong(4) = Tong(4) + (DL(1, I1) - Xtb) * (DL(1, I1) - Xtb) Next I1 Lxy = Tong(3) Lxx = Tong(4) 79 a1 = Lxy / Lxx a0 = Ytb - Xtb * a1 ' DL(7, I1) = Tu / (DL(0, I1) * DL(3, I1) - DL(1, I1) * DL(1, I1)) ' a ' DL(8, I1) = (DL(2, I1) / DL(0, I1)) - DL(7, I1) * (DL(1, I1) / DL(0, I1)) 'b 'Print #5, Mau1, Mau2 'Print #5, Tram(2, I1), Tram(1, I1), DL(0, I1), Format(DL(1, I1), "###########0.0"), Format(DL(2, I1), "###########0.0"), Format(DL(3, I1), "###########0.0"), Format(DL(4, I1), "###########0.0"), Format(DL(5, I1), "###########0.0"), Format(DL(6, I1), "#0.0000000000"), Format(DL(7, I1), "#####0.0000"), Format(DL(8, I1), "#####0.0000") ' Print #5, "Y=a0 + a1 X" ' Print #5, "a0", "a1" ' Print #5, Format(a0, "###########0.0"), Format(a1, "###########0.0") ' Next I1 '---------------------- Print #5, "0.0", "0.0", "0.0 ", "0.0 ", "Y = " & Format(a0, "####0.0000") & " + " & Format(a1, "####0.0000") & " X " List1.AddItem " Y = " & Format(a0, "####0.0000") & " + " & Format(a1, "####0.0000") & " X " List1.AddItem " A= " & 10 ^ (a0 / 10) & " va b= " & Format(a1 / 10, "####0.0000") Print #5, "0.0", "0.0", "0.0 ", "0.0 ", " A= " & 10 ^ (a0 / 10), " va b= " & Format(a1 / 10, "####0.0000") Close (5) End If Screen.MousePointer = 0 End Sub Private Sub Command1_Click() Dim t As Currency, I As Currency t = Val(Trim(Text1.Text)) F4 = TMG + "KsatABZ.txt" Open F4 For Output As #4 Screen.MousePointer = 11 For I2 = 1 To 1000 For I3 = 0.4 To 4 Step 0.1 For I = 0 To 10 Step 0.5 ' List1.AddItem i & " " & Rradar1(200, 1.6, i) 'List1.AddItem THEMkhong(Str(I), 3) & " " & Format(Zradar(200, 1.6, I), "####0.00") If Zradar(I2, I3, I) 15 Then Print #4, THEMCACH(I2, 4), THEMCACH(I3, 3), THEMCACH(Str(I), 4), Format(Zradar(I2, I3, I), "####0.00") Next I Print #4, "**" Next I3 Print #4, "-------------" Next I2 Close (4) Screen.MousePointer = 0 End Sub 80 Private Sub Command2_Click() Dim F1 F1 = TMG + "DATA4cap.TXT" Call chaydothi(F1) End Sub Sub chaydothi(F1) Dim DL(10, 100000) As Currency, I1 FKQ = TMG + "dothiLgR.txt" Screen.MousePointer = 11 '------------------- I1 = 0 List1.Clear If FSO.FileExists(F1) = True Then Open FKQ For Output As #2 Open F1 For Input As #1 K1 = 0 Do Until EOF(1) Line Input #1, B ' If I1 = 0 Then I1 = I1 + 1 ' Tram(1, I1) = LAYND(B, 3) ' Tram(2, I1) = I1 '-------------------- DL(1, I1) = Val(Trim(LAYND(B, 7))) 'lay phvt Xi DL(2, I1) = Val(Trim(LAYND(B, 8))) * 6 'lay mua Yi DL(3, I1) = Log10(DL(2, I1)) Print #2, DL(1, I1), DL(2, I1), DL(3, I1) ' DL(3, I1) = DL(3, I1) + DL(1, I1) * DL(1, I1) 'lay phvt Xi*Xi ' DL(4, I1) = DL(4, I1) + DL(2, I1) * DL(2, I1) 'lay mua Yi*Yi ' DL(5, I1) = DL(5, I1) + DL(2, I1) * DL(1, I1) 'lay mua Xi*Yi '---------------- phan tinh he so hoi qui. ' K1 = 1 ' End If Loop Close (1) Close (2) End If Screen.MousePointer = 0 End Sub Private Sub Command3_Click() Dim t As Currency t = Val(Trim(Text1.Text)) List1.AddItem Log10(t) End Sub Private Sub Composite_Click() Dim F0, F1, F2, F4, F5, DL(100000), K1, K2, K3, I1, B, DAU Static I2 'F0 = TMG + "radarainf.INI" 81 F4 = TMG + "DATA4cap2004.TXT" F5 = TMG + "DATA4ppi2004.TXT" Screen.MousePointer = 11 'If FSO.FileExists(F0) = True Then F1 = TMG + "DATA2.TXT" F2 = TMG + "DATA1.TXT" '------------------------- List1.Clear Open F4 For Output As #4 ' Open F5 For Output As #5 If FSO.FileExists(F2) = True Then I1 = 0 Open F1 For Input As #1 Do Until EOF(1) I1 = I1 + 1 Line Input #1, DL(I1) Loop Close (1) End If '------------------------- List1.AddItem F1 & " " & I1 If FSO.FileExists(F2) = True Then I2 = 0 I3 = 0 ProgressBar1(0).Max = LINEFILE(F2) Open F2 For Input As #2 Do Until EOF(2) I2 = I2 + 1 Line Input #2, B ' Print #4, LAYND(B, 1), LAYND(B, 2), LAYND(B, 4), LAYND(B, 5), LAYND(B, 6) For K1 = 1 To I1 If Trim(LAYND(DL(K1), 1)) = Trim(LAYND(B, 1)) And Trim(LAYND(DL(K1), 5)) = Trim(LAYND(B, 3)) And Abs(Val(Trim(LAYND(B, 2))) - Val(Trim(LAYND(DL(K1), 2)))) < 4 Then I3 = I3 + 1 If LAYND(B, 6) = "CAP" Then Print #4, B, LAYND(DL(K1), 4) End If End If Next K1 ProgressBar1(0).Value = I2 Label5.Caption = I3 ProgressBar1(0).Visible = True DoEvents Loop Close (2) 82 End If '------------------------- List1.AddItem F2 & " " & I2 List1.AddItem " CAP " & I3 '------------------------- 'End If 1000 Close (4) 'Close (5) Screen.MousePointer = 0 End Sub Private Sub Composite10_Click() Dim F0, F1, F2, F4, F5, DL(100000), K1, K2, K3, I1, B, DAU Static I2 'F0 = TMG + "radarainf.INI" F4 = TMG + "DATA4cap10.TXT" F5 = TMG + "DATA4ppi10.TXT" Screen.MousePointer = 11 'If FSO.FileExists(F0) = True Then F1 = TMG + "DATA2.TXT" F2 = TMG + "DATA1.TXT" '------------------------- List1.Clear Open F4 For Output As #4 Open F5 For Output As #5 If FSO.FileExists(F2) = True Then I1 = 0 Open F1 For Input As #1 Do Until EOF(1) I1 = I1 + 1 Line Input #1, DL(I1) Loop Close (1) End If '------------------------- List1.AddItem F1 & " " & I1 If FSO.FileExists(F2) = True Then I2 = 0 I3 = 0 ProgressBar1(0).Max = LINEFILE(F2) Open F2 For Input As #2 Do Until EOF(2) I2 = I2 + 1 Line Input #2, B ' Print #4, LAYND(B, 1), LAYND(B, 2), LAYND(B, 4), LAYND(B, 5), LAYND(B, 6) For K1 = 1 To I1 83 If Trim(LAYND(DL(K1), 1)) = Trim(LAYND(B, 1)) And Trim(LAYND(DL(K1), 5)) = Trim(LAYND(B, 3)) And Abs(Val(Trim(LAYND(B, 2))) - Val(Trim(LAYND(DL(K1), 2)))) < 4 Then I3 = I3 + 1 If LAYND(B, 6) = "CAP" Then Print #4, B, LAYND(DL(K1), 4) Else Print #5, B, LAYND(DL(K1), 4) End If Exit For End If Next K1 ProgressBar1(0).Value = I2 Label5.Caption = I3 ProgressBar1(0).Visible = True DoEvents Loop Close (2) End If '------------------------- List1.AddItem F2 & " " & I2 List1.AddItem " CAP " & I3 '------------------------- 'End If 1000 Close (4) Close (5) Screen.MousePointer = 0 End Sub Private Sub exit_Click() End End Sub Sub docfilemd(F, F2) Dim I1, I2, I3, LMUA, TGMUA, tdiem, MTonG LMUA = 0 TGMUA = "" MTonG = 0 If FSO.FileExists(F) Then 'List1.Clear nhandien = Trim(Label6.Caption) tenfile = TENTRAM(UCase(Trim(Mid(F, 1, Len(F) - 4)))) List1.AddItem tenfile Open F2 For Append As #4 Open F For Input As #3 I1 = 0 nhanfile = 0 Do Until EOF(3) I1 = I1 + 1 84 Line Input #3, B If I1 = 1 And Mid(B, 1, 4) = Trim("Date") Then nhanfile = 3 If Mid(B, 1, 1) = Trim(nhandien) Then 'If Right(B, 1) = """ Then TAM = "" For I = 1 To Len(B) If Mid(B, I, 1) Trim(nhandien) Then If Mid(B, I, 1) = Chr(13) Or Mid(B, I, 1) = Chr(10) Then 'List1.AddItem TAM If Val(Trim(Right(TAM, 4))) > 0 Then Print #4, them0gio(TAM), tenfile TAM = "" Else TAM = TAM & Mid(B, I, 1) End If End If Next If Trim(TAM) "" Then Print #4, them0gio(TAM), tenfile Else If Mid(B, 7, 1) = "," Then TAM = "" TAM = "20" & Mid(B, 1, 2) & "/" & Mid(B, 3, 2) & "/" & Mid(B, 5, 2) & " " & Mid(B, 8, 5) & " " & Val(Trim(Right(B, 2))) * 0.5 If Val(Trim(Right(B, 2))) > 0 Then Print #4, TAM, TENTRAM1(tenfile) End If If nhanfile = 3 And I1 > 1 Then tdiem = Val(Trim(Mid(B, 13, 1))) If Left(B, 13) = TGMUA Then MTonG = MTonG + Val(Trim(Mid(B, 16, Len(B) - 15))) - LMUA Else If MTonG > 0 Then Print #4, TAM & " " & MTonG, TENTRAM1(tenfile) ', tdiem ' List1.AddItem "Tong: " & TAM & " " & MTonG ' TaM = congtg(b, tdiem) & " " & MTonG ' MTonG = Val(Trim(Mid(B, 16, Len(B) - 15))) - LMUA End If TAM = congtg(B, tdiem) & " " '& MTonG ' LMUA = Val(Trim(Mid(B, 16, Len(B) - 15))) ' List1.AddItem b TGMUA = Left(B, 13) End If End If Loop If MTonG > 0 And nhanfile = 3 And I1 > 1 Then Print #4, TAM & " " & MTonG, TENTRAM1(tenfile) ' ' MTonG = Val(Trim(Mid(b, 16, Len(b) - 15))) - LMUA Close (3) 85 Close (4) End If End Sub Sub docfilemd1(F, F2) Dim I1, I2, I3, LMUA, TGMUA, tdiem, MTonG LMUA = 0 TGMUA = "" MTonG = 0 If FSO.FileExists(F) Then tenfile = TENTRAM(UCase(Trim(Mid(F, 1, Len(F) - 4)))) List1.AddItem tenfile Open F2 For Append As #4 Open F For Input As #3 I1 = 0 nhanfile = 0 Do Until EOF(3) I1 = I1 + 1 Line Input #3, B If I1 > 1 Then nam = Mid(B, 7, 4) thang = Mid(B, 3, 4) Ngay = Mid(B, 1, 2) Gio = Mid(B, 13, 5) TAM = nam & thang & Ngay & " " & Gio LMUA = Val(Mid(B, 24, 5)) If LMUA > 0 Then Print #4, TAM & " " & LMUA, TENTRAM1(tenfile) End If Loop ' If MTonG > 0 And nhanfile = 3 And I1 > 1 Then Print #4, TAM & " " & MTonG, TENTRAM1(tenfile) ' ' MTonG = Val(Trim(Mid(b, 16, Len(b) - 15))) - LMUA Close (3) Close (4) End If End Sub Function congtg(B, tdiem) Dim t, TaM1, Ngay, thang, nam, Gio t = tdiem + 1 If t = 6 Then nam = Val(Trim("20" & Mid(B, 7, 2))) thang = Val(Trim(Left(B, 2))) Ngay = Val(Trim(Mid(B, 4, 2))) Gio = Val(Trim(Mid(B, 10, 2))) + 1 If Gio > 23 Then Gio = Gio - 24 Ngay = Ngay + 1 If Ngay > layngay(nam, thang) Then 86 Ngay = 1 thang = thang + 1 If thang > 12 Then thang = 1 nam = nam + 1 End If End If End If TaM1 = nam & "/" & THEMkhong(Str(thang), 2) & "/" & THEMkhong(Str(Ngay), 2) & " " & THEMkhong(Str(Gio), 2) & ":00" Else TaM1 = "20" & Mid(B, 7, 2) & "/" & Left(B, 5) & " " & Trim(Mid(B, 10, 3)) & t & "0" End If congtg = TaM1 End Function Function them0gio(B) Dim TaM1 TaM1 = "" If Trim(B) "" Then TaM1 = Mid(B, 1, 10) & " " & THEMkhong(Trim(Mid(B, 12, 5)), 5) & " " & Trim(Mid(B, 17, Len(B) - 16)) End If them0gio = TaM1 End Function Private Sub File1_DblClick() Dim F, B F = File1.Path & "\" & File1.FileName F3 = TMG + "DATA3.TXT" Open F3 For Output As #2 Close (2) Call docfilemd(F, F3) End Sub Private Sub Form_Load() Call hientt End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) ProgressBar1(0).Visible = False ProgressBar1(1).Visible = False End Sub Private Sub Label1_Click() If FSO.FolderExists(Label1.Caption) = True Then File1.Path = Label1.Caption End Sub Private Sub Label2_Click() If FSO.FolderExists(Label2.Caption) = True Then File1.Path = Label2.Caption End Sub Private Sub lap_Click() 87 Dim F1 F1 = TMG + "DATA4cap1.TXT" ' F1 = TMG + "data102008.txt" Call lapAB(F1) MsgBox "Xong ", vbInformation, "HOANG MINH TOAN THONG BAO" End Sub Sub lapAB(F1) Dim B, Tram(2, 100), DL(10, 100000) As Currency, I1, I2, SoTram, FKQ, Tu, Mau1, Mau2, hs(10, 100000), K1 As Currency, K2 As Currency, K3 As Currency, Tong(10) Dim ar As Currency, br, AMAX, BMAX, Amin, BMIN, TQ(10, 800000), CAN, CAN2 Dim AAA, BBB, HESO(10, 800000), BBMIN, BBMAX, AAMIN, AAMAX, j1, j2, j3, step1 FKQ = TMG + "lapab.txt" Screen.MousePointer = 11 For I1 = 1 To 200000 HESO(5, I1) = 0 HESO(6, I1) = 0 HESO(7, I1) = 0 HESO(8, I1) = 0 HESO(9, I1) = 0 For I2 = 1 To 5 TQ(I2, I1) = 0 Next Next I1 '------------------- I1 = 0 List1.Clear AMAX = 1000 AAMAX = AMAX BMAX = 4 BBMAX = BMAX Amin = 10 AAMIN = Amin BMIN = 1 BBMIN = BMIN flag = 0 Stepp = 1 If FSO.FileExists(F1) = True Then Open FKQ For Output As #44 Open F1 For Input As #1 K1 = 0 Do Until EOF(1) Line Input #1, B ' If I1 = 0 Then I1 = I1 + 1 ' Tram(1, I1) = LAYND(B, 3) ' Tram(2, I1) = I1 '-------------------- 88 DL(1, I1) = Val(Trim(LAYND(B, 7))) 'lay phvt Xi Rradar(K2, K3, DL(1, I1)) DL(2, I1) = Val(Trim(LAYND(B, 8))) 'lay mua Yi ' DL(3, I1) = DL(3, I1) + DL(1, I1) * DL(1, I1) 'lay phvt Xi*Xi ' DL(4, I1) = DL(4, I1) + DL(2, I1) * DL(2, I1) 'lay mua Yi*Yi ' DL(5, I1) = DL(5, I1) + DL(2, I1) * DL(1, I1) 'lay mua Xi*Yi '---------------- phan tinh he so hoi qui. ' K1 = 1 ' End If Loop Close (1) I2 = I1 '---------------------------------- K1 = 0 '------------------------------------- CAN = 100000 600 K1 = K1 + 1 List1.AddItem K1 & " A [ " & AMAX & "," & Amin & "], B [ " & BMAX & "," & BMIN & " ] STEP " & Stepp For j2 = Amin To AMAX Step step1 Print #44, K1, j2, Amin, AMAX, step1 For j3 = BMIN To BMAX Step Stepp HESO(7, K1) = 0 K2 = j2 K3 = j3 For I1 = 1 To I2 ' Rradar(A,B,DBZ) ' DL(3, I1) = Rradar(K2, K3, DL(1, I1)) ' MUA DA TINH BANG RADAR DL(4, I1) = (DL(3, I1) - DL(2, I1)) 'MUA MAT DAT TRU DI MUA RADAR HESO(5, K1) = HESO(5, K1) + DL(4, I1) ' * DL(4, I1) ' sai so trung binh HESO(6, K1) = HESO(6, K1) + Abs(DL(4, I1)) ' HESO(7, K1) = HESO(7, K1) + Abs(DL(4, I1)) * Abs(DL(4, I1)) 'sai so trung binh binh phuong Next I1 ' List1.AddItem HESO(7, K1) / I2 If K1 = 1 And flag = 0 Then CAN = HESO(7, K1) / I2 flag = 1 Else If CAN > HESO(7, K1) / I2 Then CAN = HESO(7, K1) / I2 ' Print #44, K2 End If End If ' List1.AddItem HESO(7, K1) / I2 ' MsgBox "dsf" Next j3 Next j2 CAN2 = CAN '------------ 89 ' If K1 > 2 Then Print #44, "____+++ " & AMAX, Amin For K2 = Amin To AMAX Step step1 ' If K1 > 2 Then Print #44, "____ " & K2 For K3 = BMIN To BMAX Step Stepp ' If K1 > 2 Then Print #44, "+++ " & K2 & " A ", K3, Stepp HESO(7, K1) = 0 For I1 = 1 To I2 ' Rradar(A,B,DBZ) ' DL(3, I1) = Rradar(K2, K3, DL(1, I1)) ' MUA DA TINH BANG RADAR DL(4, I1) = (DL(3, I1) - DL(2, I1)) 'MUA MAT DAT TRU DI MUA RADAR HESO(5, K1) = HESO(5, K1) + DL(4, I1) ' * DL(4, I1) ' sai so trung binh HESO(6, K1) = HESO(6, K1) + Abs(DL(4, I1)) ' HESO(7, K1) = HESO(7, K1) + Abs(DL(4, I1)) * Abs(DL(4, I1)) 'sai so trung binh binh phuong Next I1 ' List1.AddItem HESO(7, K1) / I2 If K1 > 1 Then If Abs(CAN2 - HESO(7, K1) / I2) < 0.001 Then If AAMAX > K2 Then AAMAX = K2 If AAMIN < K2 Then AAMIN = K2 If BBMAX > K3 Then BBMAX = K3 If BBMIN < K3 Then BBMIN = K3 If K1 > 2 Then Print #44, "--- " & K1 & " A { " & AAMAX & "," & AAMIN & "}, B { " & BBMAX & "," & BBMIN & "} " & CAN2 & " H/S " & HESO(7, K1) / I2 End If End If Next K3 Next K2 CAN2 = CAN Print #44, I2, CAN, K1 If (AAMAX = AAMIN And BBMAX = BBMIN) Or K1 >= 4 Then ' ' Print #44, K1 & " A ( " & AAMAX & "," & AAMIN & "), B [ " & BBMAX & "," & BBMIN & "] " & Stepp ' List1.AddItem K1 & " A [ " & AAMAX & "," & AAMIN & "], B [ " & BBMAX & "," & BBMIN & "] " & CAN GoTo 5000 Else ' List1.AddItem K1 & " A [ " & AAMAX & "," & AAMIN & "], B [ " & BBMAX & "," & BBMIN & "] " & CAN Amin = AAMIN AMAX = AAMAX BMIN = BBMIN BMAX = BBMAX Stepp = Stepp / 10 If Amin > AMAX Then step1 = -1 90 If BMIN > BMAX Then Stepp = (Stepp) * (-1) Print #44, K1 & " A [ " & AMAX & "," & Amin & "], B [ " & BMAX & "," & BMIN & "] " & Stepp GoTo 600 End If '------------------------------------- 5000 ProgressBar1(0).Max = K1 'Print #2, HESO(3, I1), HESO(4, I1), Format(HESO(5, I1), "######0.000"), Format(HESO(6, I1), "######0.000"), Format(HESO(7, I1), "######0.000"), Format(HESO(8, I1), "######0.000"), Format(HESO(9, I1), "######0.000") 'Next I1 Close (2) End If '---------------------- Screen.MousePointer = 0 End Sub Private Sub List1_DblClick() tf = TMG + "data3.txt" Open tf For Input As #1 I1 = 0 'List1.Visible = False Do Until EOF(1) Line Input #1, B I1 = I1 + 1 List1.AddItem B Loop Close (1) End Sub Private Sub ppi_Click() Dim F1 F1 = TMG + "DATA4ppi.TXT" Call chaysp(F1) End Sub Private Sub radardata_Click() Form4.Show End Sub Sub hientt() F1 = TMG + "radarainf.INI" If FSO.FileExists(F1) = True Then Label1.Caption = DOCTHONGSO(F1, 1) Label2.Caption = DOCTHONGSO(F1, 2) End If F1 = TMG + "DATA2.TXT" F2 = TMG + "DATA1.TXT" If FSO.FileExists(F1) = True And FSO.FileExists(F2) = True Then Form1.Composite.Enabled = True Else 91 Form1.Composite.Enabled = False End If End Sub Private Sub rainfall_Click() Form5.Show End Sub Private Sub Timer1_Timer() Timer1.Interval = 0 Call CHAYRD End Sub Private Sub Timer2_Timer() Timer2.Interval = 0 Call chayMD End Sub... PL4.Kết quả tính toán … A b MSE MAE ME 5 2.3 24.173 4.184 3.832 6 2.2 24.913 4.195 3.839 2 2.8 22.13 4.178 3.841 4 2.4 24.518 4.262 3.925 7 2.1 26.642 4.277 3.925 .. 45 3 4.584 1.356 0.034 88 3.6 4.867 1.23 -0.483 80 3.9 4.885 1.233 -0.483 75 4.1 4.896 1.235 -0.483 66 4.5 4.916 1.239 -0.483 64 4.6 4.921 1.239 -0.483 62 4.7 4.926 1.24 -0.483 1364 5 6.036 1.244 -1.107 1365 5 6.036 1.244 -1.107 1366 5 6.036 1.244 -1.107 522 1.5 5.795 1.29 -1.106 527 1.6 5.796 1.281 -1.106 92 518 1.4 5.8 1.301 -1.106 534 1.7 5.803 1.274 -1.106 795 4.4 5.879 1.228 -1.05 796 4.4 5.88 1.228 -1.05 812 4.5 5.882 1.228 -1.05 .. 459 3 5.662 1.213 -0.99 464 3.1 5.668 1.212 -0.99 465 3.1 5.67 1.212 -0.99 ........

Các file đính kèm theo tài liệu này:

  • pdfxay_dung_cong_thuc_tinh_luong_mua_tu_so_lieu_ra_dadople_cho_khu_vuc_trung_trung_bo_2451.pdf
Luận văn liên quan