问题描述
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.
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),这可能是导致问题的原因吗?
解决方法
这很神秘。这是一个解决方法:
library(terra)
library(raster)
f_terra <- rast('Landcover_data/treecover_res_100_q.tif')
f_raster <- raster(f_terra * 1)
你能把文件放在这里,或者私下发给我,以便我调查发生了什么?
如果您没有安装 rgdal
软件包,您会得到
Error in .rasterObjectFromFile(x,band = band,objecttype = "RasterLayer",:
Cannot create RasterLayer object from this file; perhaps you need to install rgdal first
在这种情况下,您应该安装 rgdal
最后,通过完全删除并重新安装 R 解决了问题。我之前尝试过,但显然卸载不完整,事实证明我之前安装的软件包在重新安装时再次可用R.