Jawaban:
Di R, gunakan cropuntuk mengekstrak nilai dan ( misalnya ) tableuntuk menghitungnya.
Sebagai contoh, mari kita buat kisi 1 derajat yang menutupi bola bumi:
library(raster)
x.raster <- raster(outer(179:0, 0:359, `+`), xmn=-180, xmx=180, ymn=-90, ymx=90)
Kotak pembatas dikonversi ke extentobjek untuk menggunakan crop:
y.extent <- extent(cbind(c(-125,20), c(-60,50)))
y.raster <- crop(x.raster, y.extent)
Setelah melakukan itu, tabulasi menjadi mudah:
table(getValues(y.raster))
Dalam output ini baris pertama mencantumkan nilai dan yang kedua daftar jumlah yang sesuai:
165 166 167 ... 257 258
1 2 3 ... 2 1
Sebagai tanda centang, kita dapat merencanakan raster dan jangkauannya:
plot(x.raster)
plot(y.extent, add=T)

Tambahan kecil: Anda juga bisa menggunakan fungsi (memori-aman) "freq":
Mengikuti jawaban dengan whuber:
library(raster)
x.raster <- raster(outer(179:0, 0:359, '+'), xmn=-180, xmx=180, ymn=-90, ymx=90)
y.extent <- extent(cbind(c(-125,20), c(-60,50)))
y.raster <- crop(x.raster, y.extent)
Tapi sekarang lakukan:
freq(y.raster)
Itu hanya penting untuk objek yang sangat besar (raster pada file). 'freq' mengembalikan matriks dua kolom (nilai / hitungan) sedangkan 'tabel' mengembalikan tabel.
cropoperasi untuk grid satu menit yang menutupi bumi: ia memiliki 10800 baris dan 21600 kolom (233.280.000 sel). Pemotongan dilakukan dalam 1,36 detik total waktu yang berlalu.
v <- extract(x.raster, y.extent) diikuti oleh table(v)
extract? Ini bukan bagian dari rasterdan Rsistem bantuan ( ??) juga tidak menemukan fungsi dengan nama ini.