Wichtig
Übersetzen ist eine Gemeinschaftsleistung Sie können mitmachen. Diese Seite ist aktuell zu 100.00% übersetzt.
27.8. Verarbeitung über die Befehlszeile
QGIS wird mit einem Werkzeug namens QGIS Processing Executor
ausgeliefert, das es Ihnen erlaubt, Processing-Algorithmen und -Modelle (eingebaut oder durch Plugins bereitgestellt) direkt von der Kommandozeile aus zu starten, ohne QGIS Desktop selbst zu starten.
Führen Sie qgis_process
in einem Kommandozeilenprogramm aus und Sie sollten folgendes erhalten:
QGIS Processing Executor - 3.27.0-Master 'Master' (3.27.0-Master)
Usage: C:\OSGeo4W\apps\qgis-dev\bin\qgis_process.exe [--help] [--version] [--json] [--verbose] [--no-python] [command] [algorithm id, path to model file, or path to Python script] [parameters]
Options:
--help or -h Output the help
--version or -v Output all versions related to QGIS Process
--json Output results as JSON objects
--verbose Output verbose logs
--no-python Disable Python support (results in faster startup)
Available commands:
plugins list available and active plugins
plugins enable enables an installed plugin. The plugin name must be specified, e.g. "plugins enable cartography_tools"
plugins disable disables an installed plugin. The plugin name must be specified, e.g. "plugins disable cartography_tools"
list list all available processing algorithms
help show help for an algorithm. The algorithm id or a path to a model file must be specified.
run runs an algorithm. The algorithm id or a path to a model file and parameter values must be specified.
Parameter values are specified after -- with PARAMETER=VALUE syntax.
Ordered list values for a parameter can be created by specifying the parameter multiple times,
e.g. --LAYERS=layer1.shp --LAYERS=layer2.shp
Alternatively, a '-' character in place of the parameters argument indicates that the parameters should be read from STDIN as a JSON object.
The JSON should be structured as a map containing at least the "inputs" key specifying a map of input parameter values.
This implies the --json option for output as a JSON object.
If required, the ellipsoid to use for distance and area calculations can be specified via the "--ELLIPSOID=name" argument.
If required, an existing QGIS project to use during the algorithm execution can be specified via the "--PROJECT_PATH=path" argument.
Bemerkung
Nur installierte Plugins, die in ihrer metadata.txt
Datei hasProcessingProvider=yes
angeben, werden erkannt und können vom qgis_process Tool aktiviert oder geladen werden.
Hinweis
Bevor Sie qgis_process auf einem System ohne Fenstermanager (z.B. einem Headless Server) aufrufen, sollten Sie folgende Einstellung setzen:
export QT_QPA_PLATFORM=offscreen
Der Befehl list
kann verwendet werden, um eine Liste aller verfügbaren Anbieter und Algorithmen zu erhalten:
qgis_process list
Der Befehl help
kann verwendet werden, um weitere Informationen über Befehle oder Algorithmen zu erhalten:
qgis_process help qgis:regularpoints
Der Befehl run
kann verwendet werden, um einen Algorithmus oder ein Modell auszuführen. Geben Sie als ersten Parameter den Namen des Algorithmus oder einen Pfad zu einem Modell an:
qgis_process run native:buffer -- INPUT=source.shp DISTANCE=2 OUTPUT=buffered.shp
Wenn ein Parameter eine Liste von Werten akzeptiert, setzen Sie dieselbe Variable mehrfach:
qgis_process run native:mergevectorlayers -- LAYERS=input1.shp LAYERS=input2.shp OUTPUT=merged.shp
Während der Ausführung eines Algorithmus wird eine textbasierte Rückmeldungsleiste angezeigt, und der Vorgang kann mit Strg+C abgebrochen werden.
Der Befehl run
unterstützt auch weitere Parameter:
--json
formatiert die stdout-Ausgabe in einer JSON-strukturierten Weise.--ellipsoid
setzt das Ellipsoid auf den angegebenen Wert.--distance_units
wird die angegebenen Entfernungseinheiten verwenden.--area_units
wird die angegebenen Flächeneinheiten verwenden.--project_path
lädt das angegebene Projekt zur Ausführung des Algorithmus.
Auch komplexe Eingabeparameter werden von qgis_process unterstützt. Um anzuzeigen, dass die Parameter über stdin angegeben werden, muss der qgis_process
-Befehl dem unten gezeigten Format folgen (mit einem abschließenden -
anstelle der üblichen Argumentliste):
qgis_process run algorithmId -
Das JSON-Objekt muss einen „inputs“-Schlüssel enthalten, bei dem es sich um eine Abbildung der Werte der Eingabeparameter handelt, z.B.:
echo "{'inputs': {'INPUT': 'my_shape.shp', 'DISTANCE': 5}}" | qgis_process run native:buffer -
Zusätzlich können zusätzliche Einstellungen wie Entfernungseinheiten, Flächeneinheiten, Ellipsoid und Projektpfad in dieses JSON-Objekt aufgenommen werden:
{
'ellipsoid': 'EPSG:7019',
'distance_units': 'feet',
'area_units': 'ha',
'project_path': 'C:/temp/my_project.qgs'
'inputs': {'DISTANCE': 5, 'SEGMENTS': 8 ... }
}
Die Angabe von Eingabeparametern über stdin impliziert automatisch das Ausgabeformat JSON
für die Ergebnisse.