Eigenständige Python-Skripte mit PyQGIS schreiben?

17

Ich habe anhand von Referenzen von qgisworkshop.org gelernt, wie man die Python-Konsole in QGIS verwendet . Ich bin mit dem Schreiben von eigenständigen Skripten in ArcGIS vertraut und möchte lernen, wie Sie dasselbe mit QGIS tun.

In ArcGIS 10 wäre ein einfaches eigenständiges Python-Skript beispielsweise:

import arcpy 

setFolder = ''

doProcess

Ich verstehe, wie dies mit der Python-Konsole in QGIS gemacht wird, habe jedoch kein Beispiel gefunden, um dieselben Schritte mit einem eigenständigen Skript auszuführen. Ich vermute, ich hatte einfach Pech mit meiner Suche. Gibt es klare Beispiele dafür, wie dies online gemacht werden kann?

djq
quelle

Antworten:

15

Ich habe noch keine eigenständigen Skripts geschrieben, die auf der QGIS-API basieren, aber das PyQGIS-Kochbuch verwendet die folgende Initialisierung:

Zunächst müssen Sie das QGIS-Modul importieren, den QGIS-Pfad für die Suche nach Ressourcen festlegen - Datenbank mit Projektionen, Anbietern usw. Wenn Sie den Präfixpfad mit dem zweiten Argument auf True setzen, initialisiert QGIS alle Pfade mit dem Standardverzeichnis unter dem Präfixverzeichnis . Das Aufrufen der Funktion initQgis () ist wichtig, damit QGIS nach den verfügbaren Anbietern sucht.

from qgis.core import *

# supply path to where is your qgis installed
QgsApplication.setPrefixPath("/path/to/qgis/installation", True)

# load providers
QgsApplication.initQgis()

Jetzt können Sie mit der QGIS-API arbeiten - Ebenen laden und einige Verarbeitungsschritte ausführen oder eine GUI mit einem Kartenbereich starten. Die Möglichkeiten sind endlos :-)

Wenn Sie mit der Verwendung der QGIS-Bibliothek fertig sind, rufen Sie exitQgis () auf, um sicherzustellen, dass alles bereinigt ist (z. B. Registrierung der Kartenebene löschen und Ebenen löschen):

QgsApplication.exitQgis()
Underdunkel
quelle
1
Danke @underdark - das ist hilfreich. Ich fand es nicht trivial, from qgis.core import *mit OSX zu arbeiten, deshalb plane ich, eine neue Frage zu diesem Thema zu stellen.
Djq
Es tut uns leid, hier eine andere Frage zu markieren, aber gibt es eine Online-Dokumentation des QGIS-Moduls? Alles, was ich finden kann, ist ein Verweis darauf, dass es den C ++ - Dokumenten ähnlich ist, aber kein tatsächlicher Link zu den Python-Dokumenten.
DJQ
Einzelheiten zu Python finden Sie im pyQGIS-Kochbuch. Ansonsten können Sie sich auf die normalen C ++ API-Dokumente verlassen - es ist nicht nur ähnlich, imho es ist dasselbe.
Underdunkel
Für Ubuntu-Benutzer: Installationspfad unter gis.stackexchange.com/questions/52919/… . (Es ist "/ usr")
Mr Purple