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

R 光栅错误:无法从此文件创建 RasterLayer 对象 文件不存在

如何解决R 光栅错误:无法从此文件创建 RasterLayer 对象 文件不存在

尝试拉入和缩放 Landsat 图像但收到错误,考虑到较旧的问题和创建 RasterLayer 对象的各种方法,这似乎是一个比较常见的问题。

加载我需要的库后,我遇到了一个问题:

    Directory <- "D:/Geo Files/LANDSAT"
prefix <- "CU_LC08.001_"
suffix <- "_doy2020222_aid0001.tif"  


## Get band 2 reflectance (blue,0.45-0.515 micron)
sr2 <- raster(paste0(Directory,prefix,"SRB2",suffix))
Error in .local(.Object,...) : 

*Error in .rasterObjectFromFile(x,band = band,objecttype = "RasterLayer",: 
  Cannot create a RasterLayer object from this file. (file does not exist)*
> sr2 = sr2*0.0001 #Scale
Error: object 'sr2' not found

我要使用的第一个 (SRB2) 文件的全名是: CU_LC08.001_SRB2_doy2020222_aid0001.tif - 下载时文件名称,未更改。

其余的代码继续通过其他文件遍历每个 SRB,然后计算 NDVI 等

## Get band 3 reflectance (green,0.533-0.590 micron) sr3 <- raster(paste0(Directory,"SRB3",suffix)) sr3 = sr3*0.0001 #Scale

编辑 1:我尝试使用 try using \ 而不是正斜杠并得到完全相同的错误。 R 版本为 R-4.0.3

任何帮助将不胜感激,这是在黑客马拉松中提供给我们的,我是 R 的新手,运行起来应该很简单,但如果无法读取文件..?

编辑 2:问题在于路径的末尾,它需要“\”

Directory <- "D:\\Geo Files\\LANDSAT\\"

但是当尝试在代码的后面从不同的文件夹中获取一个文件时,会出现同样的问题,并且上面的修复没有任何作用:

 Directory <- "D:\\Geo Files\\ECOSTRESS\\USCities\\"
LST_ECO <- raster(paste0(Directory,"SDS_LST_doy2020260040819_aid0001.tif"))
Error in .local(.Object,...) : 

Error in .rasterObjectFromFile(x,: 
  Cannot create a RasterLayer object from this file. (file does not exist)

编辑 3:按照建议将 \Geo Files\ 更改为 "\GeoFiles\",再次尝试但问题仍然出现如上。

解决方法

我遇到了同样的问题,以下是最终奏效的过程。

# location of the file
loc_1 = "D:\\Geo Files\\ECOSTRESS\\USCities\\SDS_LST_doy2020260040819_aid0001.tif"

# check if the file can be read into r
tif1 = readr::read_file(loc_1)

它引发了以下错误(已编辑):

Error: Cannot read file "D:\\Geo Files\\ECOSTRESS\\USCities\\SDS_LST_doy2020260040819_aid0001.tif": The cloud file provider is not running.

原因是因为 R 无法读取在线文件夹中的文件。

确认文件是否可离线使用。如果它可以被 read_file 函数读取,那么 raster 函数应该可以工作。

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