Tải bản đầy đủ (.pdf) (668 trang)

ứng dụng công nghệ vũ trụ để nghiên cứu đánh giá ảnh hưởng của tầng điện ly và tầng khí quyển tới độ chính xác khi sử dụng tín hiệu vệ tinh ở khu vực việt nam code lập trình chương trình xử lý số liệu, mô phỏng và các bài b

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (39.92 MB, 668 trang )

VIỆN VẬT LÝ ĐỊA CẦU






CÁC SẢN PHẨM CỦA ĐỀ TÀI


ỨNG DỤNG CÔNG NGHỆ VŨ TRỤ ĐỂ NGHIÊN CỨU ĐÁNH GIÁ
ẢNH HƯỞNG CỦA TẦNG ĐIỆN LY VÀ TẦNG KHÍ QUYỂN
TỚI ĐỘ CHÍNH XÁC KHI SỬ DỤNG TÍN HIỆU VỆ TINH
Ở KHU VỰC VIỆT NAM

CODE LẬP TRÌNH CHƯƠNG TRÌNH XỬ LÝ SỐ
LIỆU, MÔ PHỎNG VÀ CÁC BÀI BÁO, BÁO CÁO
HỘI NGHỊ


CNĐT : LÊ HUY MINH









9057-1



HÀ NỘI – 2011





VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM
VIỆN VẬT LÝ ĐỊA CẦU
CHƯƠNG TRÌNH KHOA HỌC CÔNG NGHỆ VŨ TRỤ





BÁO CÁO CHUYÊN ĐỀ
“Xây dựng chương trình tính toán nồng độ điện tử tổng cộng tầng
điện ly”

Thuộc đề tài cấp nhà nước “Ứng dụng công nghệ vũ trụ để nghiên
cứu đánh giá ảnh hưởng của tầng điện ly và tầng khí quyển tới độ
chính xác khi sử dụng tín hiệu vệ tinh ở khu vực Việt Nam”

Những người thực hiện: ThS Trần Thị Lan
TS Rolland Fleury
TS Lê Huy Minh
ThS Nguyễn Chiến Thắng






HÀ NỘI, 12-2008

Mở đầu

Tầng điện ly được xem là một môi trường tán xạ đối với các tín hiệu
vệ tinh GPS, gây ra độ trễ nhóm và sự sớm pha khi các sóng radio truyền từ
vệ tinh GPS tới các máy thu trên mặt đất. Mỗi vệ tinh GPS truyền thông tin
được định vị trên hai tần số: 
1
(1.57542 GHz) và 
2
(1.22760 GHz), bằng
cách phân tính sự khác nhau giữa các phép đo code và sự khác nhau giữa các
phép đo pha của hai tần số sẽ cho phép rút ra thông tin về nồng độ điện tử
tổng cộng (TEC) của tầng điện ly từ số liệu GPS hai tần số.
Phương pháp tính TEC đã được giới thiệu nhiều trong các bài báo
quốc tế và cũng đã được giới thiệu chi tiết ở tạp chí trong nước [1, 3, 4, 5, 6,
9, 10,11]. Có hai cách thường được dùng để tính TEC đó là sử dụng phép
đo hiệu pha và hiệu giả khoảng cách giữa hai tần số như được trình bầy theo
công thức dưới đây:

 
)(
3.40
1
12
2
2

2
1
2
2
2
1
i
kk
i
k
i
bbcPPTEC 












(1)

 
)
3.40
1

21
2
2
2
1
2
2
2
1
k
i
k
i
k
i
BLLTEC 












(2)
Trong đó:

chỉ số 1, 2 tương ứng với thông tin của hai tần số mang của vệ tinh 
1
và 
2
,
chỉ số k, i tương ứng cho thông tin thu được từ vệ tinh thứ k và máy thu thứ
i,
TEC là giá trị nồng độ điện tử tổng cộng dọc theo đường truyền của tín hiệu,
theo TECU (1TECU = 10
16
electron/m
2
)
P
1
, P
2
tương ứng là phép đo giả khoảng cách từ hai tần số, theo mét
L
1
, L
2
là phép đo pha của hai tần số, theo mét
kkk
bbb
12
 ,
iii
bbb
12

 là các độ trễ thiết bị của vệ tinh và máy thu,
k
i
k
i
k
i
BBB
2211

 là tham số độ lệch pha ban đầu chưa biết.
Phương trình (1) chính là phương pháp tính TEC từ các phép đo giả khoảng
cách, còn phương trình (2) là từ các phép đo pha. Ta thấy rằng để xác định
TEC theo phép đo pha thì phải xác định được tham số mù mờ pha ban đầu
B
k
i
, nếu sử dụng các phép đo hiệu khoảng giả thì ta phải xác định được các
độ trễ thiết bị gây bởi phần cứng máy thu và vệ tinh b
i
và 
k
. Vì vậy, người
ta không thể suy ra một cách trực tiếp giá trị TEC tuyệt đối từ số liệu GPS
một thời kỳ. Để tách TEC ra khỏi các tham số độ lệch thiết bị hoặc các thông
số pha ban đầu chưa biết, người ta buộc phải xử lý số liệu trong khoảng thời
gian dài hơn.
Ngoài hai phương pháp trên, còn một phương pháp nữa cũng được
dùng để tính TEC đó là sử dụng kết hợp cả phép đo pha và phép đo hiệu
khoảng giả có thể tham khảo thêm trong [3].

