光栅堆栈似乎不想读取文件

问题描述 投票:0回答:1

我正在尝试使用栅格包中的 stack 函数将多个栅格文件(.tif)放入一个堆栈中。当我这样做时,我遇到了两个错误,即:

> covStack <- stack(paste0(getwd(),"/", cov.lst))
Error in .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer",  : 
  Cannot create a RasterLayer object from this file.
In addition: Warning message:
`C:\Users\"fileway"\jbas_14.tif.vat.cpg' not recognized as a supported file format. (GDAL error 4) 

我尝试运行的代码如下:

setwd(file.path("C:/Users/..."))

library(raster)
library(RSAGA) 
library(rgdal)
library(sf)
library(terra)

cov.lst <- list.files(path = getwd(), pattern =".tif")

covStack <- stack(paste0(getwd(),"/", cov.lst))

我尝试重新安装 R 的所有版本和所有软件包,并仅单独安装所需的软件包及其依赖项。我也尝试过

unlink(".RData")
。此外,我还尝试使用
rast
中的
terra
函数,它返回相同的错误。

感谢您的帮助。

r raster r-raster terra rgdal
1个回答
0
投票

错误信息看起来足够清楚了

C:\Users\"fileway"\jbas_14.tif.vat.cpg' not recognized as a supported file format

要仅使用 结尾为 的文件,您可以将

$
符号添加到模式中

cov.lst <- list.files(pattern =".tif$")

现在你可以做

r <- terra::rast(cov.lst)

而不是已弃用的

s <- raster::stack(cov.lst)

`

© www.soinside.com 2019 - 2024. All rights reserved.