Usare QGIS senza aprirlo: QGIS Processing standalone executable

Un po’ di storia

Nel febbraio 2019 Nyall scrive questa QEP (QGIS-Enhancement-Proposals) dal titolo QGIS Processing standalone executable : “L’elaborazione di QGIS offre un insieme ricco ed espandibile di algoritmi che possono operare su livelli di mappe. Questa proposta riguarda la creazione di un nuovo eseguibile da riga di comando che consentirebbe l’esecuzione di algoritmi di elaborazione al di fuori dell’applicazione GUI di QGIS, consentendo un facile scripting della manipolazione dei dati tramite file batch tradizionali, script di shell e tramite strumenti del sistema operativo come l’utilità di pianificazione.” (estratto dalla QEP)…

In pochissimo tempo riceve decine di messaggi di apprezzamento e dopo un anno esatto (febbraio 2020) Nyall apre la reativa PR (Pull Request) Sponsorizzato dal gruppo utenti svedese (grazie mille).

Introduzione

Questo nuovo (>=QGIS 3.14 Pi) strumento qgis_process consente agli utenti di eseguire algoritmi di processing (sia integrati che forniti dai plug-in di QGIS) direttamente dalla console (di linux o OSGeo4W Shell di Windows).

Usare la riga di comando comporta una serie (quasi infinita) di vantaggi rispetto l’uso della GUI.

Come usarlo da OSGeo4W Shell

La prima cosa da fare è settare le corrette variabili di sistema (tra
cui PATH) utilizzando il comando qgis_process-qgis (QGIS 3.14) o qgis_process-qgis-dev (per la master) nella shell di OSGeo4W:

A questo punto possiamo eseguire uno dei comandi qgis_process, per esempio: qgis_process list:

Gli algoritmi eseguiti tramite qgis_process NON necessitano di tutti i parametri, quelli facoltativi possono essere non esplicitati; per conoscere i parametri da utilizzare per ogni algoritmo, occorre lanciare il seguente comando, nel caso dell’algoritmo centroids:

>qgis_process help native:centroids

quindi il comando da utilizzare per ottenere i centroidi di un vettore poligonale sarà (–INPUT e –OUTPUT sono parametri necessari, –ALL_PARTS è facoltativo):

qgis_process.exe run native:centroids  --INPUT="C:\OSGeo4W64\apps\qgis\bin\Reg01012020_g\Reg01012020_g_WGS84.shp" --OUTPUT="C:\OSGeo4W64\apps\qgis\bin\Reg01012020_g\centroid.shp"

Inoltre, qgis_process, durante l’esecuzione dell’algoritmo, stampa a video l’avanzamento 0…10..20… fino alla fine del processo.

Come usarlo in Ubuntu 18.04 LTS – no GUI

La seguente procedura riguarda l’installazione di QGIS 3.14 Pi senza GUI (interfaccia grafica), questo per due motivi: il primo perché sto utilizzando Ubuntu come sottosistema di win 10; secondo perché lo strumento non necessita di gui.

i comandi da lanciare uno dopo l’altro sono:

sudo apt-get update
sudo apt-get install gnupg software-properties-common
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 51F523511C7028C3
sudo add-apt-repository "deb     https://qgis.org/ubuntugis `lsb_release -c -s` main"
sudo apt-get update
sudo apt-get install qgis qgis-plugin-grass

se tutto va bene, lanciare qgis --version e deve restituire: QGIS 3.14.0-Pi 'Pi' (9f7028fd23)

infine, per far funzionare tutto occorre settare la seguente variabile:

export QT_QPA_PLATFORM='offscreen'

NOTE FINALI: questo strumento è molto utile in ambiente linux, in ambiente windows ha alcuni limiti (utilizzabile con QGIS 3.14.1 Pi o QGIS 3.15.0-16 master), seguiranno altri blog post con esempi pratici su come usarlo. Stay tuned!


RIFERIMENTI

RINGRAZIAMENTI

file txt con tutti gli algoritmi disponibile a partire dalla mia configurazione di QGIS: https://gist.github.com/pigreco/6790fb3b6ba1619ac37c0df66a31fbb4


note tecniche:

per evitare di visualizzare il lungo debug su OSGeo4W, lanciare

set QGIS_DEBUG=0

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.