今天,我尝试加载前几天使用readRDS()
创建的RDS文件(该文件之前没有问题)。对readRDS()
的调用本身有效,但是当我尝试使用结果时,出现错误:
elevation <- readRDS("../data/elevation.rds") # works
plot(elevation) # error (also other functions like extract())
Error in file(fn, "rb") : cannot open the connection
In addition: Warning message:
In file(fn, "rb") :
cannot open file 'C:\Users\[user]\AppData\Local\Temp\Rtmpc5bMne\raster\r_tmp_2018-08-08_230940_6836_24077.gri': No such file or directory
我查看了指定的临时目录,确实没有指定的目录(Rtmpc5bMne
)。路径也以filename
的形式存储在栅格堆栈elevation
中。
但是,我不明白为什么它试图从临时目录中加载(仅当实际使用栅格堆栈时),或者为什么不在readRDS()
上创建临时目录。我正在与此同时使用其他RDS文件,并且它们正在正常工作(例如bioclim)。我知道临时目录可能在重新启动后被清空,但是以某种方式必须永久存储数据,不是吗?
这是我创建RDS文件的方式:
elev1 <- getData('SRTM', lon=33, lat=5, download=TRUE, path="../data/altitude")
elev2 <- getData('SRTM', lon=33, lat=0, download=TRUE, path="../data/altitude")
elev3 <- getData('SRTM', lon=37, lat=5, download=TRUE, path="../data/altitude")
elev4 <- getData('SRTM', lon=41, lat=5, download=TRUE, path="../data/altitude")
elev5 <- getData('SRTM', lon=37, lat=0, download=TRUE, path="../data/altitude")
elev6 <- getData('SRTM', lon=41, lat=0, download=TRUE, path="../data/altitude")
srtmmosaic <- mosaic(elev1, elev2, elev3, elev4, elev5, elev6, fun=mean)
saveRDS(srtmmosaic, "../data/elevation.rds")
如前所述,这以前没有问题。
我刚刚测试过重新运行创建的代码(包括下载),现在上面的代码(readRDS,plot)再次起作用。但是,如何确保下载的数据保持重新启动状态?
(顺便说一下,我不是R专业人士,而栅格堆栈仍然让我头疼。)