23.5. Il modellatore grafico
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.
Il modellatore grafico può essere aperto dal menu Processing (
).Il modellatore ha un’area grafica di lavoro dove viene mostrata la struttura del modello e il flusso di lavoro che rappresenta. La parte sinistra della finestra è una sezione con cinque pannelli che possono essere utilizzati per aggiungere nuovi elementi al modello:
Proprietà Modello
: puoi specificare il nome del modello e il gruppo che lo conterràInput
: tutti gli input che daranno forma al tuo modelloAlgoritmi
: gli algoritmi di Processing disponibiliVariabili
: puoi anche definire variabili che saranno disponibili solo nel Processing del Modellatore.Storico dei comandi
: questo pannello registrerà tutto ciò che accade nel modellatore, rendendo facile eliminare le cose che hai fatto in modo errato.
La creazione di un modello comporta due passi fondamentali:
Definizione degli input necessari. Questi input saranno aggiunti alla finestra dei parametri, in modo che l’utente possa impostare i loro valori quando esegue il modello. Il modello stesso è un algoritmo, quindi la finestra dei parametri viene generata automaticamente come per tutti gli algoritmi disponibili nel framework Processing.
Definizione del flusso di lavoro. Utilizzando i dati in ingresso del modello, il flusso di lavoro viene definito aggiungendo algoritmi e selezionando come utilizzano gli input definiti o gli output generati da altri algoritmi nel modello.
23.5.1. Definizione dei dati in ingresso
Il primo passo è quello di definire gli input per il modello. I seguenti elementi si trovano nel pannello Input sul lato sinistro della finestra del modellatore:
Configurazione Autenticazione
Booleano
Colore
Nome Connessione
Gestione Coordinate
SR
Schema del Database
Tabella Database
Datetime
Distanza
Enum
Espressione
Estensione
Aggregati campo
Mappatura campi
File/Cartella
Geometria
Layer Mappa
Tema Mappa
Matrice
Layer Mesh
Ingressi multipli
Numero
Punto
Layout di stampa
Oggetto del Layout di stampa
Intervallo
Banda Raster
Layer Raster
Scala
Stringhe di testo
Layer creazione TIN
Elementi vettoriali
Campo del Vettore
Vettore
Layer vettoriali di generatori di tasselli
Nota
Passando con il mouse sopra gli input verrà mostrato un tooltip con informazioni aggiuntive.
Quando si fa doppio clic su un elemento, viene mostrata una finestra di dialogo che permette di definire le sue caratteristiche. A seconda del parametro, la finestra di dialogo conterrà almeno un elemento (la descrizione, che è ciò che l’utente vedrà quando esegue il modello). Per esempio, quando si aggiunge un valore numerico, come si può vedere nella prossima figura, oltre alla descrizione del parametro, si deve impostare un valore predefinito e la gamma dei valori validi.
Puoi definire l’input come obbligatorio per il tuo modello selezionando l’opzione Obbligatorio
e selezionando la checkbox Avanzato
puoi impostare l’input all’interno della sezione Avanzato`
. Questo è particolarmente utile quando il modello ha molti parametri e alcuni di essi non sono semplici, ma vuoi in ogni caso sceglierli.
La scheda Commenti
ti permette di etichettare l’input con più informazioni, per descrivere meglio il parametro. I commenti sono visibili solo nell’area grafica del modellatore e non nella finestra di dialogo finale dell’algoritmo.
Per ogni input aggiunto, un nuovo elemento viene aggiunto all’area grafica del modellatore.
Puoi anche aggiungere degli input trascinando il tipo di input dalla lista e facendolo cadere nella posizione in cui vuoi che sia nell’area grafica del modellatore. Se vuoi cambiare un parametro di un input esistente, basta fare doppio clic su di esso, e la sua stessa finestra di dialogo apparirà.
23.5.2. Definizione del flusso operativo
Nel seguente esempio aggiungeremo due input e due algoritmi. Lo scopo del modello è quello di copiare i valori di elevazione da un layer raster DEM a un vettore lineare usando l’algoritmo Drape
, e poi calcolare l’ascesa totale del layer di linee usando l’algoritmo Climb Along Line
.
Nella scheda Input, scegli i due input come Vector Layer
per la linea e Raster Layer
per il DEM. Ora siamo pronti ad aggiungere gli algoritmi al flusso di lavoro.
Gli algoritmi possono essere trovati nel pannello Algoritmi, raggruppati nello stesso modo in cui sono nella casella degli strumenti di Processing.
Per aggiungere un algoritmo a un modello, fai doppio clic sul suo nome o trascinalo, proprio come per gli input. Come per gli input è possibile cambiare la descrizione dell’algoritmo e aggiungere un commento. Quando si aggiunge un algoritmo, apparirà una finestra di esecuzione, con un contenuto simile a quello che si trova nel pannello di esecuzione che viene mostrato quando si esegue l’algoritmo dalla barra degli strumenti. L’immagine seguente mostra entrambe le finestre di dialogo dell’algoritmo Drape (set Z value from raster)
e Climb along line
.
Come puoi vedere ci sono alcune differenze.
Hai quattro scelte per definire gli input dell’algoritmo:
Valore
: permette di impostare il parametro da un layer caricato nel progetto QGIS o di sfogliare un layer da una cartella|Espressione|
Valore precalcolato
: con questa opzione puoi aprire il Costruttore di Espressioni e definire la tua espressione per inserire il parametro. Gli input del modello insieme ad alcune altre statistiche del layer sono disponibili come variabili e sono elencate nella parte superiore della finestra di dialogo Cerca del Costruttore di EspressioniModel Input
: scegli questa opzione se il parametro proviene da un input del modello che hai definito. Una volta cliccata, questa opzione elencherà tutti gli input adatti al parametroRisultato algoritmo
: è utile quando il parametro di input di un algoritmo è un output di un altro algoritmo
Gli output dell’algoritmo hanno l’opzione aggiuntiva Model Output
che rende l’output dell’algoritmo disponibile nel modello.
Se un layer generato dall’algoritmo deve essere usato solo come input per un altro algoritmo, non modificare quella casella di testo.
Nell’immagine seguente puoi vedere i due parametri di input definiti come Model Input
e il layer di output temporaneo:
In tutti i casi, troverai un parametro aggiuntivo chiamato Dependencies che non è disponibile quando chiami l’algoritmo dal toolbox. Questo parametro permette di definire l’ordine di esecuzione degli algoritmi, definendo esplicitamente un algoritmo come parent di quello corrente. Questo forzerà l’algoritmo parent ad essere eseguito prima di quello corrente.
Quando usi l’output di un algoritmo precedente come input del tuo algoritmo, questo imposta implicitamente l’algoritmo precedente come genitore di quello attuale (e pone la freccia corrispondente nell’area grafica del modellatore). Tuttavia, in alcuni casi un algoritmo potrebbe dipendere da un altro anche se non utilizza alcun oggetto in uscita da esso (per esempio, un algoritmo che esegue una frase SQL su un database PostGIS e un altro che importa un layer nel medesimo database). In questo caso, basta selezionare l’algoritmo precedente nel parametro Dipendenze e saranno eseguiti nell’ordine corretto.
Una volta che tutti i parametri sono stati assegnati valori validi, clicca su OK e l’algoritmo sarà aggiunto all’area grafica. Sarà collegato agli elementi dell’area grafica (algoritmi o input) che forniscono oggetti utilizzati come input per l’algoritmo.
Gli elementi possono essere trascinati in una posizione diversa sull’area grafica. Questo è utile per rendere la struttura del modello più chiara e intuitiva. Puoi anche ridimensionare gli elementi. Questo è particolarmente utile se la descrizione dell’input o dell’algoritmo è lunga.
I collegamenti tra gli elementi sono aggiornati automaticamente e si può vedere un pulsante più in alto e in basso di ogni algoritmo. Facendo clic sul pulsante verranno elencati tutti gli ingressi e le uscite dell’algoritmo in modo da poter avere una rapida panoramica.
Puoi ingrandire e rimpicciolire usando la rotella del mouse.
Puoi eseguire il tuo algoritmo in qualsiasi momento cliccando sul pulsante . Per utilizzare l’algoritmo dalla casella degli strumenti, deve essere salvato e la finestra di dialogo del modellatore chiusa, per permettere alla casella degli strumenti di aggiornare il suo contenuto.
23.5.3. Interagire con l’area grafica e gli elementi
Puoi usare i pulsanti , , e per zoomare l’area grafica del modellatore. Il comportamento dei pulsanti è fondamentalmente lo stesso della barra degli strumenti principale di QGIS.
Il pannello Storico dei comandi
insieme ai pulsanti e sono estremamente utili per tornare rapidamente a una situazione precedente. Il pannello Storico dei comandi
elenca tutto ciò che hai fatto quando hai creato il flusso di lavoro.
Puoi spostare o ridimensionare molti elementi allo stesso tempo, selezionandoli prima e trascinando il mouse.
Se vuoi agganciare gli elementi mentre li sposti nell’area grafica puoi scegliere
.Il menu
contiene alcune opzioni molto utili per interagire con gli elementi del modello:Aggancia Elementi selezionati al Reticolo
: aggancia e allinea gli elementi in una grigliaElimina componenti selezionati: elimina tutti gli elementi selezionati dal modello
Aggiungi una cornice per il gruppo
: aggiunge una cornice trascinabile all’area garafica. Questa funzione è molto utile in grandi modelli per raggruppare elementi nel nell’area grafica del modellatore e per mantenere pulito il flusso di lavoro. Per esempio potremmo raggruppare tutti gli input dell’esempio:
Puoi cambiare il nome e il colore delle cornici. Le cornici di gruppo sono molto utili se utilizzate insieme a
. Questo permette di zoomare su una parte specifica del modello.Potresti voler cambiare l’ordine degli input e come sono elencati nella finestra di dialogo principale del modello. In fondo al pannello Input
troverai il pulsante Riordina Modelli in Ingresso...
e cliccando su di esso si apre una nuova finestra di dialogo che ti permette di cambiare l’ordine degli input:
23.5.4. Salvataggio e caricamento di modelli
Usa il pulsante Salva modello per salvare il modello corrente e il pulsante Apri modello per aprire un modello precedentemente salvato. I modelli sono salvati con l’estensione .model3
. Se il modello è già stato salvato dalla finestra del modellatore, non verrà richiesto il nome del file. Poiché c’è già un file associato al modello, quel file sarà usato per i salvataggi successivi.
Prima di salvare un modello, devi inserire un nome e un gruppo per esso nelle caselle di testo nella parte superiore della finestra.
I modelli salvati nella cartella models
(la cartella predefinita quando viene richiesto un nome di file per salvare il modello) appariranno nella casella degli strumenti nel ramo corrispondente. Quando la barra degli strumenti viene attivata, cerca nella cartella models
i file con estensione .model3
e carica i modelli contenuti. Poiché un modello è esso stesso un algoritmo, può essere aggiunto alla barra degli strumenti proprio come qualsiasi altro algoritmo.
I modelli possono anche essere salvati all’interno del file di progetto usando il pulsante Salva modello nel progetto. I modelli salvati con questo metodo non saranno scritti come file .model3
su disco ma saranno incorporati nel file di progetto.
I modelli di progetto sono disponibili nel menu :guilabel: Modelli di progetto della barra degli strumenti.
Puoi specificare la cartella dei modelli nella finestra di configurazione di Processing, presente nel gruppo Modellatore.
I modelli caricati dalla cartella models
appaiono non solo nella casella degli strumenti, ma anche nell’albero degli algoritmi nella scheda Algoritmi della finestra del modellatore. Ciò significa che si può incorporare un modello come parte di un modello più grande, proprio come altri algoritmi.
I modelli appariranno nel pannello Browser e possono essere eseguiti da lì.
23.5.4.1. Esportare un modello come immagine, PDF o SVG
Un modello può anche essere esportato come immagine, SVG o PDF (per scopi illustrativi) cliccando su :sup: Esporta come immagine, Esporta come PDF o Esporta come SVG.
23.5.5. Aggiornare il modello
Puoi modificare il modello che stai creando, ridefinendo il flusso di lavoro e le relazioni tra gli algoritmi e gli input che definiscono il modello.
Se clicchi con il tasto destro del mouse su un algoritmo nell’area grafica, vedrai un menu contestuale come quello mostrato qui accanto:
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… verrà mostrata la finestra di dialogo dei parametri dell’algoritmo, in modo da poter cambiare gli input e i valori dei parametri. Non tutti gli elementi di input disponibili nel modello appariranno come input disponibili. Layer o valori generati in un passo più avanzato del flusso di lavoro definito dal modello non saranno disponibili se causano dipendenze circolari.
Seleziona i nuovi valori e clicca sul pulsante OK come al solito. Le connessioni tra gli elementi del modello cambieranno di conseguenza nell’area grafica del modellatore.
The Add comment… allows you to add a comment to the algorithm to better describe the behavior.
Un modello può essere eseguito parzialmente disattivando alcuni dei suoi algoritmi. Per farlo, selezionare l’opzione :guilabel: Disattiva nel menu contestuale che appare quando si clicca con il tasto destro del mouse su un elemento dell’algoritmo. L’algoritmo selezionato e tutti quelli del modello che dipendono da esso saranno visualizzati in grigio e non saranno eseguiti come parte del modello.
Quando clicchi con il tasto destro del mouse su un algoritmo che non è attivo, vedrai un’opzione di menu Attiva che puoi usare per riattivarlo.
23.5.6. Modifica dei file di aiuto del modello e delle meta-informazioni
Puoi documentare i tuoi modelli dal modellatore stesso. Clicca sul pulsante Modifica guida del modello, e apparirà una finestra di dialogo come quella mostrata di seguito.
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
23.5.7. Esportare un modello come script Python
Come vedremo in un capitolo successivo, gli algoritmi di Processing possono essere chiamati dalla console Python di QGIS, e nuovi algoritmi di Processing possono essere creati usando Python. Un modo veloce per creare un tale script Python è quello di creare un modello e poi esportarlo come file Python.
Per farlo, clicca su Esporta come Algoritmo Scrip… nell’area grafica del modellatore o clicca col tasto destro sul nome del modello nella barra degli strumenti di Processing e scegli Esporta Modello come Algoritmo Python….
23.5.8. A proposito degli algoritmi disponibili
Si potrebbe notare che alcuni algoritmi che possono essere eseguiti dalla barra degli strumenti non appaiono nella lista degli algoritmi disponibili quando si sta progettando un modello. Per essere incluso in un modello, un algoritmo deve avere la semantica corretta. Se un algoritmo non ha una semantica ben definita (per esempio, se il numero di layer in uscita non può essere conosciuto in anticipo), allora non è possibile utilizzarlo all’interno di un modello, e non apparirà nell’elenco degli algoritmi che si possono trovare nella finestra di dialogo del modellatore.