之前有效的脚本突然出现错误 'Cannot create a RasterLayer object from this file.'
Suddenly error 'Cannot create a RasterLayer object from this file.' in script that worked before
我有一个脚本,我可以在其中读取存储为 .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),这会导致问题吗?
如果您没有安装 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 名称包含无法识别的字符,例如ā in Māui.
这发生在我之前没有问题的情况下。我意识到发生的事情是我的 Dropbox 帐户没有同步,所以根本找不到文件。如果您将光栅 .tif 对象存储在您的环境中,并且 运行 下面的代码块应该可以找到您的文件。如果不是,Dropbox 同步(如果您的文件来自 Dropbox)也可能是您的问题:
readr::read_file(tif_file)
我有一个脚本,我可以在其中读取存储为 .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 强制转换为 Rasterraster(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 名称包含无法识别的字符,例如ā in Māui.
这发生在我之前没有问题的情况下。我意识到发生的事情是我的 Dropbox 帐户没有同步,所以根本找不到文件。如果您将光栅 .tif 对象存储在您的环境中,并且 运行 下面的代码块应该可以找到您的文件。如果不是,Dropbox 同步(如果您的文件来自 Dropbox)也可能是您的问题:
readr::read_file(tif_file)