Mehr

Schwerwiegender Fehler in der ArcGIS-Zonalen Statistik?

Schwerwiegender Fehler in der ArcGIS-Zonalen Statistik?


Update: Der Fehler wurde in der ArcGIS 10.4-Version behoben

Ich verwende ArcGIS 10.2.2, um Zonenstatistiken für eine Reihe von Zonen zu bestimmen. Wenn das Werte-Raster NoData enthält, möchte ich, dass die Zonenergebnisse "NoData" sind, genau wie in der Beschreibung des Tools angekündigt. In dieser Werkzeugbeschreibung heißt es:

DATEN - Innerhalb einer bestimmten Zone werden nur Zellen verwendet, die einen Wert im Eingabewert-Raster haben, um den Ausgabewert für diese Zone zu bestimmen. NoData-Zellen im Value-Raster werden bei der Statistikberechnung ignoriert.

NODATA - Wenn innerhalb einer bestimmten Zone NoData-Zellen im Wert-Raster vorhanden sind, wird davon ausgegangen, dass nicht genügend Informationen vorhanden sind, um statistische Berechnungen für alle Zellen in dieser Zone durchzuführen; Daher erhält die gesamte Zone den NoData-Wert im Ausgabe-Raster.

Bitte sehen Sie sich mein Setup in diesem Bild an:

Ich verwende die NODATA-Option mit einem Wert-Raster, das ein NoData-Pixel hat, und erwarte daher, dass der resultierende Zonenwert (Zone 61154) 'NoData' ist. Stattdessen erhalte ich einen Wert von 12,74 (im Bild auf 13 gerundet), was mich auf zwei Ebenen verwirrt: Erstens habe ich 'NoData' erwartet und zweitens ist der resultierende Wert von 12,74 mathematisch unmöglich, da der Mittelwert nicht größer sein kann als der Maximalwert im Werteraster, der in diesem Fall 10 beträgt.

Wenn ich die Option DATA verwende, erhalte ich einen Wert von etwa 9,1, was sinnvoll ist. Wir haben dies auf verschiedenen Datasets, Computern und ArcGIS-Versionen getestet.

Was fehlt mir hier?

Bearbeiten / Zusätzliche Anmerkung: Mir ist gerade aufgefallen, dass das Attribut 'Anzahl' für diese bestimmte Zone ebenfalls falsch ist. Es gibt zwar 421 Zellen in dieser Zone, aber das Tool hat nur 297 gezählt. Die Berechnung von 421 minus 297 ergibt 124 - seltsamerweise ist dies die "Position", an der sich das NoData-Pixel befindet, wenn man die Pixel von oben links nach unten zählt direkt in der Zone. Das Tool ermittelt möglicherweise die Zellenanzahl falsch (zu niedrig), was den Anstieg des Durchschnitts erklären könnte.

Bearbeiten: Hier ist ein Link zu den Daten, die ich verwende.

Bearbeiten: Dan Patterson und ich haben hier im ESRI-Forum weitere Fehler behoben.


Es gibt einen Fehler, der Ihrer Erfahrung zu entsprechen scheint - er ist registriert als BUG-000084883 - Die Option "NoData in Berechnungen ignorieren" im Tool "Zonale Statistik als Tabellen" {und Tool "Zonale Statistik}" wird nicht berücksichtigt, wenn sie abgehakt ist, was zu falschen Ergebnissen führt. BUG-000084883. BUG-000084883.

Es tritt mit 10.3 und 10.2.2 auf, aber nicht mit 10.1. Hast du das Tool mit dieser Version ausprobiert?


Es ist ein Fehler. Etwas schreckliches stimmt mit der Zellenzahl nicht.

Richtig Mittel (9.045238952381) mal Korrekt Anzahl der nicht leeren Zellen (420) geteilt durch 297 (das ist eine Zellenzahl, die von Werkzeug) ergibt 12.7912457912458. Das ist ein falscher Durchschnitt, der vom Tool gemeldet wird.

Ergebnisse meines eigenen Gittertests in Spielzeuggröße:


Verschieben Sie die Raster-Daten ähnlich wie bei einer anderen Antwort in NumPy-maskierte Arrays, um Ihre Statistiken zu berechnen. Angenommen, zwei sich überlagernde Raster mit derselben Form, ist dies einfach:

import numpy as np zone = arcpy.RasterToNumPyArray("zones") value = np.ma.masked_equal(arcpy.RasterToNumPyArray("value"), arcpy.Raster("value").noDataValue) print("Zone	Count	NoData 	Mean") für z in np.unique(zones): sel = (zones == z) print z, sel.sum(), value.mask[sel].sum(), value[sel].mean()

Zeigt an:

Zonenanzahl NoData Mittelwert 61131 53 0 8,92452830189 61154 421 1 9,04523809524 61207 1 0 8,0 61317 35 0 7,2 61644 644 0 7,90838509317 61677 12 0 7,41666666667 61789 7 0 9,0 61871 193 0 7.98445595855 187472 349 0 8.5787965616