6. Truy vấn dữ liệu vector

Thực hành về truy vấn/chọn dữ liệu vector: truy vấn dựa vào thuộc tính và truy vấn dựa vào vị trí.

  • Ở các bài trước, chúng ta đã học cách tạo (số hóa) đối tượng, nhập/tính toán dữ liệu thuộc tính, và thể hiện bản đồ (Symbology). Bài này sẽ giới thiệu những chức năng chọn đối tượng dựa trên các điều kiện đặt ra cho dữ liệu thuộc tính, hoặc dựa trên vị trí của đối tượng.
  • Mục đích của việc chọn đối tượng là sau đó chúng ta có thể xử lý riêng những đối tượng đã chọn, ví dụ: phân tích không gian, thống kê hoặc xuất dữ liệu riêng.

Dữ liệu thực hành

Lớp Vietnam_provinces_2015population đã làm ở Homework số 7, Bài 4. Lớp này chính là Vietnam_Provinces đã liên kết thêm các trường thông tin dân số 2015.

Một số lớp dữ liệu khác ở đây: Download dữ liệu Dataset Part 5 ở đây.
Các lớp bao gồm:

  • adm2: ranh giới hành chính cấp huyện (trước sát nhập)
  • Vietnam_Landuses_OSM: bản đồ hiện trạng sử dụng đất, nguồn từ OpenStreetmap
  • Vietnam_Rivers: mạng lưới sông ngòi Việt Nam.

Chọn đối tượng thủ công dựa vào chuột và bàn phím

  • Như đã đề cập ở Bài 2, công cụ Select Features by Area or Single Click (gọi tắt là Select Features) được dùng để chọn đối tượng. Thực hiện: chọn lớp cần thao tác ở Layers Panel > ấn chuột trái vào đối tượng cần chọn, sau đó đối tượng được chọn sẽ được tô sáng màu vàng.
  • Có thể chọn nhiều đối tượng bằng cách kết hợp Ctrl + click chuột trái khi sử dụng Select Features.
  • Bỏ chọn bằng cách ấn chuột trái ra ngoài khoảng trống ở Map Canvas hoặc ấn nút Deselect Features.
    Ảnh 1
    Chọn nhiều đối tượng bằng Ctrl + click chuột trái
  • Nếu dùng công cụ Select Features vẽ hình chữ nhật thì tất cả đối tượng giao cắt với hình chữ nhật đó sẽ được chọn.
Ảnh 1
Dùng Select Features vẽ hình chữ nhật để chọn nhiều đối tượng
Ảnh 1
Kết quả
  • Công cụ Select Features còn một số sub-menu:
    • Select Features by Polygon: Công cụ này cho phép người dùng tạo một polygon, sau đó những đối tượng giao cắt với polygon đó là được chọn.
    • Select Features by Freehand: Vẽ tự do để tạo vùng chọn, vẽ tự do nghĩa là vẽ bằng cách di chuột thay vì ấn chuột trái mỗi lần tạo đỉnh (vertex) như vẽ polygon. Khi vẽ xong cần ấn chuột phải để báo hiệu hoàn thành.
    • Select Features by Radius: chọn các đối tượng quanh bán kính nhất định với tâm là vị trí chuột.

Ảnh 1
Sub-menu của Select Features
Ảnh 1
Select Features by Polygon

  • Sau khi chọn xong, ta có thể xuất riêng những đối tượng được chọn ra một lớp mới. Thực hiện: Chọn đối tượng > Ấn chuột phải vào lớp ở Layers Panel > Export > Save select Features As > Đặt tên file và tick vào ô “Save only selected features”.
    Ảnh 1
    Lưu các đối tượng đã chọn sang lớp mới

Chọn đối tượng sử dụng chức năng filter

  • Cách hoạt động của chức năng này tương tự như cách thực hiện Rule-based Symbology.
  • Giả sử ta cần chọn riêng thành phố TW, cần thực hiện như sau:
    • Chuột phải vào lớp mục tiêu ở Layers Panel > Filter > Hộp Query Builder hiện ra.
    • Đánh vào ô Provider Specific Filter Expression: "ENGTYPE_1"='City|Municipality|Thanh Pho'
    • Ấn OK
      Ảnh 1
      Kết quả chọn bằng Filter

Chọn đối tượng dựa trên thuộc tính (Select by Expression)

Nhiệm vụ của phần này là chọn các tỉnh có mật độ dân số lớn hơn một ngưỡng nào đó, ví dụ ≥ 100 người/km2.
Thực hiện:

  • Chọn công cụ Select Features by Expression
    Ảnh 1
    Select Features by Expression
  • Đánh công thức vào ô Expression: "Density" >= 100
  • Chú ý “Density” chính là trường Density (mật độ dân số) mà bạn đã tạo ra từ Homework số 7, Bài 4.
    Ảnh 1
    Kết quả chọn dựa trên thuộc tính mật độ dân số không nhỏ hơn 100 người/km2

