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 (Processing ► Graphical Modeler…).

26.5.1. L’interfaccia Designer Modello

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

Fig. 26.17 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.1. Menu Modello

Etichetta

Scorciatoia

Barra degli strumenti Navigazione

Descrizione

success Valida Modello

Verifica l’esistenza degli algoritmi e degli input utilizzati nel modello. Utile prima di rilasciare un modello.

play Esegui Modello…

F5

checkbox

Esegue il modello

Riordina Ingressi Modello…

Imposta l’ordine in cui gli input vengono presentati all’utente nella finestra di dialogo dell’algoritmo.

fileOpen Apri Modello…

Ctrl+O

checkbox

Apre un file .model3 per la modifica o l’esecuzione.

fileSave Salva Modello

Ctrl+S

checkbox

Salva il modello su disco come file .model3.

fileSaveAs Salva Modello come…

Ctrl+Shift+S

checkbox

Salva il modello su disco come nuovo file .model3.

fileSave Salva modello nel Progetto

checkbox

Incorpora il file del modello nel file di progetto, rendendolo disponibile quando si condivide il file di progetto.

helpContents Guida Modifica Modello…

checkbox

Un’interfaccia per documentare il modello, gli algoritmi, i parametri e gli output, nonché l’autore e il versioning.

Esporta ►

saveMapAsImage ► Esporta come Immagine…

checkbox

Salva il progetto grafico del modello in un formato di file immagine (a scopo puramente illustrativo).

saveAsPDF► Esporta come PDF…

Salva il progetto grafico del modello in un file in formato PDF (a scopo puramente illustrativo).

saveAsSVG► Esporta come SVG…

Salva il progetto grafico del modello in un file in formato SVG (a scopo puramente illustrativo).

|salvafile|► Esporta come Algoritmo Script…

checkbox

Genera un file di script python che include le istruzioni del modello.

26.5.1.2. Menu Modifica

Etichetta

Scorciatoia

Barra degli strumenti Navigazione

Descrizione

selectAll Seleziona Tutto

Ctrl+A

Seleziona tutti i componenti del modello nel visualizzatore

Aggancia Elementi Selezionati al Reticolo

aggancia e allinea gli elementi in una reticolo

redo Rifai

Ctrl+Y

checkbox

Ripristina l’ultima azione annullata. Vedi anche il pannello :guilabel: Annulla/Ripristina.

undo Annulla

Ctrl+Z

checkbox

Annulla la modifica precedente. Vedi anche il pannello :guilabel: Annulla/Ripristina.

editCut Taglia

Ctrl+X

Taglia una selezione di componenti dal modello.

editCopy Copia

Ctrl+C

Copia una selezione di componenti dal modello.

editPaste Incolla

Ctrl+V

Incolla una selezione di componenti tagliati o copiati da un modello a un altro o all’interno dello stesso modello. I componenti selezionati mantengono le proprietà e i commenti originari.

deleteSelected Cancella Componenti Selezionati

Del

Rimuove un componente dal modello.

Aggiungi Cornice Rappruppamento

Aggiunge un riquadro sullo sfondo dei componenti correlati per raggrupparli visivamente. Particolarmente utile nei modelli di grandi dimensioni per mantenere pulito il flusso di lavoro.

26.5.1.3. Menu Visualizza

Etichetta

Scorciatoia

Barra degli strumenti Navigazione

Descrizione

Zoom A ►

Ingrandisce l’estensione del riquadro del gruppo selezionato

zoomIn Ingrandisci

Ctrl++

checkbox

zoomOut Rimpiccilisci

Ctrl+-

checkbox

zoomActual Zoom al 100%

Ctrl+1

checkbox

zoomFullExtent Zoom Completo

Ctrl+0

checkbox

Visualizza tutti i componenti nell’area di disegno corrente.

checkbox Mostra Commenti

Visualizza i commenti associati a ogni algoritmo o input nel designer grafico.

unchecked Abilita aggancio

unchecked Abilita Visibilità Pannello

Ctrl+Tab

Attiva o disattiva il panels nel designer

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:

  1. Proprietà del modello: specifica il nome (obbligatorio) del modello e il gruppo in cui sarà visualizzato nella Processing Toolbox.

  2. Inputs: tutti i input parameters che possono dare forma al modello

  3. Algoritmi: gli Processing algorithms disponibili.

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

  5. 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:

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

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

Tabella 26.1 Elenco delle tipologie di parametri per la costruzione del modello

Annotation Layer

Authentication Configuration

Boolean

Color

Connection Name

Coordinate Operation

CRS

Database Schema

Database Table

Datetime

Distance

Duration

DXF Layers

Enum

Expression

Extent

Field Aggregates

Fields Mapper

File/Folder

Geometry

Map Layer

Map Theme

Matrix

Mesh Dataset Groups

Mesh Dataset Time

Mesh Layer

Multiple Input

Number

Point

Point Cloud Layer

Print Layout

Print Layout Item

Range

Raster Band

Raster Layer

Scale

String

TIN Creation Layers

Vector Features

Vector Field

Vector Layer

Vector Tile Writer Layers

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.

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

Fig. 26.18 Definizione Parametri del modello

Puoi definire l’input come obbligatorio per il tuo modello selezionando l’opzione checkbox 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.

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

Fig. 26.19 Parametri modello

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.

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

Fig. 26.20 Input al modello

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.

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

Fig. 26.21 Parametri dell’algoritmo del modello

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:

  • fieldInteger 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, …

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

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

  • processingAlgorithm 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 modelOutput 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:

    ../../../_images/models_parameters5.png

    Fig. 26.22 Parametri in ingresso e in uscita dell’algoritmo

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 select 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 View ► Enable snapping 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.

../../../_images/models_model.png

Fig. 26.23 Un modello completo

Con lo strumento Modifica ► Aggiungi casella di gruppo, è 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:

../../../_images/model_group_box.png

Fig. 26.24 Cornice raggruppamento del modello

Puoi modificare il nome e il colore delle caselle. Le caselle di gruppo sono molto utili se usate insieme allo strumento Visualizza ► Zoom su ►, 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:

../../../_images/model_reorder_inputs.png

Fig. 26.25 Riordinare gli input nel Modello

È 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 View ► Show Comments.

Puoi eseguire l’algoritmo in qualsiasi momento facendo clic sul pulsante start 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 editHelpContentEdit model help, apparirà una finestra di dialogo come quella mostrata di seguito.

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

Fig. 26.26 Aiuto per la modifica

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 fileSaveSalva modello per salvare il modello corrente e il pulsante fileOpenApri 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 addToProjectSalva 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 qgsProjectFileModelli di progetto della casella degli strumenti e nella voce di menu Progetto ► Modelli.

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 saveAsPythonEsporta 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 saveAsPythonEsporta 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 saveMapAsImage:sup: Esporta come immagine, saveAsPDFEsporta come PDF o saveAsSVGEsporta 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:

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

Fig. 26.27 Click destro sul modellatore

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.

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

Fig. 26.28 L’algoritmo non può essere eliminato

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.

../../../_images/deactivated.png

Fig. 26.29 Modello con algoritmo disattivato

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.