我正在使用R 3.4.0。
我有多个单波段栅格,聚集在一个文件夹中,我希望在多波段光栅中叠加在一起。按照其他帖子的说明,我写了这些简单的行:
<test>
<a>
<a1>
<text />
</a1>
<a2 />
</a>
<b>
<b1 />
<b2 />
</b>
</test>
此程序给了我以下错误:
.local(.Object,...)中的错误:
.rasterObjectFromFile中的错误(x,band = band,objecttype =&#34; RasterLayer&#34;,: 无法从此文件创建RasterLayer对象。 (文件不存在)
我读了其他相同问题但没有明确解决方案的帖子;其中一个选择是重命名列表的文件,我试图用以下脚本做:
s2_list <- list.files(path="C:/Users/LAURA/Documents/S2", pattern=".tif$")
s2_stack <- stack(s2_list)
输出如下:
s2_list <- list.files(path="C:/Users/LAURA/Documents/S2", pattern=".tif$")
names_list <- paste("ndvi_", 1:104)
file.rename(s2_list, names_list)
s2_stack <- stack(s2_list)
任何人都知道为什么会这样?我已经检查了第一个列表中的对象数量,它是104。
s2_list的样本:
file.rename(s2_list, names_list)
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[20] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[39] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[58] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[77] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[96] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
答案 0 :(得分:0)
更安全的方法是避免&#34;硬编码&#34; (&lt; - 邪恶之根)
targetDir<-file.path("path","where","your","files","reside")
s2_list <-list.files(path=targetDir,pattern=".tif$",full.names = T)
names_list <- paste0(targetDir,"/ndvi_", 1:length(s2_list),".tif")
file.rename(s2_list, names_list)