Il NoData in QGIS: come settarlo o trasformarlo

Ciao a tutti. Oggi parliamo di un valore molto importante nell’analisi raster: l’elemento NoData.

1. Cos’è il NoData

Capita talvolta di avere un raster con dei valori “strani” sui quali non si riesce a far nessun tipo di calcolo.

Il motivo per cui non riuscite a fare calcoli in un particolare punto del vostro raster è probabilmente dovuto alla presenza di valori NoData. Si tratta di un valore che può assumere il pixel di un raster e che QGIS interpreta come la mancanza del dato. Questo può succedere ad esempio nell’area esterna al vostro raster, oppure in zone in cui il valore del pixel non è stato rilevato. Per cui in tutto ciò che eseguite sul raster non riuscite ad avere alcun risultato.

Immaginiamo ad esempio di avere un DEM con dei NoData al suo interno. Come fa QGIS a calcolare la pendenza in quei punti? non lo può fare, perché il NoData non è un valore di quota.

Oppure, immaginiamo di avere dei raster di cui vogliamo fare la somma. Consideriamo, ad esempio, sempre il nostro DEM ed un altro raster contenente l’altezza di alcuni elementi che si trovano in superficie. Li voglio sommare per ottenere un Digital Surface Model. Anche in questo caso, se ho un NoData, la somma, nei pixel in cui esso è presente, non verrà eseguita.

Quindi il NoData è una specie di “elemento assorbente”. Tutto ciò che viene eseguito su di esso o qualsiasi valore “passa” su di esso con l’analisi raster, rimane NoData.

Eppure ci sono dei casi in cui fa comodo avere il NoData in alcune porzioni del nostro raster. Ad esempio se vogliamo ridurre l’extent di studio, oppure se vogliamo restringere lo studio del raster solo ad alcune categorie in esso presenti.

Per questo motivo, in questo video, vedremo sia come associare il valore NoData ad alcuni pixel, sia come fare ad associare un nuovo valore numerico a dei pixel che hanno valore NoData.

2. Quanto vale il NoData

Una cosa un po’ scomoda, nella gestione nel NoData, è che non tutti i software usano lo stesso valore per rappresentarlo. Vi spieghiamo come funziona: semplificando, il calcolatore parla il linguaggio dei numeri, per cui ha bisogno di definire un numero che per lui ha valore di NoData. Quindi, noi vediamo NoData, ma in realtà anche nei pixel con il NoData c’è un valore numerico. Ma, di nuovo, QGIS sa che deve trattarlo come se lì non ci fossero dati.

Nella vista nell’immagine noi abbiamo aperto un DEM che ha chiaramente dei pixel con valori NoData (1). Infatti, se ci clicchiamo sopra con il pulsante informazioni elementi (2) QGIS me lo dice proprio che lì c’è questo valore (2).

Raster con il valore NoData.
Raster con il valore NoData.

Ma noi vogliamo farvi vedere il valore numerico ad esso associato. Quindi apriamo la finestra delle Proprietà relative al DEM ed andiamo nella scheda Trasparenza (1). Qui togliamo la spunta nella casella Nessun valore (2). Vedete che a fianco di Nessun valore c’è -3.40282 e38 (3)? Ecco, questo è il valore che viene associato al NoData in QGIS.

Da qui, se volete, potete aggiungere altri valori che il software potrebbe considerare come NoData, basta inserirli alla voce Valori nulli aggiuntivi (4). Ricordatevi però che questa opzione è sempre temporanea.

Come settare la visualizzazione del NoData in QGIS
Come settare la visualizzazione del NoData in QGIS

Clicchiamo su OK e andiamo di nuovo a cliccare sui pixel con NoData con il comando informazioni elementi. Questa volta vi apparirà il valore numerico che queste celle effettivamente hanno.

Quanto detto fino ad ora non cambia però il risultato dei calcoli, ma è una mera questione di visualizzazione ed informazione.

3. Settare il NoData in QGIS

Si può settare il NoData usando l’esportazione dei raster in QGIS.

Clicchiamo con il tasto destro sul layer da modificare, poi su Esporta, quindi su Salva con nome. Scrolliamo la rotella del mouse fino a visualizzare la sezione Valori nulli (1). In realtà questa definizione secondo noi non è precisa, perché, come avrete capito, è ben diverso se nel nostro raster abbiamo un valore NoData o il valore nullo, cioè 0.

Mettiamo la spunta e clicchiamo sul pulsante con il segno di addizione (2) per aggiungere una o più classi che vogliamo rendere NoData. Noi inseriamo una sola classe. La facciamo andare dal valore minimo del raster (789.312) a 900m (3).

