LỜI GIỚI THIỆU 4
Chương 1: TỔNG QUAN VỀ HỆ THỐNG GPS. 5
1.1 Giới thiệu về hệ thống GPS. 5
1.2 Thành phần cơ bản của hệ thông GPS. 5
1.2.1 Bộ phận người dùng.5
1.2.2 Bộ phận không gian.6
1.2.3 Bộ phận điều khiển.7
1.3 Thành phần tín hiệu GPS. 8
1.3.1 Tín hiệu GPS. 9
1.3.1.1 Thông điệp từ chuỗi dữ liệu 50bps. 11
1.3.1.2 Cấu trúc một thông diệp tín hiệu. 12
1.4 Cách thức làm việc của hệ thống GPS. 13
1.4.1 Hoạt động của GPS. 13
1.4.2 Ý tưởng định vị của hệ thống GPS. 14
1.4.3 Độ chính xác của hệ thống GPS. 15
1.4.4 Những nguồn lỗi ảnh hưởng đến tín hiệu GPS. 15
1.5 Chuẩn NMEA 17
1.5.1 Giới thiệu về chuẩn NMEA 17
1.5.2 Ghép nối phần Cứng theo chuẩn NMEA 18
1.5.3 Các đoạn mã theo chuẩn NMEA 20
1.5.4 Một số đoạn mã theo chuẩn NMEA để xác định vị trí. 24
1.5.4.1 Giải mã một số đoạn mã xác định vị trí. 25
Chương 2: Tổng quan về hệ thống GIS và kỹ thuật xây dựng bản đồ số. 28
2.1 Tổng quan về hệ thống GIS. 28
2.1.1 Giới thiệu về hệ thống GIS. 28
2.1.2 Cấu trúc dữ liệu trong GIS. 29
2.1.2.1 Dữ liệu kiểu không gian. 29
2.1.2.2 Dữ liệu kiểu phi không gian. 30
2.1.3 Mô hình dữ liệu trong GIS. 31
2.1.3.1 Mô hình dữ liệu kiểu RASTER 31
2.1.3.2 Mô hình dữ liệu kiểu VECTOR 32
2.2 Kỹ thuật xây dựng bản đồ số trên phần mềm Mapinfo.33
2.2.1 Cách đăng ký một bản đồ trên Mapinfo.33
2.2.1.1 Xác định các điểm khống chế.33
2.2.1.2 Thiết lập hệ tọa độ. 33
2.2.2 Cách số hóa bản đồ trên Mapinfo.34
Chương 3: Ngôn ngữ lập trình C#. 35
3.1 Ngôn ngữ C#. 35
3.1.1 Tổng quan về ngôn ngữ C#. 35
3.1.2 Mã chương trình. 36
.
47 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 4429 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Thiết bị gps và ứng dụng trên bản đồ số, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
nhìn thấy và do đó phạm vi tích luỹ dữ liệu từ tín hiệu vệ tinh. Có 5 trạm giám sát thụ động, toạ lạc ở Colorado Springs, Hawaii, đảo Ascencion, Diego Garcia và Kwajalein. Các trạm giám sát gởi dữ liệu thô về trạm MSC để xử lý.
Trạm MCS được toạ lạc ở Falcon Air Force Base, cách 12 dặm về phía đông của Colorado Springs, Colorado và được Mỹ quản lý. Trạm MCS nhận dữ liệu từ trạm giám sát trong thời gian 24 giờ/ngày và sử dụng thông tin này để xác định nếu các vệ tinh đang khoá hoặc lịch thiên văn thay đổi và để phát hiện thiết bi trục trặc. Thông tin về tàu thuỷ di chuyển và lịch thiên văn được tính toán từ tín hiệu giám sát và chuyển đến vệ tinh một lần hoặc hai lần/ngày.
Thông tin tính toán bởi trạm MCS, cùng với các mệnh lệnh duy trì thường xuyên được truyền bởi anten xoay trên mặt đất. Anten này toạ lạc tại đảo Ascencion, Diego Garcia và Kwajalein. Anten có đủ phương tiện để truyền đến vệ tinh theo đường liên kết sóng vô tuyến dải tần S.
Thêm vào đó chức năng chính của trạm MCS duy trì 24 giờ hệ thống bản tin điện tử với tình trạng và tin tức hệ thống sau cùng. Công dân liên lạc cho vấn đề này với The United States Coast Guard's (USCG) Navigation Center (NAVCEN).
Thành phần tín hiệu GPS
Mỗi vệ tinh GPS phát tín hiệu radio với tần số rất cao, bao gồm 2 tần số sóng mang được điều chế bởi 2 loại mã (mã C/A và mã P-code) và thông tin định vị. Hai sóng mang được phát ra với tần số 1,575.42MHz (sóng mang băng tần L1) và 1,227.60MHz( song mang băng tần L2). Tức là bước sóng xấp xỉ 19cm và 24.4cm.Việc sử dụng 2 loại sóng mang này cho phép sửa lỗi chính trong hệ thống GPS đó là sự trễ trong tầng khí quyền, điều này được giải thích rõ ràng hơn trong phần sửa lỗi hệ thống. Tất cả các vệ tinh GPS phát chung tần số sóng mang L1 và L2, Tuy nhiên mã điều chế thì khác nhau cho mỗi vệ tinh khác nhau.
Hai loại mã được dùng là mã C/A (Coarse/Acquisition) và mã P-code (precision code). Mỗi mã bao gồm một nhóm số nhị phân 0 và 1 gọi là các bit. Các mã thông thường được biết đến là mã PRN - Pseudo Random Noise(mã ồn giả ngẫu nhiên) gọi là như vậy vì chúng được tao ra một cách ngẫu nhiên và tín hiệu giống như các tín hiệu ồn, nhưng thực tế chúng được phát ra từ các giải thuật toán học. Hiện nay mã C/A chỉ được điều chế ở băng tần L1 còn mã P-code được được điều chế ở cả 2 băng tần L1 và L2. Việc điều chế này gọi là điều chế lưỡng pha vì pha của chúng dịch 180độ khi giá trị mã thay đổi từ 0 ->1 hay từ 1->0.
Mã C/A là 1 luồng bít nhị phân của 1023 số nhị phân và lặp lại bản thân chúng trong mỗi giây. Điều này có nghĩa là tốc độ chip của mã C/A là 1.023Mbps. Hay theo cách khác,chu kỳ của một bit xấp xỉ 1ms hay tương đương với 300m. Việc đo đạc sử dụng mã C/A là kém chính xác so với mã P-code nhưng nó ít phức tạp và được cung cấp cho tất cả người sử dụng.
Mã P-code là 1 một chuỗi dài các số nhị phân ,nó lặp lại bản thân nó sau 266 ngày. Nó cũng nhanh hơn 10 lần so với mã C/A( tốc độ là 10.23MBps). Nhân với thời gian lặp lại bản thân nó sau 266 ngày để cho ra tốc độ 10.23Mbps suy ra mã P-code là một luồng gồm 2.35x1014chip mã dài 266 ngày được chia ra 38 đoạn;mỗi đoạn là 1 tuần.32 đoạn được phân chia tới các vệ tinh khác nhau. Mỗi vệ tinh phát ra đoạn 1-tuần của mã P-code,chúng được khởi tạo vào nửa đêm nằm giữa thứ 7 và chủ nhật hàng tuần. 6 đoạn còn lại để dành riêng cho mục đích sử dụng khác. Mã P-code được thiết kế chủ yếu sử dụng cho mục đích quân sự. Nó được cung cấp cho người sử dụng vào ngày 31/1/1994. Ở thời điểm đó mã P-code được mã hóa bằng việc thêm vào nó 1 loại mã W-code. Và kết quả của việc thêm vào loại mã code này là mã Y-Code và nó có tốc độ chíp giống với mã P-code.
Hình 1.3 Mô hình tín hiệu GPS khí truyền
Tín hiệu GPS
Mỗi vệ tinh GPS truyền đồng thời 2 dải tần số là L1 và L2 (L1 là 1575,42MHz
, L2 là 1227,60MHz )
Sóng mang của tin hiệu L1 gồm 1 thành phần cùng pha và một thành phần vuông pha. Thành phần cùng pha là hai pha được điều chế bởi 1 luồng dữ liệu 50bps và một mã giả ngẫu nhiên được gọi là mã C/A bao gồm 1 chuỗi 1023 chip nối tiếp có chu ky là 1ms và 1 tốc độ xung nhip 1.023MHz.
Thành phần vuông pha cũng là hai pha được điều chế bởi 1 luồng dữ liệu 50bps nhưng có một sự khác nhau đó là thành phần vuông pha dùng mã giả ngẫu nhiên được gọi là P-Code, nó có xung nhịp là 10.23MHz và chu kỳ là 1 tuần.
Biểu thức toán học của sóng L1 là:
Trong đó
P1 là công suất của thành phần sóng mang cùng pha
PQ là công suất của thành phần sóng mang vuông pha
d(t) là sự điều chế dữ liệu 50bps
c(t) và p(t) tương ứng là những sóng mã C/A và mã giả ngẫu nhiên
L1 là tần số sóng mang
0 là độ dịch pha
Công suất sóng mang vuông pha PQ it hơn xấp xỉ 3db so với P1
Trái ngược với tín hiệu L1, tín hiệu L2 được điều chế với duy nhất dữ liệu 50bps và mã p-code
Biểu thức toán học của tín hiệu L2
Hình 1.4 cấu trúc thành phần cùng pha của L1
Dữ liệu 50bps được nhân với sóng mang rồi sau đó được mã hóa theo mã C/A và được truyền đi.
Hình 1.5 Cấu trúc thành phần vuông pha của tín hiệu L1
Dữ liệu 50bps được nhân với sóng mang rồi sau đó được mã hóa theo mã P-code và được truyền đi.
Hình 1.4 và hình 1.5 tương ứng trình bày cấu trúc của thành phần cùng pha và thành phần vuông của tín hiệu L1
1.3.1.1 Thông điệp từ chuỗi dữ liệu 50bps
Chuỗi dữ liệu 50bps chuyên trở thông điệp dẫn đường, nó bao gồm nhiều thông tin và không giới hạn. nó bao gồm những thông tin sau.
Dữ liệu vệ tinh Niêm giám. Mỗi vệ tinh truyền dữ liệu trong không gian được gọi là niêm giám. Nó cho phép người sử dụng tính toán vị trí của mọi vệ tinh trong chòm sao GPS tại bất ký thời điểm nào. Dữ liệu Niêm giám không đủ chính xác để xách dịnh vị trí nhưng có thể được cất giữa trong một thiết bi thu ở đâu đó, nó lưu lại trong vài tháng. Nó chủ yếu được dung để xác định vệ tinh rõ rang tại 1 vị trí bất kỳ
Dữ liệu vệ tinh thiên văn. Dữ liệu thiên văn cũng tương tự như dữ liệu Niêm giác nhưng nó cho phép xác định vị tri với độ chính xác cao hơn, để cần dược chuyển đổi sự trễ lan truyền trong việc ước lượng vị trí của người dùng.
Dữ liệu về thời gian. Chuỗi dữ liệu 50bps bao gồm sự đánh dẫu thời gian, được sử dụng để thiết lập thời gian truyền dẫn của những điểm trên tin hiệu GPS. Thông tin này cần xác định được độ chễ về thời gian lan truyền tín hiệu từ vệ tinh tới người sử dụng
Dữ liệu trễ do tầng điện ly.
Thông điệp về tình trạng của GPS
Cấu trúc một thông diệp tín hiệu
Thông tin trong thông điệp dẫn hướng có các cấu trúc khung cơ bản.
Hình 1.6 Khung dữ liệu của tín hiệu GPS
Một thông điệp đầy đủ gồm có 25 khung (frame), mỗi khung chứa 1500bit, mỗi 1 khung dữ liệu lại được chia làm các khung con 300bit. Mỗi khung con bao gồm 10 từ và mỗi từ là 30 bit. Như vậy với tốc độ truyền 50bps nó phải mất 6s để truyền 1 khung dư liệu con (subframe) và 30s để hoàn thành một khung dữ liệu (frame). Để truyền hoàn thành 25 khung thông điệp thì yêu cầu cần tới 750s .
Cách thức làm việc của hệ thống GPS
1.4.1 Hoạt động của GPS
Cơ bản, GPS sử dụng nguyên tắc hướng thẳng tương đối của hình học và lượng giác học. Mỗi vệ tinh liên tục phát và truyền dữ liệu trong quỹ đạo bay của nó cho tất cả các chòm sao vệ tinh cộng thêm dữ liệu đến kịp thời và thông tin khác. Do đó, mỗi thiết bị GPS nhận sẽ liên tục truy cập dữ liệu quỹ đạo chính xác từ vị trí của tất cả vệ tinh có thể tính toán bằng các vi mạch có trên tất cả các GPS nhận. Từ đó tín hiệu hoặc sóng vô tuyến di chuyển ở vận tốc hằng số (thường bằng vận tốc ánh sáng – C ), các thiết bị GPS thu có thể tính toán khoảng cách liên quan từ GPS đến các vệ tinh khác bằng cách máy thu GPS so sánh thời gian tín hiệu được phát đi từ vệ tinh với thời gian mà thiết bị GPS thu nhận được tín hiệu do các vệ tinh pháp. Độ sai lệch về thời gian cho biết máy thu GPS ở cách xa vệ tinh bao nhiêu bằng cách lấy khoảng thời gian sai lệch nhân với tốc độ của sống vô tuyến. Rồi với nhiều quãng cách đo được tới nhiều vệ tinh khác nhau các thiết bị GPS thu tín hiệu có thể tính được vị trí của thiết bị GPS.
Hình 1.7 Tính khoảng cách từ thiết bị GPS đến các vệ tinh
Tất cả máy thu GPS bắt buộc phải khoá được tín hiệu của ít nhất ba vệ tinh để có thể tính được vị trí hai chiều (kinh độ và vĩ độ) và để theo dõi được chuyển động. Nếu thiết bị thu tín hiệu GPS có thể khóa được tín hiệu của bốn hay nhiều hơn số vệ tinh trong tầm nhìn thì máy GPS có thể tính được vị trí theo ba chiều (kinh độ, vĩ độ và độ cao). Một khi vị trí người dùng đã tính được thì máy thu GPS có thể tính các thông tin khác, như tốc độ, hướng chuyển động, bám sát di chuyển, khoảng hành trình, quãng cách tới điểm đến, thời gian Mặt Trời mọc, lặn và nhiều thứ khác nữa.
Hình 1.8: Thông tin dữ liệu
Ý tưởng định vị của hệ thống GPS
Hình 1.9 Ý tưởng định vị của hệ thống GPS
Theo nguyên tắc thông thường thì để xác định vị trí của 1 vật nào đó ta cần xác định được khoảng cách của chúng tới các vật chuẩn khác, ví dụ như khi ta lạc đường , một người chỉ cho ta biết rằng anh đang cách Hà Nội 15Km, ta chỉ biết được là đang nằm đâu đó trong trên đường tròn bán kính 50Km quanh Hà nội, nếu 1 người khác bảo là ta cách Hải Phòng 50Km thì ta xác định được 2 vị trí bằng cách cho 2 đường tròn cắt nhau, và nếu 1 người khác lại cho ta biết rằng vị trí đó cách Bắc Ninh 10 Km thì ta sẽ xác định được chính xác vị trí của mình. GPS cũng sử dụng nguyên tắc đó để xác định vị trí, tuy nhiên trong không gian,3 mặt cầu cắt nhau cho ra 2 điểm, nếu sử dụng trái đất là mặt cầu thứ tư thì sẽ xác định được vị trí của mình. Tuy nhiên việc sử dụng như vậy sẽ bỏ qua cao độ vì vậy mà cần 4 vệ tinh để xác định được vị trí chính xác của bạn.
4 vệ tinh đó sẽ cho bạn biết khoảng cách của bạn đến nó bằng công thức quãng đường bằng thời gian sóng điện từ truyền nhân với vận tốc sóng truyền, mà vận tốc sóng truyền tính bằng vận tốc ánh sáng và thời gian truyền thì được mã hóa rồi gửi đến máy thu.
Độ chính xác của hệ thống GPS
Các máy thu GPS ngày nay cực kì chính xác, nhờ vào thiết kế nhiều kênh hoạt động song song của chúng. Các máy thu 12 kênh song song (của Garmin) nhanh chóng khoá vào các quả vệ tinh khi mới bật lên và chúng duy trì chắc chắn liên hệ này, thậm chí trong tán lá rậm rạp hoặc thành phố với các toà nhà cao tầng. Tình trạng nhất định của khí quyển và các nguồn gây sai số khác có thể ảnh hưởng tới độ chính xác của máy thu GPS. Các máy thu GPS có độ chính xác trung bình trong vòng 15 mét.
Các máy thu mới hơn với khả năng WAAS (Hệ Tăng Vùng Rộng, Wide Area Augmentation System) có thể tăng độ chính xác trung bình tới dưới 3 mét. Không cần thêm thiết bị hay mất phí để có được lợi điểm của WAAS. Người dùng cũng có thể có độ chính xác tốt hơn với GPS Vi sai (Differential GPS, DGPS) sửa lỗi các tín hiệu GPS để có độ chính xác trong khoảng 3 đến 5 mét. Cục Phòng vệ Bờ biển Mỹ vận hành dịch vụ sửa lỗi này. Hệ thống bao gồm một mạng các đài thu tín hiệu GPS và phát tín hiệu đã sửa lỗi bằng các máy phát hiệu. Để thu được tín hiệu đã sửa lỗi, người dùng phải có máy thu tín hiệu vi sai bao gồm cả ăn-ten để dùng với máy thu GPS của họ.
Những nguồn lỗi ảnh hưởng đến tín hiệu GPS
Hệ thống GPS đã được thiết kế để ngày càng chính xác, tuy nhiên trên thực tế vẫn còn có những lỗi. Những lỗi này có thể gây ra một sự lệch từ 50 -> 100m từ vị trí máy thu GPS trên thực tế. sau đây có một vài nguồn lỗi được bàn tới:
Điều kiện khí quyển
Cả tầng điện ly lẫn tầng đối lưu đều khúc xạ những tín hiệu GPS. Nó gây ra sự thay đổi về tốc độ của tín hiệu trong tầng điện ly và tầng đối lưu khác so với tốc độ tín hiệu GPS trong không gian. Bởi vì vậy, khoảng cách tính toán bằng “tốc độ x thời gian” sẽ khác nhau.
Lỗi do sự giao thoa tín hiệu GPS
Do sự phản xạ từ các vật cản làm cho tin hiệu GPS giao thoa với nhau làm cho các thiết bị thu GPS sẽ thu được tín hiệu lỗi.
Hình 1.10 Lỗi do giao thoa tin hiệu GPS
c) Lỗi do sự di chuyển của thiết bị GPS.
Do trong qua trình thu tín hiệu GPS các thiết bị GPS di chuyển sẽ xảy ra sai số cỡ khoảng 5 -> 15m. là do có độ trễ xảy ra trong qua trình truyền giữa vệ tinh và thiết bị GPS do vậy tuy theo tốc độ di chuyển của máy thu GPS mà sai số giữa vị trí nhận được và vị trí thực tế của máy thu GPS là bao nhiêu nhưng cỡ khoảng 5 -. 15 m.
Chuẩn NMEA
Giới thiệu về chuẩn NMEA
Hiệp hội điện tử biển quốc gia Mỹ (NMEA – The National Marine Electronics Association) đã xây dựng lên một chuẩn để định nghĩa chuẩn giao tiếp giữa các bộ phận khác nhau của thiết bị điện tử biển. Chuẩn này cho phép các thiết bị điện tử biển gửi thông tin về máy vi tinh, và tới một thiết bị biển khác.
Thiết bị truyền thông thu GPS cũng được định nghĩa theo chuẩn này. Hầu hết các chương trình máy vi tính được cung cấp để hiểu được thông tin vị trí hiện tại và nhận dữ liệu dưới dạng chuẩn NMEA. Dữ liệu này bao gồm toàn bộ PTV (vị trí, tốc độ và thời gian) bởi thiết bị thu GPS tính toán được. Ý tưởng của NMEA là sẽ gửi một gói dữ liệu gọi là một đoạn mã. Đoạn mã này hoàn toàn độc lập và riêng rẽ so với các đoạn mã khác. Có những đoạn mã chuẩn cho mỗi một thiết bị và cũng có khả năng định nghĩa những đoạn mã cho người dùng bởi các công ty riêng lẻ. Tất cả những đoạn mã chuẩn này phải có hai chữ cái thêm vào đầu để định nghĩa kiểu đoạn mã sử dụng, ví dụ thiết bị thu GPS thêm vào đâu là GP. Tiếp theo là ba chữ cái nối tiếp để định nghĩa nội dung đoạn mã. Thêm vào đó chuẩn NMEA cho phép những nhà sản xuất tự định nghĩa những đoạn mã sở hữu riêng cho mình nhằm bất kỳ mục đích nào mà thấy chúng thích hợp. Tất cả các đoạn mã được sở hữu đều bắt đầu với chữ cái P và tiếp theo là ba chữ cái để nhận biết nhà sản xuất tạo ra đoạn mã đó. Ví dụ một đoạn mã của Garmin sẽ bắt đầu với PGRM và Magellan sẽ bắt đầu với PMGN. Mỗi đoạn mã bắt đầu với một ký tự ‘$’ và kết thúc với một ký tự ‘$’ trên một hàng nối tiếp và không thể lớn hơn 80 ký tự. Dữ liệu được chứa đựng bên trên một hàng với những kiểu khác nhau được phân biệt bởi dấu phẩy. Dữ liệu của nó chỉ là dạng mã ASCII và có thể mở rộng qua nhiều đoạn mã khác nhau trong những thể hiện riêng nhưng bình thường thì hoàn toàn được chứa trong độ dài đoạn mã. Dữ liệu có thể thay đổi trong số lượng của thông báo chính xác chứa đựng bên trong, ví dụ: thời gian có thể tăng lên đến nhưng phần 10 của 1 giây hoặc vị trí có thể chỉ ra với 3 hoặc 4 số sau số thập phân. Những chương trình đọc dữ liệu sẽ sử dụng những dấu phẩy để xác định những ranh giới các lĩnh vực và không phụ thuộc vào vị trí cột. Có một sự chuẩn bị để kiểm tra tổng thể vào lúc cuối ở mỗi đoạn lệnh, mà cũng có thể hoặc có thể không được kiểm tra bởi tùy vào cách đọc dữ liệu. Tổng kiểm tra bao gồm một ký tự ‘*’ và hai số hex đại diện 1 phép OR 8 bit của tất cả những ký tự giữa, nhưng không bao gồm, ký tự ‘$’ và ‘*’. Kiểm tra được yêu cầu trên một vài đoạn mã.
So với những chuẩn cũ, chuẩn hiện nay đã có nhiều thay đổi. Nhưng với GPS mức thay đổi chỉ là 1,5 và 2.0 hoặc 2,3. Những thay đổi này chỉ chỉ ra một vài mô hình đoạn mã khác nhau nhưng vẫn khớp với những thiết bị mà nó đang tương tác. Một số GPS có thể cung cấp khả năng định dạng cấu hình một Nhiều thiết bị thu GPS đơn giản chỉ xuất một chuỗi đoạn mã cố định. Người sử dụng không thể thay đổi những mẫu đoạn mã này. Phiên bản hiện nay là tiêu chuẩn 3.0.1.
Ghép nối phần Cứng theo chuẩn NMEA
Giao diện phần cứng (hardware interface) của các GPS được thiết kế nhằm đáp ứng yêu cầu theo chuẩn NMEA. Chúng cũng tương thích với hầu hết cổng nối tiếp của máy tính, sử dụng giao thức RS232, tuy nhiên nghiêm túc mà nói, tiêu chuẩn NMEA không phải là RS232. Chúng chỉ giống EIA-422. Tốc độ kết nối có thể điều chỉnh theo một số mẫu nhưng theo tiêu chuẩn NMEA là 4800 bit/giây với 8 bít dữ liệu, không bít chẵn lẻ và có 1 bít dừng (bit stop). Tất cả các đơn vị hỗ trợ NMEA thì cũng sẽ hỗ trợ tộc độ kết nối này. Nên nhớ rằng, với tốc độ 4800 bit/giây, bạn có thể dễ dàng gửi đủ dữ liệu trước khi hết 2 giây.
Chính vì lý do này, một số đơn vị chỉ gửi thông tin cập nhập trong 2 giây một lần hoặc chuyển dữ liệu mỗi giây một lần trong khi vẫn bảo đảm dữ liệu khác cũng sẽ được gửi đi trong thời gian đó. Thêm vào đó, một số đơn vị có thể gửi dữ liệu trong vài giây khi những đơn vị khác gửi dữ liệu đã thu thập chính trong giây phút nó được gửi. Nói chung thời gian truyền đi trong từng trường chỉ trong vài giây, do vậy khá dễ dàng để chỉ ra GPS nào đang hoạt động. Một số đoạn mã có thể được gửi đi chỉ trong một khoảng thời gian đặc biệt của thiết bị thu như vậy trong khi một đường truyền mà các thiết bị gửi khác luôn gửi các đoạn mã và chỉ vô hiệu hóa ở ngoài những giá trị. Sự khác nhau sẽ được chú ý trong phần miêu tả kiểu dữ liệu riêng biệt được định nghĩa ở phần sau.
Với tốc độ 4800 bit/ giây, bạn có thể gửi 480 ký tự trong một giây. Khi một đoạn mã NMEA bao gồm 82 ký tự, có thể rút thành 6 đoạn mã khác nhau. Trong thực tế hạn chế này tuỳ thuộc vào từng đoạn mã cụ thể. Tuy nhiên để từ đó thấy được rằng dễ dàng có thể vượt quá con số trên nếu bạn muốn đoạn mã trả lời nhanh. NMEA được thiết kế để hoạt động như một quá trình trong vai trò tạo các đoạn mã nền lối ra, và giữ đoạn mã lại khi cần thiết bằng chương trình. Một số chương trình không thể làm như vậy, tuy nhiên nhưng chúng sẽ lấy một dòng dữ liệu làm mẫu, sau đó sử dụng dữ liệu này để hiển thị trên màn hình và sau đó lại lấy mẫu dữ liệu
Tuỳ vào từng lượng thời gian cụ thể, có thể là 4 giây để chuyển dữ liệu. đối với một số ứng dụng, điều này có thể chấp nhận được, nhưng với nhiều ứng dụng khác lại không. Ví dụ một chiếc xe hơi di chuyển trong 1h thì một giây nó đi được quãng đường 88 feet. Chậm vài giây có thể khiến cho toàn bộ hệ thống không hoạt động và mất lượt.
Tiêu chuẩn NMEA đã được ứng dụng trong nhiều năm, từ năm 1983 và đã qua nhiều lần chỉnh sửa. Giao thức đã thay đổi và số lượng cũng như các loại đoạn mã có thể khác nhau tuỳ thuộc vào từng phiên bản chỉnh sửa. Hầu hết thiết bị thu GPS đều theo tiêu chuẩn 0138 phiên bản 2 với tốc độ truyền tải là 4800 bit/ giây. Một số thiết bị thu khác cũng theo những thông số của các phiên bản cũ hơn. Phiên bản lâu đời nhất là 0180, tiếp đó là 0182 với tốc độ truyền tải là 1200 bit/giây. Tiếp đó là 0183 gọi là phiên bản 1.5. Một số đơn vị Garmin và các loại khác có thể cài đặt lên tới 9600 hoặc thậm chí cao hơn cho thiết bị đầu ra của NMEA. Nhưng đó chỉ là tham khảo nếu bạn chắc chắn 4800 hoạt động tốt, bạn có thể thử cài với tốc độ nhanh hơn. Việc cài đặt để đạt tốc độ nhanh như mong muốn, đòi hỏi phải nâng cấp khả năng đáp ứng của chương trình.
Để sử dụng giao diện phần cứng, bạn cần một dây cáp. Thông thường dây cáp này khác so với mô hình phần cứng vì vậy bạn sẽ cần một dây cáp riêng biệt cho các sản phẩm và khối mô hình bạn sử dụng. Một số máy tính mới nhất không sản xuất kèm theo cổng tiếp nối ngoại trừ một cổng USB. Hầu hết những thiết bị thu GPS sẽ làm việc với cổng nối tiếp từ bộ chuyển đổi USB và cổng nối tiếp được gắn thông qua PC-Card chuyển đổi. Thí dụ NMEA thông thường sử dụng với một thiết bị thu nhận GPS bạn sẽ chỉ cần 2 dây trong cáp truyền, dữ liệu ra từ GPS và đất.
Dây thứ 3, đầu vào dữ liệu, sẽ phải dùng đến nếu muốn thiết bị thu cho phép dữ liệu đi vào dây cáp đó để tải một điểm hoặc gửi dữ liệu DGPS tới thiết bị thu.
Thiết bị thu GPS có thể sử dụng để giao tiêp với thiết bị theo chuẩn NMEA khác như máy lái tự động hoặc những thết bị thu GPS khác. Chúng có thể cảm nhận những thiết bị nhận tín hiệu riêng biệt, những thiết bị này có khả năng gửi dữ liệu sử dụng tiêu chuẩn RTCM SC-104. Dữ liệu này phù hợp với những yêu cầu phần cứng theo yêu cầu của dữ liệu lối vào theo chuẩn NMEA. Không có đường bắt tay giành riêng định nghĩa cho chuẩn NMEA.
Các đoạn mã theo chuẩn NMEA
NMEA bao gồm nhiều đoạn mã, từ đầu tiên trong đoạn mã gọi là loại dữ liệu, định hướng cách hiểu cho toàn bộ đoạn mã. Mỗi loại kiểu dữ liệu có một cách hiểu riêng và đã được quy định trong tiêu chuẩn NMEA. Đoạn mã GGA là ví dụ chứng minh dữ liệu cố định cần thiết. Những đoạn mã khác có thể lặp lại một vài thông tin mẫu giống nhau nhưng đều cung cấp cả dữ liệu mới. Bất kể thiết bị hay chương trình nào đọc dữ liệu đều có thể tìm kiếm đoạn mã dữ liệu mà nó cần và bỏ qua những đoạn mã khác mà nó không quan tâm. Theo chuẩn NMEA, không có lệnh nào chỉ quy định GPS nên thực hiện chức năng nào khác. Thay vào đó các thiết bị thu chỉ gửi toàn bộ dữ liệu và dự kiến nhiều dữ liệu trong số đó sẽ bị bỏ qua. Một số thiết bị thu đặt lệnh bên trong một đơn vị, quy định 1 khối có thể chọn lựa một lượng nhỏ trong số tất cả các đoạn mã hoặc, trong một số trường hợp, thậm chí các đoạn mã độc lập để gửi đi. Không có cách nào xác định điều ngược lại với nó như để xác định liệu đoạn mã có được đọc đúng hay không hay để yêu cầu gửi lại một số dữ liệu bạn không có. Thay vì nhận, đơn vị chỉ kiểm tra tổng dữ liệu được gửi đi và bỏ qua dữ liệu nếu kiểm tra tổng thể đưa ra con số sai lệch, dữ liệu sẽ được gửi lại lần sau.
Có nhiều đoạn mã theo tiêu chuẩn NMEA có thể áp dụng cho tất cả mọi loại thiết sử dụng được trong môi trường hải quân. Một vài trong số đó có thể dùng cho thiết bị thu tín hiệu GPS theo như bảng kê dưới đây:
AAM - Waypoint Arrival Alarm – cảnh báo những điểm mốc
ALM - Almanac data: dữ liệu niên lịch
APA - Auto Pilot A sentence: Tự động thí điểm đoạn mã A
APB - Auto Pilot B sentence : Đoạn mã B thí điểm tự động
BOD - Bearing Origin to Destination –
BWC - Bearing using Great Circle route
DTM - Datum being used.: dữ liệu đc sử dụng
GGA - Fix information: thông tin cố định
GLL - Lat/Lon data : dữ liệu Lat/ Lon
GRS - GPS Range Residuals: dãy số dư GPS
GSA - Overall Satellite data: dữ liệu vệ tinh tổng quát
GST - GPS Pseudorange Noise Statistics: thông kê tiếng ồn GPS Pseudorage
GSV - Detailed Satellite data : Dữ liệu vệ tinh chi tiết
MSK - send control for a beacon receiver
MSS - Beacon receiver status information.
RMA - recommended Loran data
RMB - recommended navigation data for gps
RMC - recommended minimum data for gps
RTE - route message
TRF - Transit Fix Data
STN - Multiple Data ID
VBW - dual Ground / Water Spped
VTG - Vector track an Speed over the Ground
WCV - Waypoint closure velocity (Velocity Made Good)
WPL - Waypoint Location information
XTC - cross track error
XTE - measured cross track error
ZTG - Zulu (UTC) time and time to go (to destination)
ZDA - Date and Time
Một vài thiết bị nhận GPS với chức năng đặc biệt sẽ đưa ra những thông báo đặc biệt sau đây:
HCHDG - Compass output:
PSLIB - Remote Control for a DGPS receiver:
Thêm vào đó, một số thiết bị nhận GPS có thể bắt chước các thiết bị nhận Loran-C bằng cách đưa ra tiền tố LC trong một số thông điệp của chúng, do vậy chúng có thể được sử dụng để tích hợp với thiết bị chấp nhận tiền tố này thay vì chấp nhận tiền tố GP.
Phiên bản mới 2.3 theo tiêu chuẩn NMEA có bổ sung thêm một indicator cho vài đoạn mã chỉ định loại fix mà thiết bị nhận hiện đang có. Indication này là một phần của thông tin tổng hợp tín hiệu do FAA. Giá trị có thể là A= tự trị, D= vi phân, E= dự tính N= không hiệu quả, S= simulator. Đôi khi có cả giá trị null nữa. Chỉ giá trị A và D phù hợp với đoạn mã reliable (chuẩn xác) và Active.Có thể bổ sung thêm các ký tự mode vào RMC, RMB, VTG và GLL, va cac cau BWC, XTE
nếu bạn đang ghép nối một GPS với một thiết bị khác, như chương trình máy tính, bạn phải chắc chắn rằng các thiết bị nhận đc tất cả các đoạn mã mà nó cần. nếu thiết bị cần một đoạn mã mà GPS của bạn không gửi tới thì phần ghép nối với thiết bị đó sẽ không thực hiện đc. Những đoạn mã này do thiết bị thu đặc biệt gửi tới, bao gồm:
Chuẩn NMEA 1.5
Một số đơn vị không hỗ trợ phiên bản 1.5. Unit Lowrance cung cấp khả năng tuỳ chỉnh (customize) đầu ra NMEA bằng các đoạn mã, vì vậy bạn có thể tự xây dựng cấu trúc đoạn mã riêng của mình.
Name Garmin Magellan Notes:
GPAPA N Y Automatic Pilot A
GPBOD Y N bearing origin to destination - earlier G-12's do not send this
GPBWC Y Y bearing to waypoint using great circle route.
GPGLL Y Y lat/lon - earlier G-12's do not send this
GPRMC Y N minimum recommend data
GPRMB Y N minimum recommended data when following a route
GPVTG Y Y vector track and speed over ground
GPWPL Y N waypoint data (only when active goto)
GPXTE Y Y cross track error
Chuẩn NMEA 2.0
Name Garmin Magellan Lowrance SiRF Notes:
GPAPB N Y Y N Auto Pilot B
GPBOD Y N N N bearing, origin to destination - earlier G-12's do not transmit this
GPGGA Y Y Y Y fix data
GPGLL Y Y Y Y Lat/Lon data - earlier G-12's do not transmit this
GPGSA Y Y Y Y overall satellite reception data, missing on some Garmin models
GPGSV Y Y Y Y detailed satellite data, missing on some Garmin models
GPRMB Y Y Y N minimum recommended data when following a route
GPRMC Y Y Y Y minimum recommended data
GPRTE Y U U N route data, only when there is an active route. (this is sometimes bidirectional)
GPWPL Y Y U N waypoint data, only when there is an active route (this is sometimes bidirectional)
Chuẩn NMEA 2.3
Đầu ra NMEA 2.3 từ Garmin Legend, Vista, và có thêm một số đầu ra khác có các đoạn mã BWC, VTG, và XTE.
đầu ra Encore Motorola là GGA, GLL, GSV, RMC, VTG, ZDA và đoạn mã thuộc sở hữu PMOTG.
Những đơn vị cơ bản dựa trên chipset có thể làm đầu ra: GGA, GLL, GSA, GSV, RMC, và VTG. Đầu ra thực sự là đầu ra đã đc chuơng trình ứng dụng hoặc người dùng chọn lựa. Để biết thêm chi tiết, xem dưới đây. Một số phiên bản đã nâng cấp khả năng của SiRF với nhiều đoạn mã khác nhau cũng như bằng hình thức thay đổi firmware. Ví dụ, thiết bị nhận u-blox bổ sung thêm ZDA và một số đoạn mã thuộc sở hữu và lập thành danh sách các đoạn mã.
Thiết bị thu Garmin sẽ gửi những đoạn mã thuộc sở hũu như sau:
• PGRME (estimated error) - not sent if set to 0183 1.5
• PGRMM (map datum)
• PGRMZ (altitude)
• PSLIB (beacon receiver control)
Nhớ rằng Garmin chuyển đổi LAT/LON và phối hợp với dữ liệu đã được chọn lựa khi gửi dữ liệu. Điều này được thể hiện trong đoạn mã thuộc sở hữu PGRMM. Nó cũng giúp các chương trình sử dụng đồ thị với dữ liệu khác nhưng không phải là chuẩn NMEA. Nên chắc chắn và lập dữ liệu WGS84 vào các đơn vị của Garmin khi giao tiếp với thiết bị theo chuẩn NMEA khác.
Một số đoạn mã theo chuẩn NMEA để xác định vị trí
Một số thiết bị cũng hỗ trợ chuẩn đầu vào NMEA. Mặc dù không có nhiều chương trình hỗ trợ theo chuẩn này nhưng nó cung cấp cách thức chuẩn này để cập nhật hoặc bổ sung điểm mốc và lộ trình dữ liệu. Lưu ý rằng, không có sự móc nối hay lệnh trong chuẩn NMEA do vậy bạn chỉ cần gửi dữ liệu vào những đoạn mã chính xác và đơn vị sẽ chấp nhận dữ liệu và bổ sung hoặc ghi đè thông tin trong bộ nhớ. nếu dữ liệu không được định dạng đúng, dữ liệu đó sẽ dễ bị bỏ qua. Trình tự trả về trên một dòng nối tiếp bắt buộc phải có. Ví dụ, nếu đoạn mã dữ liệu giống nhau, bạn sẽ ghi chồng lên dữ liệu đã có mà không được cảnh báo trước. Cấu trúc một đoạn mã cần phải giống với cấu trúc mà thiết bị tải xuống tải xuống
Vì vậy bạn có thể lưu giữ đoạn mã WPL từ một thiết bị và sau đó gửi đoạn mã mẫu này tới thiết bị khác, nhưng cần phải cẩn thận vì hai thiết bị phải hỗ trợ nhiều đoạn mã khác nhau với độ dài khác nhau khi thiết bị nhận có thể cắt xén những đoạn mã này và viết chồng lên một đoạn mã ngẫu nhiên. Nếu bạn muốn tạo ra một đoạn mã từ rất nhiều các đoạn mã khác nhau, bạn nên tạo một đoạn mã kiểm tra chính xác. Phải chắc chắn là bạn biết và đã từng đặt thiết bị vào dữ liệu chính xác. Nhiều thiết bị hỗ trợ đầu vào cho những đoạn mã kiểu WPL và một vài thiết bị cũng hỗ trợ RTE.
Trong đầu vào NMEA, thiết bị thu lưu trữ thông tin dựa sau khi đã hiểu bản thân đoạn mã đó. Tuy một số thiết bị thu nhận đầu vào theo chuẩn NMEA, đầu vào này chỉ có thể cập nhật một điểm đầu hoặc thực hiện các chức năng tương tự và không gửi lệnh tới thiết bị. Các đoạn mã thuộc đầu vào sở hũu có thể dùng để gửi lệnh. Vì giao thức Magellan upload và dowload dựa trên cấu trúc đoạn mã chuẩn NMEA, nó hỗ trợ thông báo WPL đã sửa đổi, những thông báo này có thể thêm lời dẫn giải, độ cao và dữ liệu dạng biểu tượng.
Một số thiết bị hàng hải có thể chấp nhận đầu vào cho các thông số như độ sâu hay nông của nước dựa vào những đoạn mã DPT hoặc MTW để tính ra nhiệt độ nước. Ví dụ, Bản đồ Garmin 76 hỗ trợ các đoạn mã đầu vào DPT, MTW (để đọc nhiệt độ), và VHW ( để đọc tốc độ). Những thiết bị khác có thể sử dụng đoạn mã đầu vào theo chuẩn NMEA để cung cấp dữ liệu khởi tạo qua các đoạn mã thuộc sở hữu hoặc chọn lựa đoạn mã NMEA chuẩn nào đó làm đầu ra.
Giải mã một số đoạn mã xác định vị trí
Những đoạn mã NMEA quan trọng nhất bao gồm GGA, RMC, GSA.
GGA cung cấp dữ liệu hiện thời.
RMC cung cấp những đoạn mã thông tin về thiết bị thu GPS một cách tối thiểu.
GSA cung cấp dữ liệu về tình trạng vệ tinh.
a) GGA – dữ liệu thiết yếu được cung cấp dưới dạng 3 chiều và chính xác cao.
$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47
Where:
GGA Global Positioning System Fix Data
123519 Fix taken at 12:35:19 UTC
4807.038,N Latitude 48 deg 07.038' N
01131.000,E Longitude 11 deg 31.000' E
1 Fix quality: 0 = invalid
1 = GPS fix (SPS)
2 = DGPS fix
3 = PPS fix
4 = Real Time Kinematic
5 = Float RTK
6 = estimated (dead reckoning) (2.3 feature)
7 = Manual input mode
8 = Simulation mode
08 Number of satellites being tracked
0.9 Horizontal dilution of position
545.4,M Altitude, Meters, above mean sea level
46.9,M Height of geoid (mean sea level) above WGS84
ellipsoid
(empty field) time in seconds since last DGPS update
(empty field) DGPS station ID number
*47 the checksum data, always begins with *
b) GSA
Đoạn mã này cung cấp thông tin chi tiết về một thông tin của thiên nhiên. $GPGSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39
Where:
GSA Satellite status
A Auto selection of 2D or 3D fix (M = manual)
3 3D fix - values include: 1 = no fix
2 = 2D fix
3 = 3D fix
04,05... PRNs of satellites used for fix (space for 12)
2.5 PDOP (dilution of precision)
1.3 Horizontal dilution of precision (HDOP)
2.1 Vertical dilution of precision (VDOP)
*39 the checksum data, always begins with *
d) GLL
Cung cấp thông tin về vị trí của các thiết bị thu GPS
S$GPGLL,4916.45,N,12311.12,W,225444,A,*31
Where:
GLL Geographic position, Latitude and Longitude
4916.46,N vĩ độ 49 deg. 16.45 min. bắc
12311.12,W kinh độ 123 deg. 11.12 min. tây
225444 lấy tại 22:54:44 UTC
A Data Active or V (void)
*31 checksum data
c) RMC
Cung cấp dữ liệu về vị trí, vận tốc, thời gian GPS- GPS PVT (position, velocity, time)
$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A
Where:
RMC Recommended Minimum sentence C
123519 Fix taken at 12:35:19 UTC
A Status A=active or V=Void.
4807.038,N Latitude 48 deg 07.038' N
01131.000,E Longitude 11 deg 31.000' E
022.4 Speed over the ground in knots
084.4 Track angle in degrees True
230394 Date - 23rd of March 1994
003.1,W Magnetic Variation
*6A The checksum data, always begins with *
Chương 2: Tổng quan về hệ thống GIS và kỹ thuật xây dựng bản đồ số
2.1 Tổng quan về hệ thống GIS
2.1.1 Giới thiệu về hệ thống GIS
GIS(GIS – Geographic Information System) là hệ thống thông tin địa lý, nó là một nhánh của công nghệ thông tin được hình thành và những năm 1960 và phát triển rộng rãi trong 10 năm trở lại đây. GIS có khả năng trợ giúp các cơ quan chính phủ, các nhà quản lý, các doanh nghiệp, các cá nhân … đánh giá được hiện trạng của quá trình, các thực thể tự nhiên, kinh tế - xã hội thông qua các chức năng thu thập quản lý, truy vấn, phân tích và tích hợp các thông tin được gắn với nền bản đồ trên cơ sở tọa độ của cơ sở dữ liệu đầu vào. Một hệ thông GIS gồm các thành phần: con người, phần cứng, phần mềm và cơ sở dữ liệu. Mục đích là chúng ta có thể số hóa các bản đồ giấy thành các bản đồ số có thể lưu trên máy tính. Tuy có rất nhiều phần mềm hỗ trợ để số hóa bản đồ từ một bản đồ giấy sang bản đồ số nhưng trong đề tài này tôi dùng phần mềm Mapinfo 8.0 để số hóa bản đồ.
GIS được hình thành từ các ngành khoa học: Địa lý, Bản đồ, Tin học và Toán học. Nguồn gốc của GIS là việc tạo các bản đô chuyên đề, các nhà quy hoạch sử dụng phương pháp chồng lắp bản đồ, kỹ thuật này còn được sử dụng trong việc tìm kiếm vị trí thích hợp cho các công trình được quy hoạch. Việc sử dụng máy tính trong vẽ bản đồ được bắt đầu vào cuối thập niên 50, đầu 60, từ đây khái niệm về GIS ra đời nhưng chỉ đến những năm 80 thì GIS mới có thể phát huy hết khả năng của nó do sự phát triển mạnh mẽ của công nghệ phần cứng.
Bắt đầu từ thập niên 80, GIS đã trở nên phổ biến trong các lĩnh vực thương mại, khoa học và quản lý, chúng có thể gặp nhiều cách định nghĩa về GIS:
Là một tập hợp của các phần cứng, phần mềm máy tính cùng với các thông tin địa lý. Tập hợp này được thiết kế để có thể thu thập, lưu trữ, cập nhập, thao tác, phân tích, thể hiện tất cả các hình thức thông tin mang tính không gian.
Cơ sở dữ liệu GIS là sự tổng hợp có cấu trúc các dữ liệu số hóa không gian và phi không gian về các đối tượng bản đồ, mối liên hệ giữa các đối tượng không gian và các tinh chất của một vùng của đối tượng
GIS được viết tắt của: G: Geographic – dữ liệu không gian thể hiện vị trí, hình dạng (điểm, đường, vùng) + I: Information – thông tin về thuộc tính, không thể hiện vị trí + S: System – Sự liên kết bên trong giữa các thành phần khác nhau (phần cứng, phần mềm).
Cấu trúc dữ liệu trong GIS
Dữ liệu của một hệ thống thông tin địa lý có thể chia thành hai dạng:
- Hình ảnh (không gian)
- Phi hình ảnh (thuộc tính)
2.1.2.1 Dữ liệu kiểu không gian
Số liệu hình ảnh hay còn gọi là dữ liệu không gian là sự mô tả bằng kỹ thuật số các phần tử bản đồ. GIS sử dụng dữ liệu hình ảnh để thể hiện bản đồ ra màn hình hay ra giấy.
Trong máy tính, dữ liệu không gian thường được thể hiện dưới các dạng sau:
- Điểm
- Đường
- Vùng
- Các điểm ảnh.
Hình 2.1 Mô hình dữ liệu không gian được biểu diễn trong máy tính
Các thành phần đồ họa trong cơ sở dữ liệu GIS thường được mô tả bằng nhiều lớp (layer), mỗi lớp chứa một nhóm đối tượng thuần nhất với vị trí của chúng theo hệ tọa độ chung của tất cả các lớp.
2.1.2.2 Dữ liệu kiểu phi không gian
Số liệu thuộc tính thể hiện các tính chất, số lượng, chất lượng hay mối quan hệ của các phần tử bản đồ và các vị trí địa lý. Chúng được lưu trữ dưới dạng số hay ký tự. Thông thường dữ liệu được quản lý dưới dạng bảng (table) bao gồm các cột và mỗi cột là các trường (field), mỗi hang là một mẩu tin. Để định nghĩa một trường phải có tên trường (field name) và kiểu dữ liệu của trường, kiểu dữ liệu có thể là : kiểu ký tự, kiểu số nguyên, kiểu số thực, kiểu logic…
Ví dụ:
Hình 2.2: Mô hình dữ liệu phi không gian
Mô hình dữ liệu trong GIS
Mô hình dữ liệu kiểu RASTER
Đây là hình thức đơn giản nhất để thể hiện dữ liệu không gian, mô hình Raster bao gồm một hệ thống ô vuông hoặc ô chữ nhật được gọi là pixel. Vị trí của mỗi pixel được xác định bởi số hang và số cột. Giá trị được gán vào pixel tượng trưng cho một thuộc tính mà nó thể hiện. Ví dụ một căn nhà được thể hiện bằng 1 pixel có giá trị là H, con sông được thể hiện bằng nhiều pixel có cùng giá trị là R, tương tự khu rừng cũng được thể hiện bằng một nhóm pixel có cùng giá trị là D.
Kích thước của pixel càng nhở thì hình ảnh nó thể hiện càng sắc nét, thông số thể hiện độ sắc nét gọi là độ tương phản. Ảnh có độ tương phản cao, thì độ sắc nét càng cao, kích thước pixel nhỏ. Tuy nhiên, hai ảnh Raster có cùng kích thước, nếu ảnh nào có độ tương phản cao thì file dữ liệu chứa nó sẽ lớn hơn. Ví dụ nếu 1 pixel thể hiện một diện tích là 250m X 250m mặt đất trên thực tế, thì để thể hiện một khoảng cách 1km ta cấn 4 pixel, để thể hiện một diện tích 1km x 1km ta cần 16 pixel. Khi ta giảm kích thước pixel xuống còn 100m X 100m, để thể hiện một khoảng cách 1km ta cần 10 pixel, để thể hiện một diện tích 1km X 1km ta cần 100 pixel. Vì kích thước của file dữ liệu liên quan tới số lượng pixel nên ta thấy rằng kích thước của file tăng lên đáng kể khi ta tăng độ tương phản của ảnh Raster.
Hình 2.3 Mô hình dữ liệu kiểu RASTER
Mô hình dữ liệu kiểu VECTOR
Mô hình dữ liệu vector thể hiện vị trí chính xác của vật thể hay hiện tượng trong không gian. Trong mô hình dữ liệu vector, người ta giả sử rằng hệ thống tọa độ là chính xác. Thực tế, mức độ chính xác bị giới hạn bởi số chữ số dùng để thể hiện một giá trị trong máy tính, tuy nhiên nó chính xác hơn nhiều so với mô hình dữ liệu Raster.
Vật thể trên trái đất được thể hiện trên bản đồ dựa trên hệ tọa độ hai chiều x,y, trên bản đồ vật thể có thể được thể hiện như là các điểm (point), đường (line) hay vùng (area). Mô hình dữ liệu vector cũng tương tự như vậy, một vật thể dạng điểm (point feature) được chứa dưới dạng cặp tọa độ (x, y). Một vật thể dạng dường (line feature) được chứa dưới dạng một chuỗi các cặp tọa độ (x,y). Một vật thể dạng vùng (area feature) dược chứa dưới dạng một chuỗi các cặp tọa độ (x,y) với cặp đầu tọa độ bằng với cặp tọa độ cuối, hay còn gọi là đa giác (polygon).
Hình 2.4 Mô hình dữ liệu kiểu VECTOR
Kỹ thuật xây dựng bản đồ số trên phần mềm Mapinfo.
2.2.1 Cách đăng ký một bản đồ trên Mapinfo.
Để đăng ký một bản đồ giấy vào Mapinof, trước hết bản đồ đó phải được chuyển thành ảnh trên máy tính. Nếu chỉ sử dụng ảnh quét để đăng ký nhằm mục đích số hóa trên Mapinfo thì ta có thể lưu ảnh ở dịnh dạng JPEG.
2.2.1.1 Xác định các điểm khống chế.
Muốn hiểm thị được ảnh quét đúng tọa độ trong Mapinfo, thì cần ít nhất 3 điểm trên bản đồ và nạp tọa độ của các điểm đó vào làm cơ sở định vị.
Để đăng ký một bản đồ trong Mapinfo ta vào file -> Open và hộp thoại Open table được mở ra. Trong ô files of type chọn Raster Image và sau đó chọn ảnh cần dùng. Mapinfo sẽ hiểm thị hộp thoại thông bao hởi hiểm thị hay đăng ký ảnh, trong trường hợp này ta sẽ chọn Register để đăng ký ảnh.
2.2.1.2 Thiết lập hệ tọa độ
Sau khi đã đăng ký xong bản đổ ta phải chọn hệ quy chiếu cho chúng đây là bước rất quan trọng trong đăng ký ảnh vì nếu ta chọn sai thì các tập tin số hóa sau này căn cứ trên ảnh quét sẽ không chính xác và trong nhiều trường hợp bản đồ sau khi số hóa xong lúc mở sẽ bị méo. Như vậy khi đăng ký một bản đồ nhất thiết ta phải chọn một hệ quy chiếu cho nó. Để chọn hệ quy chiếu trong Mapinfo ta vào Projection -> Choose Projection hộp thoại sẽ mở ra nếu không biết hệ quy chiếu mà lại có tọa độ các điểm khống chế tính bằng kinh độ/ vĩ độ thì ta chọn hệ tọa độ WGS84 (Longgitude/Latitude ) xong nhấn OK, sau đó nhấn vào Units để ta chọn đơn vị cho hệ tọa độ. Trong trường hợp mặc định thì nó lấy đơn vị là độ (degrees).
Bước tiếp theo là ta sẽ nạp tọa độ của các điểm khống chế bằng cách di chuôt vào trong tờ bản đồ vừa đang ký khi nào xuất hiện dấu cộng và nhấn chuột và hộp thoại nạp điểm không chế hiện ra và chúng ta nạp vào đó điểm không chế. Ở trong khóa luận này em đã sử dụng 3 điểm khống chế đó là : điểm cuối đường Hoàng Quốc Việt, điểm Cửa Nam, và cầu Long Biên.
Cách số hóa bản đồ trên Mapinfo.
Trong Mapinfo, bản đồ được tổ chức theo từng lớp, như vậy một bản đồ trong Mapinfo sẽ gồm nhiều lớp, mỗi lớp chứa thông tin địa lý nhất định cùng với dữ liệu của một loại đối tượng trên bản đồ. Như vậy sau khi đăng ký xong bản đồ và hệ quy chiếu ta sẽ phải phân tích ra các lớp đối tượng.
Bản đồ trong Mapinfo có thể có các loái đối tượng sau:
Điểm: điểm tượng trưng cho những thong tin có tính chất vị trí, vị trí như Thành phố, trạm xăng, trường học…
Đường: đường tượng trưng cho những thông tin có chiều dài ví dụ như đường giao thông, sông suối, hệ thống đường điện…, Mapinfo phân biệt ra 3 loại đường khác nhau là đường thẳng, cung, đường gấp khúc
Vùng: vùng tượng trưng cho những thong tin có diện tích, vùng thường được dùng để biểu diễn cho các tỉnh, quận, ao hồ
Ký tự: đây là một kiểu đối tượng đặc biệt, nó là những ký tự mà ta có thể ghi trực tiếp lên bản đồ và lưu lại thành một lớp riêng.
Như vậy sau khi phân tích ra các lớp đối tượng ta trong bản đồ thì có thể tạo các lớp đối tượng trên bản đồ và chỉnh sửa các đối tượng trên lớp đó.
để tạo một lớp mới ta vào Map -> Layer control -> New layer
Trong khoá luận này em chỉ tạo ra các lớp text để thể hiện tên các địa điểm và tên các đường, lớp đường thể hiện các tuyến đường Hà Nội.
Chương 3: Ngôn ngữ lập trình C#
Ngôn ngữ C#
3.1.1 Tổng quan về ngôn ngữ C#
C# là một ngôn ngữ lập trình mới, nó được thiết kế riêng để dùng cho .NET FrameWork. Đây là một ngôn ngữ hoàn toàn hướng đối tượng, được thiết kế dựa trên kinh nghiệm của các ngôn ngữ hướng đối tượng khác. C# là một ngôn ngữ độc lập, nó có thể sinh ra mã đích trong môi trường .NET và nó không phải là một phần của .NET. Bởi vậy, có một số đặc trưng được hỗ trợ bởi .NET nhưng không được hỗ trợ bởi C#, tuy nhiên ở phiên bản mới của C#, các đặc trưng này đã được bổ sung dần dần.
C# có tính diễn đạt cao, hỗ trợ lập trình có cấu trúc, hướng đối tượng và hướng thành phần (Component Oriented). Trọng tâm của ngôn ngữ hướng đối tượng đó là lớp. Lớp định nghĩa kiểu dữ liệu mới, cho phép mở rộng ngôn ngữ theo hướng cần giải quyết. C# có những từ khóa dành cho việc khai báo lớp, phương thức, thuộc tính mới. Nó hỗ trợ đầy đủ các khải niệm trụ cột trong lập trình hướng đối tượng: đóng gói, thừa kế, đa hình.
Định nghĩa lớp trong C# không đòi hỏi tách rời tập tin tiêu đề với tập tin cài đặt như trong C++. C# cũng hỗ trợ khái niệm giao diện (Interfaces) tương tự như Java. Một lớp chỉ có thể kế thừa từ một lớp cha nhưng có thể cài đặt của nhiểu giao diện. Kiểu cấu trúc của C# không giống với C++, cấu trúc không thể kế thừa lớp hay được kế thừa nhưng nó có thể cài đặt giao diện.
C# cung cấp những đặc trưng của lập trình hướng thành phần như các thuộc tính (property), sự kiện và dẫn hướng khai báo. Lập trình hướng thành phần được hỗ trợ bở CLR thông qua siêu dữ liệu (metadata). Siêu dữ liệu mô tả các lớp bao gồm các phương thức và các thuộc tính, các thông tin bảo mật …
C# cho phép truy cập trực tiếp bộ nhớ dùng con trỏ điều khiển C++, nhưng vùng mã đó được xem như không an toàn. CLR sẽ không thực thi việc thu gom rác tự động các đối tượng tham chiếu bởi con trỏ cho đến khi lập trình viên phải tự giải phóng.
Mã chương trình
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
using MapInfo.Data;
using MapInfo.Mapping;
using MapInfo.Engine;
using MapInfo.Windows.Dialogs;
using MapInfo.Geometry;
namespace TestMapinfo
{
public partial class MainForm : Form
{
private MICommand miCommand;
private MIConnection miConnection;
private string dataRec = "dslkvnldsvndskvndk";
public MainForm()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
mapControl1.Refresh();
}
private void LoadTables(MapInfo.Mapping.MapLoader tl)
{
try
{
// Set table loader options
mapControl1.Map.Load(tl);
}
catch (Exception ex)
{
string s = ex.Message + "\r\nMake sure the TableSearchPath '" + Session.Current.TableSearchPath.Path + "' is set to point to the location where the sample data is installed";
MessageBox.Show(s);
}
}
private void button1_Click(object sender, EventArgs e)
{
double temp = 0;
if (double.TryParse(lblXCoor.Text, out temp) && double.TryParse(lblYCoor.Text, out temp))
{
miConnection = new MIConnection();
miCommand = miConnection.CreateCommand();
miConnection.Open();
CoordSysFactory factory = Session.Current.CoordSysFactory;
MapInfo.Geometry.CoordSys coordSys;
Datum datum = factory.CreateDatum(DatumID.WGS84);
coordSys = factory.CreateCoordSys(CoordSysType.LongLat, datum, DistanceUnit.Degree, 0, 0, 0, 0, 0, 0, 0, 0, 0, null);
DPoint myMotoDpoint = new DPoint(double.Parse(lblXCoor.Text), double.Parse(lblYCoor.Text));
MapInfo.Geometry.Ellipse myMoto = new MapInfo.Geometry.Ellipse(coordSys, myMotoDpoint, 0.0002, 0.0002, DistanceUnit.Degree, DistanceType.Spherical);
miCommand.CommandText = "UPDATE Hanhtrinh set Obj = @myMoto";
miCommand.Parameters.Add("@myMoto", myMoto);
miCommand.ExecuteNonQuery();
miCommand.Dispose();
miConnection.Close();
MapTableLoader tl = new MapTableLoader(@"C:\MAP\HanoiMap.TAB", @"C:\MAP\Hanhtrinh.TAB");
LoadTables(tl);
}
}
private void mapToolBar1_ButtonClick(object sender, ToolBarButtonClickEventArgs e)
{
}
private void MainForm_Load(object sender, EventArgs e)
{
MapTableLoader tl = new MapTableLoader(@"C:\MAP\HanoiMap.TAB", @"C:\MAP\Hanhtrinh.TAB");
LoadTables(tl);
MIConnection connection = new MIConnection();
MICommand command = connection.CreateCommand();
command.CommandText = "Select * From Hanhtrinh";
connection.Open();
MIDataReader reader = command.ExecuteReader();
reader.Read();
object o = reader.GetValue(0);
Ellipse myMoto = (Ellipse)o;
lblXCoor.Text = myMoto.GeometricCentroid.x.ToString();
lblYCoor.Text = myMoto.GeometricCentroid.y.ToString();
mapControl1.Map.SetView(new DPoint(myMoto.GeometricCentroid.x, myMoto.GeometricCentroid.y), Session.Current.CoordSysFactory.CreateCoordSys(CoordSysType.LongLat, Session.Current.CoordSysFactory.CreateDatum(DatumID.WGS84), DistanceUnit.Degree, 0, 0, 0, 0, 0, 0, 0, 0, 0, null), 25000);
reader.Close();
connection.Close();
}
private void mapControl1_MouseClick(object sender, MouseEventArgs e)
{
System.Drawing.PointF DisplayPoint = new PointF(e.X, e.Y);
MapInfo.Geometry.DPoint MapPoint = new MapInfo.Geometry.DPoint();
MapInfo.Geometry.DisplayTransform converter = this.mapControl1.Map.DisplayTransform;
converter.FromDisplay(DisplayPoint, out MapPoint);
lblXCoor.Text = MapPoint.x.ToString();
lblYCoor.Text = MapPoint.y.ToString();
}
private void button2_Click(object sender, EventArgs e)
{
MIConnection connection = new MIConnection();
MICommand command = connection.CreateCommand();
command.CommandText = "Select * From Hanhtrinh";
connection.Open();
MIDataReader reader = command.ExecuteReader();
int i, n = reader.FieldCount;
for (i = 0; i < n; i++)
{
MessageBox.Show(reader.GetName(i));
}
while (reader.Read())
{
for (i = 0; i < n; i++)
{
object o = reader.GetValue(i);
if (o == DBNull.Value) MessageBox.Show("null\t");
else MessageBox.Show(o.ToString());
}
Console.Out.WriteLine();
}
reader.Close();
command.Dispose();
connection.Close();
}
private void serialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
this.dataRec = serialPort.ReadLine();
}
private void MainForm_Shown(object sender, EventArgs e)
{
try
{
serialPort.Open();
}
catch
{
MessageBox.Show("COM port ERROR!");
//Application.Exit();
}
}
private void button3_Click(object sender, EventArgs e)
{
//string dataRec = "$GPGGA,180453.000,2101.1512,N,10549.8171,E,2,08,1.2,4.8,M,-20.7,M,1.8,0000*5F";
UPDATE();
}
private void UPDATE() {
if (dataRec.Substring(0, 6).Equals("$GPGGA"))
{
try
{
double X, Y;
Y = (double.Parse(dataRec.Split(',')[2].Substring(0, 2))) + double.Parse(dataRec.Split(',')[2].Substring(2, 7)) / 600000;
X = (double.Parse(dataRec.Split(',')[4].Substring(0, 3))) + double.Parse(dataRec.Split(',')[4].Substring(3, 7)) / 600000;
//Cap nhat lai ban do
miConnection = new MIConnection();
miCommand = miConnection.CreateCommand();
miConnection.Open();
CoordSysFactory factory = Session.Current.CoordSysFactory;
MapInfo.Geometry.CoordSys coordSys;
Datum datum = factory.CreateDatum(DatumID.WGS84);
coordSys = factory.CreateCoordSys(CoordSysType.LongLat, datum, DistanceUnit.Degree, 0, 0, 0, 0, 0, 0, 0, 0, 0, null);
DPoint myMotoDpoint = new DPoint(X, Y);
MapInfo.Geometry.Ellipse myMoto = new MapInfo.Geometry.Ellipse(coordSys, myMotoDpoint, 0.0002, 0.0002, DistanceUnit.Degree, DistanceType.Spherical);
miCommand.CommandText = "UPDATE Hanhtrinh set Obj = @myMoto";
miCommand.Parameters.Add("@myMoto", myMoto);
miCommand.ExecuteNonQuery();
miCommand.Dispose();
miConnection.Close();
MapTableLoader tl = new MapTableLoader(@"C:\MAP\Hanhtrinh.TAB");
LoadTables(tl);
//refresh ban do
MIConnection connection = new MIConnection();
MICommand command = connection.CreateCommand();
command.CommandText = "Select * From Hanhtrinh";
connection.Open();
MIDataReader reader =_command.ExecuteReader();
reader.Read();
object o = reader.GetValue(0);
myMoto = (Ellipse)o;
lblXCoor.Text = myMoto.GeometricCentroid.x.ToString();
lblYCoor.Text = myMoto.GeometricCentroid.y.ToString();
mapControl1.Map.SetView(new DPoint(myMoto.GeometricCentroid.x, myMoto.GeometricCentroid.y), Session.Current.CoordSysFactory.CreateCoordSys(CoordSysType.LongLat, datum, DistanceUnit.Degree, 0, 0, 0, 0, 0, 0, 0, 0, 0, null), 10000);
reader.Close();
connection.Close();
}
catch
{
}
}
}
private void timer2_Tick(object sender, EventArgs e)
{
UPDATE();
}
}
}
Kết luận
Sau một khoảng thời gian nghiên cứu và tìm hiểu cả về lý thuyết và thực hành em đã thu được một số thành quả sau khóa luận của mình:
Nắm được lý thuyết cơ bản về hệ thống GPS, đó chính là những đặc điểm về công nghệ GPS
Nắm được những khái niệm và giao thức cơ bản cơ bản trong truyền thông GPS
Nắm được lý thuyết cơ bản về hệ thống GIS và cách số hóa một bản đồ số.
Tuy nhiên do thời gian và kiến thức còn hạn chế, khóa luận của em vẫn còn nhiều thiếu sót và khuyết điểm, các ứng dụng hẹp, chí mang tính chất nghiên cứu. Những thiếu sót có thể kể ra như:
Chưa thành thạo trong lập trình C# nên thiết kế giao diện hiển thị trên máy tính còn đơn giản
Chưa tìm hiều về cách khôi phục tín hiệu trong các máy thu GPS
Chưa khác phục được sai số
Với đề tài “THIẾT BỊ GPS VÀ ỨNG DỤNG TRÊN BẢN ĐỒ SỐ” sẽ là tiền đề cho em trong việc xây dựng một hệ thống quản lý phương tiện giao thông cũng như hệ thống dẫn đường phương tiện đường bộ sử dụng công nghệ GPS.
TÀI LIỆU THAM KHẢO:
[4] Global Positioning Systems, Inertial Navigation, and Integration – John Wily & Sons
MỘT SỐ TỪ VIẾT TẮT TRONG KHÓA LUẬN
GPS Global Positioning System
GIS – Geographic Information System
C/A Coarse/Acquisition
PRN - Pseudo Random Noise
MCS - master control station
OCS - operational control system (OCS)
Các file đính kèm theo tài liệu này:
- Thiết bị gps và ứng dụng trên bản đồ số.doc