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

Một số thuật toán phân tích không gian và ứng dụng

87 10 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

Thông tin cơ bản

Định dạng
Số trang 87
Dung lượng 1,77 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tìm kiếm và phân tích dữ liệu không gian giúp tìm ra những đối tượng đồ họac theo các điều kiênẹ đặt râ ay hỗ trợ việc ra quyết định của người dùng GIS.. Tương tự như các t

Trang 1

LỜI CẢM ƠN

Trong quá trình làm luận văn vừa qua, dưới sự giúp đỡ và chỉ bảo

nhiệt tình của PGS TS Đặng Văn Đức – Viện Công nghệ Thông tin –

Viện khoa học Việt Nam, luận văn của tôi đã được hoàn thành Mặc dù đã cố gắng không ngừng cùng với sự tận tâm của thầy hướng dẫn song

do thời gian và khả năng vẫn còn nhiều hạn chế nên luận văn khó tránh khỏi những thiếu sót trong quá trình làm luận văn

Để hoàn thành được luận văn này Em xin bày tỏ lòng biết ơn sâu sắc tới PGS TS Đặng Văn Đức - người thầy đã tận tình giúp đỡ em trong suốt quá trình tìm hiểu, xây dựng và phát triển luận văn này

Em xin chân thành cảm ơn các thầy , cô giáo trong Viện Công nghệ Thông tin – Viện khoa học Việt Nam đã giảng dạy và hướng dẫn

em trong suốt 2 năm học qua Em cũng xin cảm ơn ban lãnh đạo trường và toàn thể thầy cô giáo trong trường ĐH Công Nghệ thông tin và

truyền thông – Đại Học Thái Nguyên đã tạ o điều kiện tốt nhất giúp em học tập và hoàn thành luận văn này Và cuối cùng tôi cũng xin cảm ơn gia đình, toàn thể các học viên lớp Cao học K 8 đã động viên, quan tâm và giúp đỡ tôi trong thời gian qua

Cuối cùng tôi rất mong nhận được sự chỉ dẫn , góp ý của các thầy

cô và các bạn để luận văn của tôi được hoàn thiện hơn

Trang 2

THUẬT NGỮ TIẾNG ANH

Trang 3

Hình 1.1 Mô hình công nghệ GIS

Hình 1.2 Các thành phần của hệ GIS

Hình 1.3 Mô hình dữ liệu raster và vecto

Hình 1.4 Quan hệ giữa các nhóm chức năng của GIS

Hình 1.5 Hệ tọa độ địa lý (trực quan)

Hình 1.6 Minh họa cách chiếu bề mặt cong lên mặt phẳng

Hình 2.1 Xếp chồng 2 lớp bản đồ

Hình 2.2 Minh họa Raster Overlay

Hình 2.3 Xếp chồng điểm và đa giác

Hình 2.4 Xếp chồng đoạn và đa giác

Hình 2.5 Xếp chồng đa giác và đa giác

Hình 2.6 Phép hợp trong Overlay

Hình 2.7 Phép giao trong Overlay

Hình 2.8 Phép đồng nhất trong Overlay

Hình 2.9 Minh hoạ thuật toán quét dòng

Hình 2.10 Cấu trúc cây nhị phân

Hình 2.11 Vùng đệm tạo từ một điểm

Hình 2.12 Vùng đệm tạo từ đường

Hình 2.13a Vùng đệm tạo từ bên trong đa giác

Hình 2.13b Vùng đệm tạo từ bên ngoài đa giác

Hình 2.14 Vùng đệm tạo từ điểm

Hình 2.15 Vùng đệm của nhiều điểm

Hình 2.16 Xóa bỏ vùng chồng khi

Hình 2.17 Một đường thẳng tạo từ nhiều đoạn thẳng

Hình 2.18 Tạo buffer cho đoạn thứ nhất

Hình 2.19 Tạo buffer cho đoạn thứ hai

Trang 4

Hình 2.21 Xác định lại vùng đệm

Hình 2.22 Kết quả của buffer đường thẳng

Hình 2.23 Hai đuờng thẳng trong cùng một tầng đang tạo vùng đệm

Hình 2.24 Vùng A nằm trong vùng đệm, vùng B nằm ngoài vùng đệm

Hình 2.25 Vùng đệm đa giác

Hình 2.26 Điểm cách đều giữa hai đường biên

Hình 2.27 Các loại cấu hình đường bờ biển

Hình 2.28 Mô tả cấu trúc dữ liệu biểu diễn đường biên của một quốc gia Hình 2.29 Sơ đồ thuật toán xác định đường cách đều

Hình 2.30 Xác định điểm thăm dò

Hình 3.1 Giao diện chương trình

Hình 3.2 Hai bản đồ không giao nhau

Hình 3.3 Kết quả phép chồng phủ hai bản đồ không giao nhau

Hình 3.4 Hai bản đồ giao nhau

Hình 3.5 Kết quả của phép chồng phủ hai bản đồ giao nhau

Hình 3.6 Kết quả chính xác của nhiều kiểu giao bản đồ

Hình 3.7 Kết quả chồng phủ nhiều bản đồ

Trang 5

ĐẶT VẤN ĐỀ

Loài người luôn luôn mong muốn hiểu rõ các hiện tượng tự nhiên và trái đất để có thể chinh phục chúng Để đạt được mục đích này , thông thường con người thực hiện một loạt các công việc sau : Thu thập dữ liệu của Trái đất và hiện tượng tự nhiên ; lưu trữ dữ liệu vào máy tính để quản lý hiệu quả và lâu dài ; Phân tích dữ liệu để tìm ra các quy luật và các thông tin trợ giúp quyết định; Biểu diễn và hiển thị dữ liệu ; Tác động trở lại các hiện tượng tự nhiên và thế giới thực Con người đã thực hiện có hiệu quả các công việc trên nhờ các hệ thống tin học Do hầu hết dữ liệu được thu nhập và xử lý liên quan đến vị trí trên Trái đất , cho nên hệ thống thông tin địa lý (Geographical Information System – GIS) trở thành công cụ phù hợp nhất Tuy GIS đã được

nghiên cứu và phát triển từ nhiều năm nay , nhưng cho đến khi các máy tính có tốc độ xử lý cao, khả năng lưu trữ khối dữ liệu lớn và khả năng hiển thị đồ họa nhanh thì nó mới được phổ biến rộng rãi

Với tốc độ phát triển không ngừng của công nghệ phần cứng trong ngành Công nghệ thông tin thì GIS sẽ nhanh chóng được phát triển rộn g rãi Nhu cầu phân tích và biểu diễn các dữ liệu không gian được trên máy tính một cách phổ biến và rộng rãi là không nhỏ

