26.5. Il designer modello
Il designer modello consente di creare modelli complessi utilizzando un’interfaccia semplice e facile da usare. Quando si lavora con un GIS, la maggior parte delle operazioni di analisi non sono isolate, ma fanno parte di una catena di operazioni. Utilizzando il designer modello, questa catena di operazioni può essere racchiusa in un unico processo, che può essere eseguito in un secondo momento con una serie diversa di input. Indipendentemente dal numero di passaggi e di algoritmi diversi, un modello viene eseguito come un singolo algoritmo, risparmiando tempo e fatica.
Il modellatore può essere aperto dal menu Processing (
).26.5.1. L’interfaccia Designer Modello
Nella sua parte principale, il modellatore dispone di una area di lavoro in cui è possibile costruire la struttura del modello e il flusso di lavoro che rappresenta.
Nella parte superiore della finestra di dialogo, diversi menu e la barra degli strumenti Navigazione danno accesso a una serie di strumenti.
26.5.1.4. Pannelli
La parte sinistra della finestra è una sezione con cinque pannelli che possono essere utilizzati per aggiungere nuovi elementi al modello:
Proprietà del modello: specifica il nome (obbligatorio) del modello e il gruppo in cui sarà visualizzato nella Processing Toolbox.
Inputs: tutti i input parameters che possono dare forma al modello
Algoritmi: gli Processing algorithms disponibili.
Variabili: I modelli possono contenere variables dedicate, uniche e disponibili solo per loro. A queste variabili si può accedere con qualsiasi espressione usata nel modello. Sono utili per controllare gli algoritmi all’interno di un modello e per controllare più aspetti del modello modificando una singola variabile. Le variabili possono essere visualizzate e modificate nel pannello Variabili.
Undo History: questo pannello registrerà tutto ciò che accade nel modellatore, rendendo facile l’annullamento degli errori commessi.
26.5.1.5. A proposito degli algoritmi disponibili
Alcuni algoritmi che possono essere eseguiti dalla casella degli strumenti non appaiono nell’elenco degli algoritmi disponibili quando si progetta un modello. Per essere incluso in un modello, un algoritmo deve avere la semantica corretta. Se un algoritmo non ha una semantica ben definita (ad esempio, se non è possibile conoscere in anticipo il numero di layer in uscita), non è possibile utilizzarlo all’interno di un modello e non apparirà nell’elenco di algoritmi che si trova nella finestra di dialogo del modellatore. D’altra parte, alcuni algoritmi sono specifici del modellatore. Questi algoritmi si trovano nel gruppo “Strumenti del modellatore”.
26.5.2. Creare un modello
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.
26.5.2.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:
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 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.
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à.
Quando utilizzi un modello all’interno di un altro modello, gli input e gli output necessari vengono visualizzati nell’area di disegno.
26.5.2.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 tuttavia alcune differenze. Ogni parametro ha un menu a discesa accanto che consente di controllare come verrà utilizzato durante il flusso di lavoro:
Valore: consente di assegnare un valore statico al parametro. A seconda del tipo di parametro, il widget consente di inserire un numero (
5.0
), una stringa (mytext
), di selezionare i(il) layer caricati nel progetto QGIS o in una cartella, di selezionare elementi da un elenco, …Valore precalcolato: apre la finestra di dialogo Expression Builder e ti consente di definire un’espressione per riempire il parametro. Gli input del modello e alcune altre statistiche del layer sono disponibili come variabili e sono elencati nella parte superiore della finestra di dialogo Cerca del costruttore di espressioni. L’espressione viene valutata una volta prima dell’esecuzione dell’algoritmo figlio e utilizzata durante l’esecuzione di tale algoritmo.
Input del modello: consente di utilizzare un input aggiunto al modello come parametro. Una volta cliccata, questa opzione elenca tutti gli input adatti al parametro.
Algoritmo di output: consente di utilizzare l’output di un altro algoritmo come input dell’algoritmo corrente. Come per gli input del modello, questa opzione elenca tutti gli input adatti per il parametro.
Anche il parametro di uscita presenta le opzioni di cui sopra nel menu a discesa:
aggiungere output statici per gli algoritmi figli, ad esempio salvando sempre l’output di un algoritmo figlio in un geopackage o in un layer postgres predefinito
utilizzare valori di output basati su un’espressione per gli algoritmi figli, ad esempio generando un nome di file automatico basato sulla data odierna e salvando gli output in tale file
utilizzare un input del modello, ad esempio l’input del modello File/Folder, per specificare un file o una cartella di output.
utilizzare l’output di un altro algoritmo, ad esempio l’output dell’algoritmo Create directory (da Modeler tools)
un’opzione aggiuntiva Model Output rende disponibile l’output dell’algoritmo nel modello. Se un layer generato dall’algoritmo deve essere usato solo come input per un altro algoritmo, non modificare questa casella di testo.
Nell’immagine seguente puoi vedere i due parametri di input definiti come
Model Input
e il layer di output temporaneo:
Puoi anche scegliere un parametro aggiuntivo, chiamato Dependencies, che non è disponibile quando si richiama l’algoritmo dalla casella degli strumenti. Questo parametro consente di definire l’ordine di esecuzione degli algoritmi, definendo esplicitamente un algoritmo come genitore di quello corrente. In questo modo, l’algoritmo genitore verrà 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 dell’area di disegno usando lo strumento Seleziona/Sposta elemento. Ciò è utile per rendere più chiara e intuitiva la struttura del modello. Puoi anche ridimensionare gli elementi, agendo sul loro bordo. Ciò è particolarmente utile se la descrizione dell’input o dell’algoritmo è lunga. Con l’opzione selezionata, il ridimensionamento o lo spostamento degli elementi può essere vincolato a una griglia virtuale, per una progettazione dell’algoritmo più strutturata visivamente.
I collegamenti tra gli elementi vengono aggiornati automaticamente e puoi vedere un pulsante +
nella parte superiore e inferiore di ogni algoritmo. Facendo clic sul pulsante, vengono elencati tutti gli ingressi e le uscite dell’algoritmo, in modo da avere una rapida panoramica.
Con lo strumento
, è possibile aggiungere una contenitore trascinabile all’area di disegno. Questa funzione è molto utile nei modelli di grandi dimensioni per raggruppare elementi correlati nell’area di disegno del modellatore e per mantenere pulito il flusso di lavoro. Ad esempio, potremmo raggruppare tutti gli input dell’esempio:Puoi modificare il nome e il colore delle caselle. Le caselle di gruppo sono molto utili se usate insieme allo strumento
, che consente di zoomare su una parte specifica del modello. È inoltre possibile eseguire lo zoom avanti e indietro utilizzando la rotella del mouse.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 Ingressi Modelli...
e cliccando su di esso si apre una nuova finestra di dialogo che ti permette di cambiare l’ordine degli input:
È possibile aggiungere commenti agli input o agli algoritmi presenti nel modellatore. Ciò può essere fatto accedendo alla scheda Commento dell’elemento o facendo clic con il pulsante destro del mouse. Nella stessa scheda è possibile impostare manualmente un colore per i commenti dei singoli modelli. I commenti sono visibili solo nell’area di disegno del modellatore e non nella finestra di dialogo finale dell’algoritmo; possono essere nascosti disattivando .
Puoi eseguire l’algoritmo in qualsiasi momento facendo clic sul pulsante Esegui modello. Quando si usa l’editor per eseguire un modello, qualsiasi valore non predefinito viene salvato negli input. Ciò significa che eseguendo il modello in un secondo momento dall’editor, la finestra di dialogo sarà precompilata con quei valori in ogni esecuzione successiva.
Per utilizzare l’algoritmo dalla casella degli strumenti, devi salvarlo e chiudere la finestra di dialogo del modellatore, per consentire alla casella degli strumenti di aggiornare il suo contenuto.
26.5.2.3. Documentare il tuo modello
Devi documentare il modello e questo può essere fatto dal modellatore stesso. Cliccando sul pulsante Edit model help, 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
26.5.3. Salvataggio e caricamento di modelli
26.5.3.1. Salvare 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 Modelli di progetto della casella degli strumenti e nella voce di menu .
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ì.
26.5.3.2. 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….
26.5.3.3. 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.
26.5.4. 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.