ArcGIS Zonal istatistiklerinde büyük hata?


25

Güncelleme: Hata ArcGIS 10.4 sürümünde düzeltildi.

Bazı bölgeler için bölgelerin istatistiklerini belirlemek için ArcGIS 10.2.2 kullanıyorum. Raster değerinde herhangi bir NoData varsa, bölge sonuçlarının tam olarak araçlar açıklamasının reklamını yaptığı gibi "NoData" olmasını istiyorum. Bu araç açıklamasında :

VERİLER - Herhangi bir bölge içerisinde, bu değer için çıktı değerinin belirlenmesinde sadece Değer Raster girişinde değeri olan hücreler kullanılacaktır. Değer rasterindeki NoData hücreleri, istatistik hesaplamasında dikkate alınmaz.

NODATA - Herhangi bir bölgede, Değer rasterinde herhangi bir NoData hücresi varsa, o bölgedeki tüm hücreler için istatistiksel hesaplamalar yapmak için yeterli bilgi olmadığı kabul edilir; bu nedenle, tüm bölge çıktı rasterinde NoData değerini alır.

Lütfen bu resimdeki kurulumuma bir göz atın: görüntü tanımını buraya girin

NODATA seçeneğini, bir NoData pikseline sahip bir değer rasteriyle kullanıyorum ve bu nedenle elde edilen bölge değerinin (bölge 61154) 'NoData' olmasını bekliyoruz. Bunun yerine, beni iki seviyede şaşırtan 12.74 (görüntüde 13'e yuvarlanmış) değeri alıyorum: Birincisi, 'NoData' bekleniyordu ve ikincisi, 12.74'ün sonuç değeri matematiksel olarak imkansız, çünkü ortalama daha büyük olamaz raster değerindeki maksimum değerden, bu durumda 10'dur.

VERI seçeneğini kullanıyorsanız, yaklaşık 9.1 değerinde olurum, bu anlamlı olur. Bunu farklı veri setlerinde, bilgisayarlarda ve ArcGIS versiyonlarında test ettik.

Burada ne özlüyorum?

Düzenleme / Ek yorum: 'Sayı' özelliğinin o bölge için de yanlış olduğunu farkettim. Bu bölgede gerçekten 421 hücre var, ancak araç sadece 297'yi sayıyor. 421 eksi 297'nin hesaplanması 124 - garip bir şekilde sonuçlanır, bu, eğer pikselleri soldan aşağıya doğru sayarsa, NoData pikselinin bulunduğu "konumdur" Bölgenin tam ortasında. Araç, hücre sayımını yanlış yapıyor olabilir (çok düşük) ve bu da ortalamanın artışını açıklayabilir.

Düzenleme: İşte kullanıyorum verilere bir link .

Düzenleme: Dan Patterson ve ben burada ESRI forumunda biraz hata ayıklama yaptık .


1
Evet çılgınca bir şey üretiyor. Benim durumumda MEAN = 537 aralığında raster (16,86). Komik değil
FelixIP,

Bu rasterde NoData'yı temsil etmek için hangi değer kullanılır?
Jezibelle

@Jezibelle: İyi bir soru, güvenilir bir cevabı nerede bulabilirim? Ascii olarak dışa aktarırsam, -9999'dur. Dışa aktarma işlevini bağlam menüsünden kullanırsam, dışa aktarma iletişim kutusunun "NoData as:" - dışa aktarma iletişim kutusunun alanı 2147483647 ile önceden doldurulur. Bu bir bayrak mı yükseltir?
G-sihirbazı

Bu nitelik tablosunda bir satır olarak ortaya
çıkacaktı

1
Yazımın sonunda, ESRI forumunda benzer bir yayına bağlandığım başka bir düzenleme daha yaptım . Hata onaylandı (bir bükülme ile). "MEAN" hesaplanması, "ALL" istatistiklerini hesaplamaktan yalnızca farklı / daha kötü sonuçlar verir.
G-sihirbazı

Yanıtlar:


9

Karşılaştığınız şeye tekabül eden bir hata var - BuG-000084883 olarak kayıtlı. Bu, Zonal Statistics'te Tablo aracı olarak {ve Zonal Statistics aracı} işaretlendiğinde üretilmeden onurlandırılmıyor. yanlış sonuçlar.

10.3 ve 10.2.2 ile oluşur ancak 10.1 değildir. Aracı bu sürümle denediniz mi?


Şahsen aracın eski sürümlerini nasıl çalıştıracağımı bilmeme rağmen, bu iyi bir yaklaşım gibi görünüyor. Bu işi denemek için beni nereye yönlendireceğini bilen var mı?
UdderlyAstray

@GISGe teşekkür ederiz. Bunu nereden buldun? Bu hatanın belgelendiği bir bağlantı var mı?
G-sihirbazı

1
@ G-sihirbazı - Cevabıma bağlantıyı ekledim. Bir Esri uluslararası personeli olarak, görebildiğinizden daha ayrıntılı bir açıklamaya erişebiliyorum, böylelikle hatanın Zonal Statistics aracı için de geçerli olduğunu ve 10.1'de bulunmadığını söyleyebilirim.
GISGe

@UdderlyAstray - Aracın eski bir sürümünü çalıştırmak istiyorsanız, ArcGIS'in bu eski sürümünü kurmanız gerekir.
GISGe

1
Tekrar teşekkürler, @GISGe, aradığım şey bu (resmen doğrulandı), bu yanıtı doğru cevap olarak işaretliyorum, ancak diğerleri de bunu test ederek doğruladı.
G-sihirbazı

9

Bu bir hatadır. Hücre sayımında çok yanlış bir şey var.

Doğru ortalama (9.0452380952381), doğru sayıda boş olmayan hücrelerin (420) 297'ye bölünmesiyle (yani, araç tarafından bildirilen bir hücre sayısıdır ) 12.7912457912458 ile sonuçlanır. Bu, araç tarafından bildirilen yanlış bir ortalamadır.

Kendi oyuncak büyüklük ızgaralarım testinin sonuçları:

görüntü tanımını buraya girin


1
10.3, NODATA ve "MEAN" ile aynı sorunu yaşadığımı onaylıyorum
radouxju 17:15

Bunu onayladığınız için teşekkürler. Fakat ortalama değerdeki farklılıklar bir yana, sonucun aslında herhangi bir değer değil, “NODATA” olması gerektiğini varsaymakta yanlış mıyım? Aracın açıklaması buna inanmamı sağlıyor. Diyor ki: "NODATA - Herhangi bir belirli bölgede, Değer rasterinde herhangi bir NoData hücresi varsa, o bölgedeki tüm hücreler için istatistiksel hesaplamalar yapmak için yeterli bilgi olmadığı kabul edilir, bu nedenle, tüm bölge NoData değerini alır. çıktı rasterinde. " ?. Bir piksel "NODATA" ile olmadığı için, bölgesel istatistikler de ' "Doğru NODATA olmalıdır
G-sihirbaz

2
@ G-sihirbazı, Alet Açıklamasında belirtildiği gibi haklısınız. # DIV / 0 ile aynı şekilde! excel içinde.
c0ba1t

1

Başka bir cevaba benzer şekilde , istatistiklerini hesaplamak için raster verilerini NumPy maskeli dizilere taşıyın . Aynı şekilde iki bindirmeli raster varsayarak, bu basittir:

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()

Gösteriler:

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.