从列表创建 RasterStack
Create a RasterStack from a list
我将图像数据存储在列表中。该文件包含 1000 个列表(对应于像素),每个列表包含 44 个实体的向量。现在我想创建一个 RasterStack 数据类型,以便将此数据用于 mesma 函数。堆栈数据应该有 44 层。
example_data = replicate(1000, rnorm(44, 8, 1),simplify = FALSE)
stack(example_data, bands = 44)
我收到以下错误消息。
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘raster’ for signature ‘"numeric"’
我不知道你说的 "list file" 是什么意思。我想你的意思是 "list" (如你的例子)。
让我们举一个更简单的例子。每个单元格有一个元素的列表(总共 4 个单元格)。每个元素都有一个向量(每一层一个值;有3层)
d <- replicate(4, 1:3,simplify = FALSE)
d
#[[1]]
#[1] 1 2 3
#[[2]]
#[1] 1 2 3
# etc
将其更改为矩阵,每个单元格一行
m <- matrix(unlist(d), nrow=4, byrow=TRUE)
m
# [,1] [,2] [,3]
#[1,] 1 2 3
#[2,] 1 2 3
#[3,] 1 2 3
#[4,] 1 2 3
创建适当的 Raster* 对象
library(raster)
b <- brick(nrow=2, ncol=2, nl=3)
并赋值
values(b) <- m
b
#class : RasterBrick
#dimensions : 2, 2, 4, 3 (nrow, ncol, ncell, nlayers)
#resolution : 180, 90 (x, y)
#extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
#crs : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
#source : memory
#names : layer.1, layer.2, layer.3
#min values : 1, 2, 3
#max values : 1, 2, 3
我将图像数据存储在列表中。该文件包含 1000 个列表(对应于像素),每个列表包含 44 个实体的向量。现在我想创建一个 RasterStack 数据类型,以便将此数据用于 mesma 函数。堆栈数据应该有 44 层。
example_data = replicate(1000, rnorm(44, 8, 1),simplify = FALSE)
stack(example_data, bands = 44)
我收到以下错误消息。
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘raster’ for signature ‘"numeric"’
我不知道你说的 "list file" 是什么意思。我想你的意思是 "list" (如你的例子)。
让我们举一个更简单的例子。每个单元格有一个元素的列表(总共 4 个单元格)。每个元素都有一个向量(每一层一个值;有3层)
d <- replicate(4, 1:3,simplify = FALSE)
d
#[[1]]
#[1] 1 2 3
#[[2]]
#[1] 1 2 3
# etc
将其更改为矩阵,每个单元格一行
m <- matrix(unlist(d), nrow=4, byrow=TRUE)
m
# [,1] [,2] [,3]
#[1,] 1 2 3
#[2,] 1 2 3
#[3,] 1 2 3
#[4,] 1 2 3
创建适当的 Raster* 对象
library(raster)
b <- brick(nrow=2, ncol=2, nl=3)
并赋值
values(b) <- m
b
#class : RasterBrick
#dimensions : 2, 2, 4, 3 (nrow, ncol, ncell, nlayers)
#resolution : 180, 90 (x, y)
#extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
#crs : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
#source : memory
#names : layer.1, layer.2, layer.3
#min values : 1, 2, 3
#max values : 1, 2, 3