Nền tảng của thông tin hình học trong GIS là bản đồ đã được số hóa ở dạng nào đó để thực hiện từ những phép tính đơn giản như: đo đạc diện tích, chu vi, chiều dài, vị trí … đến những phé
Trang 1-
BÙI THANH HUYỀN
NGHIÊN CỨU MỘT SỐ THUẬT TOÁN PHÂN TÍCH KHÔNG GIAN
TRONG HỆ THÔNG TIN ĐỊA LÝ
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ: 60.48.01 Người hướng dẫn khoa học: PGS TS Đặng Văn Đức
TÓM TẮT LUẬN VĂN THẠC SĨ
HÀ NỘI – 2012
Trang 2MỞ ĐẦU
Hệ thống thông tin địa lý GIS (Geographical Information System) đã được khá nhiều người quan tâm muốn tìm hiểu và ngày càng nhiều tổ chức kinh tế xã hội ứng dụng trong công tác nghiên cứu khoa học và sản xuất Công nghệ GIS đã và đang thâm nhập như một nhu cầu tất yếu vào hầu hết các ngành
Thông tin GIS cung cấp cho người sử dụng hướng thay đổi của
dữ liệu trong một lãnh thổ theo thời gian, đồng thời xác định những
gì có thể xẩy ra khi có sự thay đổi dữ liệu đó Nói cách khác GIS cung cấp cho người sử dụng những mô hình khác nhau của sự thay đổi Dữ liệu bản đồ là thành phần chính trong cơ sở dữ liệu của GIS Các bản đồ gắn chặt với thế giới thực và luôn được bổ sung những thông tin mới
Nền tảng của thông tin hình học trong GIS là bản đồ đã được số hóa ở dạng nào đó để thực hiện từ những phép tính đơn giản như: đo đạc diện tích, chu vi, chiều dài, vị trí … đến những phép tính phức tạp như: mở rộng diện tích, xác định giao của nhiều vùng diện tích
… là những bài toán khá phổ biến trong quản lý và nghiên cứu khoa học
Không giống như các CSDL thông thường, GIS rất trực quan, thuận tiện và cùng một lúc cung cấp cho người sử dụng nhiều thông tin một cách tổng hợp
Nhận thấy những tiện ích của GIS, em lựa chọn và thực hiện đề
tài “Nghiên cứu một số thuật toán phân tích không gian trong hệ
thông tin địa lý” nhằm khắc phục những hạn chế và đáp ứng các yêu
cầu trên Dữ liệu không gian, các phép toán phân tích không gian và ứng dụng của chúng
Trang 3CHƯƠNG 1 – KHÁI QUÁT VỀ HỆ THỐNG THÔNG
TIN ĐỊA LÝ GIS 1.1 Định nghĩa GIS
Hệ thông tin địa lý (GIS - Geographical Information System), là một hệ thống thông tin có khả năng thu thập, cập nhập, quản trị và phân tích, biểu đồ dữ liệu địa lý phục vụ giải quyết các bài toán ứng dụng có liên quan tới vị trí địa lý trên bề mặt trái đất hoặc được định nghĩa như làm một hệ thông tin với khả năng truy nhập, tìm kiếm, xử
lý, phân tích và truy xuất dữ liệu địa lý nhằm hỗ trợ cho công tác quản lý, quy hoạch và quản lý tài nguyên thiên nhiên, môi trường và
y tế
Mục tiêu của GIS là cung cấp cấu trúc một cách hệ thống để quản lý các thông tin địa lý khác nhau và phức tạp, đồng thời cung cấp các công cụ, các thao tác hiển thị, truy vấn, mô phỏng… Cái GIS cung cấp là cách thức suy nghĩ mới về không gian Phân tích không gian chỉ là truy cập mà còn cho phép khai thác các quan hệ và tiến trình biến đổi của chúng Công nghệ GIS tích hợp giữa các thao tác trên cơ sở dữ liệu như: đưa ra các câu hỏi truy vấn (query), phân tích thống kê (statistcal analysis) với việc thể hiện và các phép phân tích địa lý
Những khả năng đó của hệ thống GIS đã phân biệt GIS với các
hệ thống thông tin khác và tạo cho nó một giá trị đến khu vực công cộng và các nhân để giải thích các sự kiện, và lên kế hoạch chiến lược
1.2 Các thành phần của GIS
Hệ thống GIS có 5 thành phần cơ bản bao gồm con người, phương pháp, phần cứng tin học, phần mềm tin học và dữ liệu Tầm quan trong mỗi thành phần và các mối quan hệ giữa chúng:
1.2.1 Con người (People)
Công nghệ GIS sẽ bị hạn chế nếu không có con người tham gia
Trang 4quản lý hệ thống và phát triển những ứng dụng GIS trong thực tế Người sử dụng GIS có thể là những chuyên gia kỹ thuật, người thiết
kế và duy trì hệ thống, hoặc những người dùng GIS để giải quyết các vấn đề công việc
1.2.2 Dữ liệu (Data)
Dữ liệu được sử dụng trong GIS không chỉ là số liệu địa lý mà còn phải được thiết kế trong một cơ sở dữ liệu Những thông tin là sẽ bao gồm các dữ kiện về vị trí địa lý, thuộc tính của thông tin, mối liên hệ không gian của các thông tin, và thời gian
1.2.5 Phương pháp (Methods)
Đây là hợp nhất rất quan trọng để đảm bảo khả năng hoạt động của hệ thống, là yếu tố quyết định sự thành công của việc phát triển công nghệ GIS Hệ thống GIS cần được điều hành bởi một số bộ phận quản lý, bộ phận này phải được bổ nhiệm để tổ chức hoạt động
hệ thống GIS một cách có hiệu quả để phục vụ người sử dụng thông tin
1.3 Cấu trúc dữ liệu trong GIS
1.3.1 Dữ liệu không gian
Dữ liệu không gian là dữ liệu về đối tượng mà vị trí của nó được xác định trên bề mặt Trái đất Dữ liệu không gian sử dụng
Trang 5trong hệ thống địa lý luôn được xây dựng trên một hệ thống tọa độ
Mô hình dữ liệu quyết định cách thức mà dữ liệu được cấu trúc, lưu trữ, xử lý và phân tích trong một hệ thông tin địa lý Mô hình dữ liệu raster sử dụng lưới để thể hiện đặc trưng không gian Mô hình
dữ liệu Vector sử dụng các điểm và tọa độ của chúng để xây dựng các đặc trưng không gian như điểm, đường và vùng Các đặc trưng dựa trên mô hình dữ liệu véctơ được coi như các đối tượng riêng biệt trong không gian Nhiều hệ thông tin địa lý sử dụng cả hai mô hình
dữ liệu vector và raster
Mô hình dữ liệu dạng raster phản ánh toàn bộ vùng nghiên cứu dưới dạng một lưới các ô vuông hay điểm ảnh (pixel) Mô hình raster
có các đặc điểm:
Các điểm được xếp liên tiếp từ trái qua phải và từ trên xuống dưới
Mỗi một điểm ảnh (pixel) chứa một giá trị
Một tập các ma trận điểm và các giá trị tương ứng tạo thành một lớp (layer)
Trong cơ sở dữ liệu có thể có nhiều lớp
Mô hình dữ liệu raster là mô hình dữ liệu GIS được dùng tương đối phổ biến trong các bài toán về môi trường, quản lý tài nguyên thiên nhiên
Mô hình raster chủ yếu dùng để phản ánh các đối tượng dạng vùng là ứng dụng cho các bài toán tiến hành trên các loại đối tượng dạng vùng: phân loại, chồng xếp Các nguồn dữ liệu raster có thể bao gồm:
Quét ảnh
Ảnh máy bay, ảnh viễn thám
Chuyển từ dữ liệu Vector sang
Lưu trữ dữ liệu dạng raster
Nén theo hàng (Run lengh coding)
Nén theo ngữ cảnh (Fractal)
Nén theo chia nhỏ thành từng phần (Quadtree)
Trang 6.Mô hình dữ liệu Vector xem các sự vật, hiện tượng là tập các thực thể không gian cơ sở và tổ hợp của chúng Trong mô hình 2D thì các thực thể cơ sở bao gồm: điểm (point), đường (line), vùng (polygon) Các thực thể sơ đẳng được hình thành trên cơ sở vector hay tọa độ của các điểm trong một hệ trục tọa độ nào đó
Loại thực thể cơ sở được sử dụng phụ thuộc vào tỷ lệ quan sát hay mức độ khái quát Với bản đồ có tỷ lệ nhỏ thì thành phố được biểu diễn bằng điểm (point), đường đi, sông ngòi được biểu diễn bằng đường (line) Khi tỷ lệ thay đổi kéo theo sự thay đổi về thực thể biểu diễn Thành phố lúc này sẽ được biểu diễn bởi vùng có đường ranh giới Khi tỷ lệ lớn hơn, thành phố có thể được biểu diễn bởi tập các thực thể tạo nên các đối tượng nhà cửa, đường sá, các trình tiện ích,…
1.3.2 Dữ liệu phi không gian
Là những mô tả về đặc tính, đặc điểm và các hiện tượng xẩy ra tại vị trí địa lý xác định mà chúng khó hoặc không thể biểu thị trên bản đồ được
Hệ thống thông tin địa lý sử dụng phương pháp chung để kết hai loại dữ liệu đó thông qua bộ xác định, lưu trữ đồng thời trong các thành phần đô thị và phi đô thị Các bộ xác định có thể đơn giản là một số duy nhất liên tục, ngẫu nhiên hoặc là các chỉ báo địa lý hay
dữ liệu vị trí lưu trữ Bộ xác định cho một thực thể có thể chứa tọa độ phân bố của nó, số hiệu mảnh bản đồ, mô tả khu vực hoặc là một con trỏ đến vị trí lưu trữ của dữ liệu liên quan
1.4 Chức năng của hệ GIS
Sức mạnh của các chức năng của hệ thống GIS khác nhau là khác nhau Kỹ thuật xây dựng các chức năng cũng rất khác nhau Chức năng của một hệ thống thông tin địa lý được phân chia thành năm loại như sau: Thu thập dữ liệu, thao tác dữ liệu, quản lý dữ liệu, hỏi đáp và phân tích, và hiển thị
Trang 7Nhập dữ liệu là quá trình mã hóa dữ liệu thành dạng có thể dùng trên máy tính và ghi dữ/ liệu vào cơ sở dữ liệu GIS Nhập
dữ liệu là một công việc đòi hỏi thời gian và công sức và kinh phí (giá thành xây dựng CSDL ban đầu thường là 5 -10 lần giá thành phần cứng và phần mềm)
Có những trường hợp các dạng dữ liệu luôn đòi hỏi được chuyển dạng và thao tác theo một số cách để có thể tương thích với một hệ thống nhất định Công nghệ GIS cung cấp nhiều công cụ cho các thao tác trên dữ liệu không gian và cho loại bỏ dữ liệu không cần thiết
Trang 8CHƯƠNG 2 – NGHIÊN CỨU MỘT SỐ THUẬT
TOÁN PHÂN TÍCH DỮ LIỆU KHÔNG GIAN
2.1 Các thuật toán xếp chồng bản đồ
Xếp chồng bản đồ là phần cốt lõi của hoạt động phân tích GIS
Nó kết hợp một số tính năng không gian để tạo ra yếu tố mới không gian Mặt khác, xếp chồng bản đồ có thể được định nghĩa là một hoạt động không gian, kết hợp các lớp địa lý khác nhau để tạo ra lớp thông tin Xếp chồng bản đồ được thực hiện bằng cách sử dụng số học, logic, các toán tử quan hệ và được thực hiện trong cả hai loại dữ liệu Vector và Raster
Quá trình thực hiện Overlay bản đồ qua 2 bước:
Xác định tọa độ các giao điểm và tiến hành chồng khít 2 lớp bản đồ tại giao điểm này
Kết hợp dữ liệu không gian và thuộc tính của hai lớp bản đồ
2.1.1 Các phương pháp trong xếp chồng bản đồ
Phương pháp vector Overlay
Trong Vector Overlay, các tính năng và thuộc tính của bản đồ được tich hợp để cho ra một bản đồ mới.Vector Overlay có thể được thực hiện trên các kiểu chức năng của bản đồ như: Điểm và đường (Point in Line), đoạn và đa giác (Line in Polygon), đa giac và đa giác (Polygon in Polygon)
Phương pháp Raster Overlay
Phương pháp Raster Overlay sử dụng số học và các toán tử Boolean để kết hợp các điểm ảnh hoặc giá trị tế bào trong mỗi bản đồ tạo ra một giá trị mới trong bản đồ kết hợp
2.1.2 Phép toán trong Overlay
Các phép toán trong overlay bao phủ: Phép hợp (Union), phép giao (Insertect) và phép đồng nhất (Indentity)
Phép hợp (Union): phép hợp hoạt động như toán tử Or
Đầu vào là hai lớp bản đồ là kiểu đa giác (polygon), đầu ra là một lớp bản đồ mới bằng cách xếp chồng hai miền dữ liệu đầu vào
Trang 9và dữ liệu thuộc tính của chúng
Điều kiện: miền dữ liệu phải là polygon
Phép giao (Intersect): Phép giao hoạt động như toán tử And Tạo ra một vùng bao mới bằng cách xếp chồng hai tập dữ liệu đầu Kết quả đầu ra bao gồm phần dữ liệu thuộc vào cả hai tập dữ liệu đầu vào
Phép đồng nhất (Indentity): Tạo ra một vùng bao phủ mới bằng cách xếp chồng hai tập dữ liệu đầu vào Kết quả đầu ra bao gồm toàn
bộ phần dữ liệu của lớp đầu tiên và chỉ những phần nào của lớp thứ hai được chồng khít
2.1.3 Thuật toán Bentley – Ottmann
Trong hình học tính toán thuật toán Bentley – Ottmann (BO) là một thuật toán quét dòng để liệt kê tất cả các đoạn thẳng giao nhau trong mặt phẳng Tương tự như các thuật toán khác để kiểm tra có hay không các đoạn thẳng giao nhau, với đầu vào là n đoạn thẳng và
k điểm cắt nhau BO có độ phức tạp là O(n+k)logn
2.1.4 Thuật toán giao của hai đa giác
Đã có nhiều thuật toán tìm giao của hai đa giác được công bố [RIG] [JOS] Phần lớn các thuật toán này xuất phát từ tìm giao của hai đa giác lồi Do vậy, nếu vùng nghiên cứu đa giác bất kỳ thì chúng phải được tách ra thành đa giác lồi trước khi thực hiện thuật toán Phát biểu bài toán: Hãy tìm phần giao của hai đa giác phẳng không tự cắt A và B Cho biết A = a1a2…an và B = b1b2 … bm Chi tiết thuật toán
Phần giao của A và B có thể là tập rỗng hay là tập các đa giác không giao nhau Để đơn giản ta gọi phần giao của A bà B là tập đa giác giao, và gọi một cạnh là cạnh của tập đa giác giao với ý nghĩa
nó là cạch của một đa giác trong tập đa giác giao
Với P là một đa giác thì ta gọi I(P) và O(P) lần lượt là miền trong và miền ngoài của P
Tư tưởng của thuật toán là tìm tất cả các cạnh của tập đa giác
Trang 10giao, nếu tập cạnh này khác rỗng thì bằng cách ghép chúng lại sẽ được tập các đa giác là giao của A và B
Thuật toán bao gồm hai bước chính như sau:
Bước 1: Trường hợp hai đa giác không có cặp cạnh nào song song và giao nhau
Với mỗi cạnh v = aiai+1 A (i-1, 2,…, n), ta tìm mọi giao điểm của v với tất cả các cạnh u = bkbk+1 B (k =1, 2,…, m), trong đó an+1
và bm+1 tương ứng được gán là a1 và b1
Đặt Xx = { x| x là giao điểm của cạnh v với các cạnh u b} {aiai+1} (nếu trong Xx có nhiều điểm trùng nhau thì chỉ giữ lại một điểm trong số các điểm trùng nhau đó)
Sắp xếp các điểm trong Xx theo chiều tằng dần về khoảng cách
từ mỗi điểm đến ai, ta được Xx = {x1 = ai, x2,…,xlv = ai+1}, với |Xx|=
lv Khi đó, cạnh xixi+1 (i = 1, 2, lv-1) là một cạnh của tập đa giác giao nếu trung điểm của nó thuộc I(B)
Xử lý tương tự cho các cạnh của đa giác B
Bước 2: Trường hợp hai đa giác có cặp cạnh song song và giao nhau
Trước hết, ta chèn thêm những điểm mới vào các đa giác để nếu
có trường hợp tồn tại cặp cạnh song song và giao nhau thì tạo ra cặp cạnh trùng nhau
Giả sử cạnh aiai+1 và cạnh bkbk+1 song song và giao nhau (nhưng không trùng nhau) Ta xử ly như sau:
Nếu ai bkbk+1 (ai nằm trong đoạn bkbk+1), thì chèn ai vào giữa
bk và bk+1, tức là coi bkai và aibk+1 là hai cạnh mới của đa giác B
Xử lý tương tự cho ba đỉnh: ai+1, bk, bk+1
Sau đó, xét mỗi cặp cạnh trùng nhau v=aiai+1 A và u = bkbk+1
B (giả sử ai = bk và ai+1 = bk+1), thực hiện thao tác tìm giao điểm và sắp xếp như bước 1 ở trên với hai cạnh ai+1ai+2 và bk+1bk+2 ta được hai tập hợp:
Xv = { x1 = ai+1, x2,…,xlv-1, xlv = ai+2},
Y = { y = b , y,…, y , y = b }
Trang 11Để kiểm tra xem cạng aiai+1 (hoặc bkbk+1) có là một cạnh của tập
đa giác giao hay không, ta dựa vào tính chất sau:
Gọi n và m lần lượt là trung điểm các cạnh x1x2 và y1y2 Khi đó, cạnh aiai+1 (hoặc bkbk+1) là một cạnh của tập đa giác giao nếu một trong hai điều kiện sau thỏa mãn:
N I(B) và MO(A)
NO(B) và MI(A)
Chứng minh tính chất:
Để chứng minh tính chất trên ta sử dụng hai kết quả sau:
1 Nếu đi theo chiều thuận (chiều ngược với chiều kim đồng hồ) theo các cạnh của đa giác p thì I(P) và O(P) tương ứng nằm về phía bên trái và phía bên phải dọc theo hướng đi
2 Nếu biết trước một điểm MI(P) (O(P)), thì I(P) (O(P)) sẽ nằm cùng phía so với M và O(P) (I(P)) sẽ nằm khác phía so với M, theo một hướng đi trên một cạnh nào đó thuộc đa giác P
Xét về vị trí tương đối của M với đa giác A và của N với đa giác B ta thấy chỉ có bốn trường hợp sau:
Tóm lại, trong cả hai trường hợp thì aa là một cạnh của tập đa
Trang 12giác giao
Bằng cách chứng minh tương tự cho hai trường hợp còn lại ( trường hợp 3 và 4) ta đều thu được kết quả: aiai+1 không phải là cạnh của tập đa giác giao
Các thuật toán liên quan
Thuật toán trình bày trên có sử dụng hai thuật toán khác nhau
để cài đặt, đó là kiểm tra điểm trong đa giác và tìm giao của hai đoạn thẳng Để kiểm tra một điểm có nằm trong đa giác hay không ta có thể sử dụng thuật toán sau:
Đầu vào: Cho trước đa giác P và điểm p
Đầu ra: p nằm trong hay ngoài P