Convertire dati raster continui in vettori

Convertire dati raster in vettori è talvolta necessario per poter usare dei modelli di calcolo particolari o delle tool che lavorano solo sul formato vettoriale.

In un precedente post abbiamo visto (guarda qui per il post e qui per il video) come convertire raster contenenti una variabile discreta in vettori. Oggi invece vediamo come convertire raster contenenti una variabile continua,che da qui per brevità chiameremo raster continui, in file vettoriali.

Sintesi del processo per convertire dati raster continui in vettori

Ci sono tanti metodi per convertire dati raster continui in vettori. Anzi, se ne conoscete uno più bello e più rapido del nostro fatecelo sapere nei commenti.

Il metodo che vi proponiamo oggi passa attraverso diverse fasi successive. Mi raccomando, se siete principianti del GIS non scoraggiatevi! Seguendo passo passo questo tutorial ci riuscirete.

Le fasi, o step, da seguire sono le seguenti:

  1. Creare un reticolo di poligoni equivalenti ai pixel del raster da convertire.
  2. Calcolare i centroidi corrispondenti ai poligoni del reticolo creato nel punto 1.
  3. Campionare il raster da convertire con i punti creati in 2.
  4. Copiare i valori associati ai punti all’interno del reticolo poligonale.
  5. Salvare il vettore finale completo.

Andiamo adesso a guardare più in dettaglio tutti gli step.

2. Primo step di conversione: la poligonizzazione dei pixel

Dicevamo che si parte dalla conversione della parte geometrica, andando a creare un reticolo di poligoni equivalenti ai pixel del raster da convertire.

Già questa operazione, può essere onerosa per il nostro calcolatore, a seconda di:

  • quanto grande è l’extent del raster da convertire;
  • la dimensione del pixel del raster di partenza.

Funziona così: più l’area da convertire sarà grande, più oneroso sarà il calcolo e più grande sarà la dimensione del file di output.

Inoltre, più il pixel avrà dimensione piccola, più l’output sarà difficile da gestire e calcolare perché pesante e di grande dimensione.

Noi, in questo tutorial, useremo un piccolo DEM, che sicuramente è un raster continuo.

Andiamo nel pannello degli Strumenti di Processing, espandiamo la famiglia di strumenti Creazione di vettori e apriamo la tool Crea reticolo (0).

1. Il primo parametro da settare è il tipo di reticolo che vogliamo ottenere (1). Ci sono cinque possibilità. Possiamo ottenere un reticolo la cui geometria base è:

  • il punto
  • la linea
  • il rettangolo
  • il rombo
  • l’esagono.

Per la nostra applicazione noi useremo il rettangolo, anche se si tratterà di un rettangolo speciale, il quadrato, visto che il nostro raster ha pixel quadrati con lato uguale a 20m.

Ti stiamo dando quindi una informazione importante ai fini della corretta conversione:

Il reticolo vettoriale che stiamo creando deve avere feature di base con forma e dimensione uguale a quella del raster che vogliamo convertire.

2. Dopo aver scelto il tipo di reticolo da usare dobbiamo settare l’Estensione reticolo, che coincide con quella del raster di partenza. Per inserirla potremmo farlo manualmente, ma, meglio ancora, possiamo cliccare sul pulsantino alla fine dell’area di input (2), selezionare Calcola da layer ed infine selezionare il layer che ci interessa, che nel nostro caso è il DEM.

3. Adesso è il momento di inserire la dimensione del pixel e quindi, in futuro, dei rettangoli di base del vettore di output. Lo facciamo nelle caselle Spaziatura orizzontale e Spaziatura verticale (3). Il DEM che stiamo usando, come anticipato, ha un pixel 20x20m, quindi inseriamo 20 metri in spaziatura orizzontale e 20 metri in spaziatura verticale.

4. Alla voce SR del reticolo (4) bisogna scegliere il Sistema di Riferimento che avrà il vettore di output. Noi lasciamo lo stesso SR del dato di input.

5. Infine in Reticolo (5) potete scegliere dove salvare e come chiamare il file di output.

Clicchiamo su Esegui e guardiamo il risultato.

Il primo step per la conversione di un raster continuo in vettore. Le impostazioni nel tool Crea reticolo.

Ecco qua, abbiamo ottenuto un reticolo fatto da poligoni quadrati con lato pari a 20m. Nella sua tabella degli attributi QGIS ha inserito un identificativo per ogni poligono e le coordinate del suo extent.

Reticolo di output e tabella degli attributi ad esso associata.

3. Secondo step di conversione: calcolo dei centroidi corrispondenti ai poligoni del reticolo

Se avete letto i nostri precedenti post (per una spiegazione teorica vedi qui, per una spiegazione pratica o un video guarda qui o qui) siete già sicuramente dei ninja dei centroidi, quindi possiamo andare veloci su questa fase.

Andiamo nel gruppo Geometria vettore ed apriamo la tool Centroidi.

Il Vettore in ingresso è il Reticolo.

Dopo aver definito il nome e la directory del file di output che noi chiamiamo, con grande fantasia, Centroidi, potete cliccare su Esegui.

E anche il secondo step è stato eseguito. Prima di passare al terzo step, notate che all’interno della tabella degli attributi dei centroidi, QGIS si è portato dietro gli stessi campi che erano presenti nel reticolo vettoriale. In particolare l’Id ci servirà in uno dei prossimi passi.

4. Terzo step di conversione: campionatura del raster da convertire

Adesso cominciamo a lavorare anche con i valori numerici contenuti nel raster.

