ArcGIS Zonal統計の主要なバグですか?


25

更新:バグはArcGIS 10.4リリースで修正されました

ArcGIS 10.2.2を使用して、いくつかのゾーンのゾーン統計を決定しています。値ラスターにNoDataがある場合、正確にツールの説明で通知されているように、ゾーンの結果が「NoData」になるようにします。このツールの説明の状態:

DATA —特定のゾーン内では、入力値ラスターに値を持つセルのみが、そのゾーンの出力値の決定に使用されます。値ラスターのNoDataセルは、統計計算では無視されます。

NODATA —特定のゾーン内で、値ラスタにNoDataセルが存在する場合、そのゾーン内のすべてのセルの統計計算を実行するには情報が不十分であると見なされます。したがって、ゾーン全体が出力ラスタでNoData値を受け取ります。

この写真で私のセットアップを見てください: ここに画像の説明を入力してください

1つのNoDataピクセルを持つ値ラスターでNODATAオプションを使用しているため、結果のゾーン値(ゾーン61154)が「NoData」になると予想されます。代わりに、12.74の値(画像では13に四捨五入)を取得します。これは2つのレベルで混乱させます。1つ目は「NoData」、2つ目は、結果が12.74になることです。値ラスターの最大値(この場合は10)よりも小さい。

DATAオプションを使用している場合、約9.1の値が得られますが、これは理にかなっています。さまざまなデータセット、コンピューター、およびArcGISバージョンでこれをテストしました。

ここで何が欠けていますか?

編集/追加コメント:「Count」属性もその特定のゾーンに対して間違っていることに気付きました。そのゾーンには実際に421個のセルがありますが、このツールは297個しかカウントしません。421から297個を計算すると124個になります。ゾーン内で。ツールがセル数を間違えている(低すぎる)可能性があり、これが平均の増加を説明している可能性があります。

編集:これは私が使用しているデータへのリンクです。

編集:ダン・パターソンと私はさらにいくつかのデバッグをした、ここで ESRIのフォーラムで。


1
はい、それは何かおかしいものを生み出します。私の場合、範囲(16,86)のラスターのMEAN = 537です。面白くない
-FelixIP

このラスターでNoDataを表すために使用される値は何ですか?
ジェジベル

@Jezibelle:いい質問です。信頼できる答えはどこにありますか?Asciiとしてエクスポートする場合、-9999です。コンテキストメニューからエクスポート機能を使用すると、エクスポートダイアログの[NoData as:]フィールドに2147483647が事前に入力されます。これはフラグを立てますか?
G-ウィザード

属性テーブルの行として表示されます
Jezibelle

1
投稿の最後に別の編集を行い、ESRIフォーラムの同様の投稿リンクします。エラーが確認されました(ひねりを加えた)。「MEAN」の計算では、「ALL」統計の計算とは異なる/悪い結果しか生成されません。
G-ウィザード

回答:


9

あなたが経験していることに対応していると思われるバグがあります-それはBUG-000084883として登録されています誤った結果。

10.3および10.2.2で発生しますが、10.1では発生しません。このバージョンでツールを試しましたか?


私は個人的に古いバージョンのツールを実行する方法を知りませんが、これは良いアプローチのように聞こえます。誰かが私にこの回避策を試みる場所を知っていますか?
-UdderlyAstray

@GISGeに感謝します。これはどこで見つけましたか?このバグが文書化されているリンクはありますか?
G-ウィザード

1
@ G-wizard-回答にリンクを追加しました。Esriの国際スタッフとして、私はあなたが見ることができるものよりも詳細な説明にアクセスできます。これは、10.1では見られないZonal Statisticsツールにもバグが適用されることを示しています。
GISGe

@UdderlyAstray-古いバージョンのツールを実行する場合は、その古いバージョンのArcGISをインストールする必要があります。
GISGe

1
@GISGe、これは私が探しているものであるため(バグは正式に確認されました)、この回答を正しいものとしてマークしていますが、他の人もテストを行ってこれを確認しています。
Gウィザード

9

これはバグです。セルカウントになんらかの問題があります。

正しい平均(9.0452380952381)× 正しい非空のセルの数(420)を297(ツールによって報告されるセル数)で除算すると、12.7912457912458になります。これは、ツールによって報告される誤った平均です。

自分のおもちゃサイズのグリッドテストの結果:

ここに画像の説明を入力してください


1
10.3、NODATA、および「MEAN」で同じ問題があることを確認します
radouxju

これを確認してくれてありがとう。しかし、平均値の違いは別として、結果が実際には値ではなく「NODATA」であるべきだと仮定するのは間違っていますか?ツールの説明は、私を信じさせます。「NODATA —特定のゾーン内で、値ラスタにNoDataセルが存在する場合、そのゾーン内のすべてのセルに対して統計計算を実行するには情報が不十分であると見なされます。したがって、ゾーン全体がNoData値を受け取ります。出力ラスター上。」?。1つの画素が「NODATA」とありますので、帯状の統計も「「正しいNODATAする必要があります
G-ウィザード

2
@ G-ウィザード、ツールの説明に記載されているとおりです。#DIV / 0!に多少似ています エクセルで。
c0ba1t

1

別の答えと同様に、統計を計算するためにラスターデータをNumPyマスク配列に移動します。同じ形状の2つのオーバーレイラスターを想定すると、これは簡単です。

import numpy as np
zones = arcpy.RasterToNumPyArray("zones")
value = np.ma.masked_equal(arcpy.RasterToNumPyArray("value"),
                           arcpy.Raster("value").noDataValue)
print("Zone\tCount\tNoData\tMean")
for z in np.unique(zones):
    sel = (zones == z)
    print z, sel.sum(), value.mask[sel].sum(), value[sel].mean()

ショー:

Zone    Count   NoData  Mean
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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.