问题描述
我有一个由 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)