Come riassumere i valori dei pixel in QGIS?


10

Devo conoscere il valore della somma di tutti i pixel in un raster. Tuttavia, nella sezione Statistiche della scheda Metadati in Proprietà, in Somma di tutte le celle indica sempre 0,00. Ho provato con diversi formati raster senza risultati. Che cosa sto facendo di sbagliato? Come posso ottenere questo valore?


Spero di averti capito bene; Ho provato a ricostruire il tuo problema con un mio Raster. La somma di tutti i pixel in un raster è x-pixel * y-pixel, giusto? Questo valore è possibile ottenere in 2 modi: 1) Fare clic con il tasto destro del mouse sul file effettivo (un caso nel mio caso), la finestra dei dettagli dovrebbe fornire queste informazioni 2) All'interno del Gis fare clic su Raster-> Varie-> Informazioni. Seleziona il tuo file-> modifica-> ok. Quindi dovresti moltiplicare i due valori. Il risultato è la somma di tutti i pixel in un raster.
Shepherdjo,

Sbagliato. Ciò ti darebbe il numero di celle. Non la somma dei valori delle celle
Robert Hijmans,

Risposte:


9
  1. Crea un poligono usando Vettore> Strumenti di ricerca> Poligono dall'estensione del livello. qui layer è il raster in questione.
  2. Attiva / Installa Plugin statistiche zonali.
  3. Utilizzare il plug-in delle statistiche zonali in cui il raster è quello di cui è richiesta la somma e il poligono è quello creato dall'estensione del livello. Inserisci il prefisso della colonna di output (ad esempio stats_). Esegui il plug-in.
  4. Apri la tabella degli attributi del poligono. Ora hai la colonna stats_sum insieme ad altre colonne con prefisso stats_.
  5. Ho controllato i valori in GRASS GIS e la corrispondenza è perfetta.

4

In QGIS 2.x, è possibile ottenere statistiche raster per l'intero livello (inclusa la somma di tutti i valori di pixel nella banda) utilizzando l'algoritmo delle statistiche del livello Raster nella casella degli strumenti Elaborazione.

Elaborazione | Casella degli strumenti (casella di controllo)

quindi vai alla casella degli strumenti Elaborazione:

Geoalgoritmi QGIS | Strumenti raster | Statistiche del livello raster

Genera le statistiche per il livello che desideri ispezionare. I risultati vengono quindi memorizzati nei metadati del livello, accessibili facendo clic con il tasto destro del mouse sul livello e scegliendo Proprietà.


2

Puoi usare pyqgis e creare una matrice numpy e sommare:

import gdal
import numpy as np
ds = gdal.Open(r'C:\somefolder\someraster.tif')
band1 = ds.GetRasterBand(1).ReadAsArray()
s = np.sum(band1)
print(s)

1

Ho capito la domanda come, come posso ottenere la somma di tutti i valori dei pixel di un raster? Qualcosa come l'esecuzione di statistiche sugli attributi di un vettore. Uno può farlo facilmente tramite la programmazione. Mi viene in mente un altro modo per farlo tramite QGIS. Sarebbe inefficiente e leggermente impreciso, ma funzionerà.

  • Crea un livello punto che rappresenta ciascun pixel del raster. Puoi farlo tramite Vettore -> Strumenti di ricerca -> Punti regolari. Usa il numero di punti come x_size * y_size. Quindi, per un raster di 100 px di larghezza x 100 px di altezza, utilizzare 10000. Specificare un offset di (risoluzione pixel) / 2, in modo da campionare un centro del pixel.
  • Quindi, installa il plug-in Point Sampling. Usando questo plugin, puoi campionare il raster in tutti i 10000 punti e ottenere un valore di attributo che è il valore in pixel.
  • Esegui vettore -> Analisi -> Statistiche di base sul vettore risultante per ottenere la somma.

0

È possibile utilizzare gdalinfo per ottenere le statistiche raster, ad esempio:

gdalinfo -stats filename.tif

Questo ti darà il valore medio dei pixel e la dimensione raster in pixel. Puoi anche ottenere questi dati dalla scheda Proprietà -> Metadati.

Quindi è una questione di aritmetica: valore medio x (altezza in pixel x larghezza in pixel).

Nick.


4
Questo è sbagliato. Innanzitutto, queste statistiche non sono sempre presenti (dipende dall'applicazione che ha scritto il file) e se sono presenti, non si può essere sicuri che siano effettivamente corrette. In secondo luogo, la moltiplicazione ignora la possibilità che non vi siano valori Nessun dato (nel qual caso questo calcolo sarebbe errato).
Robert Hijmans,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.