如何用 R 在一个循环中写几个 rasterStack
how to write several rasterStack in a loop with R
我在一个文件夹中有几个 ncdf 文件。我想将它们单独堆叠在一个循环中并在 R 中打印它们的信息。
我有以下代码:
library(raster)
library(ncdf4)
c <- list.files(pattern="nc")
for (i in 1:length(c)){
ff <- stack(c[i])
print(ff[i])
}
通过在命令行中输入 ff[1],我希望得到:
class : RasterStack
dimensions : 444, 922, 409368, 10 (nrow, ncol, ncell, nlayers)
resolution : 0.0625, 0.0625 (x, y)
extent : 235.375, 293, 25.125, 52.875 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
names : X1, X2, X3, X4, X5, X6, X7, X8, X9, X10
但我得到以下信息:
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
[1,] NA NA NA NA NA NA NA NA NA NA
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
[1,] NA NA NA NA NA NA NA NA NA NA
我看不出我的错误在哪里。感谢您的帮助。
而不是 print(ff[i])
,您想 print(ff)
。
ff
是一个 RaxterStack
。 ff[i]
将为您提供单元格 i
的值。
((如果你想要层j
,你可以做ff[[j]]
))
避免c
作为变量名(也是函数)。我愿意
library(raster)
ff <- list.files(pattern="nc")
for (i in 1:length(ff)) {
s <- stack(ff[i])
print(s)
}
或更好
for (i in 1:length(ff)) {
b <- brick(ff[i])
print(b)
}
或者像这样:
library(raster)
ff <- list.files(pattern="nc")
lapply(ff, brick)
我在一个文件夹中有几个 ncdf 文件。我想将它们单独堆叠在一个循环中并在 R 中打印它们的信息。
我有以下代码:
library(raster)
library(ncdf4)
c <- list.files(pattern="nc")
for (i in 1:length(c)){
ff <- stack(c[i])
print(ff[i])
}
通过在命令行中输入 ff[1],我希望得到:
class : RasterStack
dimensions : 444, 922, 409368, 10 (nrow, ncol, ncell, nlayers)
resolution : 0.0625, 0.0625 (x, y)
extent : 235.375, 293, 25.125, 52.875 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
names : X1, X2, X3, X4, X5, X6, X7, X8, X9, X10
但我得到以下信息:
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
[1,] NA NA NA NA NA NA NA NA NA NA
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
[1,] NA NA NA NA NA NA NA NA NA NA
我看不出我的错误在哪里。感谢您的帮助。
而不是 print(ff[i])
,您想 print(ff)
。
ff
是一个 RaxterStack
。 ff[i]
将为您提供单元格 i
的值。
((如果你想要层j
,你可以做ff[[j]]
))
避免c
作为变量名(也是函数)。我愿意
library(raster)
ff <- list.files(pattern="nc")
for (i in 1:length(ff)) {
s <- stack(ff[i])
print(s)
}
或更好
for (i in 1:length(ff)) {
b <- brick(ff[i])
print(b)
}
或者像这样:
library(raster)
ff <- list.files(pattern="nc")
lapply(ff, brick)