我试图用来saveRDS()
保存大量列表,每个列表都包含一个栅格图层和一个带有元数据的列表。从 ncdf 文件中提取栅格图层时效果很好,但是当原始文件是 ascii 文件时,saveRDS()
只写入指向原始文件的指针而不是将值写入最终文件。
这是正在发生的事情的浓缩版本:
require(raster)
mf <- raster('myfile.asc')
meta <- list(mylonglistofmetadata)
res <- list(mf, meta)
saveRDS(res, 'myresult.Rdata')
myresult.Rdata
现在只是一个 33KB 的指针myfile.asc
,当我真的希望它存储值时,它在我擦除后仍然可以工作myfile.asc
(所以它应该是大约 15MB)
相比之下,对于 ncdf 格式的其他文件:
require(ncdf4)
require(raster)
ff <- 'myfile2.nc'
nc <- nc_open(ff)
meta <- list(mylonglistofmetadata)
res <- list(nc, meta)
saveRDS(res, 'myresult2.Rdata')
在这里,myresult2.Rdata
存储的一切都像我想要的那样,所以我的猜测是光栅包出现了问题?
任何人都知道如何解决这个问题?我不想使用writeRaster()
,因为我试图将元数据与数据保存在一起,并使用与从 ncdf 文件中提取的批处理相同的格式以方便以后的处理。