Với mong muốn nghiên cứu một số thuật toán phân tích không gian trong hệ thống thông tin địa lý t ôi đã lựa chọn đề tài “Một số thuật toán phân tích không gian và ứng dụng” Đối tượng nghiên cứu là các thuật toán phân tích không gian, và ứng dụng của chúng trong GIS

Trong khuôn khổ của một luận văn thạc sỹ chuyên ngành Khoa học máy tính tôi chỉ xin phép đi sâu tìm hiểu các thuật toán : xếp chồng bản đồ , vùng đệm không gian, tìm đường đi ngắn nhất

Trang 6

CHƯƠNG 1 TỔNG QUAN VỀ GIS

1.1 Các khái niệm cơ bản

1.1.1 Hệ thống thông tin địa lý - GIS (Geographic Information System)

Hệ thống thông tin địa lý (gọi tắt là GIS) được hình thành vào những năm 1960 và phát triển rất rộng rãi trong 10 năm lại đây GIS ngày nay là công cụ trợ giúp quyết định trong nhiều hoạt động kinh tế - xã hội, quốc phòng của nhiều quốc gia trên thế giới 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 các 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 một nền hình học (bản đồ) nhất quán trên cơ sở toạ độ của các dữ liệu đầu vào

Từ những năm 1980 đến nay đã có rất nhiều định nghĩa được đưa ra, tuy nhiên không có định nghĩa nào khái quát đầy đủ về GIS vì phần lớn chúng đều được xây dựng trên khía cạnh ứng dụng cụ thể trong từng lĩnh vực Có 3 định nghĩa được dùng nhiều nhất:

- GIS là một hệ thống thông tin được thiết kế để làm việc với các dữ liệu trong một hệ tọa độ quy chiếu GIS bao gồm một hệ cơ sở dữ liệu và các phương thức để thao tác với dữ liệu đó

- GIS là một hệ thống nhằm thu thập, lưu trữ, kiểm tra, tích hợp, thao tác, phân tích và hiển thị dữ liệu được quy chiếu cụ thể vào trái đất

- GIS là một chương trình máy tính hỗ trợ việc thu thập, lưu trữ,

Trang 7

1.1.1.1 Mô hình công nghệ

Một cách khái quát, một hệ GIS như là một quá trình sau:

Hình 1.1 Mô hình công nghệ GIS

- Dữ liệu vào: dữ liệu được nhập từ các nguồn khác nhau như chuyển đổi giữa cách biểu diễn dữ liệu, máy quét, hình ảnh, vệ tinh, ảnh chụp

- Quản lý dữ liệu: Sau khi dữ liệu được thu thập và tổng hợp, GIS cần cung cấp các thiết bị có thể lưu và bảo trì dữ liệu nhằm đảm bảo: Bảo mật số liệu, tích hợp số liệu, lọc và đánh giá số liệu, khả năng duy trì GIS lưu thông tin thế giới thực thành các tầng dữ liệu riêng biệt, các tầng này đặt trong cùng một hệ trục tọa độ và chúng có khả năng liên kết với nhau

- Xử lý dữ liệu: Các thao tác xử lý dữ liệu được thực hiện để tạo ra thông tin Nó giúp cho người sử dụng quyết định cần làm tiếp công việc gì Kết quả của xử lý dữ liệu là tạo ra các ảnh, báo cáo và bản đồ

- Phân tích và mô hình: Số liệu tổng hợp và chuyển đổi chỉ là một phần của GIS Những yêu cầu tiếp theo là khả năng giải mã và phân tích về mặt định tính và định lượng thông tin đã thu nhập

- Dữ liệu ra: Một trong các phương diện công nghệ GIS là sự thay đổi của các phương pháp khác nhau trong đó thông tin có thể hiển thị khi nó được xử lý bằng GIS Các phương pháp truyền thống là bảng và đồ thị có thể cung cấp bằng các bản đồ và ảnh 3 chiều

Trang 8

1.1.1.2 Các thành phần của GIS

Có nhiều cách tiếp cận khác nhau khi định nghĩa GIS Nếu xét dưới góc độ hệ thống, thì GIS có thể được hiểu như một hệ thống gồm các thành phần: con người, phần cứng, phần mềm, cơ sở dữ liệu và quy trình-kiến thức chuyên gia, nơi tập hợp các quy định, quy phạm, tiêu chuẩn, định hướng, chủ trương ứng dụng của nhà quản lý, các kiến thức chuyên ngành và các kiến thức về công nghệ thông tin

GIS được kết hợp bởi 5 thành phần: Phần cứng, phần mềm, dữ liệu, con người và phương pháp

Hình 1.2 Các thành phần của hệ GIS

Phần cứng: Là hệ thống các máy tính điện tử trên đó hệ GIS hoạt

động Ngày nay, phần mềm GIS chạy trên rất nhiều dạng phần cứng, từ máy chủ trung tâm đến các máy trạm hoạt động độc lập hoặc liên kết mạng

Phần mềm: Phần mềm GIS cung cấp các chức năng và các công cụ cần

thiết để lưu trữ, phân tích và hiển thị thông tin địa lý Các thành phần chính

Trang 9

quản trị cơ sở dữ liệu; công cụ hỗ trợ hỏi đáp, phân tích và hiển thị địa lý; giao diện đồ họa người máy

Dữ liệu: Các dữ liệu địa lý và các dữ liệu thuộc tính liên quan có thể

được người sử dụng tự tập hợp hoặc được mua của nhà cung cấp dữ liệu thương mại Hệ GIS sẽ kết hợp dữ liệu không gian với các nguồn dữ liệu khác, thậm trí có thể sử dụng hệ quản trị cơ sở dữ liệu để tổ chức, lưu giữ và quản lý dữ liệu Một cách tổng quát, người ta chia dữ liệu GIS thành 2 loại:

+ Dữ liệu không gian (spatial) cho ta biết kích thước vật ly và vị trí địa

lý của các đối tượng trên bề mặt trái đất

+ Dữ liệu thuộc tính (non-spatial) là các dữ liệu ở dạng văn bản cho ta biết thêm thông tin thuộc tính của đối tượng

Con người: Con người là thành phần quan trọng nhất, là nhân tố thực

hiện các thao tác điều hành sự hoạt động của hệ thống GIS Hệ thống GIS sẽ bị hạn chế nếu không có con người tham gia quản lý hệ thống và phát triển ứ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 đề trong công việc

Người xây dựng bản đồ: Sử dụng các lớp bản đồ được lấy từ nhiều nguồn khác nhau, chỉnh sửa dữ liệu để tạo ra các bản đồ theo yêu cầu

Người phân tích: Giải quyết các vấn đề như tìm kiếm, xác định vị trí…

Người xây dựng dữ liệu: Là những người chuyên nhập dữ liệu bản đồ bằng các cách khác nhau: vẽ, chuyển đổi từ định dạng khác, truy cập CSDL…

