2

我将 10 多个光栅文件(单波段文件,不是很大)从我的工作目录之外的文件夹中引入 R。单独调用文件有效,但它变得乏味。我见过人们使用类似这样的代码:

require(raster) 
current.list <- list.files(path="Y:/Spatial/RasterData/current", 
     pattern =".tif", full.names=TRUE)
c.stack<- stack(current.list)

但是,它给我带来了各种错误。包括,“ .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer", : 无法从此文件创建 RasterLayer 对象。(文件不存在) "

请注意,我尝试了几种不同的格式(.grd、.img),并且在运行命令之前通常还需要(rgdal)。提前感谢您的想法!

4

2 回答 2

7

我还没有测试过,但我认为如果你在你的 pattern = ".tif" 部分的末尾添加一个 "$" 符号,即:

current.list <- list.files(path="Y:/Spatial/RasterData/current", 
     pattern =".tif$", full.names=TRUE)

...事情应该会奏效。“$”符号本质上表示字符串的结尾,因此您将只列出以“.tif”结尾的文件,除此之外没有其他内容(例如“tif.aux.xml”)。

祝你好运,如果这不适合你,请告诉我。

于 2014-10-18T00:13:48.770 回答
0

我有这个问题。我只需要将我的工作目录设置为与要导入的栅格所在的位置相同,然后它就可以正常工作了。

于 2019-11-28T18:16:01.830 回答