Dopóki nie zacznę działać w sposób ogólny, powiem ci o obejściu.
Korzystam z wtyczki Processing w wersji 2.2.0-2 (sugeruję skorzystanie z tej wersji), która jest zainstalowana /home/germap/.qgis2/python/plugins/
na moim komputerze. Musisz znać tę lokalizację folderu, ponieważ stamtąd importujesz moduł przetwarzania.
Ponieważ znasz dostawcę ( qgis
) i algorytm ( explodelines
), możesz /home/germap/.qgis2/python/plugins/processing/algs/qgis/
wziąć nazwę skryptu linii rozstrzelenia: Explode.py
Informacje te pozwalają zaimportować algorytm bezpośrednio do samodzielnego skryptu Python.
Więc otwórz konsolę Python i skopiuj następujący skrypt (używam GNU / Linux, więc zmienne środowiskowe są ustawione domyślnie, co pozwala mi na szybki import bibliotek qgis i 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)
Jeśli nie otrzymujesz komunikatów o błędach, to wszystko. Warstwa wyjściowa została zapisana w określonej ścieżce wyjściowej ( /home/user/data/out.shp
)
Uwaga: Jeśli chodzi o ogólny sposób (tj. Wywoływanie algorytmów według nazwy), znalazłem pewne problemy, które muszę rozwiązać przed opublikowaniem. Jak tylko go uruchomię, opublikuję go.
import processing
.