Hướng dẫn thực tập GISL: Lựa chọn dữ liệu trong phần mềm MapInfo

Nắm vững phương pháp lựa chọn dữ liệu Select, SQL Select. ˚ Cấu trúc dữ liệu GIS. ˚ Tạo ranhững dữ liệu mới (Subsetof aFile). ˚ Lưu trữ các chất vấn ˚ Chất vấn mẫu. ˚ Những cột dẫn xuất. ˚ Tạo những cột định danh (Creating Column Aliases) ˚ Gộp dữ liệu.

pdf13 trang | Chia sẻ: haohao89 | Lượt xem: 1922 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Hướng dẫn thực tập GISL: Lựa chọn dữ liệu trong phần mềm MapInfo, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Hướng dẫn thực tập GIS - Bài 7 - Lựa chọn dữ liệu trong phần mềm MapInfo 69 Bài 7 (tiếp theo) Chọn lựa SQL TÓM TẮT BÀI THỰC TẬP Ê Nắm vững phương pháp lựa chọn dữ liệu Select, SQL Select. Ê Cấu trúc dữ liệu GIS. Ê Tạo ra những dữ liệu mới (Subset of a File). Ê Lưu trữ các chất vấn Ê Chất vấn mẫu. Ê Những cột dẫn xuất. Ê Tạo những cột định danh (Creating Column Aliases) Ê Gộp dữ liệu. Ê Nhóm, sắp xếp theo cột. Ê Nối các Table sử dụng SQL. Ê Tìm thông tin trong cột dữ liệu–Sử dụng hàm InStr(). Ê Chọn những bản ghi dữ liệu chẵn hay lẻ. KIẾN THỨC LIÊN QUAN Ê Kiến thức Hệ thống thông tin địa lý-GIS Ê Những kiến thức, qui ước bản đồ. PHẦN LÝ THUYẾT Tổng quan Trong chương trước, chúng ta đã học làm cách nào tạo ra các chọn lựa trên màn hình sử dụng các công cụ như Radius Select và Boundary Select. Trong bài này chúng ta sẽ tạo các lựa chọn bằng sử dụng những chức năng của MapInfo: Select and SQL Select. Thế nào là lựa chọn dữ liệu ? Lựa chọn sử dụng Query (chất vấn) Với chức năng Select, sử dụng MapInfo chọn ra một tập hợp con của tập dữ liệu, sử dụng lưu các tập con thành những lớp riêng biệt, hay sử dụng trong phân tích dữ liệu. Hướng dẫn thực tập GIS - Bài 7 - Lựa chọn dữ liệu trong phần mềm MapInfo 70 Chức năng Select cho phép chất vấn dữ liệu trong một lớp dữ liệu. Cho phép chọn lựa những record và những đối tượng từ lớp tùy thuộc vào tiêu chuẩn lựa chọn trên thuộc tính của chúng. Ví dụ, đưa ra công thức chất vấn với Select, yêu cầu MapInfo: ª Thể hiện chỉ những vùng ở đó nhiệt độ trung bình nhỏ hơn 25oC ? ª Thể hiện vùng ở đó độ pH đất lớn hơn 7. ª Thể hiện vị trí những điểm quan trắc mưa có lượng mưa trung bình nhỏ hơn 1800mm/năm. Những đối tượng được lựa chọn sẽ được đánh dấu trong cửa sổ Map hay trong Browser. MapInfo tạo những table tạm thời gọi là table Selection (Query??) kết quả có bảng thuộc tính, bản đồ như table khác. Table này chỉ có thể lưu trữ bằng File>saved as thành một table riêng biệt. Ví dụ: Ê Tỉnh nào của Việt Nam có diện tích lớn hơn 5000km2? Ê Trạm khí tượng nào nằm trong tỉnh Lai Châu? Ê Những Tỉnh nào của Việt Nam có dân số lớn hơn 1000000 dân ? Với chức năng SQL Select, sử dụng những lớp (table) để tạo ra thông tin cần thiết như: Ê Những cột dữ liệu dẫn xuất tính toán những giá trị mới dựa trên những nội dung của những cột dữ liệu có sẵn. Ê Kết hợp dữ liệu để mà chỉ liệt kê tổng số phụ (subtotal) thay cho việc phải xem toàn bộ dữ liệu. Ê Phối hợp hai hay nhiều table thành một table. Ê Chỉ thể hiện những cột và hàng cần quan tâm. Ví dụ: Ê Nhóm các Tỉnh thuộc Đông Nam Bộ. Ê Tính tổng số dân số thuộc Tây Nam Bộ. Các tiêu chuẩn lựa chọn dữ liệu Tạo các biểu thức Thực hiện Select query, cần tạo biểu thức. Biểu thức là phát biểu logic sử dụng như câu hỏi yêu cầu. Ví dụ, có một table gồm các điểm quan trắc nguồn nước và số liệu phân tích. Tạo một table tạm thời cho các điểm mẫu có độ pH nhỏ hơn 7, sử dụng biểu thức: pH < 7 Ở đây pH là cột dữ liệu lưu trữ giá trị pH cho từng điểm mẫu. Dấu < nghĩa là nhỏ hơn. Hướng dẫn thực tập GIS - Bài 7 - Lựa chọn dữ liệu trong phần mềm MapInfo 71 MapInfo tìm kiếm tất cả các bản ghi trên table điểm quan trắc nguồn nước và kiểm tra điều kiện tìm ra những bản ghi thỏa mãn điều kiện và tạo ra một table tạm thời, table gồm bản đồ, thuộc tính. Có thể thực hiện các công thức toán trên dữ liệu. Ví dụ, tạo một table tạm thời những vị trí mẫu có tổng BOD, COD nhỏ hơn 10mg/l. Sử dụng biểu thức: BOD + COD < 10 Chúng ta đã yêu cầu MapInfo cộng số cột BOD với số trong cột COD và so sánh chúng với số 10. Có hai cách thực hiện biểu thức này. Đánh vào trực tiếp biểu thức. Dùng khi tạo các biểu thức đơn giản, phương pháp này nhanh. Nhấn nút Assist trong hộp thoại Select và xây dựng biểu thức sử dụng danh sách trong hộp thoại Expression. Phương pháp này khi xây dựng các biểu thức phức tạp. hộp thoại Expression cho phép ba thanh kéo cho phép xây dựng biểu thức: columns, operators, và functions. Các trường (Columns) Hộp này cho phép liệt kê danh sách tất cả cột trong table đã chọn. Các toán tử (Operators) Hộp này chứa các ký hiệu toán và toán tử logic (cộng (+), trừ (-), nhân (*), chia (/), lớn hơn (>), nhỏ hơn (<), và dấu bằng (=). Dùng những ký hiệu này tạo các công thức toán. Ví dụ, từ table Dân số muốn chọn những vùng có tổng số lớn hơn 1000000 người. Tổng số dân bằng tổng số NAM và NU. Có hai cột trong table: NAM, NU. Sử dụng công thức: NAM + NU < 1000000 Ngoài ra còn một số toán tử phép hợp, giao như AND, NOT, OR và LIKE. Những hàm số (Functions) Hộp này chứa hàm toán đưa vào một hay nhiều thông số và trả lại giá trị. Sử dụng hàm số thực hiện những hàm số toán học trên dữ liệu trong cột. Ví dụ: abs() Lấy giá trị tuyệt đối của số trong cột chỉ định. Ví dụ, nhà khí tượng muốn chọn tất cả ngày trong năm có nhiệt độ lớn hơn 10oC hay nhỏ hơn nhiệt độ trung bình quốc gia. Có table và cột AVG_DIFF chứa chứa sự khác nhau giữa nhiệt độ trung bình QG và TB TP. Tạo biểu thức sau: AVG_DIFF 10 Biểu thức này điều khiển MapInfo chọn những bản ghi có nhiệt độ trung bình nhỏ hơn -10oC hay lớn hơn +10oC. Hay có thể tạo theo biểu thức: abs(AVG_DIFF) > 10 Các bước sử dụng chọn lựa. Quá trình chọn lựa dữ liệu theo các bước sau: 1. Chọn Select từ Menu Query. Hướng dẫn thực tập GIS - Bài 7 - Lựa chọn dữ liệu trong phần mềm MapInfo 72 2. Xác định table chúng ta chọn lựa. 3. Tạo một biểu thức logic sẽ sử dụng chọn dữ liệu. 4. Chọn cột chứa các chất vấn dữ liệu. Để xem kết quả chọn, chọn ô Browse. MapInfo tạo ra Browser của table mới. Thế nào là lựa chọn SQL ? Sự lựa chọn dữ liệu tạo ra những tập con dữ liệu dựa trên một hay nhiều biến. Chúng ta tạo ra các chọn lựa bằng các công thức toán hay chất vấn trên dữ liệu. - Có bao nhiêu người sinh sống tại Châu Âu? - Khu vực nào có mật độ dân số cao? MapInfo chứa những kết quả câu hỏi trong những table tạm thời gọi là table chất vấn (query tables). Ê Với lệnh Select cho phép công thức có trật tự, Những bản ghi chọn ra bằng lệnh Select luôn có những thông tin giống như trên dữ liệu gốc. Thực tế, chúng là cùng bản ghi và sắp xếp lại với nhau. Ê Với SQL Select thực hiện được nhiều hơn, có thể tạo ra các query tables chứa những thông tin ẩn trong table gốc. Hộp thoại SQL Select khá đơn giản tạo ra những chọn lựa hiệu quả. Có thể đánh trực tiếp vào hay sử dụng menu trượt tạo ra các biểu thức logic. Ví dụ: Tính mật độ dân số với SQL Lưu trữ các chất vấn dữ liệu (Saving Queries) Bất kỳ một chất vấn tạo ra bằng lệnh Select hay SQL Select có thể lưu như là MapInfo Query table. Query table gồm file *.TAB và *.QRY. Sau khi thực hiện Select hay SQL Select, chọn File > Save Query lưu những chất vấn như table. Khi mở table này thì table gốc chấn vấn trên đó sẽ mở ra và thực hiện chất vấn. Chú ý: Những chất vấn tạo ra dựa trên chất vấn khác không lưu như là table hay trong workspace. Lưu chất vấn tới Workspaces Khi mở workspace có chứa các chất vấn, những chất vấn này sẽ thực hiện và những cửa sổ này tạo bởi chất vấn sẽ được mở. Không giống như lưu query như table, file *.TAB không được tạo ra khi lưu query tới workspace. Chú ý: Lưu query trong workspace, Save Queries trong ô Workspaces cần chọn trong Startup preferences (Options > Preferences > Startup). Những chất vấn mẫu Những chất vấn mẫu cho phép lưu những tiêu chuẩn Select hay SQL như mẫu sử dụng lại chúng. Chúng sẽ tiết kiệm cho người sử dụng xây dựng các tiêu chuẩn lựa chọn mỗi khi sử dụng chúng. Cả hai hộp thoại Select và SQL Select đều có tùy chọn Load Template và Save Template cho phép lưu dễ dàng. Những mẫu chất vấn rất cần thiết khi tạo lại các chất vấn với nâng cấp các lựa chọn hay thực hiện các chất vấn trên table có cùng cấu trúc trường dữ liệu. Lưu trữ mẫu Hướng dẫn thực tập GIS - Bài 7 - Lựa chọn dữ liệu trong phần mềm MapInfo 73 Sau khi đặt các điều kiện cho chất vấn Select hay SQL Select, nhấn nút Save Template lưu các tiêu chuẩn thành mẫu (hay thành các file query - *.QRY). Hộp thoại The Save Dialog to Query File, xem thêm (Options > Preferences > Directories). Chú ý: Những chất vấn không cần quá phức tạp hoặc phải đúng cú pháp. Sử dụng lại các mẫu Có thể sử dụng lại bất kỳ mẫu lựa chọn đã lưu. nhấn nút Load Template. Chọn file (*.QRY) muốn sử dụng nhấn Open. Những cột dẫn xuất Cột dẫn xuất là những cột trong query table. Nội dung chúng tạo bởi áp dụng các biểu thức cho những cột số liệu tồn tại trong một số table cơ sở. Ví dụ, cột mật độ dân số là cột dẫn xuất. Mặc định, hộp Select Columns có (*), chỉ ra tất cả các cột trong table cơ sở sẽ có trong query table. Nếu không muốn những cột này, xóa dấu (*) và đưa vào danh sách những cột cần sử dụng. Có thể tạo những cột dẫn xuất dựa trên aggregate functions count, sum, avg, wtavg, max, min. Ví dụ: 1. Sum(Population). Sẽ tính tổng dân số toàn Thế giới. 2. Sum(Area(obj), “sq km”). Sẽ tính tổng diện tích toàn Thế giới. Tạo cột định danh Khi MapInfo tạo cột dẫn xuất, nó sẽ sử dụng những biểu thức như là tên các cột dẫn xuất, rất bất tiện. Có thể xác định (định danh- alias) cho cột. ví dụ, cột population density trong DENSITY Browser có tên: Population / Area(obj, “sq mi”) 1. Có thể thay đổi tên cột cần một số mô tả. Định danh cần theo qui ước. Nó cần cách biệt biểu thức một khoảng trắng và đóng kín bằng “”. Ví dụ: Country, Population / Area(obj, “sq mi”) “POP_DENSITY” Khi MapInfo tạo các table query tạm thời, mật độ dân số có tên POP_DENSITY. 2. Có thể định danh hay đổi tên bất kỳ cột nào trong table, không chỉ cột dẫn xuất. Ví dụ: Country “TERRITORY”, Population / Area(obj, “sq mi”) “POP_DENSITY” Nhóm dữ liệu Khi nhóm dữ liệu, MapInfo sẽ thực hiện các thao tác toán học trên tất cả các cột dữ liệu các bản ghi trong table. Không giống như lệnh Select, chỉ cho phép thực hiện hàm toán học trong những bản ghi riêng biệt, SQL cho phép Nhóm - aggregate (hay tính tổng - summarize) dữ liệu qua các bản ghi. Khi nhóm dữ liệu cần xác định: 1. Những bản ghi nào sẽ nhóm. 2. Những dữ liệu gộp thế nào. Hướng dẫn thực tập GIS - Bài 7 - Lựa chọn dữ liệu trong phần mềm MapInfo 74 3. MapInfo có sáu hàm gộp dữ liệu: 4. Count(*), Sum (expression), Average (expression), WtAvg (expression), Max (expression), Min (expression). Nhóm, sắp xếp dữ liệu theo cột. Có thể nhóm SQL query bằng những cột mà dữ liệu có chứa cùng một giá trị. Nối dữ liệu các table sử dụng SQL Khi thực hiện SQL Select với nhiều table, MapInfo cần nối thông tin từ những table khác nhau. Tạo ra những bản đồ có những đối tượng bản đồ với những thông tin từ nhiều bảng dữ liệu khác nhau. PHẦN THỰC HÀNH Tạo ra những dữ liệu mới (Subset of a File). 1.1.1 Lưu trữ các tiêu chuẩn chất vấn Sử dụng lại các tiêu chuẩn chất vấn. 1.1.2 Tạo những cột dữ liệu dẫn xuất. Tạo các cột dữ liệu mới bằng cách sử dụng các hàm gộp dữ liệu - aggregate functions (count, sum, avg, wtavg, max, min). Ví dụ: 1. Sum(Population). 2. Sum(Area(obj, "sq mi") Hướng dẫn thực tập GIS - Bài 7 - Lựa chọn dữ liệu trong phần mềm MapInfo 75 1.1.3 Tạo những cột định danh (Creating Column Aliases) Tạo cột định danh cho kết quả Query SQL 1. Country, Pop_1994/ Area(obj, "sq mi") "POP_DENSITY" 2. Country “TERRITORY”, Population / Area(obj, “sq mi”) “POP_DENSITY" 1.1.4 Lưu kết quả tạo dữ liệu mới. Lưu theo query (*.QRY) Lưu Workspace (*.wor) Lưu kết quả thành file (*.tab) 1.1.5 Nhóm dữ liệu (Tập hợp dữ liệu-Aggregate). Sử dụng các hàm gộp dữ liệu thực hiện các tiêu chuẩn sau (dựa trên dữ liệu bản đồ thế giới): Hướng dẫn thực tập GIS - Bài 7 - Lựa chọn dữ liệu trong phần mềm MapInfo 76 Count(*): đếm số bản ghi trong nhóm. lấy dấu (*) là đối số. Sum (expression): tính tổng số những giá trị trong cho tất cả bản ghi trong nhóm. Average (expression): Tính toán trung bình cho những giá trị tất cả các bản ghi trong nhóm. WtAvg (expression): Tính toán trung bình trọng số cho những giá trị tất cả các bản ghi trong nhóm. Max (expression): tìm giá trị lớn nhất trong cho các dữ liệu trong nhóm. Min (expression): tìm giá trị nhỏ nhất trong cho các dữ liệu trong nhóm. 1.1.6 Nhóm và sắp xếp dữ liệu theo cột. Sử dụng Group By Columns để tính các table kết quả (tổng phụ - Subtotal) Group By Columns trong hộp thoại là tùy chọn. Nếu đưa vào một hay nhiều tên cột dữ liệu, table những kết quả chứa các tổng phụ hoặc thông tin tập hợp của table. Khi xác định giá trị cho Group By Columns, MapInfo chất vấn những cột xem những hàng nào có cùng giá trị trong cột này. Nếu ta có một CSDL 61 Tỉnh thành Việt nam, và nhóm theo cột vùng, MapInfo lấy tất cả các Tỉnh thuộc ĐNB vào một nhóm, và các Tỉnh Tây Nguyên vào nhóm khác vv... MapInfo tính toán thông tin tập hợp(sums, averages, vv...) cho mỗi nhóm. Xác định vai trò tổng phụ: 1. Trong Group By Columns, đưa vào tên hay số thứ tự cột cần tính tổng phụ. Ví dụ, muốn tính tổng diện tích các tỉnh thuộc Đồng bằng Nam Bộ, đưa vào tên vùng (cột mô tả các vùng Việt Nam). 2. Đưa vào tên cùng tên cột Vùng trong Select Columns. Hướng dẫn thực tập GIS - Bài 7 - Lựa chọn dữ liệu trong phần mềm MapInfo 77 3. Đưa vào một hay nhiều phương pháp tập hợp dữ liệu (Sum, Count, Avg, Min, Max) trong Select columns. Nhớ cách nhau bằng dấu phẩy. Tất cả cột trong Select Columns không dựa trên chức năng tập hợp (aggregate) cần nhất thiết liệt kê trong Group By Columns. Chúng là những cột MapInfo kiểm tra xác định nhóm số liệu. Mỗi tập hợp của duy nhất giá trị dữ liệu trong cột có một hàng trong table chất vấn (query table). Các cột dẫn xuất cần thiết kế bằng số chỉ ra mối quan hệ vị trí: "1," "2," "5," cho cột đầu tiên, thứ hai, thứ năm. Trong Group By Columns, cần xác định tên hay vị trí thứ tự chúng. Có thể đưa vào Group By Columns một hay nhiều giá trị. MapInfo đầu tiên nhóm theo cột đầu tiên trong danh sách. Với những cái đã nhóm, MapInfo gộp những hàng theo cột hai và tiếp theo. Cho mỗi kết quả hàng, table chất vấn chứa những giá trị cho tất cả cột dựa trên chức năng tập hợp dữ liệu. Chú ý: Những cột trong Select Columns dựa trên chức năng tập hợp dữ liệu không thể liệt kê trong Group By Columns. Những cột trong Select Columns không dựa trên thao tác tập hợp nên liệt kê trong Group By Columns. Hướng dẫn thực tập GIS - Bài 7 - Lựa chọn dữ liệu trong phần mềm MapInfo 78 1.1.7 Nối các Table sử dụng SQL. Sử dụng (Where Condition) nối dữ liệu 1. Sử dụng cửa sổ Mapbasic đánh lệnh theo cú pháp: Select * from A,B where A.field1 = B.field1 Select * from A,B where B.field1 = A.field1 2. Chú ý thứ tự khi phân tích quan hệ hình học đối tượng: Select * from states, cities where states.obj contains cities.obj Select * from states, cities where cities.obj within states.obj Thứ tự các lệnh không quan trọng 1.1.8 Tìm thông tin trong cột dữ liệu–Sử dụng hàm InStr(). Hàm InStr() tìm một phần chuỗi ký tự trong một chuỗi lớn. Đây là hàm số sử dụng với trường ký tự tìm vị trí ký tự đặc biệt hay một nhóm ký tự. Ví dụ, Muốn chọn những con đường trong tên của nó có chuỗi “ie” trong trường tên đường phố. Set up your SQL Select statement as follows: Nếu InStr thực hiện tìm thấy chuỗi “ie" nó sẽ trả lại vị trí lớn hơn 1. Cú pháp hàm INSTR như sau: INSTR ( position, string, substring): position là vị trí bắt đầu tìm. Hướng dẫn thực tập GIS - Bài 7 - Lựa chọn dữ liệu trong phần mềm MapInfo 79 string là trường dữ liệu chứa ký tự. substring là chuỗi ký tự cần tìm kiếm Chú ý Nếu không có chuỗi tìm thấy hàm trả lại số 0. 1.1.9 Chọn những bản ghi dữ liệu chẵn hay lẻ. 1.1.10 Tìm những bản ghi có giá trị lặp lại trong cột. 1. Thường dữ liệu tạo nên bởi nhiều người. Một số trường hợp dữ liệu bị lặp lại trong một bản ghi khác. Điều này có thể thực hiện bằng SQL. 2. Ví dụ : Tìm những thông tin lặp lại trong dữ liệu. Đầu tiên sử dụng SQL Select tạo ra một table chất vấn với hai cột dữ liệu.(sử dụng count(*)) Hướng dẫn thực tập GIS - Bài 7 - Lựa chọn dữ liệu trong phần mềm MapInfo 80 Cột đầu tiên danh sách các dữ liệu duy nhất trong cột. Cột hai danh sách số lần dữ liệu lặp lại. 1.1.11 Tính khoảng cách tới điểm cố định. 1. Xác định vị trí điểm cố định. X=?, Y=?. Chọn Query > SQL Select 2. Nhấn OK. Sẽ nhận được kết quả là khoảng cách từ các đối tượng bản đồ tới điểm đã chọn. 3. Lưu trữ kết quả. Chọn dữ liệu kết hợp nhiều tiêu chuẩn. Sử dụng SQL select thực hiện các phân tích sau: Hướng dẫn thực tập GIS - Bài 7 - Lựa chọn dữ liệu trong phần mềm MapInfo 81 ª Tính mật độ dân số (theo toàn Thế giới, theo từng Châu lục, theo từng quốc gia) ª Phân tích sau: kết quả trên bản đồ thế giới có bao nhiêu quốc gia. ª Thể hiện kết quả chọn quốc gia có số dân (lớn nhất, nhỏ nhất) cho mỗi châu lục. ª Thể hiện kết quả phân tích dữ liệu trên bản đồ thế giới số quốc gia mỗi châu lục ? ª Thể hiện kết quả phân tích tính dữ liệu trên bản đồ thế giới số quốc gia mỗi châu lục sắp xếp tăng dần ? ª Thể hiện kết quả phân tích dữ liệu trên bản đồ thế giới Quốc gia có diện tích lớn nhất mỗi châu lục ? Áp dụng cho ranh giới Việt Nam sử dụng SQL select thực hiện các phân tích sau: ª Thể hiện kết quả tính diện tích theo vùng (Đông Nam Bộ, Tây nguyên, ĐBNB …..) ª Tìm những địa phương có trạm khí tượng thủy văn. ª Tìm những địa phương có diện tích lớn nhất theo từng khu vực. ª Địa phương có diện tích (lớn nhất, nhỏ nhất) Việt nam. ª Tìm những địa phương không có trạm thủy văn. ª Dựa theo số liệu cá nhân tính gộp theo nhóm số liệu theo vùng (năm 1995, 1996, 1997 vv..)