답변:
에서 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))
이 출력에서 첫 번째 행은 값을 나열하고 두 번째 행은 해당 카운트를 나열합니다.
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
도움말 시스템 ( ??
) 중 하나,이 이름을 가진 함수를 찾지 않습니다.