Tuesday, September 4, 2018

Tìm kiếm chủ rừng trên nhiều xã, huyện trong phần mềm FRMS

Tôi nhận được khá nhiều câu hỏi là làm thế nào để tìm kiếm hoặc lọc ra danh sách các lô rừng của 1 chủ rừng nào đấy trong một huyện hoặc một tỉnh trong phần mềm FRMS.
Trường hợp này thực ra là không thể thực hiện được trong Qgis vì mỗi chủ rừng trong hệ thống dữ liệu FRMS được quy định bởi 1 mã chủ rừng, mà mã chủ rừng này lại phát sinh theo xã nên nếu 1 chủ rừng phát sinh ở 2 xã (nghĩa là có rừng trên 2 xã) thì mã chủ rừng của chủ rừng đó ở 2 xã này sẽ không giống nhau (hy hữu mới có trường hợp giống nhau)

Ví dụ như sau:
Tôi là 1 chủ rừng ở Thị trấn Bồng Sơn (có mã xã là 21640). Mã chủ rừng của tôi ở xã này là 30 (như hình dưới)


 Đồng thời tôi cũng có rừng ở xã Hoài Phú (mã xã là 21652) và mã chủ rừng ở trong xã này là 138 (hình dưới)


Nếu chúng ta sử dụng chức năng Lọc và Tìm kiếm của phần mềm FRMS thì không thể tìm ra một lần 2 mã chủ rừng này đc.
Hình này ta thấy nếu không chọn xã thì không thể chọn được chủ rừng, mà nếu chọn xã thì chỉ có thể chọn được 1 mã chủ rừng trong xã đó.
Chức năng tìm kiếm nâng cao cũng không hỗ trợ trường hợp này.

Vậy đối với trường hợp này chúng ta phải làm thế nào? Tôi không biết cụ thể tất cả mục đích của các anh chị đặt câu hỏi, nên giờ tôi sẽ thực hiện tìm kiếm ra kết quả và xuất ra Shapefile để chúng ta có thể add vào mapinfo hoặc qgis.

Bước 1: Vào pgAdmi3 để thực hiện lọc theo câu lệnh SQL.
Mở giao diện quản lý cơ sở dữ liệu pgAdmin3

Bước 2: Gõ lệnh select để tìm kiếm tất cả chủ rừng có tên là Đài.

Lệnh SQL như sau: select * from FOREST_ACTOR where actor_name like '%Đài%'

Giải thích lệnh: lấy tất cả thông tin từ bảng chủ rừng với điều kiện tên của chủ rừng có chứa chuỗi ký tự Đài. (Tôi ví dụ thôi nhé, mọi người kiếm người khác mà tìm chứ tôi không có m2 rừng nào đâu)
- Giải thích thêm chổ actor_name like '%Đài%' là giá trị trường actor_name có chứa chuỗi ký tự 'Đài' là chấp nhận hết, trước chuỗi và sau chuỗi là gì không quan trọng (quy định bởi 2 dấu %).
Kết quả sau khi thực thi lệnh Select trên

Nhìn vào bảng kết quả chúng ta thấy rằng có 3 chủ rừng tên Đài trong hệ thống, lúc này ta lọc lại bằng cảm tính và xác định 2 bản ghi mã 30 ở xã 21640 và mã 138 ở xã 21652 là cùng 1 ông (cái này dựa vào kinh nghiệm, thông tin về tên, địa chỉ, ... nói chung hoàn toàn cảm tính, máy không can thiệp ở chổ xác định này)

Sau khi đã xác định được các mã chủ rừng để  định dạnh 1 chủ rừng, ta thực hiện tiếp lệnh sau để tìm kiếm lô rừng theo các mã chủ rừng trên:

select commune_code as maxa, actor_id as machurung, * 
from PLOT 
where (commune_code=21640 and actor_id=30) or (commune_code=21652 and actor_id=138)
order by commune_code, actor_id

Giải thích lệnh: Lấy ra trường commune_code (đổi tên thành mã xã), actor_id (đổi tên thành mã chủ rừng), và tất cả các trường trong bảng lô rừng với điều kiện các lô rừng này (của chủ rừng mã 30 ở xã 21640) HOẶC (của chủ rừng mã 138 ở xã 21652)

Kết quả thực thi lệnh sql
Nhìn vào bảng kết quả ta thấy được danh sách của các lô rừng thuộc sở hữu của 2 mã chủ rừng trên.

Đến đây ta có thể copy danh sách ra excel hoặc copy lệnh vào xuất ra shapefile để add vào Qgis hoặc Mapinfo.

Vào Checker Tool --> chọn xuất thành Shapefile

Kết nối đến dữ liệu (nhớ phải khởi động dữ liệu ở bảng điều khiên FRMS),  tick vào tùy chọn Sử dụng lệnh Select, dán lệnh Select vào ô bên dưới, bấm nút thay đổi để đặt tên cho Shapefile, cuối cùng bấm Thực thi để xuất ra Shapefile tương ứng.

Sau khi có Shapefile, mở phần mềm Qgis hoặc Mapinfo, add vào thử

Mở bảng thuộc tính xem thử

Thuộc tính giống như kết quả của lệnh Select mà ta thực thi ở trên.

Hiện tại thì tôi chỉ có thể thực hiện được cách đó để lọc ra được danh sách các lô rừng của chủ rừng trên nhiều xã, huyện. Anh chị nào có cách khác có thể comment phía dưới để hướng dẫn cho anh em nhé.

Tag: Tim kiem chu rung tren nhieu xa

Nếu thấy hữu ích hảy chia sẻ bài viết này trên:  

0 nhận xét:

Post a Comment