Từ các nguồn tài liệu đã chỉ ra rằng nếu chỉ sử dụng phép đo giả
khoảng cách sẽ cho độ chính xác vài dm tới 1m, vì các phép đo code này là
rõ ràng nhưng còn chứa độ trễ nhóm gây bởi thiết bị (máy thu + vệ tinh), để
thu được TEC tuyệt đối (1) thì cần phải xác định độ trễ nhóm vi phân của
máy thu và vệ tinh. Nếu chỉ sử dụng phép đo pha hai tần số (2) thường cho
độ chính xác tốt hơn, chỉ khoảng mm nhưng còn chứa tham số mù mờ pha
ban đầu [1, 11]. Bản thân vấn đề về lời giải các tham số mù mờ pha ban dầu
cũng là cả một lĩnh vực nghiên cứu lớn, thường dựa vào các giả thiết có tính
chất thống kê. Để xác định được chính xác các thông số này cũng là những
vấn đề phức tạp và khó khăn. Vì vậy phương pháp (1) chỉ sử dụng các phép
đo khoảng giả thường được sử dụng và được khuyên nên dùng để tính giá trị
tuyệt đối TEC.
Do độ trễ nhóm vẫn còn chứa độ trễ thiết bị, để thu được TEC thì các
độ trễ này phải được loại bỏ. Trong hầu hết các trường hợp, các độ trễ thiết
bị phải được tính đến, nếu bỏ qua độ trễ này sẽ gây ra một sai số tương đối
lớn trong phép đo TEC (1ns=2.853 TECU). Độ trễ của vệ tinh được thông
báo hàng ngày và có thể download từ trang web:
còn độ trễ máy thu ta phải tự tính
toán. Cũng có một vài phương pháp tính độ trễ máy thu đươc công bố bởi
các tác giả khác nhau khi ứng dụng để xử lý cho các trạm thu trong vùng
nghiên cứu, và cho một số trường hợp cụ thể [ 2, 3, 4, 5, 6, 13]. Trong
phương pháp tính TEC của chúng tôi sẽ giới thiệu ở đây, chúng tôi sử dụng
phương pháp hiệu khoảng giả (1) cùng với những ưu nhược điểm như đã
được nêu ra. Để tính độ trễ thiết bị, chúng tôi tiến hành tính độ lệch giữa giá
trị TEC tính toán theo công thức (1) trong trường hợp chưa hiệu chỉnh độ trễ
thiết bị (b
k
+ b
i
= 0) và giá trị TEC tương ứng tính được từ mô hình toàn

cầu cho tất cả các vệ tinh nhìn thấy. Do giá trị TEC suy ra từ mô hình với
khoảng thời gian 15 phút một giá trị vì vậy các giá trị TEC mô hình tương
ứng với khoảng thời gian 1 phút sẽ được nội suy để so sánh với các giá trị
TEC tính toán. Các cặp giá trị độ lệch được tính cho tất cả các cặp máy thu -
vệ tinh (mỗi trạm thu sẽ có 32 cặp giá trị tương ứng với 32 vệ tinh) và cho
tất cả các phút trong ngày quan sát. Các cặp giá trị độ lệch tương ứng của
ngày sẽ là các giá trị median ngày của tất cả các phút tính được. Do đó các
cặp giá trị độ trễ thiết bị (vệ tinh + máy thu) sẽ là các giá trị median tháng độ
lệch của tất cả các ngày trong tháng, và các cặp giá trị này sẽ được sử dụng
để tính TEC tuyệt đối cho mỗi cặp (vệ tinh+máy thu) và cho cả tháng. Để
kiểm tra độ trễ gây bởi máy thu, ta có thể tính giá trị độ trễ median tháng của
mỗi vệ tinh, sau đó lấy giá trị độ trễ thiết bị tổng tính được trừ đi giá trị này.
Vì số liệu GPS chỉ cung cấp các phép đo TEC nghiêng dọc theo
đường đi của tia sáng truyền từ vệ tinh tới máy thu. Do đó cần phải có một
phép chuyển đổi TEC nghiêng về TEC thẳng đứng (TECV) tại điểm cắt dưới
tầng điện ly. Để chuyển TECV từ TEC nghiêng thì tầng điện ly được cho là
một lớp mỏng bao quanh Trái Đất và tâm của nó trùng với tâm của Trái đất
như được mô phỏng bởi mô hình lớp đơn ở chiều cao H thường được lấy là
350, 400 hoặc 450 km, tương ứng xấp xỉ với độ cao của cực đại mật độ điện
tử.

H ình 1, Mô hình lớp đơn tầng
điện ly
trong đó: z là khoảng cách thiên đỉnh của vị trí máy thu và z

là khoảng cách
thiên đỉnh của vệ tinh tại điểm cắt tầng điện ly, R

6371km là bán kính Trái
đất và H là độ cao lớp đơn.

Yếu tố nghiêng tại độ cao H được xác định như là nghich đảo cosin góc
thiên đỉnh tại điểm cắt dưới tầng điện ly như sau:
z
zF