Per fare questo dobbiamo usare la tool Campiona valori raster, contenuta nel gruppo Analisi raster (anche su questa tool, se volete un approfondimento, potete guardare qui o qui).

Apriamo la tool e per prima cosa inseriamo il Vettore in ingresso, i centroidi (1).

Poi inseriamo in Layer raster (2) il raster da cui QGIS deve copiare i valori numerici. Per noi è il DEM.

Questi valori verranno inseriti in un campo, a cui possiamo dare noi il nome. Lo chiamiamo QUOTA, visto che i valori che estraiamo sono proprio le quote rispetto al livello del mare.

Infine impostiamo il nome e la directory del file di output. Noi lo chiamiamo Centroidi quotati.

Il terzo step per la conversione di un raster continuo in vettore. Le impostazioni nel tool Campiona valori raster.

Guardiamo il file di ouput: abbiamo ottenuto un reticolo puntuale e nella tabella degli attributi abbiamo un elemento che ci servirà per il prossimo passo: l’ identificativo del punto (1), corrispondente all’identificativo del poligono che si trova nello stesso punto.

Vi eravate forse chiesti perché abbiamo calcolato i centroidi piuttosto che realizzare direttamente un reticolo puntuale. Il motivo è proprio questo: ci serviva questo campo con lo stesso id del reticolo poligonale.

 Abbiamo inoltre la quota del DEM (2) nella posizione occupata sempre in quel punto.

Reticolo puntuale e tabella degli attributi ad esso associata risultante
Reticolo puntuale e tabella degli attributi ad esso associata risultante.

5. Quarto step di conversione: copiatura dei valori associati ai punti all’interno del reticolo poligonale.

Vogliamo ora copiare la tabella degli attributi dal reticolo puntuale al reticolo poligonale, in modo da completare quello che è il nostro scopo: vettorializzare un raster continuo in QGIS. Il vettore finale dunque dovrà essere un reticolo poligonale con all’interno l’attributo della quota.

Possiamo effettuare questo step grazie all’uso del join.

Andiamo quindi a selezionare il layer Reticolo e apriamone la finestra delle proprietà. Andiamo poi alla scheda Join (1). Clicchiamo sul pulsante con la croce (2) per aggiungere un nuovo join.

Si aprirà la finestra Aggiungi Vettore da Unire. Qui:

  • Dobbiamo settare il Vettore di join (3), cioè qual è il vettore da cui andare a prendere le informazioni che vogliamo copiare. Potreste chiederci: ma non potevamo effettuare la campionatura direttamente con il reticolo poligonale, invece di fare tutti questi passaggi? La risposta è no, perché la tool di ricampionatura accetta solo file puntuali come input. Selezioniamo quindi i centroidi Quotati.
  • Settiamo il Campo di unione e il Campo di destinazione (4) che si chiamano allo stesso modo e cioè id.
  • Mettiamo la spunta alla voce Campi uniti (5), perché non ci interessa portarci dietro tutte le informazioni contenute nei centroidi Quotati, ma solo il campo QUOTA.
  • Infine, visto che possiamo modificare il Prefisso del nome del campo personalizzato, (6) noi riduciamo quello che ci propone QGIS, lasciando solo la c, l’iniziale dello shape di join.
Quarto step di conversione: il join per copiare i valori del raster nel reticolo vettoriale
Quarto step di conversione: il join per copiare i valori del raster nel reticolo vettoriale.

Clicchiamo OK, nella finestra Aggiungi vettore da Unire, poi di nuovo ok nella finestra delle Proprietà e andiamo a guardare il risultato.

Apriamo la tabella degli attributi del vettore Reticolo e vediamo che contiene anche il campo cQUOTA.

6. Quinto step di conversione: salvataggio del vettore finale completo.

A questo punto potremmo anche fermarci, perché abbiamo già ottenuto una prima versione di un vettore corrispondente al DEM che volevamo convertire.

Come forse saprete, tuttavia, questo tipo di join è temporaneo e vale solo all’interno del progetto in cui stiamo lavorando. Quindi se chiudiamo QGIS dovremmo poi rifare il join.

Per questo motivo vi proponiamo un quinto ed ultimo step, che consiste nell’esportare il reticolo, in modo da salvare in questo nuovo file anche il campo QUOTA.

Clicchiamo con il tasto destro del mouse su Reticolo, selezioniamo Esporta e successivamente Salva Elementi Come.

Nella finestra di esportazione, dopo aver scelto l’estensione e il nome da dare al file finale, che noi chiamiamo DEM vettoriale, controllate che ci sia anche il campo cQuota.

Quinto step di conversione: esportazione del vettore finale risultante dalla conversione del raster
Quinto step di conversione: esportazione del vettore finale risultante dalla conversione del raster.

Clicchiamo su OK, et voila, abbiamo ottenuto il raster vettorializzato che desideravamo, che può essere utilizzato per la modellazione che più vi interessa.

Il risultato della trasformazione di un raster continuo in vettore.
Il risultato della trasformazione di un raster continuo in vettore.

Tips and tricks I

Una volta capito il processo, si può creare un modello in QGIS , all’interno degli strumenti di processing, in modo da realizzare una tool che, dopo aver selezionato raster di input, extent e larghezza di cella, esegua tutti i passaggi in un tocco solo per voi.

Bene, questo post è finito. Se ti è piaciuto condividilo! Hai dubbi o suggerimenti? Lascia pure un commento.

Puoi vedere anche il nostro video su YouTube “Convertire dati raster continui in vettori” e iscriverti al nostro canale.

Ci GISsiamo al prossimo post.

Ciaooo

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *