Comment résumer les valeurs des pixels dans QGIS?


10

J'ai besoin de connaître la valeur de la somme de tous les pixels d'un raster. Cependant, dans la section Statistiques de l'onglet Métadonnées dans Propriétés, sous Somme de toutes les cellules, il indique toujours 0,00. J'ai essayé avec différents formats de trame en vain. Qu'est-ce que je fais mal? Comment puis-je obtenir cette valeur?


J'espère que je vous ai bien compris; J'ai essayé de reconstruire votre problème avec un de mes trames. La somme de tous les pixels d'un raster est le x-pixels * y-pixels, non? Cette valeur peut être obtenue de 2 manières: 1) Faites un clic droit sur le fichier réel (un tiff dans mon cas), la fenêtre de détail devrait fournir ces informations 2) Dans le SIG, cliquez sur Raster-> Divers-> Informations. Sélectionnez votre fichier-> modifier-> ok. Ensuite, vous devez multiplier les deux valeurs. Le résultat est la somme de tous les pixels d'un raster.
Shepherdjo

Faux. Cela vous donnerait le nombre de cellules. Pas la somme des valeurs des cellules
Robert Hijmans

Réponses:


9
  1. Créez un polygone à l'aide de Vector> Outils de recherche> Polygone à partir de l'étendue de la couche. ici, la couche est le raster en question.
  2. Activez / installez le plugin de statistiques zonales.
  3. Utilisez le plugin de statistiques zonales où le raster est celui dont la somme est requise et le polygone est celui que vous avez créé à partir de l'étendue de la couche. Entrez le préfixe de la colonne de sortie (par exemple, stats_). Exécutez le plugin.
  4. Ouvrez la table attributaire du polygone. Vous avez maintenant la colonne stats_sum ainsi que d'autres colonnes avec le préfixe stats_.
  5. J'ai vérifié les valeurs dans GRASS GIS et la correspondance est parfaite.

4

Dans QGIS 2.x, vous pouvez obtenir des statistiques raster pour la couche entière (y compris la somme de toutes les valeurs de pixels dans la bande) en utilisant l'algorithme de statistiques de couche Raster dans la boîte à outils Traitement.

Traitement | Boîte à outils (case à cocher)

puis allez dans la boîte à outils Traitement:

Géoalgorithmes QGIS | Outils raster | Statistiques de couche raster

Générez les statistiques de la couche que vous souhaitez inspecter. Les résultats sont ensuite stockés dans les métadonnées de la couche, qui sont accessibles en cliquant avec le bouton droit sur la couche et en choisissant Propriétés.


2

Vous pouvez utiliser pyqgis et créer un tableau numpy et additionner:

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

J'ai compris la question comme: Comment obtenir la somme de toutes les valeurs de pixels d'un raster? Quelque chose comme exécuter Statistics sur les attributs d'un vecteur. On peut le faire facilement via la programmation. Je peux penser à une autre façon de le faire via QGIS. Ce serait inefficace et légèrement inexact, mais cela fonctionnera.

  • Créez une couche de points représentant chaque pixel du raster. Vous pouvez le faire via Vector -> Outils de recherche -> Points réguliers. Utilisez le nombre de points comme x_size * y_size. Donc, pour un raster de 100 pixels de largeur x 100 pixels de hauteur, utilisez 10000. Spécifiez un décalage de (résolution en pixels) / 2, de sorte que vous échantillonnez au centre du pixel.
  • Ensuite, installez le plug-in d'échantillonnage de points. En utilisant ce plugin, vous pouvez échantillonner le raster à tous les 10000 points et obtenir une valeur d'attribut qui est la valeur de pixel.
  • Exécutez Vector -> Analysis -> Basic Statistics sur le vecteur résultant pour obtenir la somme.

0

Vous pouvez utiliser gdalinfo pour obtenir les statistiques raster, par exemple:

gdalinfo -stats filename.tif

Cela vous donnera la valeur moyenne des pixels et la taille du raster en pixels. Vous pouvez également obtenir ces données dans l'onglet Propriétés -> Métadonnées.

C'est alors une question d'arithmétique: valeur moyenne x (hauteur en pixels x largeur en pixels).

Pseudo.


4
C'est faux. Tout d'abord, ces statistiques ne sont pas toujours présentes (dépend de l'application qui a écrit le fichier) et si elles sont présentes, vous ne pouvez pas être sûr qu'elles sont réellement correctes. Deuxièmement, la multiplication ignore la possibilité qu'il n'y ait pas de valeurs de données (auquel cas ce calcul serait faux).
Robert Hijmans
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.