3

我有一个脚本,我在其中读取存储为 .tif 的栅格:

f_treecover   <- raster('Landcover_data/treecover_res_100_q.tif')       

几个月前该脚本运行良好,但现在我收到以下错误消息:

Error in .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer",  : 
  Cannot create a RasterLayer object from this file.

我可以在 terra 中使用“rast”功能读取文件:

f_treecover   <- rast('Landcover_data/treecover_res_100_q.tif')      
> f_treecover
class       : SpatRaster 
dimensions  : 1400, 3600, 1  (nrow, ncol, nlyr)
resolution  : 0.1, 0.1  (x, y)
extent      : -180, 180, -60, 80  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +no_defs 
source      : treecover_res_100_q.tif 
name        : treecover_res_100_q 

但是,脚本中的所有其他对象都是 RasterLayers ,所以我也需要这个对象是一个。我尝试将生成的 SpatRaster 强制转换为 Raster

raster(f_treecover)

,但这会导致与最初尝试读取 .tif 文件时相同的错误消息。

我可能同时安装了光栅包的更新版本(现在使用 3.4-10),这会导致问题吗?

4

2 回答 2

3

如果你没有rgdal安装包,你会得到

Error in .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer",  : 
  Cannot create RasterLayer object from this file; perhaps you need to install rgdal first

在这种情况下,您应该安装rgdal

否则,请确保您没有加载旧工作区(使用unlink(".RData"),退出 R而不保存工作区并重新开始。

如果这没有帮助:卸载 R 并再次安装最新版本和软件包。

于 2021-06-28T14:46:00.277 回答
0

最后,通过完全删除并重新安装 R 解决了问题。我之前曾尝试过,但显然卸载不完整,这可以从我之前安装的软件包在重新安装 R 后再次可用的事实中得到证明。

于 2021-07-08T12:34:32.160 回答