Trang 10

Người quản trị cơ sở dữ liệu: Quản lý CSDL GIS và đảm bảo hệ thống vận hành tốt

Người thiết kế cơ sở dữ liệu: Xây dựng các mô hình dữ liệu lôgic và vật lý Người phát triển: Xây dựng hoặc cải tạo các phần mềm GIS để đáp ứng các nhu cầu cụ thể

Phương pháp: Một hệ GIS thành công theo khía cạnh thiết kế và luật

thương mại là được mô phỏng và thực thi duy nhất cho mỗi tổ chức

1.1.2 Các khái niệm cơ bản liên quan

* Bản đồ: Bản đồ là giao diện trực tuyến với dữ liệu địa lý để tra cứu,

trình bày kết quả và sử dụng như là một nền thao tác với thế giới thực

* Tập thông tin địa lý: Thông tin địa lý dạng file và dạng cơ sở dữ

liệu gồm các yếu tố, mạng lưới, topology, địa hình, thuộc tính

* Các mô hình xử lý : Các mô hình xử lý là tập hợp các quy trình xử

lý để phân tích tự động

* Các mô hình dữ liệu: GIS cung cấp công cụ mạnh hơn là một cơ sở

dữ liệu thông thường bao gồm quy tắc và sự toàn vẹn giống như các hệ thông tin khác Lược đồ, quy tắc và sự toàn vẹn của dữ liệu địa lý đóng vai trò rất quan trọng

* Metadata: Metadata hay tài liệu miêu tả dữ liệu, cho phép người sử

dụng tổ chức, tìm hiểu và truy nhập được tới tri thức địa lý

* Cơ sở dữ liệu địa lý: Hệ thống thông tin địa lý (GIS) sử dụng cơ sở

dữ liệu địa lý (geodatabase) làm dữ liệu của mình Các thành phần của cơ sở

Trang 11

 Tập hợp các dữ liệu dạng vector (tập các điểm, đường và vùng)

 Tập hợp các dữ liệu dạng raster (dạng mô hình DEM hoặc ảnh)

 Tập hợp các dữ liệu dạng mạng lưới (ví dụ như đường giao thông, lưới cấp thoát nước, lưới điện )

 Tập hợp các dữ liệu địa hình 3 chiều và bề mặt khác

 Dữ liệu đo đạc

 Dữ liệu dạng địa chỉ

 Các bảng dữ liệu là thành phần quan trọng của cơ sở dữ liệu không gian, được liên kết với các thành phần đồ họa với nhiều kiểu liên kết khác nhau

Về khía cạnh công nghệ, hình thể, vị trí không gian của các đối tượng cần quản lý, được miêu tả bằng các dữ liệu đồ hoạ Trong khi đó, tính chất các đối tượng này được miêu tả bằng các dữ liệu thuộc tính

Mô hình cơ sở dữ liệu không gian không những quy định mô hình dữ liệu với các đối tượng đồ hoạ, đối tượng thuộc tính mà còn quy định liên kết giữa chúng thông qua mô hình quan hệ và định nghĩa hướng đối tượng bao gồm các tính chất như thừa kế (inherit), đóng gói (encapsulation) và đa hình (polymorphism)

Ngoài ra, cơ sở dữ liệu không gian hiện đại còn bao gồm các ràng buộc các đối tượng đồ hoạ ngay trong cơ sở dữ liệu, được gọi là topology

Trang 12

1.1.3 Một số ứng dụng của GIS

Công nghệ GIS ngày càng được sử dụng rộng rãi GIS có khả năng sử dụng dữ liệu không gian và thuộc tính (phi không gian) từ các nguồn khác nhau khi thực hiện phân tích không gian để trả lời các câu hỏi của người sử dụng Một số ứng dụng cụ thể của GIS thường thấy trong thực tế là:

 Quản lý hệ thống đường phố, bao gồm các chức năng: tìm kiếm địa chỉ khi xác định được vị trí cho địa chỉ phố hoặc tìm vị trí khi biết trước địa chỉ phố Đường giao thông và sơ đồ; điều khiển đường đi, lập kế hoạch lưu thông xe cộ Phân tích vị trí, chọn khu vực xây dựng các tiện ích như bãi

đỗ xe, ga tàu xe… Lập kế hoạch phát triển giao thông

 Quản lý giám sát tài nguyên, thiên nhiên, môi trường bao gồm các chức năng: Quản lý gió và thủy hệ, các nguồn nhân tạo, bình đồ lũ, vùng ngập úng, đất nông nghiệp, tầng ngập nước, rừng, vùng tự nhiên, phân tích tác động môi trường… Xác định vị trí chất thải độc hại Mô hình hóa nước ngầm

và đường ô nhiễm Phân tích phân bố dân cư, quy hoạch tuyến tính

 Quản lý quy hoach: Phân vùng quy hoạch sử dụng đất Các hiện trạng xu thế môi trường Quản lý chất lượng nước

 Quản lý các thiết bị: Xác định đường ống ngầm, cáp ngầm Xác định tải trọng của lưới điện Duy trì quy hoạch các thiết bị, sử dụng đường điện

 Phân tích tổng điều tra dân số, lập bản đồ các dịch vu y tế, bưu điện và nhiều ứng dụng khác

Trang 13

1.2 Nhiệm vụ thiết kế hệ thống GIS

Khi xây dựng một hệ thống GIS ta phải quyết định xem GIS sẽ được xây dựng theo mô hình ứng dụng nào, lộ trình và phương thức tổ chức thực hiện nào Chỉ trên cơ sở đó người ta mới quyết định xem GIS định xây dựng sẽ phải đảm đương các chức năng trợ giúp quyết định gì và cũng mới có thể có các quyết định về nội dung, cấu trúc các hợp phần còn lại của hệ thống cũng như cơ cấu tài chính cần đầu tư cho việc hình thành và phát triển hệ thống GIS Với một xã hội có sự tham gia của người dân và quá trình quản lý thì sự đóng góp tri thức từ phía cộng đồng đang ngày càng trở nên quan trọng và càng ngày càng có vai trò không thể thiếu Để đảm bảo được nhiệm vụ của một hệ GIS, trước hết chúng ta tìm hiểu GIS làm việc như thế nào

1.2.1 Phương thức làm việc của GIS

GIS lưu trữ thông tin về thế giới thực dưới dạng tập hợp các lớp chuyên

đề có thể liên kết với nhau nhờ các đặc điểm địa lý Điều này đơn giản nhưng

vô cùng quan trọng và là một công cụ đa năng đã được chứng minh là rất có giá trị trong việc giải quyết nhiều vấn đề thực tế, từ thiết lập tuyến đường phân phối của các chuyến xe, đến lập báo cáo chi tiết cho các ứng dụng quy hoạch, hay mô phỏng sự lưu thôg khí quyển toàn cầu

