我有兩個大的光柵圖像(30,000 x 30,000),2000年的另一個用於2005年。我想用2000光柵中NA的像素替換它們各自的2005 NA光柵中的非NA值。這裏是一個例子:如何用R中另一個柵格的值替換大柵格中的NA?
r1 <- raster(ncols=36, nrows=18)
r1[] <- 1:ncell(r1)
plot(r1)
r2 <- raster(ncols=36, nrows=18)
r2[] <- 1:ncell(r2)
r2[r2<300] <- NA
plot(r2)
在這個例子中,我想用它們在「r1」中的值代替「r2」中的NA。我試着命令「封面()」中的R,但一個不完整的「R2」,而是返回在「R2」失蹤的信息,但目前在「R1」:
r2.fix <- cover(r2, r1)
plot(r2.fix)
任何想法上工作如何完成?先謝謝你。
UPDATE:這個解決方案的問題:
r2[is.na(r2)] <- r1[is.na(r2)]
是它不會有大柵格工作。 R返回以下錯誤:
Error: cannot allocate vector of size 2.6 Gb
In addition: Warning messages:
1: In order(cells[, 2]) :
Reached total allocation of 16080Mb: see help(memory.size)
如果你的柵格太大,看看這個[指南](https://cran.r-project.org/web/packages/raster/vignettes/functions.pdf)上編寫大型柵格函數,尤其是塊式處理 – Val