cos
1
)( với


















cosarcsinsinarcsin
HR
R

z
HR
R
z (10)
Với  là góc ngẩng của vệ tinh tại vị trí máy thu. Như vậy TECV tương ứng
chính là TEC nghiêng được chuyển đổi bằng cách chia cho yếu tố nghiêng:

,
cos zTECTECV  (11)
TECV đã tính toán được biểu diễn theo một hàm của vĩ độ và thời gian địa
phương của điểm cắt tầng điện ly. Trong khuôn khổ để tài này, tất cả các giá
trị TEC đã tính toán đều được chuyển về TECV để biểu diễn cho giá trị TEC
tính toán được. Một vài kết quả tính toán thử nghiệm theo phương pháp này
sẽ được trình bày trong phần sau của đề tài.

Nội dung chương trình tính toán TEC

Toàn bộ chương trình tính được viết bằng ngôn ngữ Matlab gồm 22
trang, được chia thành hai bước chạy chính tương ứng với 2 chương trình
lớn và một file đường dẫn. Với các bước thực hiện được chỉ ra như trong sơ
đồ khối sau:

Bias_tot.m Verif.m



Step 1 Step 2




Sgps Lech
_alm
Entete Sp3 Icord Sgps Lech_i
onex
TEC_
ionex
Bias_res


Quant,
Bissec
Parorb Lec_obv iposit isupi
on
Quant,
Bissec
Spline,
Split

Trước tiên chạy chương trình có tên ‘Bias_tot.m’, chương trình này là
một function lớn gồm 16 chương trình con và được chia làm 2 bước:
Bước thứ nhất có tên là step 1, có nhiệm vụ tính toán các giá trị TEC
cho trường hợp chưa hiệu chỉnh độ trễ thiết bị (bias (vệ tinh + máy thu) = 0)
cho các cặp vệ tinh-máy thu và cho cả tháng số liệu, với các file số liệu đầu
vào là: RINEX (file số liệu quan sát), yuma ( file cung cấp thông tin vệ tinh),
codg (file số liệu mô hình TEC toàn cầu và độ trễ thiết bị). Các kết quả tính
được ghi ra file đầu ra tương ứng cho tất cả các ngày quan sát trong tháng
với các thông số như: thời gian (s), tên vệ tinh, vĩ độ điểm cắt tầng điện ly
(độ), kinh độ diểm cắt tầng điện ly (độ), TEC nghiêng (TECU) và góc ngẩng
của vệ tinh (độ). Trong step 1 có chứa 10 chương trình con có chức năng xử
lý khác nhau:

1, Sgps: chương trình chuyển đổi ngày, tháng, năm quan sát sang
tuần, ngày GPS.
2, Quant, Bissec: chương trình đổi ngày, tháng, năm quan sát sang
ngày GPS và tính cho các trường hợp năm nhận hay không nhuận.
3, Lec_alm: chương trình này cung cấp các thông tin liên quan đến
tình trạng vệ tinh từ file yuma như: số vệ tinh đang hoạt động, góc nghiêng
của quỹ đạo so với mặt phẳng xích đạo của vệ tinh tại thời điểm quan sát, độ
trễ đồng hồ vệ tinh…
4, Parorb: chương trình cung cấp thông tin về các tham số quỹ đạo
liên quan đến mỗi vệ tinh với các thông số đầu vào thu được từ chương trình
lec_alm.
5, Entete: chương trình đọc các thông số đầu vào từ file số liệu quan
sát RINEX như: toạ độ trạm trong hệ toạ độ XYZ, khoảng thời gian quan
sát, số lượng các đại lượng quan sát được, và các giá trị tương ứng.
6, Sp3: chương trình chuyển toạ độ trạm quan sát: từ hệ toạ độ XYZ
sang hệ toạ độ cầu (lat, long, h) theo radian và mét.
7, Icord: chương trình cung cấp vị trí vệ tinh và toạ độ điểm cắt tầng
điện ly. Với các thông số đầu vào là: vĩ độ, kinh độ, độ cao trạm thu và thời
gian quan sát. Thông số lối ra là: vĩ độ, kinh độ điểm cắt tầng điện ly, yếu tố
nghiêng, góc ngẩng và góc phương vị của vệ tinh.
8, Isupiono: chương trình tính toạ độ biểm cắt tầng điện ly, với thông
số đầu vào là: kinh độ và vĩ độ trạm quan sát, góc ngẩng và góc azimuth của
vệ tinh.
9, Iposit: chương trình tính vị trí vệ tinh, với thông số đầu vào là vị trí
trạm quan sát và đầu ra là: độ cao, kinh độ, vĩ độ của vệ tinh, khoảng cách từ
trạm thu tới vệ tinh, góc ngẩng và góc azimuth.
10, Lec_obs_1: chương trình xử lý file số liệu quan sát và tính các giá
trị TEC nghiêng theo công thức (1) với độ trễ thiết bị chưa hiệu chỉnh
(b
k

=0, b
i
=0).
Bước thứ hai có tên là step 2, có nhiệm vụ tính toán các độ lệch giữa
giá trị TEC tính được trong bước 1 và giá trị TEC của mô hình, sau đó tính
các giá trị median ngày và tháng để thu được độ trễ thiết bị cho các cặp (vệ
tinh-máy thu) tương ứng và ghi ra file đầu ra thứ hai chứa thông tin về độ trễ
thiết bị. Trong step 2 có chứa 6 chương trình con có chức năng xử lý khác
nhau:
1, Sgps: chương trình chuyển đổi ngày, tháng, năm quan sát sang
tuần, ngày GPS.
2, Quant, Bissec: chương trình đổi ngày, tháng, năm quan sát sang
ngày GPS và tính cho các trường hợp năm nhận hay không nhuận.
3, Lect_ionex: chương trình rút ra bản đồ TEC khu vực từ mô hình
toàn cầu cho trạm quan sát.
4, TEC_ionex: chương trình tính các giá trị TEC mô hình tương ứng
với kinh độ, vĩ độ trạm quan sát, nội suy chuỗi số liệu cho tất cả các phút
trong ngày.
5, Spline, Splint: là các hàm nội suy.
6, Biais_res: chương trình tính median độ trễ thiết bị cho n ngày xử lý
với đầu vào là file độ trễ median ngày.
Cuối cùng chạy chương trình có tên verify.m, với các file số liệu đầu
vào là file kết quả đầu ra (gồm file về thông tin TEC và thông tin độ trễ thiết
bị) ở chương trình 1. Chương trình này có nhiệm vụ tính giá trị TECV tuyệt
đối khi đã có thông tin về độ trễ thiết bị và vẽ giá trị TECV tính được theo
chuỗi thời gian để kiểm tra.

Kết quả tính toán thử nghiệm

Kết quả tính toán áp dụng bộ chương trình này được biểu diễn trên hình 1 và

hình 2 với các giá trị TECV tính được cho 2 tháng tương ứng là: 5/2006 và
tháng 3/2007 cho cả 3 trạm thu GPS ở Hà Nội, Huế và Hóc Môn.











Hình 1: Biến thiên TECV trong tháng 5/2006 trên cả 3 trạm thu GPS ở Hà
Nội, Huế và Hóc Môn với góc ngẩng của vệ tinh > 20
0
.




Hình 2 Biến thiên TECV trong tháng 3/2007 trên cả 3 trạm thu GPS ở Hà
Nội, Huế và Hóc Môn với góc ngẩng của vệ tinh > 20
0
.
Kết quả tính độ trễ thiết bị tương ứng được sử dụng để hiệu chỉnh tính giá trị
TECV tuyệt đối được trình bày trong bảng 1.
Bảng 1: Độ trễ thiết bị tại trạm Hà nội, Huế và Hóc môn cho các tháng
5/2006 và 3/2007.
PRN


Hà Nội (TECU) Huế (TECU) Hóc Môn (TECU)
5/2006 3/2007

5/2006 3/2007

5/2006 3/2007
1 -49.92 -50.53

18.19 17.55

-6.95 -8.73
2 -26.18 -26.50

42.78 44.88

16.24 19.77
3 -50.04 -48.77

18.87 19.11

-5.71 -6.74
4 -49.80 -47.96

18.57 20.29

-8.10 -6.23
5 -45.33 -51.99

25.05 19.26


-3.72 -1.06
6 -50.76 -51.91

18.33 22.34

-5.85 -4.17
7 -53.38 -53.63

16.51 21.96

-8.67 -5.29
8 -50.00 -49.50

18.79 19.75

-7.67 -6.88
9 -49.39 -50.32

21.48 22.35

-2.36 -1.68
10 -46.89 -47.64

19.72 22.59

-6.19 -0.51
11 -38.81 -38.39

30.87 31.66


3.62 4.03
12 0.00 -43.09

0.00 30.16

0.00 8.02
13 -43.67 -43.14

26.42 27.26

-0.24 -0.97
14 -38.71 -41.90

29.67 26.73

4.98 0.65
15 -48.16 0.00

20.69 0.00

-3.52 0.00
16 -39.46 -38.33

29.31 29.63

5.23 4.47
17 -44.17 -41.78

24.80 28.74


-2.08 2.88
18 -36.76 -37.77

30.80 30.74

6.99 10.17
19 -27.59 -26.27

42.89 43.27

16.71 16.85
20 -42.72 -44.90

27.33 27.40

-2.29 -1.83
21 -33.51 -34.70

33.14 34.44

10.85 13.45
22 -24.05 -26.10

42.37 41.30

20.00 20.06
23 -21.32 -19.70

48.71 50.75


22.18 22.69
24 -54.78 -55.39

13.13 15.21

-13.33 -7.42
25 -46.29 -45.79

22.20 22.57

-1.35 -3.46
26 -49.52 -48.92

17.41 22.62

-4.00 -1.34
27 -49.29 -48.56

19.28 20.17

-6.08 -6.08
28 -38.29 -36.88

30.48 32.24

3.76 5.57
29 -47.23 -44.49

20.27 27.51


-2.30 1.59
30 -49.69 -50.84

22.95 17.57

-2.13 -2.07
31 0.00 -38.31

0.00 30.38

0.00 7.15
32 0.00 0.00

0.00 0.00

0.00 0.00

Để kiểm tra độ trễ gây bởi máy thu, chúng tôi tiến hành tính giá trị
median tháng cho mỗi vệ tinh, sau đó lấy giá trị median tháng của độ trễ
thiết bị trừ đi 32 giá trị median tháng của vệ tinh tương ứng, kết quả là
chúng ta sẽ thu được 32 giá trị độ trễ máy thu tương ứng với các vệ tinh nhìn
thấy. Một số kết quả tính thử nghiệm cũng được chỉ ra trong bảng 2

Bảng 2: Độ trễ máy thu tại các trạm Hà nội, Huế và Hóc môn của tháng
5/2006 và 3/2007
PRN Hà Nội (TECU) Huế (TECU) Hóc Môn (TECU)
5/2006 3/2007

5/2006 3/2007


5/2006 3/2007

1 -44.29 -44.37

23.82 23.71

-1.32 -2.57

2 -37.07 -36.78

31.89 34.60

5.35 9.49

3 -45.43 -43.64

23.48 24.24

-1.10 -1.61

4 -47.48 -44.91

20.89 23.34

-5.78 -3.18

5 -40.77 -46.36

29.61 24.89


0.84 4.57

6 -46.72 -47.39

22.37 26.86

-1.81 0.35

7 -45.92 -45.65

23.97 29.94

-1.21 2.69

8 -44.76 -43.59

24.03 25.66

-2.43 -0.97

9 -46.32 -46.66

24.55 26.01

0.71 1.98

10 -40.07 -40.16

26.54 30.07


0.63 6.97

11 -43.29 -42.39

26.39 27.66

-0.86 0.03

12 0.00 -46.81

0.00 26.44

0.00 4.30

13 -47.54 -46.48

22.55 23.92

-4.11 -4.31

14 -40.19 -42.87

28.19 25.76

3.50 -0.32

15 -41.49 7.19

27.36 7.19


3.15 7.19

16 -41.44 -39.75

27.33 28.21

3.25 3.05

17 -46.05 -44.10

22.92 26.42

-3.96 0.56

18 -39.60 -40.42

27.96 28.09

4.15 7.52

19 -35.07 -33.31

35.41 36.23

9.23 9.81

20 -41.02 -42.28

29.03 30.02


-0.59 0.79

21 -38.00 -38.68

28.65 30.46

6.36 9.47

22 -36.02 -37.59

30.40 29.81

8.03 8.57

23 -37.29 -35.06

32.74 35.39

6.21 7.33

24 -46.58 -46.56

21.33 24.04

-5.13 1.41

25 -44.81 -44.51

23.68 23.85


0.13 -2.18

26 -47.45 -46.32

19.48 25.22

-1.93 1.26

27 -44.89 -43.51

23.68 25.22

-1.68 -1.03

28 -40.81 -38.87

27.96 30.25

1.24 3.58

29 -45.61 -42.36

21.89 29.64

-0.68 3.72

30 -49.79 -50.33

22.85 18.08


-2.23 -1.56

31 0.00 -44.05

0.00 24.64

0.00 1.41

32 0.00 0.00

0.00 0.00

0.00 0.00


Nhận xét và kiến nghị
Từ những kết quả tính toán thử nghiệm trên có thể rút ra một số nhận
xét như sau:
+ Phương pháp tính TEC nêu trên là tương đối phù hợp và ổn định
cho chuỗi thời gian 1 tháng thử nghiệm (5/2006 và 3/2007) trên cả 3 trạm
thu GPS ở Việt Nam.
+ Độ trễ thiết bị tính toán được theo phương pháp này không thay đổi
nhiều theo thời gian nhưng cần thiết phải được tính toán để hiệu chỉnh giá trị
TEC cho từng khoảng thời gian riêng mà ở đây được lấy là từng tháng một.
Do phương pháp xác định độ trễ thiết bị là dựa vào sự khác nhau giữa
giá trị TEC của mô hình và TEC quan sát, vì vậy việc lấy giá trị median độ
lệch cho cả tháng về ý nghĩa sẽ phản ánh đứng hơn tính địa phương của giá
trị TEC quan sát.
Ý tưởng của phương pháp xác định độ trễ thiết bị bằng cách kết hợp

độ trễ và tính riêng cho từng cặp máy thu và vệ tinh là có tính mới so với các
phương pháp trước đây thường tách riêng hai giá trị này và lấy chung giá trị
độ lệch cho mỗi trạm thu. Vì vậy các cặp giá trị độ trễ thiết bị cũng như là
độ lệch máy thu tách riêng chỉ có ý nghĩa tham khảo và chỉ áp dụng để hiệu
chỉnh tính TEC theo phương pháp này.
Trên đây mới chỉ là hai ví dụ tính toán thử nghiệm ban đầu của
phương pháp. Để kiểm định được tính ổn định của phương pháp và để thu
được kết quả tốt thì chương trình tính cần tiếp tục được hoàn thiện thêm và
áp dụng tính toán với nhiều chuỗi số liệu, ở nhiều trạm và nhiều điều kiện
địa phương khác nhau.

Tài liệu tham khảo
[1] Breed A. M. and Goodwin G.L.,: Total electron content measurements
in the southern hemisphere using GPS satellites,1991 to 1995, Radio
Science, Vol.33 (N.6), 1705-1726, 1998.
[2] Komjathy A., Sparks L., Wilson B. D. and Mannucci A.J.,:
Automated daily processing of more than 1000 ground-based GPS receivers
for studying intense ionospheric storms, Radio Science, vol. 40, 2005.
[3] Guanyi M. and Takashi M.,: Derivation of TEC and Estimation of
Instrumental Biases from Geonet in Japan, Journal of the Communications
Research Laboratory, Vol. 49 (4), 10/2002.
[4] Hernandez – Pajares M., Juan J.M. and Sanz J.,: High resolution
TEC monitoring method using permanent ground GPS receivers,
Geophysical reseachletters, Vol. 24(13), 1643-1646, 7/1997.
[5] Lê Huy Minh, A. Bourdillon, R. Fleury, P. Lasudrie-Duchensne,
Nguyễn Chiến Thắng, Trần Thị Lan, Trần Ngọc Nam, Hoàng Thái Lan,
‘Xác định hàm lượng điện tử tổng cộng tầng điện ly ở Việt Nam qua số liệu
các trạm thu tín hiệu vệ tinh GPS’, Tạp chí Địa Chất. Vol. 296, N2, 54-62,
2006.
[6] Lê Huy Minh, Nguyễn Chiến Thắng, Trần Thị Lan, R. Fleury, P.

Lasudrie-Duchensne, A. Bourdillon, C. Amory-Mazaudier, Trần Ngọc
Nam, Hoàng Thái Lan, ‘Ảnh hưởng của bão từ tới nồng độ điện tử tổng
cộng vùng dị thường điện ly xích đạo Đông Nam Á quan sát được từ số liệu
GPS’, Tạp chí các khoa học về Trái đất. Vol. 29, N2, 104-112, 2007.
[7] Orus R., Hernandez-Pajares, Juan M.J., Sanz J., and Garcia-
Fernandez,: Ferformance of different TEC models to provide GPS
ionospheric corrections, Journal of Atmospheric and Solar-Terrestrial
Physics, 64, 205-2062, 2002.
[8] Otsuka Y., Ogawa T., Saito A.,Tsugawa T., Fukao S. and Miyazaki
S.,: A new technique for mapping of total electron content using GPS
network in Japan, Earth Planet Space, Vol. 54, 63-70, 2002.
[9] Rene Warnant and Eric Pottiaux,: The increase of the ionospheric
activity as meansured by GPS, Earth Planets space, Vol. 52, 1055-1060,
2000.
[10] Rama Rao, P. V. S., Gopi Krishna, S., Niranjan, and Prasad, D. S.
V. V. D.: Temporal and spatial variations in TEC using simultaneous
measurements from the Indian GPS network of receivers during the low
solar activity period of 2004-2005, Ann. Geophys., 24, 3279-3292, 2006.
[11] Schaer, S., Ph. D. thesis "Mapping and Predicting the Earth's
Ionosphere using the Global Positioning System" , 1999.
[12] Vladimer J.A., Jastrzebski P., Lee M.C., Doherty P.H., Decker
D.T., and Anderson D.N.: Longitude structure of ionospheric total electron
content at low latitudes measured by the TOPEX/POSEIDON satellite,
Radio Science, 34 (5), 1239-1260, 1999.
[13] William Rideout, and Anthea Coster,: Automated GPS processing for
global total electron content data, GPS Solut., Doi 10.1007, 2006.


Hà Nội, ngày 31 tháng 12 năm 2008
Người viết báo cáo









ThS Trần Thị Lan






Phụ Lục

1) chuong trinh tinh TEC va do tre thiet bi