Mã hóa địa lý : Mã hóa địa lý là quá trình tự động thường được dùng

để tạo ra các tham khảo địa lý Các thông tin địa lý chứa những tham khảo địa lý hiện hoặc những tham khảo địa lý ẩn Các tham khảo địa lý cho phép định vị đối tượng và sự kiện trên bề mặt quả đất phục vụ mục đích phân tích

Trang 14

Mô hình Raster và Vector

Hệ thống thông tin địa lý làm việc với hai dạng mô hình dữ liệu địa lý khác nhau: Mô hình Vector và mô hình Raster Trong mô hình vector, thông tin về điểm đường và vùng được mã hóa và lưu dưới dạng tập hợp các tọa độ (x,y) Vị trí của đối tượng điểm có thể được biểu diễn bởi một tọa độ đơn (x,y) Đối tượng dạng đường, như đường giao thông, sông suối, có thể được lưu dưới dạng tập hợp các tọa độ điểm Đối tượng dạng vùng, như khu vực buôn bán hay lưu vực sông, được lưu như một vòng khép kín của các điểm tọa độ

Hình 1.3 Mô hình dữ liệu raster và vector

1.2.2 Nhiệm vụ thiết kế hệ thống GIS

Một hệ GIS khi thiết kế phải đảm bảo được 6 chức năng cơ bản sau:

 Capture (thu thập dữ liệu): dữ liệu có thể lấy từ nhiều nguồn, có thể là

Trang 15

 Store (lưu trữ): dữ liệu có thể được lưu dưới dạng vecto hay raster

 Query (truy vấn): Người dùng có thể truy vấn thông tin đồ họa hiển thị trên bản đồ

 Analyze(phân tích): đây là chức năng hỗ trợ việc ra quyết định của người dùng Xác định những tình huống có thể xảy ra khi bản đồ có sự thay đổi

 Display (hiển thị): hiển thị bản đồ

 Output(xuất dữ liệu): Hỗ trợ việc kêt xuất dữ liệu bản đồ dưới nhiều định dạng: giấy in, web, ảnh, file…

Hình 1.4 Quan hệ giữa các nhóm chức năng của GIS

Tài liệu giấy Quan sát thực địa

Trang 16

1.2.2.1 Thu thập dữ liệu

Thu thập dữ liệu là quá trình thu nhận dữ liệu theo khuân mẫu được áp dụng cho GIS Mức độ đơn giản của thu nhập dữ liệu là chuyển đổi khuân dạng mẫu có sẵn từ bên ngoài Trong trường hợp này, GIS phải có các tiện ích để hiểu được các khuôn dạng mẫu dữ liệu chuẩn khác nhau để trao đổi GIS còn phải có khả năng nhập các ảnh bản đồ

Đa số các nguồn gốc thông tin không gian là các bản đồ in hay bản đồ dưới khuôn mẫu tương tự Để các dữ liệu này được sử dụng trong GIS thì chúng cần được số hóa Ở mức thủ công thì chỉ có thể số hóa các đặc trưng bản đồ và nhập thuộc tính mô tả các đặc trưng đó Còn ở mức độ tự động hóa cao hơn là số hóa bản đồ bằng máy quét ảnh để phát sinh ảnh số bản đồ đày đủ Nói chung, công việc thu thập dữ liệu hay “làm dữ liêuh bản đồ” là nhiệm vụ khó khăn và là quan trọng nhất khi xây dựng các ứng dụng GIS

Quá trình thu thập dữ liệu luôn gắn liền với quá trình xử lý dữ liệu Chúng ta có ba mô hình quan niệm của thông tin không gian là: mô hiònh hướng đối tuợng, mạng và bề mặt Quá trình phaan tích trên cơ sở các cách nhìn khác nhau đòi hỏi dữ liệu phải được biểu diễn và tổ chức phù hợp Vì vậy cần cung cấp phương tiện cho người sử dụng GIS thay đổi cấu trúc dữ liệu để thích nghi với các yêu cầu khác nhau Điều này đòi hỏi cần phải có các chức năng thay đổi cách biểu diễn, thay đổi phân lớp, làm đơn giản hóa hay tổng quát hóa dữ liệu, biến đổi giữa hệ thống trục tọa độ khác nhau và biến đổi các phép chiếu bản đồ Các thao tác này được xem là tiền phân tích không gian Mức độ xử lý dữ liệu thô khác nhau phụ thuộc vào mục đích của ứng dụng GIS

Trang 17

Một số công cụ phân tích của GIS phụ thuộc chặt chẽ vào các mô hình dữ liệu raster, do đó nó đòi hỏi quá trình biến đổi mô hình dữ liệu vector sang dữ liệu raster, quá trình này gọi là raster hóa Và một số công cụ khác thì làm ngược lại gọi là vector hóa Raster hóa là quá trình phân tích đường (line) hay mìên (polygon) thành các điểm ảnh (pixcel) Ngược lại vector hóa là quá trình tập hợp các điểm ảnh để tạo thành đường hay miền

Trong việc tích hợp bản đồ, vấn đề nảy sinh là hệ thống tọa độ của chúng được đo, vẽ trên cơ sở nhiều phép chiếu bản đồ khác nhau Các dữ liệu này không thể tích hợp trên cùng bản đồ nếu không biến dổi chúng về cùng một hệ trục tọa độ

1.2.2.2 Lưu trữ và truy cập dữ liệu

Lưu trữ dữ liệu liên quan đến tạ lập CSDL không gian (đồ họa, bản đồ) Nội dung của CSDL này có thể bao gồm tổ hợp dữ liệu vector hoặc/và dữ liệu raster, dữ liệu thuộc tính để nhận diện hiện tượng tham chiếu không gian Thông thường dữ liệu thuộc tính của GIS trên cơ sở đối tượng được lưu trong bảng, chúng chứa khóa chính là một chỉ danh duy nhất tương ứng với đối tượng không gian, kèm theo nhiều mục dữ liệu thuộc tính khác Chỉ danh đối tượng không gian duy nhất được dùng để liên kết giữa dữ liệu thuộc tính và dữ liệu không gian tương ứng Trong bảng thuộc tính cũng có thể bao gồm cả giá trị không gian như độ dài đường,diện tích vùng mà chúng đã được dẫn xuất từ biểu diễn dữ liệu hình học

Với dữ liệu raster thì các tệp thuộc tính thông thường chứa dữ liệu liên quan đến lớp hiện tượng tự nhiên hay cho các đối tượng rời rạc Việc lựa chọn

mô hình raster hay mô hình vector để tổ trức dữ liệu không gian được thực hiện khi thu thập dữ liệu vì mỗi mô hình tương ứng với các tiếp cận khác

