我正试图对一个巨大的worldpop人口进行重新采样,但我一直在破坏我的linux R实例,它有32GB的内存。当我启动一个52gb内存的google compute实例时,下面的代码可以工作,但它会使我的常规32gb内存计算机崩溃。
有没有办法进行光栅聚合或重新采样,以限制内存使用?
下载我在重新采样时遇到问题的大型worldpop光栅的代码:
###download the huge raster to recreate scale problem
devtools::install_github("nbarsch/spaceheater")
library(spaceheater)
getWPdownload("Tanzania","Population","adj",2015) #warning: downloads near 1gb file
library(raster)
wpras <- raster("TANZANIA_Population_adj_2015.tif")
有两种方法可以在内存为52GB的计算机上工作,但会杀死本地计算机32GB的内存:
#aggregate method
agras <- raster::aggregate(wpras,fact=10,expand=T)
#returns "Killed"
#resamp method
reras <- raster(nrow = ceiling(nrow(wpras)/10), ncol = ceiling(ncol(wpras)/10))
reras2 <- raster::resample(wpras, reras, method="bilinear")
#returns Error: cannot allocate vector of size 1.3 Gb
有没有人有一个不用所有内存的解决方案?谢谢