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.