Chcę uzyskać dostęp do funkcji linii rozstrzelenia w Pythonie poza QGIS z niezależnego skryptu.
Jaki moduł muszę załadować, aby z niego korzystać?
Jak mogę uzyskać dostęp processing
?
from qgis.core import *
layerInput = QgsVectorLayer('test.shp', 'test', 'ogr')
processing.runalg('qgis:explodelines', layerInput, 'temp.shp')
qgis
pyqgis
qgis-processing
explode
ustroetz
źródło
źródło
import processing
.Odpowiedzi:
AKTUALIZACJA 24.04.2018: Zobacz, jak to zrobić w QGIS v3.x tutaj .
W przypadku QGIS v2.x
Wreszcie znalazł właściwy sposób uruchamiania algorytmów przetwarzania za pomocą samodzielnych skryptów PyQGIS.
Korzystając z wtyczki Processing plugin 2.2.0-2, możesz wypróbować następujący skrypt:
Można znaleźć nowsze wersje przetwarzania
/usr/share/qgis/python/plugins
, więc może być konieczne odpowiednie użyciesys.path.append('/usr/share/qgis/python/plugins')
.Znalazłem działający przykład w Error: Algorytm nie został znaleziony , co z kolei opiera się na dyskusji na liście dyskusyjnej Qgis-dev .
źródło
'/home/user/.qgis2/python/plugins'
. Możesz znaleźć lokalizację, otwierając QGIS i klikającplugins/Manage and install plugins
przewiń w dół do przetwarzania, a zobaczysz lokalizację instalacji w opisie.cannot-create-a-qpixmap
tej samodzielnej funkcji, ale widzę, że rozwiązaliście to również w tym pytaniu gis.stackexchange.com/questions/188074/…layerInput
i zmieniając wiersz runalg na:general.runalg(*sys.argv[1:])
nie wspominając, że ten skrypt może być podstawą do równoległego przetwarzania GIS zgodnie z tym pytaniem: gis.stackexchange.com/questions/119961/...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):
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.
źródło