Diamo anche un nome al raster di output (4).

Finestra di esportazione dei layer in QGIS e opzioni per settare il NODATA in alcuni pixel
Finestra di esportazione dei layer in QGIS e opzioni per settare il NODATA in alcuni pixel

Clicchiamo su Ok e guardiamo il risultato.

Vedrete tutta un’area in cui non ci sono più valori nel raster, ma c’è solo il NoData.

Raster ottenuto impostando un’area con il NoData (a destra)
Raster ottenuto impostando un’area con il NoData (a destra)

4. Trasformare il NoData in QGIS

Vediamo invece come fare per riassociare un valore numerico all’area che adesso è caratterizzata dal NoData. Immaginiamo di voler attribuire a quest’area un valore neutro, lo 0. Si potrebbe anche aggiungere un range di valori, ma richiede qualche passaggio in più e quindi eventualmente un altro video. Qui limitiamoci a vedere come associare al NoData un valore numerico a nostra scelta.

A questo scopo c’è una tool in QGIS che si trova nel pannello degli strumenti di processing, sotto la voce Strumenti raster. Lo strumento si chiama Riempi celle NoData.

Lo apriamo ed impostiamo i parametri:

  1. Inseriamo il Raster di input (1) e cioè il nostro DEM;
  2. in questo caso abbiamo una sola banda quindi la sezione Numero di banda lalasciamo così (altrimenti avrei dovuto settare qual è la banda in cui andare a sostituire il NoDATA);
  3. inseriamo il valore da sostituire al NoData nella casella Valore di riempimento. Noi abbiamo deciso di metterci lo 0.
  4. Infine settiamo il percorso e il nome del Raster in uscita. Noi lo chiamiamo demRiempito.
Tool Riempi celle NoData per riempire i pixel con valore NoData con un altro valore numerico
Tool Riempi celle NoData per riempire i pixel con valore NoData con un altro valore numerico

Clicchiamo su Esegui.

Et voilà, il nostro raster, dove prima aveva valori NoData, adesso ha il valore 0.

Raster ottenuto sostituendo il valore 0 in un’area precedentemente NoData
Raster ottenuto sostituendo il valore 0 in un’area precedentemente NoData

Tips & tricks I

A cosa serve avere questa zona con valore uguale a 0? Beh, ad esempio potresti voler montare due raster insieme, aventi ciascuno il valore di quota in zone diverse. In questo caso il primo step da fare per poter comporre questi due raster è proprio eliminare il valore NoData.

Tips & tricks II

Potrebbe esserti utile sapere che non tutti i software usano lo stesso valore per il NoData. Ad esempio, il software ESRI gli associa il valore -9999.


Bene, questo post è finito. Se ti è piaciuto condividilo! Se hai dubbi o suggerimenti lascia pure un commento.

Se vuoi, puoi vedere anche il nostro video su YouTube “Il NoData in QGIS: come settarlo o trasformarlo” e iscriverti al nostro canale.

Ci GISsiamo al prossimo post.

Ciaooo

5 pensieri su “Il NoData in QGIS: come settarlo o trasformarlo

  1. Ciao! Il convertire i nodata in 0 mi crea un sacco di problemi: ho provato a cercare Riempi Celle NoData ma non trovo il tool presente nel video: trovo solo Fill NoData che però non opera una sostituzione semplice ma fa interpolazioni dei pixel adiacenti. C’è forse qualche plugin in particolare da scaricare?

    Grazie!

    1. Ciao Sebastian. Ci condividi uno screenshot del tuo Fill NoData? dovrebbe essere proprio il nostro Riempi Celle NoData. E nel frattempo…che versione usi di QGIS?

  2. Ciao, nella mia versione 3.8.1. non c’è lo strumento Riempi Celle NoData, ed io vorrei riempire le celle no data col valore 1000000, non 0 (Per mettere lo 0 nelle cell no data c’è uno strumento).
    Come posso fare?

    1. ciao, visto che hai uno strumento che inserisce lo 0 nel nodata, in seguito potresti formulare un if nel calcolatore raster: se 0 assegna il valore 1000000, altrimenti lascia il valore del pixel originale

  3. A proposito di “nodata”, mi succede spesso che durante l’esportazione di un file nel formato geotiff da un servizio WMS (nella fattispecie IGM 25k) l’immagine esportata mostra estese aree bianche. Non capisco se ciò sia dovuto ad una limitazione del servizio wms o ad un problema di connessione.
    grazie mille

Lascia un commento

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