Hướng dẫn python for gis - python cho gis

Đây là loạt gồm 10 bài hướng dẫn về lập trình QGIS 3 với Python [PyQGIS]. Tôi đang cố gắng hết sức để đưa ra lời giải thích về lập trình QGIS Python với một số ví dụ. Hướng dẫn sẽ được thảo luận về một số chủ đề như làm việc với dữ liệu vectơ và raster, điểm đánh dấu, khung vẽ bản đồ, biểu tượng,…Đây không phải là một hướng dẫn hoàn chỉnh, vì vậy tôi sẽ thêm nhiều chủ đề khi tôi có được cái nhìn sâu sắc hoặc kiến ​​thức mới. Tôi đang sử dụng QGIS 3.0 cho hướng dẫn.
Đây không phải là một hướng dẫn hoàn chỉnh, vì vậy tôi sẽ thêm nhiều chủ đề khi tôi có được cái nhìn sâu sắc hoặc kiến ​​thức mới. Tôi đang sử dụng QGIS 3.0 cho hướng dẫn.

Bài 1: Bắt đầu với lập trình Python QGISBài 2: Thêm lớp VectorBài 3: Thêm lớp RasterBài 4: Làm việc với lớp VectorBài 5: Cách thêm/xóa trường và cập nhật giá trị thuộc tínhBài 6: Thêm dữ liệu CSVBài 7: Drawing MarkerBài 8: Vẽ Polyline và PolygonBài 9: Animate GPS TrackBài 10: Đặt và tải lại nguồn dữ liệu bản đồ cơ sở [Basemap] Bắt đầu với lập trình Python QGIS
Bài 2: Thêm lớp Vector
Bài 3: Thêm lớp Raster
Bài 4: Làm việc với lớp Vector
Bài 5: Cách thêm/xóa trường và cập nhật giá trị thuộc tính
Bài 6: Thêm dữ liệu CSV
Bài 7: Drawing Marker
Bài 8: Vẽ Polyline và Polygon
Bài 9: Animate GPS Track
Bài 10: Đặt và tải lại nguồn dữ liệu bản đồ cơ sở [Basemap]

Để bắt đầu sử dụng mã code Python trong QGIS, chúng tôi sử dụng Python Console. Click vào Python Console trong menu Plugins như hình:Python Console trong menu Plugins như hình:

Python Console sẽ được neo ở dưới cùng của cửa sổ QGIS như hình sau:

Cửa sổ Qgis với Python Console

Trong Python Console, bạn có thể gõ cú pháp Python. ví dụ để kiểm tra phiên bản Python chúng ta có thể sử dụng đoạn mã sau:

import sys
print [sys.version] 

Nhập các mã code trên trong Python Console và nhấn Enter, bạn sẽ nhận được phiên bản Python và một số thông tin tương tự như hình sau:

Python Console

Trong Console, chúng ta chỉ cần gõ một dòng cú pháp hoặc mã và sau đó thực thi nó. Mặc dù chúng ta có thể thực hiện một chức năng hoặc một quy trình lặp trong đó, nhưng sẽ rất khó để xử lý. Đó là lý do tại sao chúng tôi sử dụng Console chỉ với mục đích ngắn, chẳng hạn như để lấy một biến, đối tượng, danh sách,… Để mã hóa phức tạp hoặc dài, chúng tôi đang sử dụng trình soạn thảo. Để truy cập trình soạn thảo, chỉ cần nhấp vào biểu tượng giấy bằng bút chì như trong hình sau:

Python Editor

Trong hình trên có thể thấy một trình soạn thảo trống. Trong trình chỉnh sửa này, chúng tôi có thể viết mã code và có thể được lưu cho mục đích tiếp theo.

Arcgis là phần mềm GIS hỗ trợ xây dựng cơ sở dữ liệu rất mạnh. Bộ công cụ của phần mềm arcgis rất là đồ sộ, tốc độ xử lý rất linh hoạt và nhanh chóng. Hẳn ai sử dụng phần mềm này cũng thấy được sức mạnh của nó. Các công cụ arcgis được xây dựng cho toàn bộ các quốc gia trên toàn thế giới. Lên chắc hẳn khi bạn sử dụng bộ công cụ này sẽ có những công cụ chưa phù hợp với bạn, hoặc chưa đáp ứng được yêu cầu của bạn. Cho nên hiểu vấn đề này bản thân phần mềm arcgis khi được xây dựng, nó đã tính đến hỗ trợ ngôn ngữ người dùng cuối script python rất đơn giản, tích hợp ngay trên arcgis để người dùng tùy chỉnh, phát triển thêm các tool phù hợp với mình. Vậy để làm thế nào để viết được tool này? Sau đây gisgpsrs sẽ hướng dẫn bạn bước đầu tiên tạo tool bằng python.

