无法在 R 中打开创建的栅格

Can not open created raster in R

我有两个与错误相关的问题:

first:我有一个合并的 dem 层和多个 shapefile,我创建了一个蒙版 shapefile 边界列表,除了一个 "the first one" 哪个是最大的:

> plot(DEM_masked_list[[1]])

Error in file(fn, "rb") : cannot open the connection
In addition: Warning message:
  In file(fn, "rb") :
  cannot open file '/private/var/folders/2w/rjzwcrbn3pg0jmsrfkz7n52h0000gn/T/RtmpkL8Ot5/raster/r_tmp_2018-01-29_014745_982_20879.gri': No such file or directory

我注意到第一个数据源的数据源与其他数据源不同,这可能是由于它的尺寸较大(单元格编号为 509141570)!!

DEM_masked_list

[[1]]
class       : RasterLayer 
dimensions  : 20015, 25438, 509141570  (nrow, ncol, ncell)
resolution  : 9.259259e-05, 9.259259e-05  (x, y)
extent      : -70.43231, -68.07694, 45.98676, 47.84  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs 
data source : /private/var/folders/2w/rjzwcrbn3pg0jmsrfkz7n52h0000gn/T/RtmpkL8Ot5/raster/r_tmp_2018-01-29_014745_982_20879.grd 
names       : layer 
values      : 121.4266, 856.6606  (min, max)


[[2]]
class       : RasterLayer 
dimensions  : 9043, 9896, 89489528  (nrow, ncol, ncell)
resolution  : 9.259259e-05, 9.259259e-05  (x, y)
extent      : -69.76269, -68.84639, 46.23528, 47.07259  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs 
data source : in memory
names       : layer 
values      : 187.9911, 650.0044  (min, max)

第二:我将25个单独的dem合并在一层(DEM_merged),数据源也没有存储在内存中,我能够绘制它并工作用了一天也就是2018-01-28(出现在数据源中),然后出现同样的错误。

> DEM_merge
class       : RasterLayer 
dimensions  : 75612, 75612, 5717174544  (nrow, ncol, ncell)
resolution  : 9.259259e-05, 9.259259e-05  (x, y)
extent      : -74.00056, -66.99944, 40.99944, 48.00056  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs 
data source : /private/var/folders/2w/rjzwcrbn3pg0jmsrfkz7n52h0000gn/T/RtmpkL8Ot5/raster/r_tmp_2018-01-28_163201_982_66674.grd 
names       : layer 
values      : -81.04944, 1915.734  (min, max)

> plot(DEM_merge)
Error in file(fn, "rb") : cannot open the connection
In addition: Warning message:
  In file(fn, "rb") :
  cannot open file '/private/var/folders/2w/rjzwcrbn3pg0jmsrfkz7n52h0000gn/T/RtmpkL8Ot5/raster/r_tmp_2018-01-28_163201_982_66674.gri': No such file or directory
> 

有什么办法可以解决这个问题吗?我觉得 Raster 包及其存储数据的方式存在一些问题,我尝试重新安装 Raster 包,重新安装 R,即使我在 post here 之后使用了另一台计算机,但仍然相同问题,感谢您的帮助!!

大型 Raster* 对象的值被写入文件,以避免内存限制问题。如果您没有明确提供文件名,它们将存储在临时数据文件夹中,该文件夹将在 R 会话结束时被删除。

我猜你创建了 RasterLayers 并将列表保存到磁盘,然后关闭了 R?或者,也许您在再次打开 R 时重新加载了会话?

只是猜测,但如果是这样,大栅格的值应该确实消失了。为避免这种情况发生,您可以尝试使用 readAll(不推荐)将所有值强制写入内存,或者使用 writeRaster

将它们写入永久文件