function biais_tot
% chuong trinh tinh TEC chua hieu chinh do lech may thu va ve tinh
%cho 1 thang so lieu
% voi file duong dan: b_entree_lan.txt
% 7/2008
clear all;
clc;

step_1 % dong thu 17
step_2 % dong thu 730
return


%

function step_1
% xu ly so lieu GPS
%
% file loi vao : file Rinex (cho 1 ngay)
% : file almanacs yuma (cho 1 ngay)
% : file do tre ve tinh (cho ca thang) : duoc gan bang khong
% : do tre may thu : duoc gan bang khong
% file loi ra : file ket qua.txt, cho ra cac thong so nhu: gio UT, ve tinh,vi do
% diem cat tang dien ly, kinh do diem cat tang dien ly, TEC nghieng, goc ngang

global ecce i0 omd ra om0 ome m0 af0 af1 toe toc crs cuc cus cic cis crc den idot af2

fid5=fopen('b_entree_lan.txt','r'); % mo file duong dan
line=fgetl(fid5); % ten chuong trinh
mpath=fgetl(fid5); % duong dan den file dau vao Rinex
apath=fgetl(fid5); % duong dan den file almanac yuma
ipath=fgetl(fid5); % duong dan den file codg (file so lieu mo hinh TEC toan cau)
spath=fgetl(fid5); % duong dan cho file ket qua
cgps=fgetl(fid5); % ten tram thu
[A]=fscanf(fid5,'%f%f',[2,2]); % doc thang, nam, ngay bat dat cua thang, ngay cuoi cung cua
thang can tinh
mois=A(1,1);
annee=A(2,1);
jour_deb=A(1,2);
jour_fin=A(2,2);
clear A
fclose (fid5); % dong file duong dan

