微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

突然出现错误“无法从此文件创建 RasterLayer 对象”在以前工作的脚本中

如何解决突然出现错误“无法从此文件创建 RasterLayer 对象”在以前工作的脚本中

我有一个脚本,可以在其中读取存储为 .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),这可能是导致问题的原因吗?

解决方法

这很神秘。这是一个解决方法:

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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。