Trang 18

nhau Thông thường CSDL GIS cho khả năng quản trị cả hai mô hình không gian nói trên,khi xây dựng CSDL không gian thì nhất thiết phải liên kết bảng dữ liệu liên quan đến hiện tượng tương ứng

Tìm kiếm và phân tích dữ liệu không gian Đây là chức năng đóng vai trò rất quan trọng trong GIS Nó tạo nên sức mạnh thực sự của GIS so với các phương pháp khác Tìm kiếm và phân tích dữ liệu không gian giúp tìm ra những đối tượng đồ họac theo các điều kiênẹ đặt râ ay hỗ trợ việc ra quyết định của người dùng GIS

1.2.2.3 Hệ tọa độ địa lý và hệ tọa độ quy chiếu

Vị trí của vật thể trong khôn gian đều phải gắn liền với một hệ tọa độ Trong GIS, để biểu diễn dữ liệu không gian người ta thường dùng 2 hệ tọa độ: hệ tọa độ địa lý và hệ tọa độ quy chiếu

Hệ tọa độ địa lý

Hệ tọa độ địa lý là hệ tọa độ lấy mặt cầu ba chiều bao quanh trái đất làm cơ sở Một điểm được xác định bởi kinh độ và vĩ độ của nó trên mặt cầu Đơn vị đo là độ Vì đây là hệ tọa độ gắn liền với trục trái đất nên để xác định vị trí của đối tượng người ta chia bề mặt trái đất thành các đường kinh tuyến

và vĩ tuyến Giao điểm giữa kinh tuyến và vĩ tuyến tạo thành các ô lưới Gốc tọa độ là giao điểm của vĩ tuyến có bám kính lớn nhất và kinh tuyến chạy qua vùng Greenland nước Anh Hai đường này đồng thời chia trái đất làm 4 phần bằng nhau

Trang 19

Hình 1.5 Hệ tọa độ địa lý (trực quan)

Hệ tọa độ quy chiếu

Để thuận tiện cho người sử dụng người ta phải nghiên cứu cách thể hiện bề mặt trái đất lên trên mặt phẳng của bản đồ Do đó phải thực hiện phép chiếu bề mặt cong của trái đất lên trên mặt phẳng và hệ tọa độ quy chiếu ra đời Hệ tọa độ này luôn lấy hệ tọa độ địa lý làm cơ sở Hệ tọa độ quy chiếu được đặc trưng bởi hai trục x theo phương ngang và y theo phương thẳng đứng Gốc tọa độ là giao điểm của hai trục này Hai trục giao nhau đồng thời chia mặt phẳng làm 4 phần tương qngs với 4 phần trong hệ tọa độ địa lý Một điểm trên mặt được xác đinh bởi cặp giá trị (x,y)

Hình 1.6 Minh họa cách chiếu bề mặt cong lên mặt phẳng

Trang 20

CHƯƠNG 2 MỘT SỐ THUẬT TOÁN PHÂN TÍCH KHÔNG GIAN TRONG GIS

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 mới 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

Hình 2.1 Xếp chồng 2 lớp bản đồ

Quá trình thực hiện Overlay bản đồ qua 2 bước:

1 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

2 Kết hợp dữ liệu không gian và thuộc tính của hai lớp bản đồ

Trang 21

2.1.1 Các phương pháp trong xếp chồng bản đồ

2.1.1.1 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 Các bản đồ có thể được coi là các biến số học và thực hiện các chức năng đại số phức tạp

Có nhiều phương pháp xếp chồng khác nhau thực hiện trên những vector địa lý Phương pháp raster overlay dựa trên ý tưởng bản đồ đại số Sử dụng bản đồ đại số dữ liệu đầu vào có thể được cộng, trừ, nhân, chia để tạo dữ liệu ra Hoạt động của thuật toán là thực hiện trên giá trị của các ô tương ứng của hai hoặc nhiều tầng dữ liệu vào để cho ra một giá trị mới

Bản đồ đại số chức năng sử dụng các biểu thức tóan học để tạo ra các lớp raster mới bằng cách so sánh chúng

Hình 2.2 Minh họa Raster Overlay

2.1.1.2 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 tích 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 giác và đa giác (Polygon in Polygon) Các phép

Trang 22

xếp chồng bản đồ trên dữ liệu Vector được chia thành 3 loại Dưới đây là 3 ví dụ minh họa cho 3 phép xếp chồng bản đồ trên dữ liệu vector

Điểm và đa giác: xếp chồng hai lớp điểm và đa giác để tạo ra lớp điểm

mới

Hình 2.3 Xếp chồng điểm và đa giác

Đoạn và đa giác: Chồng khít lớp đường và đa giác để tạo ra lớp đường

mới

Hình 2.4 Xếp chồng đoạn và đa giác

Đa giác và đa giác: Chồng khít đa giác và đa giác để tạo ra lớp đa giác

mới Khi chồng khít 2 lớp đa giác có thể có 3 trường hợp xảy ra

Trang 23

Hình 2.5 Xếp chồng đa giác và đa giác

2.1.2 Các phép toán trong Overlay

Các phép toán trong overlay bao gồm: Phép hợp (Union), phép giao (Intersect) và phép đồng nhất (Indentity)

2.1.2.1 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 và dữ liệu thuộc tính của chúng

Điều kiện: miền dữ liệu phải là polygon

Trang 24

Hình 2.6 Phép hợp trong Overlay

2.1.2.2 Phép giao (Intersect)

Phép giao hoạt động như toán tử And 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 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

Trang 25

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) la 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

Thuật toán này được phát triển ban đầu bởi Jon Bentleyand Thomas Ottmann (1979) [5] Mặc dù không phải là thuật toán tốt nhất nhưng nó được lựa chọn để thực hành bởi sự đơn giản và chiếm ít bộ nhớ

Giả thiết đầu vào của thuật toán này như sau:

- Không có đoạn thẳng nào thẳng đứng

- Các điểm mút của đoạn thẳng này không nằm trên đoạn khác

- Điểm giao nhau chỉ là điểm giao của 2 đoạn thẳng

- Không có quá hai điểm mút và điểm cắt nhau có cùng độ độ x

2.1.3.1 Ý tưởng của thuật toán