fprintf('%s%4.0f%6.0f%s%3.0f%7.0f\n','mois/annee ',mois,annee,' jours : ',jour_deb,jour_fin)


%
% cac thong so co dinh dau vao
%
dr=pi/180.0;
f1=1.57542e09; f2=1.2276e09;
v_light=2.99792458e08;
ak=40.30;
fr1=f1*f1; fr2=f2*f2;
coef=fr1*fr2*1.0d-16/(fr2-fr1)/ak; % -9.5196
satrec=v_light*fr1/1.0e9/ak/1.0e16; % 1.8463de ns en tecu doi don vi ns sang don vi tecu

for jour=jour_deb:jour_fin % vong lap chay cho tung ngay


jd=jour; md=mois; iad=annee;
[iweek,cweek,jsem,icour]=sgps(jd,md,iad);
if cgps == '0000', cgps=num2str(iweek); end
b_rec=0.0; % gan gia tri ban dau bang 0 cho do tre may thu

if mois < 10
cm=strcat('0',num2str(mois));
elseif mois >= 10
cm=num2str(mois);
end
if annee < 2010
ca=strcat('0',num2str(annee-2000));
elseif annee >= 2010

ca=num2str(annee-2000);
end

bsat=zeros(32,1); % gan gia tri ban dau bang 0 cho toan bo do tre ve tinh (32 ve tinh)

