我有94个.tif高光谱图像,每个图像都有63个波段。我必须将所有.tif文件的所有单个波段存储在单独的列表中
这是包含栅格文件的列表
setwd("D:/dati tesi magistrale/iperspettrale/tif")
f <- list.files(pattern = ".tif")
rl <- lapply(f,stack)
这是一个栅格文件的示例
>rl[[1]]
class : RasterStack
dimensions : 1610, 828, 1333080, 63 (nrow, ncol, ncell, nlayers)
resolution : 2, 2 (x, y)
extent : 547910.5, 549566.5, 4446761, 4449981 (xmin, xmax, ymin,
ymax)
coord. ref. : +proj=utm +zone=32 +datum=WGS84 +units=m +no_defs
+ellps=WGS84 +towgs84=0,0,0
names : X1_0727.0842_rifl.1, X1_0727.0842_rifl.2,
X1_0727.0842_rifl.3, X1_0727.0842_rifl.4, X1_0727.0842_rifl.5,
X1_0727.0842_rifl.6, X1_0727.0842_rifl.7, X1_0727.0842_rifl.8,
X1_0727.0842_rifl.9, X1_0727.0842_rifl.10, X1_0727.0842_rifl.11,
X1_0727.0842_rifl.12, X1_0727.0842_rifl.13, X1_0727.0842_rifl.14,
X1_0727.0842_rifl.15, ...
min values : 245, 287,
293, 304, 290, 280,
270, 252, 236, 216,
208, 202, 191, 187,
181, ...
max values : 2672, 2555,
2625, 2547, 2677, 2736,
2841, 2881, 2924, 2946,
2968, 2996, 3031, 3121,
3
现在我必须做这样的事情
band_1 <- foreach(i=1:length(rl))%do%{rl[[i]]@layers[1]}
band_2 <- foreach(i=1:length(rl))%do%{rl[[i]]@layers[2]}
.
.
.
band_63 <- foreach(i=1:length(rl))%do%{rl[[i]]@layers[63]}
如何循环执行此任务? 我想创建一个63个列表的列表,每个列表包含94张图像。 我想我可以使用缩进的for循环或foreach循环来做到这一点,但我不知道该怎么做。 感谢您的帮助