Daha çox

ArcGIS Zonal statistikasında əsas səhv?

ArcGIS Zonal statistikasında əsas səhv?


Yeniləmə: ArcGIS 10.4 buraxılışında səhv düzəldildi

Bir sıra zonaların zonal statistikasını təyin etmək üçün ArcGIS 10.2.2 istifadə edirəm. Dəyər rasterində hər hansı bir NoData varsa, zona nəticələrinin "NoData" olmasını istərdim, tam olaraq alətlərin təsviri ilə elan edildiyi kimi. Bu alət təsvirində deyilir:

MƏLUMAT - Hər hansı bir xüsusi zonada, yalnız giriş Dəyəri rasterində dəyəri olan hüceyrələr həmin zonanın çıxış dəyərini təyin etmək üçün istifadə olunacaq. Dəyər rasterindəki NoData hüceyrələri statistik hesablamada nəzərə alınmayacaq.

NODATA - Hər hansı bir xüsusi zonada, dəyər rasterində hər hansı bir NoData hüceyrəsi varsa, o zonadakı bütün hüceyrələr üçün statistik hesablamalar aparmaq üçün kifayət qədər məlumatın olmadığı hesab edilir; buna görə də bütün zona çıxış rasterində NoData dəyərini alacaq.

Zəhmət olmasa bu şəkildəki quruluşuma baxın:

NODATA seçimini bir NoData pikselinə malik olan bir dəyər rasteri ilə istifadə edirəm və buna görə də meydana gələn zona dəyərinin (zona 61154) 'NoData' olmasını gözləyirəm. Bunun əvəzinə, məni iki səviyyədə qarışdıran 12.74 (şəkildəki 13 -ə yuvarlaqlaşdırılmış) bir dəyər alıram: Birincisi, 'NoData' gözlədim, ikincisi, 12.74 -ün nəticəsi riyazi olaraq mümkün deyil, çünki ortada böyük ola bilməz. bu vəziyyətdə 10 olan dəyər rasterindəki maksimum dəyərdən daha çoxdur.

DATA seçimindən istifadə edirəmsə, təxminən 9.1 dəyərini alıram, bu da mənalıdır. Bunu fərqli məlumat dəstlərində, kompüterlərdə və ArcGIS versiyalarında sınadıq.

Burda nə çatışmıram?

Düzəliş / Əlavə şərh: Sadəcə, 'Count' atributunun həmin zona üçün səhv olduğunu gördüm. Bu zonada həqiqətən 421 hüceyrə var, ancaq alət yalnız 297 sayılır. 421 eksi 297 nəticənin hesablanması 124 - qəribə də olsa, yuxarıdan aşağıya doğru pikselləri saymaqla NoData pikselinin yerləşdiyi "mövqe" dir. düz zonada. Alət, hüceyrə sayını səhv (çox aşağı) əldə edə bilər ki, bu da ortalamanın artmasını izah edə bilər.

Düzəliş edin: İşlətdiyim məlumatların bağlantısı budur.

Düzəliş: Dan Patterson və mən burada ESRI forumunda bir az daha ayıklama etdik.


Yaşadıqlarınıza uyğun gələn bir səhv var - kimi qeydiyyatdan keçib BUG -000084883 - Zonal Statistikada Cədvəl aləti olaraq {və Zonal Statistika vasitəsi} 'Hesablamalarda NoDatanı Yoxla' seçimi, yanlış nəticələr çıxarıldıqda hörmət edilmir.

10.3 və 10.2.2 ilə baş verir, lakin 10.1 deyil. Aləti bu versiya ilə sınamısınızmı?


Bu bir səhvdir. Hüceyrə sayımında çox səhv bir şey var.

Düzdü orta (9.0452380952381) dəfə düzgün boş olmayan hüceyrələrin sayı (420) 297-yə bölünür (yəni bildirilən hüceyrə sayıdır alət) 12.7912457912458 ilə nəticələnir. Alət tərəfindən bildirilən səhv bir ortalamadır.

Öz oyuncaq ölçüsü ızgaraları testinin nəticələri:


Başqa bir cavaba bənzər şəkildə, statistikanı hesablamaq üçün raster məlumatlarını NumPy maskalı seriallara köçürün. Eyni formalı iki üst -üstə düşən rasters fərz etsək, bu sadədir:

np zonaları olaraq numpy idxal edin = arcpy.RasterToNumPyArray ("zonalar") dəyəri = np.ma.masked_equal (arcpy.RasterToNumPyArray ("dəyər"), arcpy.Raster ("dəyər"). noDataValue) çap ("Zon  tData  tCount  tcount "  tMean ") z üçün np.unique (zonalar) üçün: sel = (zonalar == z) çap z, sel.sum (), dəyər.maska ​​[sel] .sum (), dəyər [sel]. məna ()

Şoular:

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

Videoya baxın: Zonal statistics in ArcGis