%
% B. Xu ly file so lieu Yuma
%
jd=jour;
md=mois;
iad=annee;
[iweek,cweek,jsem,icour]=sgps(jd,md,iad);
cq=num2str(icour);
if(icour <=9 )
cq=strcat('00',cq);
elseif((icour >= 10) & (icour <= 99))
cq=strcat('0',cq);
end

yuma=[apath,cq,'.ALM','.txt'];
fprintf('%s %s \n','lecture almanach : ',yuma)
tabalm=lec_alm(yuma); % goi chuong trinh con tinh cho file yuma o dong 176
%
% C. Xu ly file so lieu loi vao Rinex
%
cq=num2str(icour);
if icour <= 9
cq=strcat('00',cq);
elseif (icour >= 10) & (icour <= 99)
cq=strcat('0',cq);

end
fichw=strcat(spath,cgps,cq,'0.txt'); % mo file ket qua
fidw=fopen(fichw,'wt');

nepoch=0;
fichent=strcat(cgps,cq,'0.',ca,'o'); % mo file dau vao
rin_obs=strcat(mpath,fichent);
fprintf('%s %s \n','traitement fichier : ',rin_obs)
fid5=fopen(rin_obs);
if fid5 ==-1
fprintf('%s\n',' fichier inexistant')
else

