R语言terra包中SpatRaster按行列层访问单元格值异常咨询
关于terra包SpatRaster单元格取值的问题
这种行为是terra包的预期设计。
为什么返回带mean的矩阵?
- 你看到的
mean是你这个SpatRaster图层的名称,说明你的raster_1的第一层被命名为"mean"(可能是创建或处理时自动生成的,比如用mean()函数计算得到的图层)。 - terra包中,使用
[row, col, layer]索引SpatRaster时,默认会返回矩阵/数据框格式,保留图层名称作为列名,哪怕只取单个单元格。
如何获取单个数值?
有几种简单的方法:
- 添加
drop=TRUE参数,直接让结果降维为单个值:raster_1[1, 2, 1, drop=TRUE] - 使用
values()函数结合单元格位置提取:values(raster_1)[cellFromRowCol(raster_1, row=1, col=2), 1] - 使用
extract()函数(注意坐标是(列, 行)顺序):extract(raster_1, c(2, 1))[1, 1]
内容的提问来源于stack exchange,提问作者Yuri
相关产品推荐
相关产品推荐

