Thursday, June 12, 2014

Tạo liên kết đối tượng không gian đến trang Wikipedia sử dụng action trong QGIS

Quách Đồng Thắng
Trung tâm Ứng dụng GIS TP.HCM

QGIS hỗ trợ tính năng rất hay, cho phép người dùng tự tạo "action" cho đối tượng không gian khi có thao tác click, như mở một hình ảnh, một đoạn video hay truy cập đến một ứng dụng bất kỳ. Bài viết trình bày cách tạo một action trong QGIS thông qua ví dụ kết nối các quốc gia đến trang Wikipedia, giúp người dùng có thể truy cập nhanh đến các khái niệm được định nghĩa trong Wikipedia cho một đối tượng trên bản đồ.

Đầu tiên, download bản đồ thế giới world_borders và mở trong QGIS. Trong bảng thuộc tính của world_borders có trường "NAME" là tên quốc gia. Chúng ta sẽ kết nối thuộc tính NAME với trang Wikipedia tương ứng bằng cách định nghĩa một action bằng Python:

Vào properties --> Actions. Mục Type chọn Python, đặt tên trong trường Name (ví dụ Wikipedia), mục Action thêm vào đoạn script Python sau:

from PyQt4.QtCore import QUrl; from PyQt4.QtWebKit import QWebView; myWV = QWebView(None);
myWV.load(QUrl('http://vi.wikipedia.org/wiki/[% "NAME" %]')); myWV.show()

Lưu ý mun hin th trang Wikipedia tiếng Vit thì thay http://wikipedia.org thành http://vi.wikipedia.org 


(Mun tham kho các Action sn có, chn Add default actions)


Tiếp theo chn công c action đ click vào đi tượng không gian và xem trang Wikipedia tương ng.

Nhân dp khai mc Worldcup 2014, chúng ta cùng tìm hiu đt nước Brazil:


Nếu mun "google" thuc tính ca đi tượng không gian, c th là tên quc gia trong world_borders, ta đnh nghĩa action như sau: type là Open, Name là "Google", Mc Action nhp vào
http://www.google.com/search?q=[% "NAME" %]




Tiếp theo, nếu mun to thêm mt action đ m mt hình nh tiêu biu cho tng quc gia thì có th to thêm trường "image" vi kiu string lưu tr đường dn đến file nh trên máy. Đ thun tin khi cp nht, mc Fields/Line edit chn là Filename (QGIS s m dialog đ người dùng chn file nh thay vì phi nhp th công)


Sau đó t
o mt action mi vi type là Open, Name là "Hình nh", Mc Action chn Insert field "image".  Action s gi trình xem nh mc đnh ca Windows đ hin th hình nh:



Kết qu:





Friday, June 6, 2014

Chuyển đổi tọa độ VN2000 – WGS84 trong QGIS

Quách Đồng Thắng
Trung tâm Ứng dụng GIS TP.HCM

Giả sử ta có dữ liệu Tp.HCM ở hệ tọa độ VN2000. Để chuyển dữ liệu này sang WGS84 trong QGIS, thực hiện các bước sau đây:
Vào Setting à Custom CRS àAdd new CRS

 Đặt tên là Vn2000toWGS84_HCM, ở trường Parameters nhập vào:
+proj=tmerc +lat_0=0 +lon_0=105.75 +k=0.9999 +x_0=500000 +y_0=0 +ellps=WGS84 +towgs84=-192.873,-39.382,-111.202,0.00205,0.0005,-0.00335,0.0188 +units=m +no_defs
Các tham số ở đây là kinh tuyến trục địa phương 105o45’, múi chiếu 3 độ của Tp.HCM. Các địa phương khác sử dụng kinh tuyến trục địa phương được hướng dẫn theo Thông tư số 973 /2001/TT-TCĐC, ngày 20/06/2001.
Bộ tham số sử dụng trong bài viết tham khảo tại  georepository/ VN2000 to WGS 84 (2). Các tham số này được mô tả là phù hợp với khu vực Đồng Bằng Sông Cửu Long, bao gồm Tp.HCM, do Trường Đại học Bách Khoa Tp.HCM công bố năm 2010.

Sau khi thiết lập xong, click CRS status  (góc dưới bên phải), hoặc vào Project properties/ CRS, chọn Enable ‘on the fly’ CRS transformation với hệ tọa độ đích là WGS84 (chuyển từ VN2000 sang WGS84).

Tiếp theo, chuột phải vào lớp dữ liệu cần chuyển tọa độ, chọn Set Layer CRS là Vn2000toWGS84_HCM (vừa tạo ở bước trên)

Sau bước này, QGIS sẽ tự động chuyển đổi tọa độ VN2000 sang WGS84 theo các tham số được thiết lập trong custom CRS.

Để QGIS “nhớ” việc chuyển đổi này cho lần load sau, cần save as layer với custom CRS Vn2000toWGS84_HCM (giả sử đặt tên là gt_pl_WGS84_HCM)

Sau bước này, QGIS sẽ tạo ra file gt_pl_WGS84_HCM.qpj có nội dung:
PROJCS["unnamed",GEOGCS["WGS 84",DATUM["unknown",SPHEROID["WGS84",6378137,298.257223563],TOWGS84[-192.873,-39.382,-111.202,0.00205,0.0005,-0.00335,0.0188]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105.75],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
Khi mở shapefile này, QGIS sẽ đọc các thông số trong gt_pl_WGS84_HCM.qpj để “on the fly” projection đến hệ tọa độ mong muốn.
Một điểm cần lưu ý là do cách quản lý projection của QGIS hơi khác so với ArcGIS (QGIS có thể đọc các tham số chuyển đổi được định nghĩa sẵn trong file *.qpj), nên nếu mở shapefile bằng ArcGIS thì bản chất shapefile vẫn chưa thực sự được chuyển về WGS84. Hình sau cho thấy gt_pl_WGS84_HCM vẫn ở hệ VN2000 khi mở trong ArcMap.

Để có thể thực sự chuyển shapefile về WGS84 cho đa số các phần mềm GIS khác có thể hiển thị đúng, có thể tham khảo bài viết giới thiệu công cụ Chuyển đổi VN2000 sang WGS84 trong ArcGIS.
Có thể thấy các tham số công bố trên georepository hơi khác so với bộ tham số của Bộ TNMT. Để sử dụng bộ tham số này, ta tạo thêm một custom CRS khác với tên là Vn2000toWGS84_HCM_BoTNMT, ở trường Parameters nhập vào:
+proj=tmerc +lat_0=0 +lon_0=105.75 +k=0.9999 +x_0=500000 +y_0=0 +ellps=WGS84 +towgs84=-191.90441429, -39.30318279-111.45032835, -0.00928836, 0.01975479, -0.00427372, 0.252906278 +units=m +no_defs
Các thao tác chuyển đổi được thực hiện tương tự các bước trên. Kết quả bước đầu cho thấy sai lệch tương đối giữa 2 bộ tham số này khi chuyển sang WGS84 là khoảng 1.2m.