.

Modellatore grafico

The graphical modeler allows you to create complex models using a simple and easy-to-use interface. When working with a GIS, most analysis operations are not isolated, but rather part of a chain of operations instead. Using the graphical modeler, that chain of processes can be wrapped into a single process, so it is as easy and convenient to execute as a single process later on a different set of inputs. No matter how many steps and different algorithms it involves, a model is executed as a single algorithm, thus saving time and effort, especially for larger models.

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.

Figure Processing 16:

../../../_images/modeler_canvas.png

Modeler win

La creazione di un modello comporta due passaggi:

  1. 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.

  2. 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.

Definizione dei dati di ingresso

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

  • File

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.

Figure Processing 17:

../../../_images/models_parameters.png

Model Parameters win

Per ogni dato di ingresso aggiunto, appare un nuovo elemento nel pannello grafico del modellatore.

Figure Processing 18:

../../../_images/models_parameters2.png

Model Parameters win

Puoi inoltre aggiungere input trascinandolo dall’elenco e rilasciandolo nella mappa del modellatore, nella posizione in cui vuoi posizionarlo.

Definizione del flusso operativo

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.

Figure Processing 19:

../../../_images/models_parameters3.png

Model Parameters win

The appearance of the toolbox has two modes here as well: simplified and advanced. However, there is no element to switch between views in the modeler, so you have to do it in the toolbox. The mode that is selected in the toolbox is the one that will be used for the list of algorithms in the modeler.

To add an algorithm to a model, double-click on its name or drag and drop it, just like it was done when adding inputs. An execution dialog will appear, with a content similar to the one found in the execution panel that is shown when executing the algorithm from the toolbox. The one shown next corresponds to the SAGA ‘Convergence index’ algorithm, the same example we saw in the section dedicated to the toolbox.

Figure Processing 20:

../../../_images/models_parameters4.png

Model Parameters win

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.

  • Layers (raster and vector) and tables. These are selected from a list, but in this case, the possible values are not the layers or tables currently loaded in QGIS, but the list of model inputs of the corresponding type, or other layers or tables generated by algorithms already added to the model.
  • Valori numerici. Puoi inserire questi valori direttamente nella casella di testo. Questa casella però funziona anche come elenco in modo che tu possa selezionare ogni valore numerico del modello. In questo caso, il parametro considererà il valore che hai inserito durante l’esecuzione del modello.

  • Stringa. Come nel caso dei valori numerici, puoi inserire una stringa o scegliere un stringa fra quelle disponibili.

  • 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.

When you use the output of a previous algorithm as the input of your algorithm, that implicitly sets the previous algorithm as parent of the current one (and places the corresponding arrow in the modeler canvas). However, in some cases an algorithm might depend on another one even if it does not use any output object from it (for instance, an algorithm that executes an SQL sentence on a PostGIS database and another one that imports a layer into that same database). In that case, just select the previous algorithm in the Parent algorithms parameter and the two steps will be executed in the correct order.

Una volta assegnati valori corretti a tutti i parametri, premi [OK] e l’algoritmo verrà aggiunto alla finestra. L’algoritmo sarà collegato a tutti gli altri elementi del pannello, sia algoritmi sia dati in input, che creano risultati usati come input dall’algoritmo.

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 anytime 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.

Salvataggio e caricamento di modelli

Usa il pulsante [Salva] per salvare il modello ed il pulsante [Apri] per aprire un modello esistente. I modelli sono salvati con l’estensione .model. Se hai già salvato il modello non ti verrà più chiesto il nome del file da salvare, infatti il modello verrà automaticamente sovrascritto sul file già esistente.

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.

The models folder can be set from the processing configuration dialog, under the Modeler group.

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.

In some cases, a model might not be loaded because not all the algorithms included in its workflow are available. If you have used a given algorithm as part of your model, it should be available (that is, it should appear in the toolbox) in order to load that model. Deactivating an algorithm provider in the processing configuration window renders all the algorithms in that provider unusable by the modeler, which might cause problems when loading models. Keep that in mind when you have trouble loading or executing models.

Aggiornare il modello

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:

Figure Processing 22:

../../../_images/modeler_right_click.png

Modeler Right Click win

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.

Figure Processing 23:

../../../_images/cannot_delete_alg.png

Cannot Delete Algorithm win

Selecting the Edit option or simply double-clicking on the algorithm icon will show the parameters dialog of the algorithm, so you can change the inputs and parameter values. Not all input elements available in the model will appear in this case as available inputs. Layers or values generated at a more advanced step in the workflow defined by the model will not be available if they cause circular dependencies.

Selezionate i nuovi valori e premete il pulsante [OK] come al solito. La connessione fra gli elementi del modello cambieranno di conseguenza anche nel pannello grafico.

Informazioni ed aiuto per l’aggiornamento del modello

Puoi anche aggiungere una documentazione ai tuoi modelli. Premi il pulsante [Edit model help] per aprire la finestra di dialogo corrispondente.

Figure Processing 25:

../../../_images/help_edition.png

Help Edition win

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.

Model help is saved in a file in the same folder as the model itself. You do not have to worry about saving it, since it is done automatically.

A proposito degli algoritmi disponibili

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.

Inoltre, ci sono altri algoritmi presenti nel modellatore grafico ma non negli Strumenti. Questi sono gli algoritmi pensati per essere usati solamente come parte di un modello e non hanno senso in altri contesti. Un esempio è l’algoritmo ‘Calcolatore’. È infatti una semplice calcolatrice che puoi usare per cambiare valori numerici (inseriti da te o creati da qualche algoritmo). Questo strumento è molto utile in un modello ma non ha molto senso al di fuori di questo contesto.