1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.

196 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.Nghiên cứu xác định dị thường độ cao trên cơ sở kết hợp các dữ liệu mặt đất và vệ tinh, áp dụng cho khu vực miền Trung Việt Nam.

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT NGUYỄN THÀNH LÊ NGHIÊN CỨU XÁC ĐỊNH DỊ THƯỜNG ĐỘ CAO TRÊN CƠ SỞ KẾT HỢP CÁC DỮ LIỆU MẶT ĐẤT VÀ VỆ TINH, ÁP DỤNG CHO KHU VỰC MIỀN TRUNG VIỆT NAM LUẬN ÁN TIẾN SĨ KỸ THUẬT Hà Nội - 2023 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT NGUYỄN THÀNH LÊ NGHIÊN CỨU XÁC ĐỊNH DỊ THƯỜNG ĐỘ CAO TRÊN CƠ SỞ KẾT HỢP CÁC DỮ LIỆU MẶT ĐẤT VÀ VỆ TINH, ÁP DỤNG CHO KHU VỰC MIỀN TRUNG VIỆT NAM LUẬN ÁN TIẾN SĨ KỸ THUẬT Ngành: Kỹ thuật Trắc địa- đồ Mã số: 9.520503 Người hướng dẫn khoa học PGS.TS Nguyễn Văn Sáng GS.TS Bùi Tiến Diệu Hà Nội - 2023 LỜI CAM ĐOAN Tơi xin cam đoan cơng trình nghiên cứu khoa học độc lập riêng Các kết nghiên cứu luận án có sở tìm hiểu nghiên cứu tài liệu, phân tích cách trung thực, khách quan áp dụng điều kiện thực tiễn Việt Nam Các kết chưa công bố nghiên cứu khác Tác giả luận án Nguyễn Thành Lê MỤC LỤC LỜI CAM ĐOAN i MỤC LỤC ii DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT TIẾNG VIỆT VÀ TIẾNG ANH viii DANH MỤC CÁC BẢNG xi DANH MỤC CÁC HÌNH xii MỞ ĐẦU CHƯƠNG TỔNG QUAN VỀ NGHIÊN CỨU XÁC ĐỊNH DỊ THƯỜNG ĐỘ CAO Ở VIỆT NAM VÀ TRÊN THẾ GIỚI 1.1 Tổng quan nghiên cứu xác định dị thường độ cao giới 1.1.1 Xác định dị thường độ cao xây dựng mơ hình Quasigeoid Slovakia 1.1.2 Xác định dị thường độ cao mơ hình Geoid khu vực Châu Âu 1.1.3 Xác định dị thường độ cao xây dựng mơ hình Geoid Hoa Kỳ 1.1.4 Xác định dị thường độ cao xây dựng mô hình Geoid Canada 1.1.5 Xác định dị thường độ cao xây dựng mô hình Quasigeoid Ba Lan 1.1.6 Xác định dị thường độ cao xây dựng mô hình Quasigeoid Australia 10 1.1.7 Xác định dị thường độ cao xây dựng mơ hình New Zealand 11 1.1.8 Xác định mơ hình Geoid cho lãnh thổ Iran 11 1.2 Tổng quan nghiên cứu xác định dị thường độ cao Việt Nam 13 1.2.1 Thành lập hệ độ cao chuẩn thống cho lãnh thổ lãnh hải Việt Nam sở không sử dụng mặt nước biển trung bình 13 1.2.2 Xây dựng mô hình Geoid địa phương lãnh thổ Việt Nam 14 1.2.3 Xác định ảnh hưởng độ cao địa hình dị thường độ cao độ lệch dây dọi 15 1.2.4 Chính xác hóa dị thường độ cao EGM2008 dựa liệu GNSS-Thủy Chuẩn 15 1.2.5 Xây dựng mơ hình Quasigeoid quốc gia khởi đầu VIGAC2017 16 1.2.6 Nghiên cứu sử dụng liệu trọng lực Việt Nam hiệu chỉnh hệ số điều hịa mơ hình EGM2008 17 1.2.7 Nghiên cứu xây dựng mơ hình Geoid khu vực miền Trung nước ta sở số liệu quan trắc yếu tố nhiễu 18 1.2.8 Vấn đề nghiên cứu ứng dụng liệu trọng lực vệ tinh xác định dị thường độ cao xây dựng mơ hình Quasigeoid Việt Nam 19 1.3 Những vấn đề cần tiếp tục nghiên cứu 22 CHƯƠNG NGHIÊN CỨU PHƯƠNG PHÁP XÁC ĐỊNH DỊ THƯỜNG ĐỘ CAO TRÊN CƠ SỞ KẾT HỢP CÁC DỮ LIỆU MẶT ĐẤT VÀ VỆ TINH CHO KHU VỰC MIỀN TRUNG VIỆT NAM 24 2.1 Dị thường độ cao đại lượng liên quan 24 2.1.1 Telluroid 24 2.1.2 Quasigeoid 25 2.1.3 Độ cao chuẩn 25 2.1.4 Dị thường độ cao 25 2.1.5 Dị thường trọng lực 26 2.2 Các loại liệu sử dụng để xác định dị thường độ cao 28 2.2.1 Dữ liệu trọng lực vệ tinh CHAMP, GRACE GOCE 29 2.2.2 Dữ liệu mơ hình trọng trường Trái Đất 29 2.2.3 Dữ liệu địa hình 33 2.2.4 Dữ liệu trọng lực đo trực tiếp đất liền dự án đo cao vệ tinh biển 34 2.2.5 Dữ liệu dị thường độ cao GNSS-Thủy chuẩn 35 2.3 Nguyên tắc xử lý liệu từ nguồn khác 36 2.3.1 Tính đổi tính chuyển tọa độ 36 2.3.2 Tính chuyển liệu hệ triều 38 2.3.3 Thống sở toán học xử lý nguồn liệu kết hợp 39 2.4 Phát loại bỏ sai số thô liệu đo 41 2.4.1 Phát loại bỏ sai số thô liệu dị thường trọng lực 42 2.4.2 Phát loại bỏ sai số thô liệu dị thường độ cao điểm song trùng GNSSThủy chuẩn 42 2.5 Loại bỏ thành phần bước sóng dài từ mơ hình trọng trường Trái Đất liệu dị thường trọng lực liệu dị thường độ cao 43 2.5.1 Các mơ hình trọng trường Trái Đất 43 2.5.2 Đánh giá lựa chọn mơ hình trọng trường Trái Đất phù hợp với khu vực nghiên cứu…… 44 2.5.3 Giới thiệu mơ hình trọng trường Trái Đất EIGEN-6C4 46 2.5.4 Loại bỏ thành phần bước sóng dài từ mơ hình trọng trường Trái Đất liệu dị thường trọng lực 47 2.5.5 Loại bỏ thành phần bước sóng dài từ mơ hình trọng trường Trái Đất liệu dị thường độ cao 48 2.6 Loại bỏ ảnh hưởng địa hình liệu dị thường trọng lực liệu dị thường độ cao theo phương pháp RTM 48 2.6.1 Phương pháp RTM 48 2.6.2 Cơ sở lựa chọn dị thường RTM Việt Nam 49 2.6.3 Mơ hình địa hình phần dư RTM 50 2.6.4 Loại bỏ thành phần bước sóng ngắn bước sóng trung ảnh hưởng địa hình liệu dị thường trọng lực 52 2.6.5 Loại bỏ thành phần bước sóng ngắn bước sóng trung ảnh hưởng địa hình liệu dị thường độ cao GNSS-Thủy chuẩn 53 2.7 Tính phần dư dị thường độ cao từ dị thường phần dư trọng lực theo phương pháp Collocation bình phương nhỏ 53 2.7.1 Cơ sở phương pháp Collocation bình phương nhỏ 53 2.7.2 Xác định hiệp phương sai thực nghiệm 55 2.7.3 Xác định tham số hàm hiệp phương sai lý thuyết 56 2.7.4 Nội suy phần dư dị thường độ cao từ phần dư dị thường trọng lực theo phương pháp Collocation bình phương nhỏ 60 2.7.5 Nội suy phần dư dị thường độ cao từ phần dư dị thường độ cao trọng lực theo phương pháp Collocation bình phương nhỏ 63 2.7.6 Nội suy phần dư dị thường độ cao từ phần dư dị thường trọng lực dị thường độ cao GNSS-Thủy chuẩn theo phương pháp Collocation bình phương nhỏ 64 2.7.7 Nội suy phần dư dị thường độ cao từ phần dư dị thường độ cao trọng lực dị thường độ cao GNSS-Thủy chuẩn theo phương pháp Collocation bình phương nhỏ 66 2.8 Phục hồi thành phần bước sóng dài từ mơ hình trọng trường Trái Đất thành phần bước sóng trung, bước sóng ngắn ảnh hưởng địa hình vào kết tính phần dư dị thường độ cao 69 2.9 Đánh giá độ xác xác định dị thường độ cao sở kết hợp liệu 69 2.10 Xây dựng quy trình xác định dị thường độ cao sở kết hợp liệu cho khu vực miền Trung Việt Nam 71 2.10.1 Các bước xác định dị thường độ cao sở kết hợp liệu 71 2.10.2 Quy trình xác định dị thường độ cao sở kết hợp liệu cho khu vực miền Trung Việt Nam 75 2.11 Xây dựng module chương trình phục vụ việc xác định dị thường độ cao sở kết hợp liệu 76 2.11.1 Giới thiệu phần mềm GRAVSOFT Ver 2.97 76 2.11 Xây dựng module chương trình xác định phương sai mức sai số phương sai mức77 2.11.3 Xây dựng module chương trình xác định dị thường trọng lực dị thường độ cao từ hệ số hàm điều hòa cầu 79 2.11.4 Xây dựng module chương trình xác định ảnh hưởng địa hình theo phương pháp RTM……… 81 2.11.5 Xây dựng module chương trình xác định hiệp phương sai thực nghiệm 85 2.11.6 Xây dựng module chương trình xác định hàm hiệp phương sai lý thuyết 87 CHƯƠNG THỰC NGHIỆM XÁC ĐỊNH DỊ THƯỜNG ĐỘ CAO CHO KHU VỰC MIỀN TRUNG VIỆT NAM TRÊN CƠ SỞ KẾT HỢP CÁC DỮ LIỆU MẶT ĐẤT VÀ VỆ TINH 92 3.1 Khu vực thực nghiệm liệu sử dụng 92 3.1.1 Đặc điểm khu vực thực nghiệm 92 3.1.2 Dữ liệu sử dụng 93 3.2 Xác định dị thường độ cao sở kết hợp liệu mơ hình EIGEN-6C4 liệu GNSS-Thủy chuẩn (PA1) 102 3.2.1 Các bước thực 102 3.2.2 Thực nghiệm PA1 103 3.3 Xác định dị thường độ cao sở kết hợp liệu trọng lực, liệu mơ hình EIGEN6C4 liệu GNSS-Thủy chuẩn (PA2) 109 3.3.1 Các bước thực 109 3.3.2 Thực nghiệm PA2 110 3.4 Xác định dị thường độ cao sở kết hợp liệu trọng lực, liệu mơ hình EIGEN6C4, liệu địa hình liệu GNSS-Thủy chuẩn (PA3) 118 3.4.1 Tính ảnh hưởng địa hình theo phương pháp RTM 119 3.4.2 Thực nghiệm PA3 119 3.5 Tổng hợp kết phương án tính tốn thực nghiệm 128 KẾT LUẬN VÀ KIẾN NGHỊ 132 DANH MỤC CÁC BÀI BÁO, CƠNG TRÌNH KHOA HỌC ĐÃ CÔNG BỐ 134 TÀI LIỆU THAM KHẢO 135 PHỤ LỤC BẢNG TỔNG HỢP KẾT QUẢ TÍNH TỐN LOẠI BỎ ẢNH HƯỞNG BƯỚC SÓNG DÀI, BƯỚC SÓNG TRUNG VÀ BƯỚC SÓNG NGẮN CỦA DỮ LIỆU ĐO NHẰM PHÁT HIỆN SAI SỐ THÔ 142 PHỤ LỤC BẢNG MINH HỌA TỔNG HỢP DỊ THƯỜNG ĐỘ CAO GNSS-THỦY CHUẨN VÀ DỊ THƯỜNG ĐỘ CAO TƯƠNG ỨNG CỦA 04 MƠ HÌNH: EIGEN-6C4, SGG-UGM-1, GECO, EGM2008 VỚI DỮ LIỆU 131 ĐIỂM SONG TRÙNG 144 PHỤ LỤC KẾT QUẢ SO SÁNH GIỮA CÁC MODULE CHƯƠNG TRÌNH MÁY TÍNH MỚI VÀ CHƯƠNG TRÌNH TRONG BỘ GRAVSOFT 145 PHỤ LỤC MINH HỌA BỘ DỮ LIỆU DỊ THƯỜNG TRỌNG LỰC 150 PHỤ LỤC DỮ LIỆU ĐIỂM SONG TRÙNG GNSS-THỦY CHUẨN THAM GIA TÍNH 151 PHỤ LỤC DỮ LIỆU ĐIỂM SONG TRÙNG GNSS-THỦY CHUẨN ĐÁNH GIÁ KẾT QUẢ TÍNH 153 PHỤ LỤC QUY TRÌNH THỰC NGHIỆM PA1 154 PHỤ LỤC MINH HỌA TỔNG HỢP CÁC KẾT QUẢ TÍNH TỐN CỦA PHƯƠNG ÁN 155 PHỤ LỤC QUY TRÌNH THỰC NGHIỆM PA2 158 PHỤ LỤC 10 MINH HỌA TỔNG HỢP CÁC KẾT QUẢ TÍNH TỐN CỦA PHƯƠNG ÁN 159 PHỤ LỤC 11 MINH HỌA TỔNG HỢP CÁC KẾT QUẢ TÍNH TOÁN CỦA PHƯƠNG ÁN 162 PHỤ LỤC 12 MÃ CODE MINH HỌA MỘT SỐ MODULE CHƯƠNG TRÌNH TÍNH 166 DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT TIẾNG VIỆT VÀ TIẾNG ANH Từ viết tắt, ký hiệu AGQG2017 Tiếng Anh đầy đủ Dịch sang tiếng Việt Australian Gravimetric Quasigeoid 2017 Mơ hình Quasigeoid trọng lực Australia 2017 COVFIT Geodetic Boundary Value Bài tốn biên trị trắc địa Problem Canadian Gravimetric Geoid Mơ hình Geoid trọng lực Canada 2010 2010 Dự án vệ tinh nghiên cứu trọng trường Trái CHAllenging Minisatellite Đất tổ chức GFZ Cộng hòa Liên bang Payload Đức thực Fitting Covariance Functions Các hàm khớp đồng phương sai DDMs Digital Density Models DGV DSM DTE DTMs Degree Variance Digital Surface Model Direct Topographical Effect Digital Terrain Models DTU17GRA Technical University Denmark 17 Gravity DTU Technical Denmarks BVP CGG2010 CHAMP EDG EGG07 EGGP EGM EGM2008 EGMs EIGEN-6C4 EMPCOV University Các mơ hình số mật độ Phương sai mức Mơ hình số bề mặt Ảnh hưởng trực tiếp địa hình Các mơ hình số địa hình Mơ hình trọng trường Trái Đất biển toàn of cầu 17 trường Đại học Kỹ thuật Đan Mạch of Error Degree Variance The European Gravimetric Geoid Model 2007 Elastic Earth European Gravity and Geoid Project Earth Gravitational Model Earth Gravitational Model 2008 Earth Gravitational Models European Improved Gravity model of the Earth by New techniques Empirical Covariance Functions Elastic Earth Đại học Kỹ thuật Đan Mạch Sai số phương sai mức Mơ hình Geoid trọng lực Châu Âu năm 2007 Trái Đất đàn hồi Dự án trọng lực Geoid Châu Âu Mơ hình trọng trường Trái Đất Mơ hình trọng trường Trái Đất năm 2008 Các mơ hình trọng trường Trái Đất Mơ hình trọng lực Trái Đất cải tiến Cộng đồng Châu Âu kỹ thuật phiên 6C4 Hàm hiệp phương sai thực nghiệm Trái Đất đàn hồi PHỤ LỤC 12 MÃ CODE MINH HỌA MỘT SỐ MODULE CHƯƠNG TRÌNH TÍNH 11.1 Một số đoạn code chương trình xác định phương sai mức sai số phương sai mức class _HESO_L //Khai báo lớp Class để lưu hệ số điều hòa cầu: ( public class _HESO_M ( public string Line; public virtual void Nhap(string line) ( this.Line = line; )rrr public _HESO_M() ( )rrr )rrr public _HESO_M[] Heso_M; )rrr List Heso_L; _HESO_L heso_l; private void Degv_Load(object sender, EventArgs e) ( btn_fileEgm.TabIndex = 0; txtB_fileDgv.TabIndex = 1; txtB_fileEdg.TabIndex = 2; )rrr private void btn_fileEgm_Click(object sender, EventArgs e) ( dlg = new OpenFileDialog(); dlg.Title = "Chọn file mơ hình trọng trường tồn cầu EGM"; //tiêu đề hộp thoại dlg.Filter = "File gfc (*.gfc)|*.gfc"; //hiển thị đuôi file if (dlg.ShowDialog(this) == DialogResult.OK) ( //lấy tên file - đường dẫn file số liệu; filename_EGM = dlg.FileName; tenfile = dlg.FileName.Substring(dlg.FileName.LastIndexOf("\\") + 1); duongdan_file = dlg.FileName.Substring(0, dlg.FileName.LastIndexOf("\\")); egm2startInfor = dlg.FileName.Substring(0, dlg.FileName.Length); txtb_fileegm.Text = duongdan_file + "\\" + tenfile; )rrr )rrr void EGM_CS_Parallel(int i) ( string line_EGM = readAlllines[i].Replace('D', line_EGM.Replace('d', 'e'); line_EGM = line_EGM.Replace('E', 'e'); line_EGM = line_EGM.Substring(3, line_EGM.Length - 3); string[] split = line_EGM.Split(new Char[] StringSplitOptions.RemoveEmptyEntries); int L = Convert.ToInt32(split[0]); int M = Convert.ToInt32(split[1]); double C = Convert.ToDouble(split[2]); double S = Convert.ToDouble(split[3]); double Sigma_C = Convert.ToDouble(split[4]); double Sigma_S = Convert.ToDouble(split[5]); GeoCoef_C[nn] = C; GeoCoef_S[nn] = S; GeoCoef_CC[nn] = Sigma_C; GeoCoef_CS[nn] = Sigma_S; ( 'E'); ' ', line_EGM '\n' = )rrr, )rrr DateTime start, end, end1; private void Btn_Run_Click(object sender, EventArgs e) ( if (dlg.FilterIndex.ToString() == "1") ( var timer = new Stopwatch(); timer.Start(); string text; starttime = DateTime.Now; //Bắt đầu đếm thời gian tenfile = tenfile.Substring(0, tenfile.LastIndexOf(".")); // trừ đuôi file //Mở file định dạng *.gfc: sr = new StreamReader(dlg.FileName); bool ktra1 = false; int demline = 0; while (ktra1 == false) ( line = sr.ReadLine(); demline++; if (line != "" && line != " " && line != " " && line != null) ( string[] split = line.Split(new Char[] ( ' ', '\n' StringSplitOptions.RemoveEmptyEntries); )rrr, if (split[0] == "earth_gravity_constant") GM_EGM = Convert.ToDouble(split[1]); if (split[0] == "radius") a_EGM = Convert.ToDouble(split[1]); if (split[0] == "modelname") modelname = split[1]; if (split[0] == "tide_system") tide_system = split[1]; if (split[0] == "max_degree") Nmax_EGM = Convert.ToInt32(split[1]); if (split[0] == "end_of_head") ( ktra1 = true; numberline_endofhead = demline; )rrr )rrr )rrr //start = DateTime.Now; l_value = (Nmax_EGM + 1) * (Nmax_EGM + 2) / 2; GeoCoef_C = new double[l_value + 1]; GeoCoef_S = new double[l_value + 1]; GeoCoef_CC = new double[l_value + 1]; GeoCoef_CS = new double[l_value + 1]; degva = new double[Nmax_EGM + 1]; edegv = new double[Nmax_EGM + 1]; readAlllines = File.ReadAllLines(filename_EGM, Encoding.UTF8); //Lọc loại bỏ phần tử mảng (mảng string, số thứ tự phần tử lấy, tổng số phần từ lấy readAlllines = (new ArraySegment(readAlllines, numberline_endofhead, readAlllines.Length - numberline_endofhead)).ToArray(); //Sử dụng lớp Parallel để đọc lấy phần tử file liệu EGM Parallel.For(0, readAlllines.Length, new ParallelOptions MaxDegreeOfParallelism = (Environment.ProcessorCount / 2) * )rrr, i => ( int val = i; EGM_CS_Parallel(val); ( )rrr); //end = DateTime.Now; text = "Thoi gian doc file mo hinh: " + (end - start).ToString(); #endregion //Kết thúc đọc hệ số hàm điều hòa cầu // Subtracting The Zonal Reference Potential Field Coefficients: GeoCoef_C[(2 * (2 + 1)) / + 1] += j2; GeoCoef_C[(4 * (4 + 1)) / + 1] += j4; GeoCoef_C[(6 * (6 + 1)) / + 1] += j6; GeoCoef_C[(8 * (8 + 1)) / + 1] += j8; GeoCoef_C[(10 * (10 + 1)) / + 1] += j10; //As well as any gravity field model the normal potential can be represented as a spherical harmonic model plus the centrifugal potential //The spherical harmonic coefficients of the normal potential WGS84 are(in ICGEM - format): GeoCoef_C[(12 GeoCoef_C[(14 GeoCoef_C[(16 GeoCoef_C[(18 GeoCoef_C[(20 * * * * * (12 (14 (16 (18 (20 + + + + + 1)) 1)) 1)) 1)) 1)) / / / / / 2 2 + + + + + 1] 1] 1] 1] 1] += += += += += j12; j14; j16; j18; j20; for (int L = 2; L lưới Tham chiếu Pro_Hinfo(); lưới Tham chiếu //Gọi chương trình tính tốn xác định thơng tin đánh giá kết DTM_Ref.Latmin = fi0 + dfi / 2; DTM_Ref.Latmax = fi0 + nfi * dfi - dfi / 2; DTM_Ref.Lonmin = la0 + dla / 2; DTM_Ref.Lonmax = la0 + nla * dla - dla / 2; DTM_Ref.grid_Lat = dfi; DTM_Ref.grid_Lon = dla; DTM_Ref.nRow = immax; DTM_Ref.nColumn = jmmax; int iffi = (int)(Math.Round(Spatial_Resolution / (DTM_Detail.grid_Lat * idfi), 0)); //xác định số lần để độ phân giải mơ hình EGM sử dụng int ifla = (int)(Math.Round(Spatial_Resolution / (DTM_Detail.grid_Lon * idla), 0)); int iffi2 = iffi / 2; int ifla2 = ifla / 2; hc = new double[immax, jmmax]; //Khởi tạo mảng hc //Tính trị trung bình cho điểm độ cao lưới tham chiếu for (int i =1; i Data_Cal[i].result) resultmin = Data_Cal[i].result; if (resultmax < Data_Cal[i].result) resultmax = Data_Cal[i].result; )rrr ghifile1 = ghifile1 + string.Format("(0:f4)rrr", Data_Cal[i].result) + "\n"; //Hiển thị phần trăm kết tính phantramtinh = (int)(i * 100 / Data_Cal.Count + 1); lblStatus.Text = "Processing " + phantramtinh.ToString() + "%"; progressBar.Value = phantramtinh; )rrr Btn_Thoat.Focus(); )rrr //Kết thúc chương trình 11.4 Một số đoạn code chương trình xác định hiệp phương sai lý thuyết private void rdB_Zeta_Click(object sender, EventArgs e) ( myPane.YAxis.Title.Text = "Hiep phuong sai - Cov (m)"; Graph.Invalidate();// Force a redraw - Hiển thị lại Đồ thị )rrr private void rdB_Dg_Click(object sender, EventArgs e) ( myPane.YAxis.Title.Text = "Hiep phuong sai - Cov (mGal)"; Graph.Invalidate();// Force a redraw - Hiển thị lại Đồ thị )rrr private void rdB_Tudong_Click(object sender, EventArgs e) ( rdB_Thucong.Checked = false; txtB_N.ReadOnly = true; txtB_Varg.ReadOnly = true; txtB_ReRb.ReadOnly = true; txtB_AA.ReadOnly = true; txtB_AA.BackColor = Color.Cornsilk; txtB_ReRb.BackColor = Color.Cornsilk; txtB_Varg.BackColor = Color.Cornsilk; txtB_N.BackColor = Color.Cornsilk; )rrr private void rdB_Thucong_Click(object sender, EventArgs e) ( rdB_Tudong.Checked = false; txtB_N.ReadOnly = false; txtB_Varg.ReadOnly = false; txtB_ReRb.ReadOnly = false; txtB_AA.ReadOnly = false; txtB_N.BackColor = Color.White; txtB_Varg.BackColor = Color.White; txtB_ReRb.BackColor = Color.White; txtB_AA.BackColor = Color.White; )rrr #region THIẾT LẬP TRONG FORM LOAD: private void Covfitting_Load(object sender, EventArgs e) ( #region THÔNG TIN ĐỒ THỊ BIỂU DIỄN ĐỘ KHỚP ĐƯỜNG LÝ THUYẾT - THỰC NGHIỆM: myPane = Graph.GraphPane; // Khai báo sử dụng Graph loại GraphPane; myPane.Title.Text = "Kết khớp Lý thuyết - Thực nghiệm"; myPane.XAxis.Title.Text = "Khoang cach cau - Psi (Deg)"; myPane.YAxis.Title.Text = "Hiep phuong sai - Cov (mGal)"; // Định nghĩa hai danh sách để vẽ đồ thị RollingPointPairList list1 = new RollingPointPairList(100); // Khai bao số lượng điểm giá trị thực nghiệm RollingPointPairList list2 = new RollingPointPairList(100); // Khai bao số lượng điểm trị lý thuyết // Định nghĩa curve để vẽ đồ thị LineItem curve1 = myPane.AddCurve("Thực nghiệm", list1, Color.Blue, SymbolType.None); // Color màu Xanh, đặc trưng cho đường thực nghiệm LineItem curve2 = myPane.AddCurve("Lý thuyết", list2, Color.Red, SymbolType.None); // Color màu đỏ, đặc trưng cho đường lý thuyết Graph.AxisChange(); //xác định lại kích cỡ đồ thị #endregion txtB_NumberReapet.ReadOnly = true; txtB_table.ReadOnly = txtB_MeanAltitude.ReadOnly = true; txtB_Lat_Max.ReadOnly = true; txtB_Weight.ReadOnly = txtB_Lat_Min.ReadOnly = true; txtB_Lat_grid.ReadOnly = txtB_Long_Max.ReadOnly = true; txtB_Long_Min.ReadOnly = true; txtB_Long_grid.ReadOnly = txtB_AA.ReadOnly = true; txtB_N.ReadOnly = true; txtB_ReRb.ReadOnly = txtB_Varg.ReadOnly = true; txtB_ReRb.ReadOnly = true; //Thiết lập màu - bold cho kết txtB_AA.BackColor = Color.Cornsilk; txtB_AA.Font = new System.Drawing.Font("Microsoft Sans Serif", System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); txtB_AA.ForeColor = Color.Red; txtB_ReRb.BackColor = Color.Cornsilk; txtB_ReRb.Font = new System.Drawing.Font("Microsoft Sans Serif", System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); txtB_ReRb.ForeColor = Color.Red; txtB_Varg.BackColor = Color.Cornsilk; txtB_Varg.Font = new System.Drawing.Font("Microsoft Sans Serif", System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); txtB_Varg.ForeColor = Color.Red; txtB_N.BackColor = Color.Cornsilk; txtB_N.Font = new System.Drawing.Font("Microsoft Sans Serif", System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); txtB_N.ForeColor = Color.Red; true; true; true; true; true; 8.75F, 8.75F, 8.75F, 8.75F, rdB_Tudong.Checked = true; rdB_Dg.Checked = true; btn_Chonfile.TabIndex btn_filelog.TabIndex = 2; btn_Chonfile.Focus(); )rrr #endregion END FORM LOAD = 0; btn_ChonfileErrorDegree.TabIndex private void btn_Thoat_Click(object sender, EventArgs e) ( this.Close(); )rrr #region CHỌN FILE DỮ LIỆU COVT = 1; private void btn_Chonfile_Click(object sender, EventArgs e) ( bool ktra = true; double covt_psi, covt_var; psiMax = -1.0e10; psiMin = 1.0e10; varMax = -1.0e10; varMin = 1.0e10; //xác định kích thước trục cho phù hợp dlg = new OpenFileDialog(); dlg.Title = "Chon file thuc nghiem - File Emprical Covariance"; //tiêu đề hộp thoại dlg.Filter = "File covt (*.covt)|*.covt|All files (*.*)|*.*"; //hiển thị đuôi file if (dlg.ShowDialog(this) == DialogResult.OK) ( tenfile_thucnghiem = dlg.FileName.Substring(dlg.FileName.LastIndexOf("\\") + 1); tenfile_thucnghiem1 = tenfile_thucnghiem.Substring(0, tenfile_thucnghiem.LastIndexOf(".")); duongdan_thumuc_tinh = dlg.FileName.Substring(0, dlg.FileName.LastIndexOf("\\")); txtB_FileSL.Text = tenfile_thucnghiem; duongdanfile_covt = dlg.FileName.ToString(); #region Lấy giá trị VAR1 (VAR2) file: sr = new StreamReader(dlg.FileName); string line; line = sr.ReadLine(); split = line.Split(new Char[] ( ' StringSplitOptions.RemoveEmptyEntries); ', '\t', '\n' covt_psi = Convert.ToDouble(split[0]); covt_var = Convert.ToDouble(split[1]); Dothi = new List(); _DOTHI dothi1 = new _DOTHI(); dothi1 = new _DOTHI(); dothi1.PSI = covt_psi; dothi1.VAR_empcov = covt_var; Dothi.Add(dothi1); if (psiMax < covt_psi) psiMax = covt_psi; if (psiMin > covt_psi) psiMin = covt_psi; if (varMax < covt_var) varMax = covt_var; if (varMin > covt_var) varMin = covt_var; while (ktra == true) ( split = sr.ReadLine().Split(new Char[] ( ' ', '\t', '\n' )rrr, StringSplitOptions.RemoveEmptyEntries); covt_psi = Convert.ToDouble(split[0]); covt_var = Convert.ToDouble(split[1]); if (covt_psi > 0.0) ( dothi1 = new _DOTHI(); dothi1.PSI = covt_psi; dothi1.VAR_empcov = covt_var; Dothi.Add(dothi1); //Xác định giá trị max if (psiMax < covt_psi) if (psiMin > covt_psi) if (varMax < covt_var) if (varMin > covt_var) )rrr else ktra = false; - cho trục tọa độ psiMax = covt_psi; psiMin = covt_psi; varMax = covt_var; varMin = covt_var; )rrr sr.Close(); #endregion; // Định dạng cho trục X double XAxisStep = Math.Round((psiMax - psiMin) / 50, 2); )rrr, myPane.XAxis.Scale.Min = psiMin - XAxisStep; // myPane.XAxis.Scale.Max = psiMax + XAxisStep; // myPane.XAxis.Scale.MinorStep = XAxisStep; // Đơn vị chia nhỏ myPane.XAxis.Scale.MajorStep = XAxisStep * 10; // Đơn vị chia lớn // Định dạng cho trục Y double YAxisStep = Math.Round((varMax - varMin) / 50, 1); myPane.YAxis.Scale.Min = varMin - YAxisStep; myPane.YAxis.Scale.Max = varMax + YAxisStep; myPane.YAxis.Scale.MinorStep = YAxisStep; // Đơn vị chia nhỏ myPane.YAxis.Scale.MajorStep = YAxisStep * 10; // Đơn vị chia lớn )rrr )rrr #endregion #region CHỌN FILE LOG LƯU TRỮ THÔNG TIN CHUNG CỦA FILE COVT private void btn_filelog_Click(object sender, EventArgs e) ( dlg = new OpenFileDialog(); dlg.Title = "Chon file log - log file"; //tiêu đề hộp thoại dlg.Filter = "File log (*.log)|*.log|All files (*.*)|*.*"; //hiển thị đuôi file if (dlg.ShowDialog(this) == DialogResult.OK) ( tenfile_log = dlg.FileName.Substring(dlg.FileName.LastIndexOf("\\") + 1); duongdanfile_log = dlg.FileName.ToString(); txtB_filelog.Text = tenfile_log; string line; sr = new StreamReader(dlg.FileName); int Filelength = File.ReadAllLines(dlg.FileName).Length; for (int i = 0; i < Filelength; i++) ( line = sr.ReadLine(); string[] split; if (line != "" && line != null) ( split = line.Split(new Char[] ( ' ', '\t', '\n' )rrr, StringSplitOptions.RemoveEmptyEntries); if (split[0] == "Vi") ( txtB_Lat_Min.Text = split[2]; txtB_Lat_Max.Text = split[3]; )rrr if (split[0] == "Kinh") ( txtB_Long_Min.Text = split[2]; txtB_Long_Max.Text = split[3]; )rrr if (split[0] == "Kich") ( double Degrid = Math.Round(Convert.ToDouble(split[5])/60, 2); txtB_Lat_grid.Text = Degrid.ToString(); txtB_Long_grid.Text = Degrid.ToString(); )rrr if (split[0] == "So") ( txtB_table.Text = ((int)(Convert.ToDouble(split[4]) / 2)).ToString(); txtB_NumberReapet.Text = "10"; )rrr if (split[0] == "Do") ( int Hmean = (int)((Convert.ToDouble(split[6])) / 10) * 10 + 10; txtB_MeanAltitude.Text = Hmean.ToString(); )rrr if (split[0] == "Phuong") VAR1 = Convert.ToDouble(split[3]); )rrr )rrr sr.Close(); )rrr //VAR1 = Dothi[0].VAR_empcov; txtB_AA.Text = "1.0"; txtB_ReRb.Text = "-1.0"; if (rdB_Dg.Checked == false) txtB_Varg.Text = "400"; else txtB_Varg.Text = Math.Round(VAR1, 3).ToString(); )rrr #endregion END FILE LOG #region CHỌN FILE SAI SỐ PHƯƠNG SAI MỨC private void btn_ChonfileErrorDegree_Click(object sender, EventArgs e) ( dlg = new OpenFileDialog(); dlg.Title = "Chon file Sai so muc phuong sai - File Error Degree-Variance"; //tiêu đề hộp thoại dlg.Filter = "File edg (*.edg)|*.edg|All files (*.*)|*.*"; //hiển thị đuôi file string Line; string[] split; if (dlg.ShowDialog(this) == DialogResult.OK) ( tenfile_errorgegree = dlg.FileName.Substring(dlg.FileName.LastIndexOf("\\") + 1); duongdanfile_errordegree = dlg.FileName.ToString(); txtB_fileErrorDgree.Text = tenfile_errorgegree; sr = new StreamReader(dlg.FileName); EDG_Var = new ArrayList(); while (((Line = sr.ReadLine()) != null) && (Line != "")) ( split = Line.Split(new Char[] ( ' ', '\t', StringSplitOptions.RemoveEmptyEntries); for (int i1 = 0; i1 < split.Length; i1++) EDG_Var.Add(split[i1]); )rrr sr.Close(); '\n' )rrr, NMAX_EGM = EDG_Var.Count + 1; txtB_Weight.Text = "1.0"; txtB_NumberReapet.ReadOnly = false; txtB_table.ReadOnly = false; txtB_MeanAltitude.ReadOnly = false; txtB_Lat_Max.ReadOnly = false; txtB_Weight.ReadOnly = false; txtB_Lat_Min.ReadOnly = false; txtB_Lat_grid.ReadOnly = false; txtB_Long_Max.ReadOnly = false; txtB_Long_Min.ReadOnly = false; txtB_Long_grid.ReadOnly = false; if(rdB_Tudong.Checked == true) ( txtB_AA.ReadOnly = true; txtB_N.ReadOnly = true; txtB_ReRb.ReadOnly = true; txtB_Varg.ReadOnly = true; )rrr else ( txtB_AA.ReadOnly = false; txtB_N.ReadOnly = false; txtB_ReRb.ReadOnly = false; txtB_Varg.ReadOnly = false; )rrr Scale xScale = Graph.GraphPane.XAxis.Scale;// Gọi hàm xác định cỡ trục Graph.AxisChange(); //xác định lại kích cỡ đồ thị Graph.Invalidate(); // Force a redraw MessageBox.Show("LỰA CHỌN : \n - Số giá trị bảng?\n - Độ cao trung bình?\n - Phạm vi tính?\n\n -> Nhấn nút Tính", "Thơng báo", MessageBoxButtons.OK, MessageBoxIcon.Information); )rrr )rrr #endregion END ERROR DEGREE-VARIANCES

Ngày đăng: 26/05/2023, 20:31

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w