Bước 1: Bạn cần có kiến thức cơ bản về python. Nếu bạn chưa rành lắm thì có thể tìm đọc ở đây

Bước 2: Khởi động ArcCatalog.

Bước 3: Trong ArcCatalog, bạn chọn vị trí lưu công cụ phần Catolog Tree, ở đây mình chọn Desktop

Bước 4: Kích chuột phải vào khoảng trống bên phải ArcCatalog, bạn chọn New -> Toolbox

Bước 5: Bạn hãy mở thư mục mà bạn vừa tạo Toolbox bằng Explore [Bạn nháy đúp vào thư mục mở ra hoặc kích chuột phải chọn cũng được]. Như ở đây chọn mở Desktop. Tiếp theo kích chuột phải vào phần trống thư mục chọn New -> New Text Document.txt, bạn sửa file txt này với tên mở rộng là .py. Mình đặt là Script.py, bạn cần chắc chắn đã hiển thị phần mở rộng của file nhé. Khi sửa phần mở rộng từ txt -> py có hộp thông báo thì bạn chọn Yes.

Bước 6: Một tool được tạo mới tên là “Toolbox.tbx” bạn hãy đổi tên bạn muốn đặt, ở đây mình đặt ví dụ là “Z_Demo”. Tiếp theo bạn kích chuột phải vào tool bạn vừa tạo, ở đây là Z_Demo. Bạn chọn Add -> Script…

Bước 7: Hộp thoại Add -> Script xuất hiện. Bạn điền thông tin như sau

- Hộp thoại này bạn lưu ý tích chọn Store relative path names [instead of absolute paths] để khi bạn copy tool này ra vị trí khác vẫn chạy được.

- Điền xong bạn chọn Next, Hộp thoại tiếp theo hiển thị ra bạn chọn Script File là file Script.py mà đã tạo ở bước 5.

- Tiếp theo chọn Next, ở hộp thoại tiếp bạn chọn các tham số đầu vào và đầu ra cần thiết. Ví dụ này bạn chọn 2 tham số là Layer đầu vào và đầu ra.

+ Nhập Layer đầu vào như dưới hình

+ Nhập Layer đầu ra như dưới hình

- Bạn chọn Finish để hoàn thành tạo tool

- Quay trở lại ArcCatalog bạn đã nhìn thấy tool Z_Demo đã được tạo

Bước 8: Tool đã được tạo, bây giờ bạn cần viết code vào file Script.py để thực hiện lệnh. Ở đây ví dụ là copy layer vào một vị trí khác. Bạn hãy copy đoạn code dưới vào file Script.py tạo ở bước 5.

# -*- coding: utf-8 -*-

#Web: gisgpsrs.blogspot.com

# Author: Nguyễn Viết Quân

import arcgisscripting

gp = arcgisscripting.create[9.3]

#Input paramaters  

inputShapefile = gp.GetParameterAsText[0]

outputShapefile = gp.GetParameterAsText[1]

#Processing block

gp.toolbox = "management"

try:

    #Copy to new shapefile

    gp.CopyFeatures_management[inputShapefile,outputShapefile]

    gp.AddMessage["Finish!"]

#Free resources

except:

    gp.GetMessage[2]

del gp

- Copy xong bạn lưu lại.

Bây giờ bạn chạy tool bằng cách kích đúp vào Z_Demo và chọn Layer đầu vào, và nơi lưu kết quả -> OK đợi kết quả.

Bạn có thể tải tool Z_Demo ở trên tại đây

Vậy là đã hướng dẫn các bạn cách tạo tool. Bài tiếp theo sẽ hướng dẫn chi tiết các bạn viết tool.

Hãy like nếu bài viết có ích →

Kết bạn với gisgpsrs trên Facebook để nhận bài viết mới nóng hổiFacebook để nhận bài viết mới nóng hổi

Bài Viết Liên Quan

Chủ Đề