Mengukur area kelas raster?

9

Apakah ada alat atau metode di ArcMap yang dapat mengukur luas setiap tingkat output kepadatan kernel?

Perhatikan ini hanyalah plot kerapatan kernel (bukan file bentuk atau poligon). Analisis Kernel Density (hijau tua (10%) hingga merah (90%) (1)

Saya sudah mencoba beberapa hal tetapi saya perlu akurat.

Analisis Kepadatan Kerenel (hijau tua (10%) hingga merah (90%)

Tuan Angus
sumber

Jawaban:

7

Saya akan menggunakan alur kerja berikut untuk menghitung area di dalam kelas:

  1. Klasifikasi ulang (Analis Spasial) output kepadatan kernel ke kelas mana pun yang Anda gunakan. Secara default ArcGIS menciptakan permukaan raster yang berkelanjutan untuk output kepadatan kernel, tetapi mengklasifikasikan ulang legenda tersebut (yang bersifat sementara). Menggunakan alat reklasifikasi akan membuat ini permanen.
  2. Buka tabel atribut kernel density yang direklasifikasi dan amati bidang "COUNT" ( Gambar 1 ). Ini adalah jumlah semua piksel di setiap kelas. Misalnya, Kelas 1 (Nilai = 1) memiliki hitungan 620.063 piksel. Karena sistem koordinat saya adalah UTM, unit berada dalam meter dan piksel berada pada resolusi spasial 1m. Oleh karena itu, Kelas 1 adalah 620.063 m ^ 2.
  3. Untuk mengonversi penghitungan ke unit lain seperti hektar, tambahkan bidang baru di tabel atribut.
  4. Hitung bidang ( Gambar 2 )
  5. Logika memeriksa hasilnya dengan menyorot kelas ( Gambar 3 )

Gambar 1

masukkan deskripsi gambar di sini

Gambar 2

masukkan deskripsi gambar di sini

Gambar 3

masukkan deskripsi gambar di sini

Harun
sumber
2

Jika Anda menginginkan solusi lengket:

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

atau Anda dapat menulis nilai-nilai ke file csv / teks.

pengguna1269942
sumber
1

Dengan anggapan bahwa plot kepadatan kernel Anda adalah raster yang dibuat menggunakan alat kepadatan kernel atau sejenisnya, ini hanya masalah menggunakan alat Raster ke Polygon .

Pastikan Anda menentukan bidang yang mendefinisikan klasifikasi raster dan itu akan mengubahnya menjadi poligon. Anda kemudian dapat menggunakan alat Hitung Geometri untuk menghitung area.

Fezter
sumber
Saya sudah mencobanya. ketika saya seret file raster di dalamnya mengatakan "satu atau lebih item yang dijatuhkan tidak valid". Kesalahan menunjukkan bahwa ada teks dalam file "mengganggu" apakah Anda tahu mengapa ini terjadi?
Tn. Angus
1
@MrAngus Masalahnya adalah Kernel Density selalu menghasilkan output raster floating point, sementara Raster ke Polygon membutuhkan input raster integer (lihat file bantuan yang ditautkan). Anda harus mengklasifikasi ulang raster KD terlebih dahulu.
Chris W
Perhatikan bahwa Calculate Geometry adalah per fitur dan tidak akan memberikan luas total semua poligon yang berbagi kelas tertentu.
matt wilkie
0

Salah satu solusi cepat untuk ini adalah penyelesaian manual:

  1. Buka properti raster dan buka tab simbologi.
  2. Agaknya simbologinya sudah diatur ke Rahasia dan jumlah kelas adalah apa yang Anda inginkan. Klik tombol Klasifikasi.
  3. Di sisi kanan dialog adalah kotak Nilai Istirahat. Klik setiap nilai istirahat dan di bagian bawah dialog Anda akan melihat # Elemen di Kelas. Ini adalah hitungan piksel di kelas itu. Tulis nomor untuk setiap kelas atau masukkan ke dalam spreadsheet.
  4. Batalkan kembali ke properti raster dan beralih ke tab Source. Ukuran sel diberikan di sana dalam x, y. Lipat gandakan keduanya dan Anda memiliki luas satu piksel.
  5. Sekarang ambil area itu dikalikan jumlah piksel di setiap kelas. Ini akan memberi Anda area total kelas itu.

Akurat adalah istilah relatif. Sejauh area raster Anda pergi, itu akan menjadi akurat. Jika Anda menggunakan metode Fezter, wilayah tersebut mungkin berbeda tergantung pada apakah Anda menggunakan Halus saat mengubah wilayah berbasis piksel ke poligon.

Chris W
sumber