Tổng quan về hệ thống thông tin địa lý (GIS)
Hệ thống thông tin địa lý - Geographic Information System (GIS) là một nhánh của công nghệ thông tin, đã hình thành từ những năm 60 của thế kỷ trước và phát triển rất mạnh trong những năm gần đây
GIS được sử dụng nhằm xử lý đồng bộ các lớp thông tin không gian (bản đồ) gắn với các thông tin thuộc tính, phục vụ nghiên cứu, quy hoạch và quản lý các hoạt động theo lãnh thổ
Ngày nay, ở nhiều quốc gia trên thế giới, GIS đã trở thành công cụ trợ giúp quyết định trong hầu hết các hoạt động kinh tế-xã hội, an ninh, quốc phòng, đối phó với thảm hoạ thiên tai v.v 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 v.v đá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 bản đồ số nhất quán trên cơ sở toạ độ của các dữ liệu bản đồ đầu vào
Có nhiều định nghĩa về GIS, nhưng nói chung đã thống nhất quan niệm chung: GIS là một hệ thống kết hợp giữa con người và hệ thống máy tính cùng các thiết bị ngoại vi để lưu trữ, xử lý, phân tích, hiển thị các thông tin địa lý nhằm phục vụ mục đích nghiên cứu, quản lý nhất định
Xét dưới góc độ là công cụ, GIS dùng để thu thập, lưu trữ, biến đổi, hiển thị các thông tin không gian nhằm thực hiện các mục đích cụ thể
Xét dưới góc độ là phần mềm, GIS làm việc với các thông tin không gian, phi không gian, thiết lập quan hệ không gian giữa các đối tượng Có thể nói các chức năng phân tích không gian đã tạo ra diện mạo riêng cho GIS
Xét dưới góc độ ứng dụng trong quản lý nhà nước, GIS có thể được hiểu như là một công nghệ xử lý các dữ liệu có toạ độ để biến chúng thành các thông tin trợ giúp quyết định phục vụ các nhà quản lý
Xét dưới góc độ hệ thống, GIS là hệ thống gồm các hợp phần: Phần cứng, Phần mềm, Cơ sở dữ liệu và Cơ sở tri thức chuyên gia
TÇng §-êng quèc lé hè
Thuỷ lợi Cây trồng KhÝ hËu
Giám sát Lập bản đồ Đo đạc t3 t2 t1
Hệ thông tin địa lý
GIS lưu trữ thông tin thế giới thực thành các tầng (layer) bản đồ chuyên đề mà chúng có khả năng liên kết địa lý với nhau Giả sử ta có vùng quan sát như hình 1.1, mỗi nhóm người sử dụng sẽ quan tâm nhiều hơn đến một hay vài loại thông tin Ví dụ, Sở giao thông công chính sẽ quan tâm nhiều đến hệ thống đường phố, sở Nhà đất quan tâm nhiều đến các khu dân cư và công sở, sở Thương mại quan tâm nhiều đến phân bố khách hàng trong vùng Tư tưởng tách bản đồ thành tầng tuy đơn giản nhưng khá mềm dẻo và hiệu quả, chúng cho khả năng giải quyết rất nhiều vấn đề về thế giới thực, từ theo dõi điều hành xe cộ giao thông, đến các ứng dụng lập kế hoạch và mô hình hóa lưu thông Ta có thể sử dụng tiến trình tự động , gọi là mã hóa địa lý (geocoding) để liên kết dữ liệu bên ngoài với dữ liệu bản đồ Ví dụ, sử dụng mã hóa địa lý để ánh xạ thông tin bán hàng bằng mã bưu điện (ZIP) hay chỉ ra địa chỉ khách hàng trên bản đồ bằng các điểm[1]
Hình 1.2 Các hoạt động chính của GIS
1.1.2 Các thành phần của hệ thống thông tin địa lý
Công nghệ GIS gồm 5 hợp phần cơ bản là:
- Chính sách và cách thức quản lý (Policy and Management)
Hình 1.3 Các hợp phần thiết yếu cho công nghệ GIS
Bao gồm máy vi tính (computer), máy vẽ (plotter), máy in (printer), bàn số hóa (digitizer), thiết bị quét ảnh (scaner), các phương tiện lưu trữ số liệu (Floppy diskettes,optical cartridges, CD ROM .)
Hình 1.4 Các thành phần thiết bị cơ bản của GIS
Phần mềm là tập hợp các câu lệnh, chỉ thị nhằm điều khiển phần cứng của máy tính thực hiện một nhiệm vụ xác định, phần mềm hệ thống thông tin địa lý có thể là một hoặc tổ hợp các phần mềm máy tính Phần mềm được sử dụng trong kỹ thuật GIS phải bao gồm các tính năng cơ bản sau:
- Nhập và kiểm tra dữ liệu (Data input): bao gồm tất cả các khía cạnh về biến đổi dữ liệu đã ở dạng bản đồ, trong lĩnh vực quan sát vào một dạng số tương thích
- Lưu trữ và quản lý cơ sở dữ liệu (Storage and management database): lưu trữ và quản lý cơ sở dữ liệu đề cập đến phương pháp kết nối thông tin vị trí (topology) và thông tin thuộc tính (attributes) của các đối tượng địa lý (điểm, đường đại diện cho các đối tượng trên bề mặt trái đất) Hai thông tin này được tổ chức và liên hệ qua các thao tác trên máy tính và sao cho chúng lĩnh hội được người sử dụng hệ thống
- Xuất dữ liệu (Display and reporting): dữ liệu đưa ra là các báo cáo kết quả quá trình phân tích tới người sử dụng, có thể bao gồm các dạng: bản đồ (MAP), bảng biểu (TABLE), biểu đồ, lưu đồ (FIGURE) được thể hiện trên máy tính, máy in, máy vẽ
- Biến đổi dữ liệu (Data transformation): biến đổi dữ liệu gồm hai lớp điều hành nhằm mục đích khắc phục lỗi từ dữ liệu và cập nhật chúng
- Tương tác với người dùng (Query input): giao tiếp với người dùng là yếu tố quan trọng nhất của bất kỳ hệ thống thông tin nào Các giao diện người dùng ở một hệ thống thông tin được thiết kế phụ thuộc vào mục đích của ứng dụng đó
Các phần mềm tiêu chuẩn và sử dụng phổ biến hiện nay trong khu vực Châu Á là:
ARC/INFO, MAPINFOR, IL WIS, WINGIS, SPANS, IDRISIW, Hiện nay có rất nhiều phần mềm máy tính chuyên biệt cho GIS, bao gồm các phần mềm sau:
+ Phần mềm dùng cho lưu trữ, xử lý số liệu thông tin địa lý: ACR/INFO, SPAN, ERDAS-Imagine, IL WIS, MGE/MICROSTATION, IDRISIW
+ Phần mềm dùng cho lưu trữ, xử lý và quản lý các thông tin địa lý: ER-MAPPER, ATLASGIS, ARCVIEW, MAPINFO
Con người bao gồm: người sử dụng hệ thống (system user), thao tác viên hệ thống (system operator), nhà cung cấp GIS (GIS supplier), nhà cung cấp dữ liệu (data supplier), người phát triển ứng dụng (application developer), chuyên viên phân tích hệ thống GIS (GIS system analysts)
1.1.2.4 Số liệu, dữ liệu địa lý (Geographic data)
Cơ sở dữ liệu không gian
Con người phải lập mô hình của hiện thực mà mô hình này tương tự với một số khía cạnh chọn lọc từ thế giới thực Mô hình là mô tả đầy đủ hệ thống từ một góc nhìn cụ thể và được hình thành nhờ tiến trình trừu tượng hóa (đơn giản hóa thông minh)[1] Cơ sở dữ liệu không gian hình thành từ các mô hình mô tả trạng thái và bản chất của hiện thực (hình 1.6)
Hình 1.6 Minh hoạ mô hình hoá
* Định nghĩa CSDL không gian:
Cơ sở dữ liệu không gian là tập hợp dữ liệu tham chiếu không gian, có vai trò như mô hình của hiện thực:
+ CSDL là mô hình hiện thực theo nghĩa nó biểu diễn tập lựa chọn hay xấp xỉ các hiện tượng
+ Các hiện tượng lựa chọn này được xem là quan trọng, đủ để biểu diễn đặc trưng dưới dạng số cho hiện tại, quá khứ và tương lai
1.2.1 Tổ chức các mẩu tin trong tệp
Dữ liệu trên đĩa được tổ chức thành: trường (field), mẩu tin (record), tệp
(file) Trong đó, trường mô tả đặc tính hoặc thuộc tính của một quan hệ hoặc một thực thể Mẩu tin mô tả một hàng (row) trong một bảng quan hệ, tập hợp của những trường cho những thuộc tính trong mô hình quan hệ của bảng Những tệp là tập hợp của những mẩu tin có thể được mô tả một quan hệ, những tập hợp khác có thể là sự kết hợp của những quan hệ liên quan
Hình 1.7 Ánh xạ các mẩu tin từ Country, City và River vào các trang đĩa
Làm thế nào để biểu diễn các mẩu tin trong một cấu trúc tệp Một thể hiện của một quan hệ là một tập hợp các mẩu tin Cho một tập hợp các mẩu tin, vấn đề đặt ra là làm thế nào để tổ chức chúng trong một tệp Có một số cách tổ chức sau:
• Tổ chức tệp đống (Heap File Organization): trong cách tổ chức này, một mẩu tin bất kỳ có thể được lưu trữ ở bất kỳ nơi nào trong tệp, ở đó có không gian cho nó, không có thứ tự nào giữa các mẩu tin Một tệp cho một quan hệ, những mẩu tin trong tệp Heap không theo một trật tự riêng biệt nào ( ví dụ tệp Heap là bảng River trong hình 1.6) Đối với cấu trúc tệp không có thứ tự thì không phù hợp với yêu cầu như tìm kiếm một mẩu tin với một khóa đã cho (chẳn hạn name ) đòi hỏi phải quét các mẩu tin trong tệp, trường hợp xấu nhất tất cả những mẩu tin phải được kiểm tra bằng việc kiểm tra tất cả những trang đĩa chứa dữ liệu cho tệp, nhưng nó phù hợp với phép chèn, đơn giản chỉ thêm vào một mẩu tin mới ở cuối tệp
• Tổ chức tệp tuần tự (Sequential File Organization): trong cách tổ chức này, các mẩu tin được lưu trữ theo thứ tự tuần tự, dựa trên giá trị của khoá tìm kiếm của mỗi mẩu tin
Tổ chức tệp tuần tự được thiết kế để xử lý hiệu quả các mẩu tin trong thứ tự được sắp dựa trên một khoá tìm kiếm (search key) nào đó Để cho phép tìm lại nhanh chóng các mẩu tin theo thứ tự khoá tìm kiếm, ta "xích" các mẩu tin lại bởi các con trỏ Con trỏ trong mỗi mẩu tin trỏ tới mẩu tin kế tiếp theo thứ tự khoá tìm kiếm Hơn nữa, để tối ưu hoá số khối truy xuất trong xử lý tệp tuần tự, ta lưu trữ vật lý các mẩu tin theo thứ tự khoá tìm kiếm
Tổ chức tệp tuần tự cho phép đọc các mẩu tin theo thứ tự được sắp mà nó có thể hữu dụng cho mục đích trình bày cũng như cho các thuật toán xử lý truy vấn (query-processing algorithms)
Tệp có thứ tự tổ chức những mẩu tin bằng việc sắp xếp chúng dựa vào trường khóa đã cho, ví dụ hình 1.7 hiển thị một tệp sắp xếp được tổ chức những mẩu tin trong bảng City với trường khóa sắp xếp City name
Hình 1.8 Tổ chức tệp có thứ tự cho bảng City
• Tổ chức tệp băm (Hashed File Organization): trong cách tổ chức này, có một hàm băm được tính toán trên thuộc tính nào đó của mẩu tin Kết quả của hàm băm xác định mẩu tin được bố trí trong khối nào trong tệp Cách tổ chức này liên hệ chặt chẽ với cấu trúc chỉ mục
Tệp băm được tổ chức chia những mẩu tin thành một tập những thùng (buckets), sử dụng một hàm gọi là hàm băm (hashed fuction ), hàm băm ánh xạ những giá trị trên một trường khóa được chọn (ví dụ: City name), trong hình 1.8 hiển thị một hàm băm với 4 thùng (bucket), mỗi thùng được lưu trữ vào một trang đĩa khác nhau, hàm băm trả về giá trị 1 với những tên có độ dài nhỏ hơn hoặc bằng 6 ký tự, 2 cho những tên có độ dài 7 hoặc 8 ký tự, 3 cho những tên có độ dài 9 hoặc 10 ký tự và 4 cho những tên có độ dài lớn hơn 11 ký tự Tên thành phố được ánh xạ vào những thùng (bucket) từ 1 đến 4 qua hàm băm
Hình 1.9 Tổ chức hàm băm cho bảng City
• Tổ chức tệp cụm (Clustering File Organization): trong cách tổ chức này, các mẩu tin của một vài quan hệ khác nhau có thể được lưu trữ trong cùng một tệp Các mẩu tin có mối liên hệ của các quan hệ khác nhau được lưu trữ trên cùng một khối sao cho mỗi hoạt động I/O đem lại các mẩu tin có mối liên hệ từ tất cả các quan hệ Để thấy những điểm lợi của việc lưu trữ nhiều quan hệ trong cùng một tệp, ta xét truy vấn SQL sau:
SELECT Account_Number,Customer_Number, Customer_Street, ustomer_City
FROM Depositor, Customer WHERE Depositor.Customer_Name = Customer.Customer_name;
Truy vấn này tính một phép nối của các quan hệ Depositor và Customer
Như vậy, đối với mỗi bộ của Depositor, hệ thống phải tìm bộ của Customer có cùng giá trị Customer_Name Một cách lý tưởng là việc tìm kiếm các mẩu tin này nhờ sự trợ giúp của chỉ mục Bỏ qua việc tìm kiếm các mẩu tin như thế nào, ta chú ý vào việc truyền từ đĩa vào bộ nhớ Trong trường hợp xấu nhất, mỗi mẩu tin ở trong một khối khác nhau, điều này buộc ta phải đọc một khối cho một mẩu tin được yêu cầu bởi truy vấn Ta sẽ trình bày một cấu trúc tệp được thiết kế để thực hiện hiệu quả các truy vấn liên quan đến Depositor.Customer Các bộ
Depositor đối với mỗi Customer_Name được lưu trữ gần bộ Customer có cùng Customer_Name Cấu trúc này trộn các bộ của hai quan hệ với nhau, nhưng cho phép xử lý hiệu quả phép nối Khi một bộ của quan hệ Customer được đọc, toàn bộ khối chứa bộ này được đọc từ đĩa vào trong bộ nhớ chính Do các bộ tương ứng của Depositor được lưu trữ trên đĩa gần bộ Customer, khối chứa bộ Customer chứa các bộ của quan hệ Depositor cần cho xử lý truy vấn Nếu một Customer có nhiều Account đến nỗi các mẩu tin Depositor không lấp đầy trong một khối, các mẩu tin còn lại xuất hiện trong khối kế cận Cấu trúc tệp này, được gọi là gom cụm (clustering), cho phép ta đọc nhiều mẩu tin được yêu cầu chỉ sử dụng một đọc khối, như vậy ta có thể xử lý truy vấn đặc biệt này hiệu quả hơn
Tuy nhiên, cấu trúc tệp gom cụm trên lại tỏ ra không có lợi bằng tổ chức lưu mỗi quan hệ trong một tệp riêng, đối với một số truy vấn, chẳng hạn:
Việc xác định khi nào thì gom cụm thường phụ thuộc vào kiểu truy vấn mà người thiết kế CSDL nghĩ rằng nó xảy ra thường xuyên nhất Sử dụng thận trọng gom cụm có thể cải thiện hiệu năng đáng kể trong việc xử lý truy vấn
1.2.2 Chỉ mục không gian (Spatial indexing )
Mở đầu
Từ dữ liệu có nguồn gốc thông tin địa lý (GIS), một hình thức đơn giản nhất là GIS lưu trữ thông tin về vùng nào đó của trái đất như bản đồ (ảnh) chứa các đặc trưng nổi trội Trong trường hợp này, bản đồ là ảnh hai chiều, một số điểm trên bản đồ được xem như các đối tượng cần quan tâm Các điểm này có thể được lưu trữ trong nhiều cấu trúc dữ liệu đặc biệt Hình 2.1a) là bản đồ đơn giản có một số điểm
Hình 2.1 Bản đồ mẫu để biểu diễn bởi các cấu trúc cây
) 0 ( N level P level nếu N là gốc của cây nếu cha của N là P quan tâm trên nó Các điểm được đánh dấu bởi địa danh (thí dụ như Banja Luka, Brcko) Thay vì điểm quan tâm, ứng dụng có thể quan tâm đến vùng bản đồ
Trong trường hợp này cấu trúc dữ liệu phải có khả năng lưu trữ thông tin về các vùng Hình 2.1b) biểu diễn cùng bản đồ nhưng chứa một số vùng quan tâm
Chương này chỉ ra cách biểu diễn dữ liệu bản đồ trên hình 2.1 bằng các loại cây k-d, cây tứ phân và cây R.
Cây k-d (k-d Trees)
Cây k-d được sử dụng để lưu trữ dữ liệu điểm k-chiều như chỉ ra trên hình 2.1a Không sử dụng nó để lưu trữ dữ liệu vùng Như vậy, cây 2-d (khi k=2) lưu trữ dữ liệu điểm 2-chiều, cây 3-d lưu trữ dữ liệu điểm 3-chiều
Thí dụ này đề cập đến dữ liệu điểm 2-d, sau đó khái quát lên dữ liệu điểm 3-d
Trong cây 2-d, mỗi nút có cấu trúc bản ghi nhất định với kiểu như sau: nodetype = record INFO: infotype;
Trường INFO có thể có kiểu bất kỳ do người sử dụng định nghĩa và phụ thuộc vào ứng dụng cụ thể Thí dụ, nó có thể là trường xâu ký tự mô tả địa danh, hay nó có thể là bản ghi bao gồm các trường name:string và population:integer
Trường XVAL, YVAL biểu thị tọa độ điểm kết hợp với nút
Các trường LLINK và RLINK trỏ đến hai cành
Giả sử T trỏ đến gốc của cây 2-d Nếu N là nút trong cây, thì mức của N được xác định qui nạp như sau:
Cây 2-d là cây nhị phân bất kỳ nếu thoả mãn điều kiện sau:
1 Nếu N là nút trong cây và level(N) là chẵn thì mỗi nút M trong cành rẽ nhánh từ N.LLINK có tính chất M.XVAL < N.XVAL, mỗi nút P trong cành rẽ nhánh từ N.RLINK có tính chất P.XVAL N.XVAL
2 Nếu N là nút trong cây và level(N) là lẻ thì mỗi nút M trong cành rẽ nhánh từ N.LLINK có tính chất M.YVAL < N.YVAL, mỗi nút P trong cành rẽ nhánh từ N.RLINK có tính chất P.YVAL N.YVAL
2.2.2 Chèn và tìm kiếm trong cây 2-d
Việc chèn nút N vào cây do T trỏ tới được phát biểu phi hình thức như sau:
Kiểm tra xem N và T có thống nhất các trường XVAL và YVAL hay không Nếu thống nhất thì chỉ việc viết đè nút T và kết thúc Nếu không hãy rẽ trái nếu N.XVAL