Поки я не зроблю на роботі загальний спосіб цього, я розкажу тобі обхід.
Я використовую плагін Processing версії 2.2.0-2 (пропоную використовувати цю версію), який встановлений /home/germap/.qgis2/python/plugins/
на моєму комп’ютері. Вам потрібно знати місце розташування цієї папки, оскільки ви імпортуєте модуль обробки звідти.
Оскільки ви знаєте провайдера ( qgis
) та алгоритму ( explodelines
), ви можете подивитися /home/germap/.qgis2/python/plugins/processing/algs/qgis/
назву сценарію вибухових ліній: Explode.py
Ця інформація дозволяє імпортувати алгоритм безпосередньо у ваш окремий сценарій Python.
Отже, відкрийте консоль Python та скопіюйте такий скрипт (я використовую GNU / Linux, тому змінні середовища встановлені за замовчуванням, що дозволяє мені імпортувати бібліотеки qgis та PyQt4 на вітрі):
# 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)
Якщо ви не отримуєте повідомлення про помилки, це все. Вихідний шар був збережений у вказаному вами шляху виведення ( /home/user/data/out.shp
)
Примітка. Що стосується загального способу (тобто виклику алгоритмів за іменем), я знайшов деякі проблеми, які мені потрібно вирішити, перш ніж публікувати його. Як тільки я змушу його працювати, я опублікую його.
import processing
.