Importante

La traduzione è uno sforzo comunitario you can join. Questa pagina è attualmente tradotta al 72.22%.

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

The next step is to compute the extent of the selected features. That’s where we can use the model-only tool called Vector layer bounds. First, we will have to create a layer that has the extent of those selected features. Then, we can use this tool on that layer.

An easy way of creating a layer with the extent of the selected features is to compute a convex hull of the input points layer. It will use only the selected point, so the convex hull will have the same bounding box as the selection. Then we can add the Vector layer bounds algorithm, and use the convex hull layer as input. It should look this in the modeler canvas:

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

The result from the Vector layer bounds is a set of four numeric values and a extent object. We will use both the numeric outputs and the extent for this exercise.

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

We can now add the algorithm that rasterizes the vector layer, using the extent from the Vector layer bounds algorithm as input.

Compila i parametri dell’algoritmo come indicato di seguito:

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

La finestra del modellatore dovrebbe ora apparire come.

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

Finally, fill the no-data values of the raster layer using the Close gaps algorithm.

../../../_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