` `
Il modellatore grafico ti consente di creare modelli complessi utilizzando un’interfaccia semplice e facile da usare. Quando lavori con un GIS, la maggior parte delle operazioni di analisi non sono isolate, ma piuttosto fanno parte di una catena di operazioni. Usando il modellatore grafico, la successione dei processi può essere confezionata in un unico processo, quindi è più conveniente eseguire come un processo singolo anche su diversi input. Non importa quanti passi e diversi algoritmi coinvolge, un modello è eseguito come un unico algoritmo, risparmiando così tempo e fatica, soprattutto per i modelli più grandi.
Puoi aprire il modellatore grafico dal menu di Processing.
Il modellatore ha un’area grafica di lavoro dove sono visualizzati la struttura del modello ed il flusso delle operazioni che lo rappresenta. Si può usare un pannello con due riquadri sulla sinistra della finestra per aggiungere nuovi elementi al modello.
La creazione di un modello comporta due passaggi:
Definizione degli input necessari. Tutti gli input verranno aggiunti alla finestra dei parametri, in questo modo puoi impostare i valori durante l’esecuzione del modello. Il modello stesso è un algoritmo, quindi la finestra dei parametri viene automaticamente generata come accade con tutti gli algoritmi disponibili.
Definizione del flusso di lavoro. Usando i dati in input del modello, il flusso di lavoro è definito aggiungendo algoritmi e scegliendo come questi devono usare gli input o gli output generati da altri algoritmi già presenti nel modello.
Il primo passo per creare un modello è quello di definire tutti gli input. Nella parte sinistra del modellatore trovi la scheda Inputs dove potrai scegliere i vari elementi.
Raster
Vettori
Stringhe di testo
Campi di tabelle
Tabelle
Estensione
Numero
Booleano
Facendo doppio click su uno di questi elementi, apparirà una finestra di dialogo che servirà a definire le sue caratteristiche. A seconda del parametro, la finestra conterrà un solo elemento (la descrizione, ovvero quello che vedrai durante l’esecuzione del modello) oppure più elementi. Per esempio, aggiungendo un valore numerico, come puoi vedere nella figura seguente, oltre alla descrizione del parametro, dovrai definire un valore di partenza ed un intervallo di valori validi.
Per ogni dato di ingresso aggiunto, appare un nuovo elemento nel pannello grafico del modellatore.
Puoi inoltre aggiungere input trascinandolo dall’elenco e rilasciandolo nella mappa del modellatore, nella posizione in cui vuoi posizionarlo.
Una volta definiti gli input, devi scegliere gli algoritmi che intendi usare. Gli algoritmi si trovano nella casella Algoritmi, raggruppati allo stesso modo come in Strumenti.
Per aggiungere un algoritmo a un modello, fai doppio click sul suo nome o trascinalo, proprio come hai fatto durante l’aggiunta di input. Apparirà una finestra di dialogo, simile a quella che viene visualizzata quando si esegue l’algoritmo dagli strumenti. Quella mostrata di seguito corrisponde all’algoritmo SAGA ‘indice di convergenza’.
Come puoi vedere, ci sono diverse differenze. Al posto della casella di output dove potevi specificare il percorso dei layer e tabelle, qui c’è una semplice casella di testo. Se il layer generato da questo algoritmo è solamente un layer temporaneo che deve essere usato come input da un altro algoritmo, allora non inserire niente in questa casella. Se riempi questa casella significa che il risultato è finale e che il testo che hai inserito corrisponderà all’output finale.
Anche il valore di ogni parametro è leggermente diverso, dal momento che che ci sono importanti differenze fra il contesto del modello e quello degli Strumenti. Vediamo come inserire i valori per ogni tipologia di parametro.
Layer (raster e vettoriali) e tabelle. Devi selezionarle da una lista, ma in questo caso i valori possibili non sono i layer o le tabelle attualmente aperte in QGIS, bensì la lista dei dati di ingresso del modello corrispondente per tipo, o altri layer e tabelle generate da algoritmi già aggiunti al modello.
Table filed. Il parametro parent layer dipende da altri layer caricati nel modello e quindi lo potrai definire solamente in un secondo momento. Inserisci prima il nome del parametro e poi scegli il parent layer dal menu a tendina. Nel menu avrai a disposizione tutti i layer caricati nel modello.
In tutti i casi troverai un parametro aggiunti chiamato Parent algorithms, non disponibile quando avvii un algoritmo dagli Strumenti. Questo parametro ti permette di definire l’ordine in cui gli algoritmi vengono eseguiti, in quanto scegli tu la nidificazione degli algoritmi. In altre parole, puoi forzare l’esecuzione di un algoritmo prima di un altro.
Quando usi l’output di un algoritmo come input per un altro algoritmo, allora il primo algoritmo è implicitamente trattato come Parent algorithm del secondo (e lo puoi anche vede dalla direzione della freccia nella finestra del modello). Tuttavia, in alcuni casi un algoritmo può dipendere da un altro algoritmo anche se non richiede output (per esempio, un algoritmo che esegue un’interrogazione SQL su un database PostGIS e un altro che importa un layer nel database stesso). In questo caso, basta che selezioni l’algoritmo precedente nel parametro Parent algorithms e i due passaggi verranno eseguiti nell’ordine corretto.
Once all the parameters have been assigned valid values, click on [OK] and the algorithm will be added to the canvas. It will be linked to all the other elements in the canvas, whether algorithms or inputs, that provide objects that are used as inputs for that algorithm.
Gli elementi possono essere trascinati in un’altra posizione all’interno della mappa, per cambiare il modo in cui viene visualizzata la struttura del modulo e renderlo più chiaro e intuitivo. I collegamenti tra gli elementi vengono aggiornati automaticamente. Puoi ingrandire e ridurre utilizzando la rotellina del mouse.
You can run your algorithm any time by clicking on the [Run] button. However, in order to use the algorithm from the toolbox, it has to be saved and the modeler dialog closed, to allow the toolbox to refresh its contents.
Use the [Save] button to save the current model and the [Open] button to open any model previously saved. Models are saved with the .model extension. If the model has been previously saved from the modeler window, you will not be prompted for a filename. Since there is already a file associated with that model, the same file will be used for any subsequent saves.
Prima di salvare un modello, devi inserire un nome ed un gruppo di appartenenza usando le caselle di testo nella parte alta della finestra.
I modelli salvati nella cartella modelli (cartella predefinita dove vengono salvati i modelli) appariranno in Strumenti, nel gruppo corrispondente. Quando apri gli Strumenti, vengono cercati tutti i file con estensione .model e poi caricati nella finestra. Visto che un modello è inteso come un algoritmo, lo puoi aggiungere agli Strumenti come un algoritmo qualsiasi.
Puoi specificare la cartella dei modelli nella finestra di configurazione di Processing, presente nel gruppo Modellatore.
I modelli caricati dalla cartella models appariranno non solo negli Strumenti, ma anche nell’albero degli algoritmi della scheda Algorithms presente nella finestra del modellatore. Questo significa che puoi includere un modello all’interno di un altro modello, proprio come se fosse un semplice algoritmo.
Puoi modificare il modello mentre lo stai creando, ridefinendo il flusso e le relazioni fra gli algoritmi e i dati che definiscono il modello stesso.
Se premi il tasto destro del mouse su un algoritmo nel grafico che rappresenta il modello, apparirà un menu come quello sotto riportato:
Selezionando l’opzione Remove rimuoverai l’algoritmo selezionato. Non potrai rimuovere un algoritmo se altri algoritmi dipendono da lui, ovvero quando un algoritmo vuole come input il risultato di un altro algoritmo. Se provi a rimuovere comunque uno di questi algoritmi, apparirà una finestra di avviso.
Selezionando l’opzione Modifica o semplicemente premendo due volte sull’icona dell’algoritmo apparirà la finestra dei parametri dell’algoritmo in modo che puoi cambiarne i valori. Non tutti i valori disponibili nel modello appariranno in questo caso come dati disponibili. Layer o valori generati ad un passaggio successivo del flusso del modello che possono causare dipendenze circolari non saranno disponibili.
Select the new values and then click on the [OK] button as usual. The connections between the model elements will change accordingly in the modeler canvas.
Un modello può essere eseguito parzialmente, disattivando alcuni dei suoi algoritmi. Per farlo, seleziona l’opzione Disattiva nel menu di scelta rapida che viene visualizzato quando fai click destro e su un elemento di algoritmo. L’algoritmo selezionato e tutti quelli del modello che ne dipendono verranno visualizzati in grigio e non verranno eseguiti come parte del modello.
Quando fai click destro su un algoritmo che non è attivo, vedrai l’opzione Attiva che puoi utilizzare per attivarlo.
You can document your models from the modeler itself. Just click on the [Edit model help] button and a dialog like the one shown next will appear.
Sulla parte destra vedrai una semplice pagina HTML, creata usando la descrizione dei parametri di input e di output dell’algoritmo insieme ad alcuni parametri aggiuntivi come la sua descrizione e l’autore. La prima volta che apri l’editor di aiuto, vedrai tutti i campi vuoti. Li puoi riempire usando le voci corrispondenti presenti nella parte sinistra della finestra di dialogo. Seleziona un elemento nella parte superiore e poi inserisci la descrizione nella casella di testo.
La guida del modello è salvata come parte del modello stesso
As we will see in a later chapter, Processing algorithms can be called from the QGIS Python console, and new Processing algorithms can be created as well using Python. A quick way of creating such a Python script is to create a model and then to export is as a Python file.
To do so, click on the Export as Python script button. Select the output file in the file chooser dialog, and Processing will write in it the Python commands that perform the same operations defined in the current model.
Potrai notare che alcuni algoritmi eseguibili dagli Strumenti non appaiono nell’elenco di quelli disponibili quando stai creando un modello. Per essere incluso in un modello, un algoritmo deve avere una semantica corretta in modo da poter essere correttamente collegato a tutti gli altri nel flusso di lavoro. Se un algoritmo non ha una semantica corretta (ad esempio, se il numero dei layer generati non può essere conosciuto in anticipo) allora non lo potrai usare all’interno del modello e quindi non apparirà nell’elenco di quelli disponibili.
Additionally, you will see some algorithms in the modeler that are not found in the toolbox. These algorithms are meant to be used exclusively as part of a model, and they are of no interest in a different context. The ‘Calculator’ algorithm is an example of that. It is just a simple arithmetic calculator that you can use to modify numerical values (entered by the user or generated by some other algorithm). This tool is really useful within a model, but outside of that context, it doesn’t make too much sense.