以矩阵形式读出值 r-terra
Read out values in matrix form r-terra
我有一个由 terra 包中的 rast() 创建的 SpatRaster 文件,我想以矩阵形式读出栅格的值。如果底层栅格有 10 行和 10 列,我希望值采用相同的格式,但作为矩阵。
我尝试了一些方法,例如:
matrix(1:100, nrow = 10, ncol = 10) -> mm
rast(mm) -> spat_raster
as.matrix(spat_raster) %>% dim
但是,输出是 100x1 矩阵,而不是 10x10。
还有
values(spat_raster, mat = T)
不起作用。
有什么想法吗?
您可以使用带有参数 wide=TRUE 的 as.matrix
。以下是 ?as.matrix
中的示例
library(terra)
r <- rast(ncol=2, nrow=2)
values(r) <- 1:ncell(r)
as.matrix(r, wide=TRUE)
# [,1] [,2]
#[1,] 1 2
#[2,] 3 4
你也可以这样做(单层SpatRaster
)
d <- dim(r)
matrix(values(r), d[1], d[2], byrow=TRUE)
我有一个由 terra 包中的 rast() 创建的 SpatRaster 文件,我想以矩阵形式读出栅格的值。如果底层栅格有 10 行和 10 列,我希望值采用相同的格式,但作为矩阵。
我尝试了一些方法,例如:
matrix(1:100, nrow = 10, ncol = 10) -> mm
rast(mm) -> spat_raster
as.matrix(spat_raster) %>% dim
但是,输出是 100x1 矩阵,而不是 10x10。 还有
values(spat_raster, mat = T)
不起作用。 有什么想法吗?
您可以使用带有参数 wide=TRUE 的 as.matrix
。以下是 ?as.matrix
library(terra)
r <- rast(ncol=2, nrow=2)
values(r) <- 1:ncell(r)
as.matrix(r, wide=TRUE)
# [,1] [,2]
#[1,] 1 2
#[2,] 3 4
你也可以这样做(单层SpatRaster
)
d <- dim(r)
matrix(values(r), d[1], d[2], byrow=TRUE)