17.8. Eseguire un algoritmo esterno

Nota

In questa lezione vedremo come utilizzare algoritmi che dipendono da un’applicazione di terze parti, in particolare SAGA, che è uno dei principali fornitori di algoritmi.

Tutti gli algoritmi che abbiamo eseguito finora fanno parte del processing framework. Cioè, sono algoritmi nativi implementati nel plugin ed eseguiti da QGIS proprio come viene eseguito il plugin stesso. Tuttavia, una delle maggiori caratteristiche del processing framework è che può utilizzare algoritmi di applicazioni esterne ed estendere le possibilità di tali applicazioni. Tali algoritmi sono impacchettati e inclusi nel toolbox, in modo da poterli usare facilmente da QGIS, e utilizzare i dati di QGIS per eseguirli.

Alcuni degli algoritmi che vedi nella vista semplificata richiedono applicazioni di terze parti da installare nel tuo sistema. Un fornitore di algoritmi di particolare interesse è SAGA (System for Automated Geospatial Analysis). Per prima cosa, dobbiamo configurare tutto in modo che QGIS possa chiamare correttamente SAGA. Questo non è difficile, ma è importante capire come funziona. Ogni applicazione esterna ha la sua configurazione, e più avanti in questo stesso manuale parleremo di alcune delle altre, ma SAGA sarà il nostro backend principale, quindi ne parleremo qui.

Se sei in Windows, il modo migliore per lavorare con algoritmi esterni è quello di installare QGIS usando il programma di installazione standalone. Si prenderà cura di installare tutte le dipendenze necessarie, incluso SAGA, quindi se lo avete usato, non c’è altro da fare. Puoi aprire la finestra delle impostazioni e andare al gruppo Strumenti di Processing SAGA.

../../../_images/saga_config.png

Il percorso di SAGA dovrebbe essere già configurato e puntare alla cartella dove è installato SAGA.

Se hai installato QGIS non usando il programma di installazione standalone, allora lì devi inserire il percorso della tua installazione di SAGA (che devi aver installato separatamente). La versione richiesta è SAGA 2.1 [questo cambia a seconda delle versioni di SAGA].

Se stai usando Linux, non devi impostare il percorso della tua installazione di SAGA nella configurazione di processing. Invece, devi installare SAGA e assicurarti che la cartella SAGA sia in PATH, in modo che possa essere chiamata dalla console (basta aprire una console e digitare saga_cmd per controllare). Sotto Linux, la versione di destinazione per SAGA è anche la 2.1, ma in alcune installazioni (come l’OSGeo Live DVD) potresti avere solo la 2.0.8 disponibile. Ci sono alcuni pacchetti 2.1 disponibili, ma non sono comunemente installati e potrebbero avere alcuni problemi, quindi se preferisci usare la più comune e stabile 2.0.8, puoi farlo abilitando la compatibilità 2.0.8 nella finestra di configurazione, sotto il gruppo SAGA.

../../../_images/enable208.png

Una volta che SAGA è installato, puoi lanciare un algoritmo SAGA facendo doppio clic sul suo nome, come con qualsiasi altro algoritmo. Dato che stiamo usando l’interfaccia semplificata, non sai quali algoritmi sono basati su SAGA o in un’altra applicazione esterna, ma se ti capita di fare doppio clic su uno di essi e l’applicazione corrispondente non è installata, vedrai qualcosa come questo.

../../../_images/missing_saga.png

Nel nostro caso, e supponendo che SAGA sia installato e configurato correttamente, non dovresti vedere questa finestra, e arriverai invece alla finestra di dialogo dei parametri.

Proviamo con un algoritmo basato su SAGA, quello chiamato Split shapes layer randomly.

../../../_images/split.png

Usa come input il layer puntuale nel progetto corrispondente a questa lezione, e i valori dei parametri di default, e otterrai qualcosa di simile a questo (la divisione è casuale, quindi il tuo risultato potrebbe essere diverso).

../../../_images/split_layer.png

Il layer in ingresso è stato diviso in due layer, ognuno con lo stesso numero di punti. Questo risultato è stato calcolato da SAGA, e poi preso da QGIS e aggiunto al progetto QGIS.

Se tutto va bene, non noterai alcuna differenza tra questo algoritmo basato su SAGA e uno degli altri che abbiamo eseguito in precedenza. Tuttavia, SAGA potrebbe, per qualche ragione, non essere in grado di produrre un risultato e non generare il file che QGIS si aspetta. In questo caso, ci saranno problemi nell’aggiungere il risultato al progetto QGIS, e verrà mostrato un messaggio di errore come questo.

../../../_images/missing_result.png

Questo tipo di problemi può accadere, anche se SAGA (o qualsiasi altra applicazione che stiamo chiamando dal framework di elaborazione) è installato correttamente, ed è importante sapere come affrontarli. Produciamo uno di questi messaggi di errore.

Apri l’algoritmo Creare reticoli e usa i seguenti valori.

../../../_images/create_graticule.png

Stiamo usando valori di larghezza e altezza maggiori dell’estensione specificata, quindi SAGA non può produrre alcun output. In altre parole, i valori dei parametri sono sbagliati, ma non vengono controllati finché SAGA non li riceve e cerca di creare il reticolo. Poiché non può crearlo, non produrrà il layer previsto, e vedrai il messaggio di errore mostrato sopra.

Nota

In SAGA >= 2.2.3, il comando regolerà automaticamente i dati di ingresso errati, quindi non avrai un errore. Per provocare un errore, usa valori negativi per la divisione.

Capire questo tipo di problemi ti aiuterà a risolverli e a trovare una spiegazione a ciò che sta accadendo. Come puoi vedere nel messaggio di errore, viene eseguito un test per controllare che la connessione con SAGA funzioni correttamente, indicandoti che potrebbe esserci un problema nel modo in cui l’algoritmo è stato eseguito. Questo vale non solo per SAGA, ma anche per altre applicazioni esterne.

Nella prossima lezione introdurremo il log di processing, dove sono conservate le informazioni sui comandi eseguiti da geoalgoritmi, e vedrai come ottenere maggiori dettagli quando appaiono problemi come questo.