回答:
ではR
、crop
値を抽出するために使用し、(たとえば)table
それらをカウントします。
例として、地球を覆う1度のグリッドを作成しましょう。
library(raster)
x.raster <- raster(outer(179:0, 0:359, `+`), xmn=-180, xmx=180, ymn=-90, ymx=90)
extent
使用するために境界ボックスはオブジェクトに変換されますcrop
:
y.extent <- extent(cbind(c(-125,20), c(-60,50)))
y.raster <- crop(x.raster, y.extent)
それを行った後、集計は簡単です:
table(getValues(y.raster))
この出力では、最初の行に値が一覧表示され、2番目の行に対応するカウントが一覧表示されます。
165 166 167 ... 257 258
1 2 3 ... 2 1
チェックとして、ラスターと範囲をプロットできます。
plot(x.raster)
plot(y.extent, add=T)
マイナーな追加:(メモリセーフな)関数 "freq"も使用できます。
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)
しかし今すぐ:
freq(y.raster)
これは、非常に大きなオブジェクト(ファイル上のラスター)でのみ重要です。'freq'は2列の行列(値/カウント)を返し、 'table'は表を返します。
crop
地球を覆う1分間のグリッドの操作のタイミングを計りました。10800行と21600列(233,280,000セル)があります。トリミングは、合計経過時間1.36秒で実行されました。
v <- extract(x.raster, y.extent)
その後に table(v)
extract
出身ですか?これは一部ではなくraster
、R
ヘルプシステム(??
)もこの名前の関数を見つけられません。