Ý tưởng chính của thuật toán BO là sử dụng tiếp cận quét dòng, trong đó một dòng thẳng đứng L chuyển động từ trái sang phải trong mặt phẳng, những đoạn giao nhau sẽ được lưu lại trên đường mà nó di chuyển Điều đó thật đơn giản để mô tả thuật toán trong trường hợp nhập vào ở vị trí nói chung, tức là không có đoạn thẳng kết thúc hoặc điểm giao nhau trên cùng trục x, không có điểm cuối đoạn thẳng trên phân khúc khác và không có 3 đoạn thẳng giao nhau tại 1 điểm Trong trường hợp này L sẽ luôn luôn giao nhau những đoạn đường vào trong tập hợp các điểm và chỉ thay đổi theo chiều dọc tại một tập hữu hạn các sự kiện rời rạc Do đó, chuyển động liên tục của L có thể được chia thành mỗi chuỗi hữu hạn các bước và mô phỏng bằng một thuật toán chạy trong một khoảng thời gian hữu hạn

Trang 26

Hình 2.9 Minh hoạ thuật toán quét dòng

Có hai sự kiện có thể xảy ra trong quá trình mô phỏng này, khi L quét qua một điểm cuối của một đoạn thẳng s, giao điểm của L và s sẽ được thêm vào hoặc gỡ ra từ một tập có thứ tự các điểm giao nhau Sự kiện này dễ dàng được dự đoán như các điểm đầu mút của đoạn thẳng (đã biết từ đầu vào của thuật toán) Sự kiện còn lại xảy ra khi L quét qua chỗ cắt nhau của 2 đoạn thẳng s và t, sự kiện này cũng được dự đoán trước từ thực tế, ngay từ khi xảy

ra sự kiện này, các điểm giao nhau của L với s và t được đặt liền kề trong tập các điểm giao nhau có thứ tự

Thuật toán BO sử dụng cấu trúc dữ liệu biểu diễn tập các điểm giao nhau thẳng đứng của dòng quét với các đoạn thẳng đầu vào, và tập hợp các sự kiện có tiềm năng trong tương lai hình thành bởi các cặp liền kề của các điểm giao nhau Nó xử lý các sự kiện lần lượt cập nhật cấu trúc dữ liệu để biểu diễn tập các điểm giao nhau mới

2.1.3.2 Cấu trúc dữ liệu

Để lưu trữ hiệu quả các giao điểm của đường quét L với các đoạn đường vào và một chuỗi các sự kiện trong tương lai thuật toán BO lưu trữ cấu trúc dữ liệu là:

Trang 27

Một cây tìm kiếm nhị phân chứa tập các đoạn thẳng qua L, theo thứ tự trục Y của các điểm mà các đoạn thẳng qua L Những điểm cắt không được đại diện một cách rõ ràng trong cây nhị phân tìm kiếm Thuật toán BO sẽ chèn thêm một đoạn mới s vào cấu trúc dữ liệu khi dòng quét L đi qua điểm cuối P của đoạn này, vị trí chính xác của s trong cây tìm kiếm có thể xác định bởi tìm kiếm nhị phân, mỗi bước kiểm tra p là trên hay dưới các đoạn khác

mà L đi qua Do đó việc chèn sẽ được thực hiện trong thời gian logarits Thuật toán BO sẽ xoá các đoạn từ cây nhị phân và sử dụng tìm kiếm nhị phân để xác định đoạn ngay ở dưới hoặc trên các đoạn khác, các thao tác này có thể được thực hiện bởi cây tự cấu trúc mà không quan tâm đến hình học cơ bản của đoạn thẳng

Hình 2.10 Cấu trúc cây nhị phân

Thứ tự sắp xếp: r và s là 2 đoạn thẳng thì r < s nếu và chỉ nếu

- rx1 < sx1 hoặc

- rx1 = sx1 và rx2 < sx2.

 Một hàng đợi ưu tiên để duy trì một chuỗi các sự kiện có tiềm năng trong tương lai của thuật toán BO Mỗi sự kiện được liên kết với một điểm p trong mặt phẳng, điểm đầu cuối, các điểm cắt Sự kiện này xảy ra khi dòng L cắt qua p Do đó các sự kiện có thể được đánh số ưu tiên theo trục x của điểm

Trang 28

liên kết các sự kiện Trong thuật toán BO các sự kiện tương lai tiềm năng bao gồm các đầu mút đoạn thẳng mà chưa được quét qua và các điểm giao nhau của các phân đoạn của đường mà ở ngay bên dưới hoặc bên trên đoạn khác

Thuật toán không cần phải lưu trữ một cách rõ ràng đại diện của dòng quét L hoặc vị trí của nó trong mặt phẳng Thay vào đó, vị trí của L được thể hiện gián tiếp: đó là đường thẳng đứng qua điểm gắn với sự kiện gần đây nhất là xử lý

2.1.3.3 Chi tiết thuật toán BO

Thuật toán BO thực hiện qua những bước sau đây

1 Khởi tạo một hàng đợi ưu tiên Q các sự kiện có tiềm năng trong tương lai, mỗi liên kiết với một điểm trong mặt phăng ưu tiên theo trục x Ban đầu, Q chứa danh sách các điểm đầu mút của các đoạn thẳng

2 Khởi tạo một tìm kiếm nhị phân T của các phân đoạn thẳng qua L quét đường, theo thứ tự trên trục y của các điểm giao nhau Ban đầu, T rỗng

3 Trong khi Q là không rỗng, tìm và loại bỏ các sự kiện từ Q liên kết với một điểm p có toạ độ x thấp nhất Xác định loại sự kiện này là sự kiện gì và quá trình đó theo các trường hợp sau đây:

* Nếu p là điểm cuối bên trái của đoạn s, chèn s vào T Tìm các đoạn

r và t ở bên dưới hay trên s trong T ( nếu có) nếu chúng giao nhau bởi một điểm tiềm năng trong hàng đợi các sự kiện thì loại bỏ nó Nếu s giao r hoặc t thì thêm điểm cắt này vào hàng đợi

* Nếu p là điểm cuối bên phải của một đoạn s, loại bỏ s từ T Tìm đoạn r và t ngay và dưới s trong T ( trước khi loại bỏ s) Nếu r và t giao nhau thì thêm điểm này vào trong danh sách hàng đợi

* Nếu p là điểm giao nhau của s và t ( với s ở dưới t theo hướng từ trái qua) , hoán đổi vị trí của s và t trong T Tìm các đoạn r và u ( nếu có) bên

Trang 29

dưới và trên s t tương ứng Huỷ bỏ các điểm cắt rs và tu từ hàng đợi sự kiện, và, nếu r cắt t hay s cắt u, thêm điểm này vào hàng đợi các sự kiện

2.1.3.4 Phân tích thuật toán

Thuật toán xử lý sự kiện mỗi điểm mút của đoạn hoặc điểm gia nhau Được sắp xếp theo thứ tự của toạ độ theo trục x Khi một sự kiện thứ i được xử lý, sự kiện tiếp theo ( nếu nó là điểm cắt) phải là một điểm giao nhau của 2 đoạn thẳng liền kề biểu diễn trong T, bởi vì thuật toán lưu trữ tất cả các điểm giao nhau của các đoạn thẳng như là các sự kiện tiềm năng trong tương lai, và