Chọn đối tượng dựa trên vị trí (Select by location)

Trong QGIS, công cụ Select by Location (Chọn theo vị trí) cho phép bạn chọn các đối tượng không gian (điểm, đường, vùng) dựa trên mối quan hệ không gian với một lớp khác. Đây là một công cụ cực kỳ quan trọng trong phân tích không gian, giúp trả lời các câu hỏi như: “Những thửa đất nào nằm trong khu quy hoạch?”, hay “Những trường học nào nằm trong bán kính 1km từ trạm y tế?”.

Ở phần này, ta sẽ sử dụng lớp ranh giới cấp huyện adm2.

Chú ý: Khi sử dụng Select by Location, cần đảm bảo các lớp liên quan đều có chung hệ quy chiếu tọa độ (CRS). Bạn có thể dùng công cụ chuyển đổi hệ tọa độ (reproject) để phục vụ việc đưa các lớp về một CRS thống nhất. Cách thực hiện: Vector > Data Management Tools > Reproject layer

Nhiệm vụ của phần này là chọn các huyện nằm hoàn toàn bên trong ranh giới các tỉnh. Các bước thực hiện:

  • Add lớp Vietnam_Provinces và adm2 vào Map Canvas.
  • Làm trong suốt màu nền của các lớp. Xác lập đường viền của Vietnam_Provinces –> tăng kích thước, màu đỏ. Đường viền của adm2 –> màu trắng.
  • Ấn vào biểu tượng Select by Location
    Ảnh 1
    Nút Select by Location
  • Xác lập các tham số ở Tab Parameters:
    • Select features from là chọn đối tượng của lớp nào: adm2
    • Geometric Predicate là quan hệ hình học, bao gồm các quan hệ sau:
      • intersect: Cắt nhau, chạm nhau ở bất kỳ điểm nào
      • contain: Lớp A chứa hoàn toàn lớp B
      • within: Lớp A nằm hoàn toàn bên trong lớp B
      • touch: Hai lớp chạm mép nhau
      • overlap: Có phần giao nhau nhưng không chứa nhau hoàn toàn
      • cross: Đường/đối tượng cắt qua nhau
      • equal: Hai hình học giống nhau hoàn toàn
        Trong bài này yêu cầu chọn các huyện nằm hoàn toàn bên trong các tỉnh, do đó tick vào ô are within.
    • By Comparing to the features from: lớp còn lại –> Vietnam_Provinces

Ảnh 1
Kết quả khi chọn dựa trên vị trí

Homework

Homework phần chọn đối tượng dựa trên thuộc tính

  1. Hãy dùng Select by Expression để chọn các tỉnh thỏa mãn điều kiện UR_Ratio ≥ 1. Sau đó lưu các tỉnh này sang một lớp mới với tên là Dense_Urban_Regions.
  2. Mở lớp mới ‘Dense_Urban_Regions’, chọn trong số các tỉnh đó top 5 tỉnh có Urban density cao nhất. Export top 5 tỉnh đã chọn này sang một lớp mới. Thể hiện bản đồ theo phương pháp Graduated, label dựa trên urban density value. Yêu cầu kết quả như ảnh dưới.
    Ảnh 1
    Kết quả mẫu

Homework phần chọn đối tượng dựa vào vị trí

  1. Dựa trên 2 lớp Vietnam_Provinces và adm2, dùng các công cụ Filter và Select by Location để tạo một lớp mới bao gồm các huyện của riêng tỉnh Thái Nguyên (9 huyện). Đặt tên lớp là ThaiNguyen_districts.
  2. Tính diện tích các huyện theo đơn vị m2.
  3. Add lớp Vietnam_Landuses_OSM. Chọn thủ cộng huyện “Vo Nhai”. Dùng Select by Location để chọn ra các đối tượng land use của riêng Vo Nhai, sau đó lưu thành một lớp mới với tên “Vo_Nhai_Landuses”. Gợi ý: dùng quan hệ intersect.
    Ảnh 1
    Land uses của Vo Nhai
  4. Thể hiện bản đồ lớp “Vo_Nhai_Landuses” theo phương pháp Categorized, dựa trên trường ‘fclass’.
👉 Theo dõi page Thầy Tùng HANU: GIS / Data Analysis https://www.facebook.com/thayTungHANU để trao đổi thông tin và nhận thông báo các bài viết mới về GIS, Sustainability & Climate Change, Data Analysis!
Previous
Next