[xsta,ysta,zsta,ient,ir,inter] = entete(fid5); % goi chuong trinh con tinh toa do tram
possta=sp3(xsta,ysta,zsta);

for itou=1:99999
teco=zeros(32,1);
% goi chuong trinh con tinh ket qua TEC nghieng, line 559
[nepoch,tuw,jsat,teco,nsce,nll]=lec_obs_1(fid5,ient,ir,jsem,nepoch,coef,bsat,b_rec);
if nll ==1, break; end

for j=1:nsce
isat=jsat(j);
if teco(isat) > -100 % kiem tra cac gia tri TEC "co the"
rien=parorb(tabalm,isat); % dong 234
% tinh toa do diem cat va goc ngang
[sublat,sublon,obve,satele]=icord(possta(1),possta(2),possta(3),tuw); % dong 339
time= tuw-jsem*86400;
if time==0, time=86400;end

% viet ra file ket qua

fprintf(fidw,'%10.3f%5.0f%10.3f%10.3f%10.3f%10.3f\n',time,isat,sublat,sublon,teco(isat),satele);
end
end


end
% ket thuc chuong trinh xu ly
fclose (fid5);
end % ket thuc file loi vao Rinex
fclose (fidw);
fprintf('%s%8.0f%s%6.0f\n',' fin normale avec ',nepoch,' epoques pour le jour ',jour)
fprintf('%s\n',' ')
end % ket thuc cho ngay
return

%

function tabephe=lec_alm(yuma)
% Truong trinh xu ly file yuma cho biet thong tin ve cac ve tinh
% dau vao : file dau vao yuma
% dau ra : file loi ra la cac thong so lien quan cua ve tinh
fide=fopen(yuma);
tabephe=zeros(10,32);
comsat=0;
line=0;
for nsv=1:32;
%while line ~=-1
line=fgetl(fide);

line=fgetl(fide); %1
if(line ==-1), break; end;
svprn=str2num(line(29:30));
line=fgetl(fide); %2
health=str2num(line(29:31));
line=fgetl(fide); %3
eccen=str2num(line(27:45));
tabephe(1,svprn)=eccen;
line=fgetl(fide); %4
toa=str2num(line(28:38));
tabephe(2,svprn)=toa;
line=fgetl(fide); %5
incli=str2num(line(28:40));
tabephe(3,svprn)=incli;
line=fgetl(fide); %6
rra=str2num(line(27:45));
tabephe(4,svprn)=rra;
line=fgetl(fide); %7
rayon=str2num(line(28:39));
tabephe(5,svprn)=rayon;
line=fgetl(fide); %8
raw=str2num(line(27:45));
tabephe(6,svprn)=raw;
line=fgetl(fide); %9
perigee=str2num(line(27:39));
tabephe(7,svprn)=perigee;
line=fgetl(fide); %10
anomaly=str2num(line(27:45));
tabephe(8,svprn)=anomaly;
line=fgetl(fide); %11

