我一直在使用包中的extract
函数来raster
使用 shapefile 定义的区域从光栅文件中提取数据。但是,我遇到了这个过程现在需要的内存量问题。我确实有大量的 shapefile(~1000)。光栅文件很大(~1.6gb)
我的流程是:
shp <- mclapply(list.files(pattern="*.shp",full.names=TRUE), readShapePoly,mc.cores=6)
ndvi <- raster("NDVI.dat")
mc<- function(y) {
temp <- gUnionCascaded(y)
extract <- extract(ndvi,temp)
mean <- range(extract, na.rm=T )[1:2]
leng <- length(output)
}
output <- lapply(shp, mc)
我可以进行任何更改以减少内存负载吗?我尝试加载更少的 shapefile,这些文件在内存再次飙升之前工作了大约 5 分钟。它是一台 2.4GHz 的四核计算机,带有 8GB 内存