래스터 벽돌로 반복하는 것에 대해 많은 질문이 있습니다. 그러나 그 중 어느 것도 제가 찾고있는 답변/조언이 없습니다.래스터 벽돌로 반복하기
큰 (17.2GB, 7901 개 레이어) netcdf
파일을 R
에 RasterBrick
으로 가져 왔습니다.
> KK10Brick
class : RasterBrick
dimensions : 2160, 4320, 9331200, 7901 (nrow, ncol, ncell, nlayers)
resolution : 0.08333333, 0.08333333 (x, y)
extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : D:\LandUse\KK10.nc
names : X8000, X7999, X7998, X7997, X7996, X7995, X7994, X7993, X7992, X7991, X7990, X7989, X7988, X7987, X7986, ...
z-value : 100, 8000 (min, max)
varname : land_use
파일의 각 레이어는 1 년을 나타내며 브릭의 각 픽셀에 대한 시간 이동 평균을 만들어야합니다. 변수가 범주 형 (land_use
)으로 보일지라도 실제로는 % 커버입니다.
30 년 이동 평균을 만들고 싶습니다. 슬라이딩 윈도우는 10 년입니다. 예 : 첫 번째 창은 레이어 1:30
에서 평균 값의 래스터를 생성하고 다음 창은 레이어 11:40
... 7871:7901
에서 평균값의 다른 래스터를 생성합니다.
for 루프는 아마도 for 루프를 수행하는 가장 좋은 방법 일 것이라고 생각했지만 여기에 올바른 경로를 따라 갔는지 확실하지 않습니다.
for (i in 1:7901){
subsetLayers <- code to subset relevant layers
out <- stackApply(KK10Brick, indices = subsetLayers, fun = "mean", na.rm = TRUE, filename = paste("./Output/", "meanLU_window_", i, ".tif", sep = ""))
rm(out)}
내가 막힌 곳에서는 subsetLayers
의 시퀀스를 생성하는 코드를 작성하고 있습니다. 어떤 도움이라도 대단히 감사 할 것입니다.
EDIT.
library(raster)
exBrick <- brick(nrow = 180, ncol = 360, nl = 100)
values(exBrick) <- runif(ncell(exBrick) * nlayers(exBrick))
crs(exBrick) <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
exBrick
@dww 샘플 래스터 벽돌에 대한 코드를 일부 추가했습니다. – KaanKaant