Cho đến khi tôi bắt đầu làm việc theo cách chung, tôi sẽ nói với bạn một cách giải quyết.
Tôi sử dụng plugin Xử lý phiên bản 2.2.0-2 (Tôi khuyên bạn nên sử dụng phiên bản này), được cài đặt /home/germap/.qgis2/python/plugins/
trên máy tính của tôi. Bạn cần biết vị trí thư mục này, bởi vì bạn nhập mô-đun xử lý từ đó.
Vì bạn biết nhà cung cấp ( qgis
) và thuật toán ( explodelines
), bạn có thể nhìn vào /home/germap/.qgis2/python/plugins/processing/algs/qgis/
để lấy tên tập lệnh phát nổ: Explode.py
Thông tin này cho phép bạn nhập thuật toán trực tiếp vào tập lệnh độc lập Python của bạn.
Vì vậy, hãy mở bảng điều khiển Python và sao chép tập lệnh sau (Tôi sử dụng GNU / Linux, để các biến môi trường được đặt theo mặc định, cho phép tôi nhập các thư viện qgis và PyQt4 một cách dễ dàng):
# Prepare the environment
import sys
from PyQt4.QtGui import *
from qgis.core import *
app = QApplication([])
QgsApplication.setPrefixPath("/usr", True)
QgsApplication.initQgis()
# Tell Python where you will get processing from
sys.path.append('/home/germap/.qgis2/python/plugins')
# Reference the algorithm you want to run
from processing.algs.qgis.Explode import *
alg = Explode()
# Set input and output
inLayer = QgsVectorLayer('/home/user/data/in.shp', 'input', 'ogr')
outLayer = '/home/user/data/out.shp'
alg.setParameterValue('INPUT', inLayer)
alg.setOutputValue('OUTPUT', outLayer)
# Run the algorithm
from processing.core.SilentProgress import SilentProgress
progress = SilentProgress()
alg.processAlgorithm(progress)
Nếu bạn không nhận được thông báo lỗi, đó là nó. Lớp đầu ra đã được lưu trong đường dẫn đầu ra mà bạn đã chỉ định ( /home/user/data/out.shp
)
Lưu ý: Liên quan đến một cách chung (nghĩa là gọi các thuật toán theo tên), tôi đã tìm thấy một số rắc rối mà tôi cần giải quyết trước khi đăng nó. Ngay sau khi tôi làm cho nó hoạt động, tôi sẽ đăng nó.
import processing
.