我有一个脚本,在其中我读取存储为.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(f_treecover)
,但这会导致与最初尝试读取.tif文件时相同的错误消息。
我可能同时安装了光栅包的更新版本(现在使用3.4-10(,这会导致问题吗?
如果没有安装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并重新安装最新版本和软件包。
最后,通过完全删除并重新安装R,问题得到了解决。我之前尝试过,但显然未完成卸载,这可以从我之前安装的软件包在重新安装R时再次可用的事实中得到证明。
如果tif名称有一个无法识别的字符,也可以是,例如Māui中的ā。
我之前没有遇到任何问题。我意识到发生的事情是我的Dropbox帐户没有同步,所以根本找不到文件。如果您将raster.tif对象存储在环境中并运行下面的代码块,它应该可以找到您的文件。如果不是,Dropbox同步(如果你的文件来自Dropbox(也可能是你的问题:
readr::read_file(tif_file)