以矩阵形式读出值 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)

不起作用。 有什么想法吗?

解决方法

您可以将 as.matrix 与参数 wide=TRUE 一起使用。以下来自?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)