Piszę skrypt, który musi działać poza GUI QGIS. Wywołuję niektóre funkcje API z qgis.core, ale chciałbym użyć wtyczki przetwarzającej.
Jestem w stanie zaimportować przetwarzanie za pomocą sys.path.append (), ale nie mogę uruchomić żadnego procesu. Ponadto w QgsApplication.processingRegistry (). Algorytmy () brakuje wszystkich „rodzimych” alg.
Czy można w ten sposób uruchomić przetwarzanie? Czego mi brakuje ?
import os, sys
from qgis.core import *
QgsApplication.setPrefixPath('/usr', True)
qgs = QgsApplication([], False)
qgs.initQgis()
sys.path.append('/usr/share/qgis/python/plugins')
from processing.core.Processing import Processing
Processing.initialize()
import processing
layer1 = QgsVectorLayer('data/ROUTE_PRIMAIRE.SHP')
layer2 = QgsVectorLayer('data/ROUTE_SECONDAIRE.SHP')
processing.run('qgis:union', layer1, layer2, 'test.shp') # returns nothing
Korzystam z QGIS 3.0.1 - Debian 9
pyqgis
qgis-processing
qgis-3
vidlb
źródło
źródło
Podczas próby użycia natywnego algorytmu, jak wyżej, w instalacji OSGeo4W zawierającej QGIS 3.4.4 wystąpił błąd „NameError: nazwa„ QgsNativeAl algorytmy ”nie jest zdefiniowana”. Rozwiązaniem okazał się brakujący import:
(z niezależnego skryptu QGIS 3.4 / 3.6 )
źródło