do vậy sự kiện tiếp theo luôn luôn có mặt trong hàng đợi sự kiện Kết quả là tìm được chính xác các điểm cắt của các đoạn thẳng

Thuật toán BO xử lý chuỗi 2n+k sự kiện, trong đó n là số đoạn thẳng và k là số điểm cắt, mỗi sự kiện được xử lý bởi một số cố định phép toán trong cây tìm kiếm nhị phân và hàng đợi sự kiện, và bởi vì nó chỉ chứa các điểm mút và điểm cắt giữa 2 đoạn liền kề nên hàng đơi sự kiện chứa không quá 3n sự kiện Do đó tất cả các thao tác mất thời gian là O (logn) và tổng thời gian của thuật toán là O((n+k)logn)

Nếu điểm cắt tìm thấy bởi thuật toán không cần phải lưu trữ một khi tìm thấy thì không gian lưu trữ của thuật toán là O(n)

2.1.3.5 Kết luận thuật toán

Kỹ thuật xếp chồng bản đồ là kỹ thuật rất khó trong quá trình phân tích thông tin, đòi hỏi phải có những giải pháp tối ưu về thời gian và không gian lưu trữ Trong phần trên tôi đã trình bày thuật toán quét dòng để xác định sự giao nhau của hai đoạn thẳng Tuy thuật toán đơn giản nhưng nó được sử dụng nhiều trong quá trình thực hành vì đơn giản và chiếm ít bộ nhớ

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ố [JOS] [RIG] 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

Trang 30

Do vậy, nếu vùng nghiên cứu là đa giác bất kỳ thì chúng phải được tách ra thành các đa giác lồi trước khi thực hiện thuật toán Trong luận văn tôi đề xuất thuật toán tìm trực tiếp giao hai đa giác, có thể áp dụng trong hệ GIS véc

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=a 1 a 2 a n và B=b 1 b 2 b m

2.1.4.1 Chi tiết thuật toán

Dễ thấy rằng: 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 và 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ạnh 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 giao, 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 Xv= {x| x là giao điểm của cạnh v với các cạnh u B} 

{ai,ai+1}(nếu trong Xv 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 đó)

Trang 31

Sắp xếp các điểm trong Xv theo chiều tăng dần về khoảng cách từ mỗi điểm đến ai, ta được Xv ={x1=ai,x2, ,xlv-1,xlv=ai+1}, với |Xv|=lv Khi đó, cạnh

x i x i+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ử lý 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 và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},

Yu={y1=bk+1,y2, ,ylu-1,ylu=bk+2}

Để kiểm tra xem cạnh 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 x 1 x 2 và y 1 y 2 Khi đó, cạnh

