Пока я не найду общий способ сделать это, я расскажу вам обходной путь.
Я использую плагин 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
.