af0=str2num(line(27:45));
tabephe(9,svprn)=af0;
line=fgetl(fide); %12
af1=str2num(line(27:45));
tabephe(10,svprn)=af1;
line=fgetl(fide); %13
week=str2num(line(27:32));
blanc=fread(fide,1,'char');
blanc=fread(fide,1,'char');
comsat=comsat+1;
end; % ket thuc chuong trinh doc thong tin cua 32 ve tinh
fclose(fide);
return

%

function rien = parorb(tabalm,isat)
% cac tham so quy dao cua ve tinh
% dau ra : cac tham so chung cho chuong trinh
global ecce i0 omd ra om0 ome m0 af0 af1 toe toc crs cuc cus cic cis crc den idot af2
ecce=tabalm(01,isat);
xtoa=tabalm(02,isat);
i0=tabalm(03,isat);
omd=tabalm(04,isat);
ra=tabalm(05,isat);
om0=tabalm(06,isat);
ome=tabalm(07,isat);
m0=tabalm(08,isat);
af0=tabalm(09,isat);
af1=tabalm(10,isat);

toe=xtoa;
toc=xtoa;
crs=0.0; cuc=0.0; cus=0.0;
cic=0.0; cis=0.0; crc=0.0;
den=0.0;
idot=0.0;
af2=0.0;
rien=ecce;
return

%

function [xx,yy,zz,ient,ir,inter] = entete(fid5)
% ham doc cac thong so tu file so lieu dau vao Rinex
il=0;
c20='1111111111111';
inter=30;

while strcmp((c20(01:13)), 'END OF HEADER')==0
line = fgetl(fid5);
il=il+1;
longueur=length(line);
c60=line(1:60);
c20=line(61:longueur);
c20=strcat(c20,'11111111111111');

if(c20(1:11)=='MARKER NAME')
% doc ten tram
marker=c60(1:20);


elseif(c20(1:11)=='APPROX POSI')
% toa do tram trong he toa do carter
xx=str2num(c60(01:14)); yy=str2num(c60(15:28)); zz=str2num(c60(29:42));
possta=sp3(xx,yy,zz);
slat=possta(1); slon=possta(2); salt=possta(3);

elseif(c20(5:18)=='TYPES OF OBSER')
% cac thong so quan sat duoc
ient=str2num(c60(01:06));
cp(1,:)=c60(07:12); cp(2,:)=c60(13:18); cp(3,:)=c60(19:24);
cp(4,:)=c60(25:30); cp(5,:)=c60(31:36); cp(6,:)=c60(37:42);
cp(7,:)=c60(43:48); cp(8,:)=c60(49:54); cp(9,:)=c60(55:60);
% 1=L1, 2=L2, 3=P1, 4=P2, 5=C1
% 6=D1, 7=D2 , 8=S1, 9=S2
for i=1:ient
if(cp(i,:)==' L1'), ir(1)=i; break; end
end
for i=1:ient
if(cp(i,:)==' L2'), ir(2)=i; break; end
end
for i=1:ient
if(cp(i,:)==' P1'), ir(3)=i; break; end
end
for i=1:ient
if(cp(i,:)==' P2'), ir(4)=i; break; end
end
for i=1:ient
if(cp(i,:)==' C1'), ir(5)=i; break; end
end
for i=1:ient

if(cp(i,:)==' D1'), ir(6)=i; break; end
end
for i=1:ient
if(cp(i,:)==' D2'), ir(7)=i; break; end
end
for i=1:ient
if(cp(i,:)==' S1'), ir(8)=i; break; end
end
for i=1:ient
if(cp(i,:)==' S2'), ir(9)=i; break; end
end

if(ir(3)==0) ir(3)=ir(5); end

elseif(c20(1:08)=='INTERVAL')
inter=str2num(c60(01:06));

elseif(c20(1:13)=='TIME OF FIRST')
% doc thong so thoi giam (nam - thang - ngay - gio - phut - giay)
ian=str2num(c60(05:06));
imois=str2num(c60(07:12));
ijour=str2num(c60(13:18));
ihh=str2num(c60(19:24)); imn=str2num(c60(25:30)); isec=str2num(c60(31:42));
end

end
return

%


function [sublat,sublon,obve,satele]=icord(rlat,rlon,xhh,rtime)
% ham tinh toa do ve tinh va toa do diem cat tang dien ly
% et du facteur oblique/vertical
% dau vao : rlat = vi do tram theo rad (duoc tinh trong file entete.m)
% rlon = kinh do tram theo rad (duoc tinh trong file entete.m)
% xhh = do cao cua tram theo m (duoc tinh trong file entete.m)
% rtime = thoi gian ngay theo s (duoc tinh trong file lec_obs.m)
% dau ra : sublat = vi do diem cat tang dien ly theo do
% sublon = kinh do diem cat tang dien ly theo do

×