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ị.
92 trang |
Chia sẻ: lylyngoc | Lượt xem: 2435 | Lượt tải: 0
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:
- xay_dung_cong_thuc_tinh_luong_mua_tu_so_lieu_ra_dadople_cho_khu_vuc_trung_trung_bo_2451.pdf