a i a i+1 (hoặc b k b k+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 thoả mãn:

1 N I(B) và M O(A)

2 N O(B) và M I(A)

Trang 32

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 MI(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:

 Vì NI(B) => chiều thuận của đa giác B là chiều đi từ bk đến bk+1 (1)

 Vì MO(A) => chiều thuận của đa giác A là chiều đi từ ai đến ai+1 (2)

Từ (1), (2) và giả thiết aiai+1bkbk+1=>  một đa giác là giao của A và B nhận aiai+1 là cạnh với chiều thuận là chiều từ ai tới ai+1

N

M

Trang 33

Chứng minh tương tự cho trường hợp 2, ta thu được kết quả:  một đa giác là giao của A và B nhận aiai+1 là cạnh với chiều thuận là chiều từ ai+1 tới

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 để 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

Trang 34

if (đếm là lẻ), p nằm trong P

endif

end

Để tìm giao của hai đoạn thẳng ta sử dụng thuật toán biểu diễn đoạn thẳng bằng phương trình tham số như sau:

Phương trình đoạn thẳng là cạnh đa giác được xác định từ hai toạ độ

đỉnh liên tiếp Giả sử ta có tham số t thay đổi từ 0 đến 1 cho phần đoạn thẳng

AB giữa hai đỉnh đa giác và có giá trị 0 tại một đầu, giá trị 1 tại đầu cuối kia

Vậy với 0 t 1, ta có:

Tương tự, cạnh CD của đa giác thứ hai sẽ được biểu diễn bởi tham số s

và phương trình sau:

Từ các công thức sau đây ta tính được giá trị t và s:

trong đó, nếu 0  t  1 và 0  s  1 thì hai đoạn thẳng cắt nhau tại một điểm

và giao điểm này được tính từ (1) và (2)

D C

C

C D C

y y s y y

x x s x x

A B D C D C A B

A C A C D C A C

y y x x y y x x

y y x x y y x x s

y y x x y y x x

y y x x y y x x t

y y t y y

x x t x x

Trang 35

2.1.4.2 Phân tích và cài đặt thuật toán

Phần này trình bày tóm tắt các bước chính cài đặt chức năng xếp chồng các chủ đề bản đồ trong hệ thống GIS véc tơ Giả sử ta phải thực hiện tính toán phần phủ của vùng địa lý được biểu diễn bởi đa giác P trong chủ đề T1

với các vùng của chủ đề T2

Bước 1 Xác định xem đa giác P của chủ đề T1 giao với các đa giác nào của chủ đề T2 Một bản đồ chủ đề chứa vô số đa giác (thí dụ bản đồ hành chính Việt nam chia đến cấp xã có đến 10511 xã), đa giác biểu diễn xã lại có

vô số cạnh Để tăng tốc độ xử lý của máy tính ta sẽ không so sánh đa giác P của T1 với mọi đa giác của T2 Cấu trúc CSDL địa lý thường lưu trữ chữ nhật bao của các đa giác Trước khi kiểm tra hai đa giác có giao nhau hay không thì cần kiểm tra chữ nhật bao của chúng có giao nhau hay không vì hai đa giác giao nhau chỉ khi hai chữ nhật bao của chúng giao nhau Giải pháp này làm giảm đáng kể số lần tính toán Việc xác định chính xác hai đa giác P, Q có giao nhau hay không được thực hiện theo thuật toán sau:

Đầu vào: Đa giác P, Q

Đầu ra: P và Q có giao nhau?

Trang 36

Độ phức tạp của thuật toán tìm giao các cạnh hai đa giác sẽ là  (nlogn)

Bước 2 Phân lớp các đỉnh đa giác P và Q Mỗi đỉnh đa giác được gán

bởi giá trị I (trong), O (ngoài) hay B (biên) so với đa giác kia Các giá trị này được thực hiện nhờ thuật toán điểm trong đa giác trình bày trên Các giá trị của đỉnh được lưu vào danh sách Pv cho đa giác P và Qv cho đa giác Q như sau:

Pv=<(p1, O), (p2, I) (pn, B)>

Qv=<(q1, I), (q2, B) (qm, O)>

trong đó, n là tổng số đỉnh của đa giác P, m là tổng số đỉnh của đa giác Q

Bước 3 Tìm giao điểm của các cạnh đa giác P và Q Giao của các cạnh

đa giác được tính theo công thức (3) trình bày trên Phải xét lần lượt các cạnh của P có cắt các cạnh của Q hay không Nếu có điểm cắt thì xen chúng vào danh sách Pv và Qv với giá trị B (biên)

Kết quả cho lại các cạnh của đa giác được chia thành đoạn nhỏ Mỗi đoạn của đa giác này sẽ nằm toàn bộ trong hay toàn bộ ngoài đa giác kia Ta có thể sử dụng tính chất mô tả ở phần trên để xác định các đoạn thẳng nằm trong hay ngoài đa giác: nếu điểm giữa đoạn thẳng nằm trong hay nằm ngoài

Trang 37

Bước 4 Lập các đa giác kết quả Từ danh sách Pv và Qv ta lọc ra các đọan thẳng có giá trị I hay B để lập các đa giác mới

Quan sát 4 bước trên đây thì bước 2 có độ phức tạp lớn nhất Nó đòi hỏi tìm giao điểm của mọi cạnh hai đa giác cho nên có độ phức tạp O(n2), việc xen giá trị giao điểm vào danh sách sẽ có độ phức tạp O(k2), trong đó k là số phần tử trong danh sách Trường hợp xấu nhất sẽ là k=n2 Do vậy, độ phức tạp của bước này sẽ là O(n4

)

2.1.4.3 Kết luận

Thuật toán tìm giao của hai đa giác là nền tảng của việc xây dựng chức năng xếp chồng của hệ thống GIS véc tơ Thuật toán trên đây được cài đặt trong một số hệ thống GIS chuyên dụng đang được sử dụng

2.2 Thuật toán vùng đệm không gian

2.2.1 Các khái niệm liên quan

* Feature: Là đối tượng trên bản đồ có hình dạng và vị trí xác định,

có các thuộc tính cùng với hành vi cụ thể

* Định nghĩa vùng đệm (buffering): Vùng đệm các đối tượng bản

đồ là vùng được tạo với chiều rộng cụ thể xung quanh một điểm, một đường, một vùng

Kết quả của buffer là một vùng mới, vùng mới này có thể được sử dụng trong những truy vấn để xác định những thực thể xảy ra hoặc bên trong hoặc bên ngoài vùng đệm được định nghĩa

Hình 2.12 Vùng đệm tạo từ một điểm

Trang 38

Hình 2.13 Vùng đệm tạo từ đường

Hình 2.14a Vùng đệm tạo từ bên trong đa giác , Hình 2.14b vùng đệm

tạo từ bên ngoài đa giác

2.2.2 Phân loại

Có 2 loại vùng đệm đối tượng bản đồ phục thuộc vào độ rộng của vùng đệm

 Độ rộng vùng đệm là hằng số

- Ví dụ: Tìm mọi khu dân cư trong vòng 10km từ bệnh viện

 Độ rộng vùng đệm là biến số

- Ví dụ: Vùng đệm của khu dân cư cách xa mạng lưới đường phố phụ thuộc vào loại đường phố

Cả hai loại vùng đệm có thể được tạo ra một tập đối tượng bao phủ dựa trên giá trị thuộc tính của mỗi đối tượng

Trang 39

2.2.3 Một số phép toán buffer thông dụng

 Tìm kiếm đối tượng nằm bên trong đối tượng khác: Phép toán này xác định quan hệ “bao kín” giữa các đối tượng không gian Đường thẳng bao gồm nhiều điểm, một đa giác có thể bao gồm nhiều đường thẳng hoặc cácc đa giác con

 Tìm kiếm các đối tượng cắt đối tượng khác: Phép toán này xác định các đối tượng có giao điểm hay nằm chồng nên các đối tượng khác Hai đa giác giao nhau nếu chúng có một miền chung Hai đường thẳng cắt nhau nếu chúng có một điểm chung Một đường thẳng giao với một đa giác khi nó nằm một phần hay toàn bộ trong đa giác

 Tìm kiếm các đối tượng liền kề với đối tượng khác: Đây là kiểu tìm kiếm trong đó các đối tượng có chung đường bao (biên) Quan hệ này chỉ áp dụng cho đường thẳng hoặc đa giác

 Tìm các đối tượng nằm bên trong hoặc bên ngoài một khoảng cách xác định: Kiểu tìm kiếm này được sử dụng trong việc xác định đối tượng xung quanh một hay nhiều các điểm mốc Quá trình thực hiện bao gồm việc tạo ra một vùng đệm quanh các điểm mốc này và sau đó xác định các đối tượng căn cứ vào vị trí của chúng so với vùng đệm tạo ra

2.2.4 Các bước xử lý trong buffer

Buffer hay còn gọi là truy vấn không gian trên cơ sở các quan hệ không gian giữa các đối tượng Các quan hệ này thông thường nói lên vị trí tương đối của đối tượng này với đối tượng kia Phương pháp buffer được chia làm nhiều loại khác nhau, nhưng cách thức xử lý thì luôn tuân theo các bước

cơ bản sau đây:

 Chọn một hay nhiều đối trên bản đồ, gọi là các đối tượng gốc

Trang 40

 Áp dụng một quan hệ không gian để tìm ra các đối tượng khác mà có quan hệ đặc biệt với các đối tượng gốc

 Hiển thị tập các đối tượng tìm thấy cả trên dữ liệu không gian và thuộc tính

2.2.5 Thuật toán hỗ trợ xây dựng thao tác buffering

Trong những tình huống thực tế cần những vùng đệm xuất phát từ điểm, đường và vùng đồng thời Hoạt động dữ liệu xảy ra bằng cách sử dụng những thao tác buffering Trong GIS, chúng ta có thể phân loại thao tác buffering thành 3 loại bao gồm: Thao tác buffering cho điểm, buffering cho đường và buffering cho vùng

2.2.5.1 Thao tác buffering cho điểm (points)

Định nghĩa: Thao tác buffering cho điểm tạo ra một vùng tròn xung

quanh một điểm Bán kính của vùng tròn được gọi là khoảng cách vùng đệm (buffer distance)

Hình 2.15 Vùng đệm tạo từ điểm

Phương thức chỉ định độ rộng vùng đệm

Có 2 phương thức chỉ định độ rộng vùng đệm

o Khoảng cách của vùng đệm cố định: Đây là phương thức đơn giản nhất, sử dụng một khoảng cách vùng đệm cố định cho tất cả các điểm trong một lớp

r

Ngày đăng: 24/03/2021, 08:44

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w