17.21. Usare gli strumenti solo-modellatore per la creazione di un modello

Nota

Questa lezione mostra come utilizzare alcuni algoritmi disponibili solo nel modellatore, che forniscono funzionalità aggiuntive ai modelli.

L’obiettivo di questa lezione è utilizzare il modellatore per creare un algoritmo di interpolazione che tenga conto della selezione corrente, non solo per utilizzare solo gli elementi selezionati, ma per utilizzare l’estensione di tale selezione per creare il layer raster interpolato.

Il processo di interpolazione prevede due step, come già spiegato nelle lezioni precedenti: la rasterizzazione del layer dei punti e il riempimento dei valori senza dati che appaiono nel layer rasterizzato. Se il layer puntuale ha una selezione, verranno utilizzati solo i punti selezionati, ma se l’estensione dell’output è impostata per essere regolata automaticamente, verrà utilizzata l’intera estensione del layer. In altre parole, l’estensione del layer viene sempre considerata come l’estensione completa di tutti gli elementi, non quella calcolata solo da quelli selezionati. Cercheremo di risolvere questo problema utilizzando alcuni strumenti aggiuntivi nel nostro modello.

Apri il modellatore e avvia il modello aggiungendo gli input necessari. In questo caso abbiamo bisogno di un layer vettoriale (limitato ai punti) e di un suo attributo, con i valori che utilizzeremo per la rasterizzazione.

../../../_images/inputs.png

Il passo successivo consiste nel calcolare l’estensione degli elementi selezionati. È qui che si può utilizzare lo strumento di solo-modellatore chiamato Vector layer bounds. Per prima cosa, è necessario creare un layer con l’estensione degli elementi selezionati. Quindi si può utilizzare questo strumento su tale layer.

Un modo semplice per creare un layer con l’estensione degli elementi selezionati è quello di calcolare una carena convessa del layer dei punti di input. Si utilizzerà solo il punto selezionato, quindi la carena convessa avrà lo stesso rettangolo di selezione. Quindi si può aggiungere l’algoritmo Vector layer bounds e usare il layer poligono convesso come input. L’aspetto dovrebbe essere questo nell’area di disegno del modellatore:

../../../_images/convexhull_and_extent.png

Il risultato di Vector layer bounds è un insieme di quattro valori numerici e un oggetto extent. Per questo esercizio utilizzeremo sia i risultati numerici sia l’estensione.

../../../_images/extent_outputs.png

Ora possiamo aggiungere l’algoritmo che rasterizza il layer vettoriale, usando come input l’estensione dell’algoritmo Vector layer bounds.

Compila i parametri dell’algoritmo come indicato di seguito:

../../../_images/rasterize3.png

La finestra del modellatore dovrebbe ora apparire come.

../../../_images/canvas_rasterize.png

Infine, riempi i valori no-data del layer raster utilizzando l’algoritmo Close gaps.

../../../_images/close_gaps1.png

L’algoritmo è ora pronto per essere salvato e aggiunto alla casella degli strumenti. È possibile eseguirlo e genererà un layer raster interpolando i punti selezionati nel layer di input; il layer avrà la stessa estensione della selezione.

Ecco un miglioramento dell’algoritmo. Abbiamo utilizzato un valore codificato per la dimensione delle celle durante la rasterizzazione. Questo valore va bene per il nostro layer di input di prova, ma potrebbe non esserlo per altri casi. Si potrebbe aggiungere un nuovo parametro, in modo che l’utente inserisca il valore desiderato, ma un approccio migliore sarebbe quello di far calcolare automaticamente il valore.

Possiamo usare il calcolatore solo-modellatore e calcolare questo valore dalle coordinate dell’estensione. Ad esempio, per creare un layer con una larghezza fissa di 100 pixel, si può usare la seguente formula nel calcolatore.

../../../_images/calculator1.png

Ora dobbiamo modificare l’algoritmo di rasterizzazione, in modo che utilizzi l’output del calcolatore invece del valore codificato.

L’algoritmo finale dovrebbe avere il seguente aspetto:

../../../_images/final.png