Ich möchte in Python außerhalb von QGIS über ein eigenständiges Skript auf die Funktion zum Auflösen von Zeilen zugreifen .
Welches Modul muss ich laden, um es nutzen zu können?
Wie kann ich zugreifen processing
?
from qgis.core import *
layerInput = QgsVectorLayer('test.shp', 'test', 'ogr')
processing.runalg('qgis:explodelines', layerInput, 'temp.shp')
qgis
pyqgis
qgis-processing
explode
ustroetz
quelle
quelle
import processing
.Antworten:
UPDATE 24.04.2018: Informationen dazu finden Sie in QGIS v3.x hier .
Für QGIS v2.x
Endlich die richtige Methode gefunden, um Verarbeitungsalgorithmen über eigenständige PyQGIS-Skripte auszuführen.
Mit dem Verarbeitungs-Plugin Version 2.2.0-2 können Sie das folgende Skript ausprobieren:
Neuere Processing-Versionen befinden sich
/usr/share/qgis/python/plugins
möglicherweise unter, daher müssen Sie diese möglicherweisesys.path.append('/usr/share/qgis/python/plugins')
entsprechend verwenden.Ich fand das Arbeitsbeispiel in Fehler: Algorithmus nicht gefunden , was wiederum auf einer Qgis-dev-Mailinglistendiskussion basiert .
quelle
'/home/user/.qgis2/python/plugins'
. Sie können den Speicherort finden, indem Sie QGIS öffnen undplugins/Manage and install plugins
zum Verarbeiten nach unten scrollen klicken. Den Installationsspeicherort finden Sie in der Beschreibung.cannot-create-a-qpixmap
mit dieser Stand - alone - Funktion , aber ich sehe, dass auch in dieser Frage gelöst gis.stackexchange.com/questions/188074/...layerInput
die Runalg-Zeile löschen und ändern in: Ganzgeneral.runalg(*sys.argv[1:])
zu schweigen davon, dass dieses Skript die Grundlage für die parallele GIS-Verarbeitung gemäß dieser Frage sein kann: gis.stackexchange.com/questions/119961/…Bis ich mit der generischen Arbeitsweise anfange, werde ich Ihnen eine Problemumgehung nennen.
Ich verwende das Verarbeitungs-Plugin Version 2.2.0-2 (ich empfehle Ihnen, diese Version zu verwenden), das
/home/germap/.qgis2/python/plugins/
auf meinem Computer installiert ist . Sie müssen diesen Ordnerpfad kennen, da Sie das Verarbeitungsmodul von dort importieren.Da Sie den Provider (
qgis
) und den Algorithmus (explodelines
) kennen, können Sie/home/germap/.qgis2/python/plugins/processing/algs/qgis/
den Skriptnamen explode lines verwenden: MitExplode.py
diesen Informationen können Sie den Algorithmus direkt in Ihr eigenständiges Python-Skript importieren.Öffnen Sie also eine Python-Konsole und kopieren Sie das folgende Skript (ich verwende GNU / Linux, damit die Umgebungsvariablen standardmäßig festgelegt werden und ich QGIS- und PyQT4-Bibliotheken problemlos importieren kann):
Wenn Sie keine Fehlermeldungen erhalten, ist das alles. Die Ausgabeebene wurde in dem von Ihnen angegebenen Ausgabepfad gespeichert (
/home/user/data/out.shp
)Hinweis: In Bezug auf eine generische Methode (z. B. das Aufrufen von Algorithmen nach Namen) habe ich einige Probleme gefunden, die ich lösen muss, bevor ich sie veröffentliche. Sobald ich es zum Laufen bekomme, werde ich es posten.
quelle