如何强制栅格代数将结果保存在命名文件中

时间:2017-12-31 02:57:32

标签: r raster

使用大型栅格*对象时,使用存储在磁盘而不是内存中的栅格非常有用。例如,如果我们使用calc,则可以选择提供存储结果的文件名。 E.g。

library(raster)
a1 = array(rep(1:12, each = 9), dim = c(3,3,12))
b1 = brick(a1)
res1 = calc(b1, mean, 'xyz_test1.nc')
inMemory(res1)
#FALSE

但是,calc仅对单个栅格*对象进行操作。当使用在多个栅格*对象上运行的函数(例如算术运算符)时,有没有办法实现相同的功能?

a2 = array(rep(1:4, each = 3*9) + rnorm(4*3*9), dim = c(3,3,12))
b2 = brick(a2)
res2 = b1 / b2
inMemory(res2)
#TRUE

根据help("Arith-methods"),&#34;如果输出Raster *的值不能保存在内存中,它们将被保存到临时文件中#34;。但是如果输出可以适合内存但你想将它存储在磁盘上(最好是在命名文件中)以便为后续操作节省内存呢?有没有办法强迫这个,(在每次计算后都没有使用writeRaster(x, filename); remove(x); x <- brick(filename))?

0 个答案:

没有答案