Trong chơng trớc, chúng ta đãhọc làm cách nào tạo ra các chọnlựa trên màn hình sử dụng các côngcụ
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: Selectand SQL Select.
13 trang |
Chia sẻ: haohao89 | Lượt xem: 6009 | Lượt tải: 4
Bạn đang xem nội dung tài 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, để 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..)