Một số thuật toán phân tích không gian và ứng dụng Một số thuật toán phân tích không gian và ứng dụng Một số thuật toán phân tích không gian và ứng dụng luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
Trang 1LỜ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 2THUẬT NGỮ TIẾNG ANH
Trang 3Hì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 4Hì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 6CHƯƠ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 71.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 81.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 9quả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 10Ngườ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 121.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 131.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 14Mô 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 161.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 17Mộ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 18nhau 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 19Hì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 20CHƯƠ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 212.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 22xế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
mới
Hình 2.4 Xếp chồng đoạn và đ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 23Hì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 24Hì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 252.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 26Hì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 27Mộ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 28liê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 29dướ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 30Do 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
tơ
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 31Sắ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+1A và u=bkbk+1B (giả sử
aibk và ai+1bk+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 32Chứ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:
Vì NI(B) => chiều thuận của đa giác B là chiều đi từ bk đến bk+1 (1)
Vì MO(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+1bkbk+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 33Chứ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 34if (đế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)
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 352.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 37Bướ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 38Hì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 392.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