Có, bạn có thể gọi Tiện ích GDAL từ bên trong Python. Có một số khác biệt rất nhỏ trong cách tiếp cận tùy thuộc vào việc tiện ích là exe theo đúng nghĩa của nó hay cũng là một đoạn mã trăn. Dù bằng cách nào bạn cũng cần sử dụng mô đun quy trình con :
import subprocess
# constants
gdalTranslate = r'C:\Program Files\GDAL\gdal_translate.exe'
src = r"C:\somefolder\somefile.tif"
dst = r"C:\someotherfolder\myresul.tif"
cmd = "-ot float32 -outsize 25 25" # just for example!
# see note below
def youCanQuoteMe(item):
return "\"" + item + "\""
fullCmd = ' '.join([gdalTranslate, cmd, youCanQuoteMe(src), youCanQuoteMe(dst)])
subprocess.popen(fullCmd)
Bạn sẽ nhận thấy rằng tôi thêm dấu ngoặc kép thoát xung quanh đường dẫn của tôi. Điều này là do, trên Windows, tôi đã gặp rắc rối với các đường dẫn, đặc biệt là các đường dẫn có khoảng trắng hoặc khi một trong các ký tự '\' tạo một ký tự thoát ngẫu nhiên khác. Vì vậy, tôi chỉ bảo tồn con đường thích hợp trong aspec như nó đã được.
Nếu bạn đang sử dụng một trong các tiện ích python, chỉ cần thực hiện tương tự ngoại trừ exe của bạn khi bắt đầu chuỗi lệnh của quy trình con bây giờ là "C: \ python32 \ python.exe" (hoặc bất kỳ phiên bản nào bạn có) và phần tử thứ hai của bạn là tiện ích python bạn muốn sử dụng.
Rõ ràng bạn cũng có thể lặp lại trên hệ thống tệp của mình thay vì sử dụng các hằng số được mã hóa cứng, nhưng đây chỉ là một ví dụ.
EDIT - Tổng quát hóa cho các plugin
QGIS QGIS tạo / sửa đổi một số biến môi trường khi khởi động. Vì vậy, bạn có thể xây dựng các biến đường dẫn tổng quát cho các thư viện / tiện ích GDAL bằng cách sử dụng các biến này (xem Cài đặt-> Tùy chọn-> Hệ thống) thay vì các đường dẫn được mã hóa cứng trong ví dụ trên.