Summieren von Pixelwerten innerhalb der Polygonzone in QGIS?

8

Ich habe zwei Ebenen: eine Rasterebene und eine Vektorebene (Polygon). Ich kann die Werte der Rasterpixel sehen, weiß aber nicht, wie ich sie mit Informationen aus der Polygonebene kombinieren soll. Genauer gesagt möchte ich:

  1. Summenwerte aller Pixel innerhalb der Grenzen eines Polygons
  2. Zählen Sie die Anzahl der Pixel mit einem bestimmten Wert innerhalb der Grenzen eines Polygons

Kann jemand helfen und beraten, wie dies in QGIS zu tun ist?

Alex
quelle
Ich bin mir des gesamten Prozesses in QGIS nicht sicher, aber ich würde denken, dass der erste Schritt darin besteht, Ihr Raster in eine Vektorebene zu konvertieren. Sie können das Polygonisierungswerkzeug von QGIS verwenden und Ihre Polygonebene als Maske verwenden.
Baltok

Antworten:

6

Früher mussten Sie v.rast.stats im GRASS-Plugin verwenden, aber jetzt können Sie die eingebauten Zonenstatistiken im Raster-Menü verwenden.

Sie haben eine Polygonebene geladen und das Raster. Sie führen den Menüpunkt aus.

das wird Teil a) Ihrer Frage beantworten.

v.rast.stats und andere Tools geben Ihnen eine detailliertere Ausgabe, aber wahrscheinlich besteht ein einfacher Workflow für b) darin, jedes Polygon zu extrahieren (verwenden Sie das Menü Raster | Extraktion | Clipper) und dann für jedes ein Histogramm auszuführen. Hängt von der Struktur Ihrer Daten ab, wie oft Sie dies tun müssen usw.

Willy
quelle
Denken Sie daran, dass auf Grasfunktionen auch mit dem Sextante-Plugin zugegriffen werden kann. Mit der neuen Version von qgis wurde Sextane integriert (nicht mehr als Plugin, sondern als Kernkomponente), daher ist es auch ein guter Zeitpunkt, es zu lernen.
Nickves
Nur für den Fall, dass jemand anderes stecken bleibt, ist Zonal Statistics ein Plugin, das Sie über das Plugins-Menü installieren / aktivieren müssen - sonst ist es nicht im Raster-Menü vorhanden ...
Owen
2

Wie Willy sagte, können Sie für Ihr erstes Ziel das Modul v.rast.stat verwenden. Das Modul erstellt neue Spalten in Ihrer Vektordatenbank mit den gesuchten statistischen Werten (Min-Wert, Max, Mittelwert, Standardabweichung, Anzahl usw.).

Bei Ihrer zweiten Frage müssen Sie die Werte "verbergen", die unter (oder über) Ihrem Schwellenwert liegen. Eine Möglichkeit, dies zu tun, besteht darin, den Rasterrechner von qgis zu verwenden und den folgenden Ausdruck zur Berechnung einzugeben:

(raster@1 >= 10) * raster@1

Geben Sie hier die Bildbeschreibung ein

Die Klammer erstellt eine Maske, dh alle Werte über 10 nehmen den Wert 1 und alle Werte den Wert 0 an. Als Nächstes multiplizieren Sie beide Werte mit den ursprünglichen Werten. Und offensichtlich ist 0 durch etwas gleich 0.

Setzen Sie den Knotenwert für das erzeugte Maskenraster auf 0 und führen Sie v.rast.stats erneut aus.

Nickves
quelle