Raster sınıflarının ölçüm alanı?


9

ArcMap'te çekirdek yoğunluğu çıktısının her düzeyinin alanını ölçebilecek herhangi bir araç veya yöntem var mı?

Bunun yalnızca bir çekirdek yoğunluk grafiği olduğuna dikkat edin (şekil dosyası veya çokgen değil). Çekirdek Yoğunluğu Analizi (koyu yeşil (% 10) ila kırmızı (% 90) (1)

Birkaç şey denedim ama doğru olması gerekiyor.

Kerenel Yoğunluk Analizi (koyu yeşil (% 10) ila kırmızı (% 90))

Yanıtlar:


7

Sınıflar içindeki alanı hesaplamak için aşağıdaki iş akışını kullanırdım:

  1. Hangi yoğunluk sınıfını kullandığınıza göre çekirdek yoğunluk çıktısını yeniden sınıflandırın (Uzamsal Analist) . Varsayılan olarak ArcGIS, çekirdek yoğunluğu çıkışı için sürekli bir tarama yüzeyi oluşturur, ancak efsaneyi (geçici) yeniden sınıflandırır. Yeniden sınıflandırma aracını kullanmak bunu kalıcı hale getirecektir.
  2. Yeniden sınıflandırılmış çekirdek yoğunluğu öznitelik tablosunu açın ve "COUNT" alanını gözlemleyin ( Şekil 1 ). Bu, her sınıftaki tüm piksellerin sayısıdır. Örneğin, Sınıf 1'in (Değer = 1) 620.063 piksel sayısı vardır. Koordinat sistemim UTM olduğundan, birimler metre cinsindendir ve pikseller 1m uzamsal çözünürlüktedir. Bu nedenle, Sınıf 1 620,063 m ^ 2'dir.
  3. Sayıyı hektar gibi diğer birimlere dönüştürmek için, öznitelik tablosuna yeni bir alan ekleyin.
  4. Alanı hesapla ( Şekil 2 )
  5. Mantık bir sınıfı vurgulayarak sonuçları kontrol edin ( Şekil 3 )

Şekil 1

resim açıklamasını buraya girin

şekil 2

resim açıklamasını buraya girin

Figür 3

resim açıklamasını buraya girin


2

Bir kavisli çözüm istiyorsanız:

import numpy as np  #not sure how arcpy imports numpy

r = arcpy.RasterToNumPyArray('your raster name')

for val in np.unique(r):
    area = np.sum(r == val)  #multiply this by your pixel area
    print 'value ', val, ' : ', area

alternatif olarak değerleri bir csv / metin dosyasına yazabilirsiniz.


1

Çekirdek yoğunluk grafiğinizin çekirdek yoğunluğu aracı veya benzeri kullanılarak oluşturulan bir raster olduğu varsayılırsa , bu yalnızca Raster-Polygon aracını kullanma meselesidir .

Raster sınıflandırmasını tanımlayan alanı belirttiğinizden emin olun, alan çokgenlere dönüştürülür. Daha sonra alanı hesaplamak için Geometri Hesapla aracını kullanabilirsiniz.


Bunu denedim. raster dosyasını sürüklediğimde "bir veya daha fazla bırakılan öğe geçersiz" diyor. Hata dosyada metin olduğunu "müdahale" olduğunu gösteriyor Bunun neden olabileceği hakkında bir fikrin var mı?
Bay Angus

1
@MrAngus Sorun, Çekirdek Yoğunluğunun her zaman bir kayan nokta raster çıktısı oluşturması, Raster'den Çokgen'e bir tamsayı raster girişi gerektirmesidir (bağlantılı yardım dosyalarına bakın). Önce KD rasterini yeniden sınıflandırmanız gerekir.
Chris W

Geometri Hesapla'nın her özellik için olduğunu ve belirli bir sınıfı paylaşan tüm çokgenlerin toplam alanını vermeyeceğini unutmayın.
matt wilkie

0

Bunun hızlı bir çözümü manuel bir çözümdür:

  1. Raster'in özelliklerini açın ve semboloji sekmesine gidin.
  2. Muhtemelen semboloji zaten Sınıflandırılmış olarak ayarlanmıştır ve sınıf sayısı istediğiniz şeydir. Sınıflandır düğmesini tıklayın.
  3. İletişim kutusunun sağ tarafında Son Değerleri kutusu bulunur. Her bir kesme değerini tıklayın ve iletişim kutusunun altında Sınıfta # Öğeler göreceksiniz. Bu, o sınıftaki piksel sayısıdır. Her sınıf için numarayı yazın veya bir e-tabloya girin.
  4. Raster özelliklerine geri dönün ve Kaynak sekmesine geçin. Hücre boyutu orada x, y cinsinden verilir. Bu ikisini birlikte çarptığınızda bir piksel alanına sahip olursunuz.
  5. Şimdi bu alanı her sınıftaki piksel sayısının katına çıkarın. Bu size o sınıfın toplam alanını vermelidir.

Doğru, göreceli bir terimdir. Raster alanlarınız gittikçe, tam olarak doğru olacaktır. Fezter yöntemini kullanırsanız, alan, piksel tabanlı bölgeleri çokgenlere dönüştürürken Pürüzsüz kullanıp kullanmayacağınıza bağlı olarak değişebilir.

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.